- Det finns många metoder för att testa om en variabel har en normalfördelning. I den här artikeln får du reda på vilken du ska använda!
- 1.1. Introduktion
- 1.2. Tolkning
- 1.3. Genomförande
- 1.4. Slutsats
- 2.1. Introduktion
- 2.2 Tolkning
- 2.3. Genomförande
- 2.4. Slutsats
- 3.1. Introduktion
- 3.2. Tolkning
- 3.3. Genomförande
- 3.4. Slutsats
- Kolmogorov Smirnov-test
- 4.2. Tolkning
- 4.3. Genomförande
- 4.4. Slutsats
- Lilliefors test
- 5.2. Tolkning
- 5.3. Genomförande
- 5.4. Slutsats
- Shapiro Wilk-test
- 6.2. Tolkning
- 6.3. Genomförande
- 6.4. Slutsats
- Slutsats – vilket tillvägagångssätt du ska använda!
Det finns många metoder för att testa om en variabel har en normalfördelning. I den här artikeln får du reda på vilken du ska använda!
1.1. Introduktion
Den första metoden som nästan alla känner till är histogrammet. Histogrammet är en datavisualisering som visar fördelningen av en variabel. Den ger oss frekvensen av förekomsten per värde i datasetet, vilket är vad fördelningar handlar om.
Histogrammet är ett utmärkt sätt att snabbt visualisera fördelningen av en enskild variabel.
1.2. Tolkning
I bilden nedan visar två histogram en normalfördelning och en icke-normalfördelning.
- Till vänster är det mycket liten avvikelse för provfördelningen (i grått) från den teoretiska fördelningen i form av en klockkurva (röd linje).
- Till höger ser vi en helt annan form i histogrammet, vilket talar direkt om för oss att detta inte är en normalfördelning.
1.3. Genomförande
Ett histogram kan enkelt skapas i python enligt följande:
1.4. Slutsats
Histogrammet är ett utmärkt sätt att snabbt visualisera fördelningen av en enskild variabel.
2.1. Introduktion
Box Plot är en annan visualiseringsteknik som kan användas för att upptäcka icke-normala prover. Boxplot plottar sammanfattningen med fem siffror för en variabel: minimum, första kvartilen, medianen, tredje kvartilen och maximum.
Boxplot är ett utmärkt sätt att visualisera fördelningar av flera variabler samtidigt.
2.2 Tolkning
Boxplot är en utmärkt visualiseringsteknik eftersom den gör det möjligt att plotta många boxplots bredvid varandra. Genom att ha denna mycket snabba översikt över variablerna får vi en uppfattning om fördelningen och som en ”bonus” får vi den kompletta sammanfattningen med fem siffror som hjälper oss i den fortsatta analysen.
Du bör titta på två saker:
- Är fördelningen symmetrisk (som normalfördelningen)?
- Motsvarar bredden (motsatsen till spetsighet) bredden hos normalfördelningen? Detta är svårt att se på en boxplot.
2.3. Genomförande
En boxplot kan enkelt implementeras i python enligt följande:
2.4. Slutsats
Boxplot är ett utmärkt sätt att visualisera fördelningar av flera variabler samtidigt, men en avvikelse i bredd/punktlighet är svår att identifiera med hjälp av boxplots.
3.1. Introduktion
Med QQ-plottar börjar vi komma in på de mer seriösa sakerna, eftersom detta kräver lite mer förståelse än de tidigare beskrivna metoderna.
QQQ-plot står för Quantile vs Quantile Plot, vilket är precis vad den gör: att plotta teoretiska kvanler mot de faktiska kvanlerna för vår variabel.
QQQ-plot gör det möjligt för oss att se avvikelser från en normalfördelning mycket bättre än i ett histogram eller en boxplot.
3.2. Tolkning
Om vår variabel följer en normalfördelning måste kvanterna för vår variabel ligga helt i linje med de ”teoretiska” normala kvanterna: en rak linje på QQ-plotten säger oss att vi har en normalfördelning.
Som framgår av bilden följer punkterna på en normal QQ-plott en rak linje, medan andra fördelningar avviker kraftigt.
- Den enhetliga fördelningen har för många observationer i båda ytterligheterna (mycket höga och mycket låga värden).
- Den exponentiella fördelningen har för många observationer på de lägre värdena, men för lite på de högre värdena.
I praktiken ser vi ofta något som är mindre uttalat, men som liknar formen. Över- eller underrepresentation i svansen bör ge upphov till tvivel om normaliteten, i vilket fall du bör använda något av de hypotesprövningar som beskrivs nedan.
3.3. Genomförande
Det går att genomföra en QQ-plot med hjälp av statsmodels api i python enligt följande:
3.4. Slutsats
Med QQ-plotten kan vi se avvikelsen från en normalfördelning mycket bättre än i ett histogram eller en boxplott.
Kolmogorov Smirnov-test
Om QQ-plotten och andra visualiseringstekniker inte är entydiga kan statistisk inferens (hypotesprövning) ge ett mer objektivt svar på om vår variabel avviker signifikant från en normalfördelning.
Om du är osäker på hur och när du ska använda hypotesprövning finns här en artikel som ger en intuitiv förklaring till hypotesprövning.
Kolmogorov Smirnov-testet beräknar avstånden mellan den empiriska fördelningen och den teoretiska fördelningen och definierar teststatistiken som supremum av uppsättningen av dessa avstånd.
Fördelen med detta är att samma tillvägagångssätt kan användas för att jämföra vilken fördelning som helst, det är inte nödvändigt att bara jämföra normalfördelningen.
KS-testet är välkänt, men det har inte så mycket kraft. Det kan användas för andra fördelningar än normalfördelningen.
4.2. Tolkning
Teststatistiken för KS-testet är Kolmogorov Smirnov-statistiken, som följer en Kolmogorov-fördelning om nollhypotesen är sann.
Om de observerade uppgifterna perfekt följer en normalfördelning kommer värdet på KS-statistiken att vara 0. P-värdet används för att avgöra om skillnaden är tillräckligt stor för att förkasta nollhypotesen:
- Om P-värdet för KS-testet är större än 0,05 antar vi en normalfördelning
- Om P-värdet för KS-testet är mindre än 0,05 antar vi inte en normalfördelning
4.3. Genomförande
KS-testet i Python med hjälp av Scipy kan genomföras på följande sätt. Den returnerar KS-statistiken och dess P-värde.
4.4. Slutsats
KS-testet är välkänt men har inte mycket kraft. Det innebär att det krävs ett stort antal observationer för att förkasta nollhypotesen. Det är också känsligt för outliers. Å andra sidan kan det användas för andra typer av fördelningar.
Lilliefors test
Lilliefors test är starkt baserat på KS testet. Skillnaden är att i Lilliefors-testet accepteras det att medelvärdet och variansen för populationsfördelningen uppskattas snarare än att de är förspecificerade av användaren.
På grund av detta använder Lilliefors-testet Lillieforsfördelningen snarare än Kolmogorovfördelningen.
Olyckligtvis för Lilliefors är dess styrka fortfarande lägre än Shapiro Wilk-testet.
5.2. Tolkning
- Om P-värdet för Lilliefors-testet är större än 0,05 antar vi en normalfördelning
- Om P-värdet för Lilliefors-testet är mindre än 0,05 antar vi inte en normalfördelning
5.3. Genomförande
Den implementering av Lilliefors-testet som finns i statsmodellerna returnerar värdet av Lilliefors teststatistik och P-värdet enligt följande.
Observering: i implementeringen av statsmodellerna är P-värden som är lägre än 0.001 rapporteras som 0,001 och P-värden högre än 0,2 rapporteras som 0,2.
5.4. Slutsats
Och om Lilliefors är en förbättring av KS-testet är dess styrka fortfarande lägre än Shapiro Wilk-testet.
Shapiro Wilk-test
Shapiro Wilk-testet är det mest kraftfulla testet när man testar för en normalfördelning. Det har utvecklats specifikt för normalfördelningen och kan inte användas för att testa mot andra fördelningar som till exempel KS-testet.
Shapiro Wilk-testet är det mest kraftfulla testet när man testar för en normalfördelning.
6.2. Tolkning
- Om P-värdet för Shapiro Wilk-testet är större än 0,05 antar vi en normalfördelning
- Om P-värdet för Shapiro Wilk-testet är mindre än 0,05 antar vi inte en normalfördelning
6.3. Genomförande
Shapiro Wilk-testet kan genomföras på följande sätt. Det returnerar teststatistiken kallad W och P-värdet.
Observering: för N > 5000 är teststatistiken W korrekt men p-värdet kanske inte är det.
6.4. Slutsats
Shapiro Wilk-testet är det mest kraftfulla testet när man testar en normalfördelning. Du bör definitivt använda detta test.
Slutsats – vilket tillvägagångssätt du ska använda!
För snabb och visuell identifiering av en normalfördelning kan du använda en QQ-plot om du bara har en variabel att titta på och en boxplot om du har många. Använd ett histogram om du behöver presentera dina resultat för en icke-statistisk allmänhet.
Som statistiskt test för att bekräfta din hypotes, använd Shapiro Wilk-testet. Det är det mest kraftfulla testet, vilket bör vara det avgörande argumentet.
När du testar mot andra fördelningar kan du inte använda Shapiro Wilk och bör använda till exempel Anderson-Darling-testet eller KS-testet.