Muuttujan normaalijakauman testaamiseen on olemassa monia menetelmiä. Tässä artikkelissa selvitetään, mitä niistä kannattaa käyttää!

1.1. Johdanto

Ensimmäinen menetelmä, jonka lähes kaikki tuntevat, on histogrammi. Histogrammi on datan visualisointi, joka näyttää muuttujan jakauman. Se antaa meille esiintymistiheyden arvoa kohti aineistossa, mistä jakaumissa on kyse.

Histogrammi on hyvä tapa visualisoida nopeasti yksittäisen muuttujan jakauma.

1.2. Histogrammi. Tulkinta

Oheisessa kuvassa kaksi histogrammia esittävät normaalijakauman ja epänormaalijakauman.

  • Vasemmalla näytteen jakauma (harmaalla) poikkeaa hyvin vähän teoreettisesta kellokäyräjakaumasta (punainen viiva).
  • Oikealla näemme histogrammissa aivan erilaisen muodon, joka kertoo suoraan, että kyseessä ei ole normaalijakauma.

Joskus poikkeama normaalijakaumasta on niin selvä, että sen voi havaita silmämääräisesti.

1.3. Normaalijakauma. Toteutus

Histogrammi voidaan luoda helposti pythonissa seuraavasti:

Histogrammin luominen pandas-ohjelmalla pythonissa

1.4. histogrammi. Johtopäätökset

Histogrammi on loistava tapa visualisoida nopeasti yksittäisen muuttujan jakauma.

2.1. Histogrammi. Johdanto

Box Plot on toinen visualisointitekniikka, jota voidaan käyttää epänormaalien otosten havaitsemiseen. Box Plot piirtää muuttujan 5-numeroisen yhteenvedon: minimi, ensimmäinen kvartiili, mediaani, kolmas kvartiili ja maksimi.

Boxplot on loistava tapa visualisoida useiden muuttujien jakaumia samanaikaisesti.

2.2. Tulkinta

Boxplot on loistava visualisointitekniikka, koska se mahdollistaa useiden boxplottien piirtämisen vierekkäin. Kun saamme tämän hyvin nopean yleiskuvan muuttujista, saamme käsityksen jakaumasta ja ”bonuksena” saamme täydellisen 5-numeroisen yhteenvedon, joka auttaa meitä myöhemmässä analyysissä.

Sinun tulisi tarkastella kahta asiaa:

  • Onko jakauma symmetrinen (kuten normaalijakauma)?
  • Onko jakauman leveys (vastakohta pistemäisyydelle) normaalijakauman leveydelle sopiva? Tätä on vaikea nähdä laatikkodiagrammista.

Normaalijakauma (vasen), tasajakauma (keskellä) ja eksponentiaalijakauma (oikealla) laatikkodiagrammit vs. normaali kellokäyrä

2.3. Millainen on normaalijakauma? Toteutus

Boxplot voidaan helposti toteuttaa pythonissa seuraavasti:

Creating a boxplot using pandas in python

2.4. Johtopäätökset

Boxplot on loistava tapa visualisoida useiden muuttujien jakaumia samanaikaisesti, mutta poikkeamaa leveydessä/pisteellisyydessä on vaikea tunnistaa boxplottien avulla.

3.1. Boxplotit. Johdanto

QQ-plottien avulla alamme siirtyä vakavampiin asioihin, sillä tämä vaatii hieman enemmän ymmärrystä kuin aiemmin kuvatut menetelmät.

QQ Plot on lyhenne sanoista Quantile vs. Quantile Plot, mikä on juuri sitä, mitä se tekee: se piirtää teoreettiset kvantiilit muuttujamme todellisia kvantiileja vasten.

QQQ Plotin avulla voimme nähdä normaalijakauman poikkeaman paljon paremmin kuin histogrammissa tai laatikko-plotissa.

3.2. Muuttujien kuvaaminen. Tulkinta

