- Sok módszer létezik annak tesztelésére, hogy egy változó normális eloszlású-e. Ebben a cikkben megtudhatod, melyiket érdemes használni!
- 1.1. Bevezetés
- 1.2. A hisztogram az adathalmazon belüli eloszlást. Értelmezés
- 1.3. A normális eloszlástól való eltérés. Megvalósítás
- 1.4. Következtetés
- 2.1. A hisztogram egy nagyszerű módszer egy változó eloszlásának gyors megjelenítésére. Bevezetés
- 2.2. Értelmezés
- 2.3. A normális eloszlás és a normális haranggörbe összehasonlítása. Megvalósítás
- 2.4. Következtetés
- 3.1. Bevezetés
- 3.2. A kvantilisek ábrázolása. Értelmezés
- 3.3. A normális eloszlás. Megvalósítás
- 3.4. QQ Plot létrehozása a statsmodels segítségével. Következtetés
- Kolmogorov Smirnov teszt
- 4.2. A normális eloszlás tesztje. Értelmezés
- 4.3. A KS-próba P-értéke a normális eloszlásra utal. Megvalósítás
- 4.4. A KS-teszt alkalmazása Pythonban Scipy segítségével 4.4. A KS-tesztet a Scipy segítségével alkalmazzuk. Következtetés
- Lilliefors-teszt
- 5.2. A Lilliefors-próba nem a Kolmogorov-eloszlást használja. Értelmezés
- 5.3. Implementáció
- 5.4. alkalmazásával. Következtetés
- Shapiro Wilk teszt
- 6.2. A Shapiro Wilk-teszt a legerősebb teszt, amikor normális eloszlást tesztelünk. Értelmezés
- 6.3. Megvalósítás
- 6.4. A Shapiro Wilk-teszt alkalmazása a Pythonban . Következtetés
- Következtetés – milyen megközelítést használj!
Sok módszer létezik annak tesztelésére, hogy egy változó normális eloszlású-e. Ebben a cikkben megtudhatod, melyiket érdemes használni!
1.1. Bevezetés
Az első módszer, amelyet szinte mindenki ismer, a hisztogram. A hisztogram egy olyan adatvizualizáció, amely egy változó eloszlását mutatja. Megadja nekünk az értékenkénti előfordulási gyakoriságot az adathalmazban, amiről az eloszlások szólnak.
A hisztogram nagyszerű módja annak, hogy gyorsan szemléltessük egyetlen változó eloszlását.
1.2. A hisztogram az adathalmazon belüli eloszlást. Értelmezés
A lenti képen két hisztogram egy normális és egy nem normális eloszlást mutat.
- A bal oldalon a minta eloszlása (szürke színnel) nagyon kis mértékben tér el az elméleti haranggörbe-eloszlástól (piros vonal).
- A jobb oldalon egészen más alakot látunk a hisztogramon, ami egyenesen elárulja, hogy nem normális eloszlásról van szó.

1.3. A normális eloszlástól való eltérés. Megvalósítás
A hisztogram könnyen létrehozható pythonban az alábbiak szerint:
1.4. Következtetés
A hisztogram nagyszerű módja annak, hogy gyorsan szemléltessük egyetlen változó eloszlását.
2.1. A hisztogram egy nagyszerű módszer egy változó eloszlásának gyors megjelenítésére. Bevezetés
A Box Plot egy másik vizualizációs technika, amely a nem normális minták kimutatására használható. A Box Plot egy változó 5 számjegyű összegzését ábrázolja: minimum, első kvartilis, medián, harmadik kvartilis és maximum.
A boxplot egy nagyszerű módszer több változó eloszlásának egyidejű vizualizálására.
2.2. Értelmezés
A boxplot egy nagyszerű vizualizációs technika, mert lehetővé teszi sok boxplot egymás melletti ábrázolását. A változók ilyen nagyon gyors áttekintése képet ad az eloszlásról, és “bónuszként” megkapjuk a teljes 5 számjegyű összefoglalót, ami segít a további elemzésben.
Két dolgot kell megvizsgálni:
- Az eloszlás szimmetrikus (mint a normális eloszlás)?
- A szélesség (a pontszerűség ellentéte) megfelel a normális eloszlás szélességének? Ez nehezen látható egy dobozdiagramon.

