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ó.

Néha a normális eloszlástól való eltérés annyira nyilvánvaló, hogy vizuálisan is észrevehető.

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:

Hisztogram készítése pandas segítségével pythonban

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.

Normális (balra), egyenletes (középen) és exponenciális (jobbra) boxplotok vs. normál haranggörbe

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:

Creating a boxplot using pandas in python

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.

Normális (balra), egyenletes (középen) és exponenciális (jobbra) QQ Plot

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:

Creating a QQ Plot using statsmodels

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.

A KS-teszt alkalmazása Pythonban Scipy használatával

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.

A Lilliefors-teszt alkalmazása a statsmodels

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.

A Shapiro Wilk-teszt alkalmazása statsmodels segítségével Pythonban

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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.