Jos muuttujamme noudattaa normaalijakaumaa, muuttujamme kvantiilien on oltava täysin linjassa ”teoreettisten” normaalikvantiilien kanssa: suora viiva QQ Plotissa kertoo, että kyseessä on normaalijakauma.

Normaali (vasen), tasainen (keskimmäinen) ja eksponentiaalinen (oikea) QQ-plotit

Kuten kuvasta nähdään, normaalin QQ-plotin pisteet noudattavat suoraa viivaa, kun taas muut jakaumat poikkeavat siitä voimakkaasti.

  • Homogeenisella jakaumalla on liikaa havaintoja molemmissa ääripäissä (hyvin korkeat ja hyvin matalat arvot).
  • Exponenttijakaumalla on liikaa havaintoja matalammilla arvoilla, mutta liian vähän korkeammilla arvoilla.

Käytännössä näemme usein jotakin, joka ei ole yhtä voimakas, mutta on muodoltaan samanlainen. Hännän yli- tai aliedustuksen pitäisi herättää epäilyjä normaalijakauman normaalisuudesta, jolloin kannattaa käyttää jotakin alla kuvatuista hypoteesitesteistä.

3.3. Hännän yli- tai aliedustus. Toteutus

QQ-plotin toteuttaminen voidaan tehdä pythonin statsmodels api:n avulla seuraavasti:

Creating a QQ Plot using statsmodels

3.4. QQ-plotin luominen. Johtopäätös

QQ Plotin avulla voimme nähdä normaalijakauman poikkeaman paljon paremmin kuin histogrammissa tai laatikkodiagrammissa.

Kolmogorov Smirnovin testi

Jos QQ Plot ja muut visualisointitekniikat eivät ole vakuuttavia, tilastollinen päättely (hypoteesitestaus) voi antaa objektiivisemman vastauksen siihen, poikkeaako muuttujamme merkittävästi normaalijakaumasta.

Jos olet epävarma siitä, miten ja milloin hypoteesitestausta kannattaa käyttää, tässä on artikkeli, jossa annetaan intuitiivinen selitys hypoteesitestaukseen.

Kolmogorov Smirnovin testi laskee empiirisen jakauman ja teoreettisen jakauman väliset etäisyydet ja määrittelee testistatistiikan näiden etäisyyksien joukon supremumina.

Tämän etuna on se, että samaa lähestymistapaa voidaan käyttää minkä tahansa jakauman vertailuun, ei välttämättä vain normaalijakauman.

KS-testin teho tunnetaan hyvin, mutta sen teho ei ole suuri. Sitä voidaan käyttää muillekin jakaumille kuin normaalijakaumalle.

4.2. Tulkinta

KS-testin testitilasto on Kolmogorov Smirnovin tilasto, joka noudattaa Kolmogorovin jakaumaa, jos nollahypoteesi on tosi.

Jos havaittu aineisto noudattaa täydellisesti normaalijakaumaa, KS-statistiikan arvo on 0. P-arvoa käytetään päättämään, onko ero tarpeeksi suuri nollahypoteesin hylkäämiseksi:

  • Jos KS-testin P-arvo on suurempi kuin 0,05, oletamme normaalijakauman
  • Jos KS-testin P-arvo on pienempi kuin 0,05, emme oleta normaalijakaumaa

4.3. Normaalijakauma. Toteutus

KS-testi Pythonissa Scipyä käyttäen voidaan toteuttaa seuraavasti. Se palauttaa KS-statistiikan ja sen P-arvon.

KS-testin soveltaminen Pythonissa käyttäen Scipyä

4.4. KS-testin soveltaminen Pythonissa käyttäen Scipyä. Johtopäätökset

KS-testi on tunnettu, mutta sillä ei ole suurta tehoa. Tämä tarkoittaa, että nollahypoteesin hylkäämiseen tarvitaan suuri määrä havaintoja. Se on myös herkkä poikkeaville arvoille. Toisaalta sitä voidaan käyttää muuntyyppisille jakaumille.