2.3. A normális eloszlás és a normális haranggörbe összehasonlítása. Megvalósítás
Egy boxplot könnyen megvalósítható pythonban az alábbiak szerint:
2.4. Következtetés
A boxplot nagyszerű módja annak, hogy egyszerre több változó eloszlását szemléltessük, de a szélesség/pontosság eltérése nehezen azonosítható a boxplotok segítségével.
3.1. Bevezetés
A QQ-diagramokkal kezdünk belemenni a komolyabb dolgokba, mivel ez egy kicsit több megértést igényel, mint a korábban ismertetett módszerek.
A QQ Plot a Quantile vs Quantile Plot rövidítése, ami pontosan azt jelenti, amit csinál: az elméleti kvantiliseket ábrázolja a változónk tényleges kvantiliseivel szemben.
A QQ Plot segítségével sokkal jobban láthatjuk a normális eloszlás eltéréseit, mint a hisztogram vagy a Box Plot esetében.
3.2. A kvantilisek ábrázolása. Értelmezés
Ha a változónk normális eloszlást követ, akkor a változónk kvantiliseinek tökéletesen meg kell egyezniük az “elméleti” normális kvantilisekkel: egy egyenes vonal a QQ Ploton azt mutatja, hogy normális eloszlással rendelkezünk.

