A Q-Q ábra az egyik leggyakrabban szembejövő adatábrázolási mód. Lényegében ez egy vizuális “Goodness of fit” teszt, vagyis arra keresi a választ, hogy a mintánk eloszlása milyen eloszlásból származik. Nézzük hogyan és milyen információt tudunk leolvasni róluk.
Először kezdjük a névvel. Mindkét Q az angol “quantiles” szavak rövidítése, vagyis a kvantiliseké1. Ebből nem nehéz kitalálni, hogy a minta és a feltételezett másik eloszlás összehasonlítására a teszt a kvantiliseket használja.Ehhez pedig a minta kvantiliseit használja.
A példa kedvért szimuláljunk egy mintavételt egy standard Normál eloszlásból:
import scipy.stats as stats obs = stats.norm.rvs(0, 1, size=1000)
Ha most elkészítjük ezeknek az adatoknak a Q-Q ábráját akkor valami ilyesmit fogunk kapni:
import matplotlib.pyplot as plt # Histogram plt.subplot(1,2,1) # minta plt.hist(obs, density=True, label="Minta") # standard normál pdf sűrűségfüggvénye bins = [ (x-300)/100 for x in range(600)] normalpdf = stats.norm.pdf(bins, 0, 1) plt.plot(bins, normalpdf, label="N(0,1)") # jelmagyarázat és cím plt.title("A minta histogramja vs. N(0,1) ") plt.legend() # Q-Q ábra plt.subplot(1,2,2) stats.probplot(obs, dist="norm", plot=plt) plt.title("Q-Q ábra ") plt.show()

Mit is csináltunk itt? Vettük a megfigyelés eredményeit (obs) és összehasonlítottuk a standard normál eloszlással (dist=”norm” rész a kódban). Ha a két eloszlás megegyezik akkor, nem meglepő módon, a függvényre (a piros vonal az ábrán) kell illeszkednie a pontoknak. A fenti szinte teljesen illeszkedik. Nézzük mi van akkor ha ez nem igaz.
Ferde eloszlások
Mi van ha az mintánk valamelyik irányba eltér a feltételezett eloszlástól? Nézzük meg például egy balra eltolt függvényt:
obs = stats.skewnorm.rvs(-4, size=1000)

Majd jobbra eltolt:

Mint látható egy U alakú görbét kapunk eredményként ebben az esetben, aminek az irányából egyből, a hisztogram nélkül látható merre tér el a minta.
Kisebb vagy nagyobb függvényfarkak
Nézzük mi lesz, ha a farok vastagabb, mint pl, egy kis szabadsági fokú T eloszlásnál:
obs = stats.t.rvs(2, size=1000)

Most nézzük a keskenyebb esetet:
obs = stats.beta.rvs(2, 2, size=1000)

Minkét esetben egy elég jellegzetes S alakú függvényt kaptunk. A görbület irány az előzőhöz hasonlóan segítségünkre van annak megmondására, hogy melyik eset áll fent.
Összegzés
A Q-Q ábra egy egyszerű módja annak, hogy eldöntsük a mintán milyen irányban tér el egy feltételezett valószínűségtől. A fenti ábrák után jogosan merül fel a kérdés: jó jó, de mi értelme van ennek a hisztogrammal szemben? Amit vegyünk észre:
- A Q-Q ábrán minden pont ábrázolva van. Így például egyből lehet látni a maximum és minimum értékeket.
- Az emberek többsége pontosabban hasonlít össze két vonalat mint két területet.
Nézzünk erre egy példát. Az alábbi ábrán a hisztogram alapján azt gondolhatnánk, hogy az adatunk standard Normál, de ha megnézzük a Q-Q ábrát akkor látjuk, hogy ez nem igaz:

Lábjegyzet
- A kvantilist lényegében felfoghatjuk, úgy minta a sorba-rendezett adatot sorszámát.
“Q-Q ábra” bejegyzéshez egy hozzászólás