Lillieforsin testi

Lillieforsin testi perustuu vahvasti KS-testiin. Erona on se, että Lillieforsin testissä hyväksytään, että populaatiojakauman keskiarvo ja varianssi estimoidaan sen sijaan, että käyttäjä olisi määrittänyt ne ennalta.

Sen vuoksi Lillieforsin testi käyttää Lillieforsin jakaumaa Kolmogorovin jakauman sijaan.

Lillieforsin testin valitettavasti sen teho on silti pienempi kuin Shapiro Wilkin testin.

5.2. Lillieforsin testi. Tulkinta

  • Jos Lillieforsin testin P-arvo on suurempi kuin 0,05, oletamme normaalijakauman
  • Jos Lillieforsin testin P-arvo on pienempi kuin 0,05, emme oleta normaalijakaumaa

5.3. Tulkinta

. Toteutus

Lillieforsin testin toteutus statsmodelsissa palauttaa Lillieforsin testistatistiikan arvon ja P-arvon seuraavasti.

Huomio: statsmodelsin toteutuksessa P-arvot, jotka ovat pienempiä kuin 0.001 ilmoitetaan arvona 0.001 ja P-arvot, jotka ovat suurempia kuin 0.2, ilmoitetaan arvona 0.2.

Lillieforsin testin soveltaminen käyttäen statsmodels

5.4. Johtopäätös

Vaikka Lillieforsin testi on parannus KS-testiin verrattuna, sen teho on silti pienempi kuin Shapiro Wilkin testin.

Shapiro Wilkin testi

Shapiro Wilkin testi on tehokkain testi, kun testataan normaalijakaumaa. Se on kehitetty nimenomaan normaalijakaumaa varten, eikä sitä voi käyttää muiden jakaumien testaamiseen, kuten esimerkiksi KS-testiä.

Shapiro Wilkin testi on tehokkain testi, kun testataan normaalijakaumaa.

6.2. Shapiro Wilkin testi. Tulkinta

  • Jos Shapiro Wilkin testin P-arvo on suurempi kuin 0,05, oletamme normaalijakauman
  • Jos Shapiro Wilkin testin P-arvo on pienempi kuin 0,05, emme oleta normaalijakaumaa

6.3. Toteutus

Shapiro Wilkin testi voidaan toteuttaa seuraavasti. Se palauttaa testistatistiikan nimeltä W ja p-arvon.

Huomio: Jos N > 5000, testistatistiikka W on tarkka, mutta p-arvo ei välttämättä ole.

Shapiro Wilkin testin soveltaminen käyttäen statsmodeleita Pythonissa

6.4. Testi on tarkka. Johtopäätös

Shapiro Wilkin testi on tehokkain testi, kun testataan normaalijakaumaa. Tätä testiä kannattaa ehdottomasti käyttää.

Johtopäätös – mitä lähestymistapaa kannattaa käyttää!

Normaalijakauman nopeaan ja visuaaliseen tunnistamiseen kannattaa käyttää QQ-diagrammia, jos tarkasteltavia muuttujia on vain yksi, ja Box-diagrammia, jos tarkasteltavia muuttujia on monta. Käytä histogrammia, jos sinun on esitettävä tuloksesi yleisölle, joka ei ole tilastotieteilijä.

Tilastollisena testinä hypoteesin vahvistamiseksi käytä Shapiro Wilkin testiä. Se on tehokkain testi, jonka pitäisi olla ratkaiseva argumentti.

Kun testaat muita jakaumia vastaan, et voi käyttää Shapiro Wilkin testiä, vaan sinun pitäisi käyttää esimerkiksi Anderson-Darlingin testiä tai KS-testiä.

Vastaa

Sähköpostiosoitettasi ei julkaista.