Amint a képen látható, a normál QQ Plot pontjai egy egyenest követnek, míg más eloszlások erősen eltérnek.
- Az egyenletes eloszlásnak mindkét szélsőértékén (nagyon magas és nagyon alacsony értékek) túl sok a megfigyelése.
- Az exponenciális eloszlásnak az alacsonyabb értékeken túl sok a megfigyelése, a magasabb értékeken viszont túl kevés.
A gyakorlatban gyakran látunk valami kevésbé kifejezett, de hasonló alakú eloszlást. A farok túl- vagy alulreprezentáltsága kétségeket kell, hogy ébresszen a normalitással kapcsolatban, ebben az esetben az alább ismertetett hipotézisvizsgálatok valamelyikét kell alkalmaznunk.
3.3. A normális eloszlás. Megvalósítás
A QQ Plot megvalósítása a statsmodels api segítségével pythonban az alábbiak szerint végezhető el:
3.4. QQ Plot létrehozása a statsmodels
segítségével. Következtetés
A QQ Plot segítségével sokkal jobban láthatjuk a normális eloszlástól való eltérést, mint egy hisztogramban vagy box plotban.
Kolmogorov Smirnov teszt
Ha a QQ Plot és más vizualizációs technikák nem meggyőzőek, a statisztikai következtetés (hipotézisvizsgálat) objektívebb választ adhat arra, hogy változónk jelentősen eltér-e a normális eloszlástól.
Ha kétségei vannak azzal kapcsolatban, hogy hogyan és mikor használjon hipotézisvizsgálatot, itt egy cikk, amely intuitív magyarázatot ad a hipotézisvizsgálatra.
A Kolmogorov Smirnov-próba kiszámítja az empirikus eloszlás és az elméleti eloszlás közötti távolságokat, és a tesztstatisztikát e távolságok halmazának szuprémumaként határozza meg.
Az előnye, hogy ugyanaz a megközelítés bármilyen eloszlás összehasonlítására használható, nem feltétlenül csak a normális eloszlásra.
A KS-próba jól ismert, de nincs nagy ereje. A normális eloszláson kívül más eloszlásokra is alkalmazható.
4.2. A normális eloszlás tesztje. Értelmezés
A KS teszt statisztikája a Kolmogorov Smirnov statisztika, amely Kolmogorov-eloszlást követ, ha a nullhipotézis igaz.
Ha a megfigyelt adatok tökéletesen normális eloszlást követnek, akkor a KS statisztika értéke 0 lesz. A P-érték segítségével döntjük el, hogy a különbség elég nagy-e a nullhipotézis elutasításához:
- Ha a KS-próba P-értéke nagyobb, mint 0,05, akkor normális eloszlást feltételezünk
- Ha a KS-próba P-értéke kisebb, mint 0,05, akkor nem feltételezünk normális eloszlást
4.3. A KS-próba P-értéke a normális eloszlásra utal. Megvalósítás
A KS-teszt Pythonban a Scipy segítségével a következőképpen valósítható meg. Visszaadja a KS-statisztikát és annak P-értékét.
4.4. A KS-teszt alkalmazása Pythonban Scipy segítségével
4.4. A KS-tesztet a Scipy segítségével alkalmazzuk. Következtetés
A KS-teszt jól ismert, de nincs nagy ereje. Ez azt jelenti, hogy nagy számú megfigyelésre van szükség a nullhipotézis elutasításához. Emellett érzékeny a kiugró értékekre is. Másrészt más típusú eloszlások esetén is használható.
Lilliefors-teszt
A Lilliefors-teszt erősen a KS-tesztre épül. A különbség az, hogy a Lilliefors-tesztben elfogadják, hogy a populáció eloszlásának átlagát és szórását megbecsülik, nem pedig a felhasználó által előre megszabottan.
Emiatt a Lilliefors-próba a Kolmogorov-eloszlás helyett a Lilliefors-eloszlást használja.
A Lilliefors-próba sajnos még mindig alacsonyabb az ereje, mint a Shapiro Wilk-teszté.
5.2. A Lilliefors-próba nem a Kolmogorov-eloszlást használja. Értelmezés
- Ha a Lilliefors-teszt P-értéke nagyobb, mint 0,05, akkor feltételezzük a normális eloszlást
- Ha a Lilliefors-teszt P-értéke kisebb, mint 0,05, akkor nem feltételezzük a normális eloszlást
5.3. Implementáció
A Lilliefors-teszt implementációja a statsmodelsben a következőképpen adja vissza a Lilliefors-teszt statisztikájának értékét és a P-értéket.
Figyelem: a statsmodels implementációjában a 0-nál kisebb P-értékek.001 alatti értékeket 0,001-ként, a 0,2-nél nagyobb P-értékeket pedig 0,2-ként jelzi.
5.4. alkalmazásával. Következtetés
Bár a Lilliefors teszt javulást jelent a KS teszthez képest, a hatalma még mindig alacsonyabb, mint a Shapiro Wilk teszté.
Shapiro Wilk teszt
A Shapiro Wilk teszt a legerősebb teszt a normális eloszlás vizsgálatakor. Kifejezetten a normális eloszlásra fejlesztették ki, és nem használható más eloszlásokkal szembeni tesztelésre, mint például a KS teszt.
A Shapiro Wilk-teszt a legerősebb teszt, amikor normális eloszlást tesztelünk.
6.2. A Shapiro Wilk-teszt a legerősebb teszt, amikor normális eloszlást tesztelünk. Értelmezés
- Ha a Shapiro Wilk teszt P-értéke nagyobb, mint 0,05, akkor feltételezzük a normális eloszlást
- Ha a Shapiro Wilk teszt P-értéke kisebb, mint 0,05, akkor nem feltételezzük a normális eloszlást
6.3. Megvalósítás
A Shapiro Wilk teszt a következőképpen valósítható meg. Visszaadja a W nevű tesztstatisztikát és a p-értéket.
Figyelem: N > 5000 esetén a W tesztstatisztika pontos, de a p-érték nem biztos, hogy az.
6.4. A Shapiro Wilk-teszt alkalmazása a Pythonban
. Következtetés
A Shapiro Wilk-teszt a legerősebb teszt a normális eloszlás vizsgálatakor. Mindenképpen ezt a tesztet kell használnod.
Következtetés – milyen megközelítést használj!
A normális eloszlás gyors és vizuális azonosításához használj QQ-diagramot, ha csak egy változót kell vizsgálnod, és Box-diagramot, ha sok változót. Használjon hisztogramot, ha az eredményeit egy nem statisztikus közönségnek kell bemutatnia.
A hipotézis megerősítésére szolgáló statisztikai tesztként használja a Shapiro Wilk-tesztet. Ez a legerősebb teszt, aminek döntő érvnek kell lennie.
Más eloszlásokkal való tesztelés esetén nem használhatja a Shapiro Wilk-tesztet, hanem például az Anderson-Darling-tesztet vagy a KS-tesztet kell használnia.