- Der findes mange metoder til at teste, om en variabel har en normalfordeling. I denne artikel finder du ud af, hvilken en du skal bruge!
- 1.1. Introduktion
- 1.2. Fortolkning
- 1.3. Gennemførelse
- 1.4. Konklusion
- 2.1. Indledning
- 2.2 Fortolkning
- 2.3. Implementering
- 2.4. Konklusion
- 3.1. Introduktion
- 3.2. Fortolkning
- 3.3. Implementering
- 3.4. Konklusion
- Kolmogorov Smirnov-test
- 4.2. Fortolkning
- 4.3. Implementering
- 4.4. Konklusion
- Lilliefors-test
- 5.2. Fortolkning
- 5.3. Implementering
- 5.4. Konklusion
- Shapiro Wilk-testen
- 6.2. Fortolkning
- 6.3. Gennemførelse
- 6.4. Konklusion
- Konklusion – hvilken fremgangsmåde skal du bruge!
Der findes mange metoder til at teste, om en variabel har en normalfordeling. I denne artikel finder du ud af, hvilken en du skal bruge!
1.1. Introduktion
Den første metode, som næsten alle kender, er histogrammet. Histogrammet er en datavisualisering, der viser fordelingen af en variabel. Det giver os hyppigheden af forekomsten pr. værdi i datasættet, hvilket er det, som fordelinger handler om.
Histogrammet er en god måde til hurtigt at visualisere fordelingen af en enkelt variabel.
1.2. Fortolkning
I nedenstående billede viser to histogrammer en normalfordeling og en ikke-normalfordeling.
- I venstre side er der en meget lille afvigelse af stikprøvefordelingen (i grå) fra den teoretiske klokkefordeling (rød linje).
- I højre side ser vi en helt anden form i histogrammet, hvilket fortæller os direkte, at der ikke er tale om en normalfordeling.
1.3. Gennemførelse
Et histogram kan nemt oprettes i python på følgende måde:
1.4. Konklusion
Histogrammet er en fantastisk måde til hurtigt at visualisere fordelingen af en enkelt variabel.
2.1. Indledning
Boksdiagrammet er en anden visualiseringsteknik, der kan bruges til at afsløre ikke-normale prøver. Boxplotet tegner et resumé med 5 tal for en variabel: minimum, første kvartil, median, tredje kvartil og maksimum.
Boxplotet er en fantastisk måde at visualisere fordelinger af flere variabler på samme tid.
2.2 Fortolkning
Boxplotet er en fantastisk visualiseringsteknik, fordi den giver mulighed for at plotte mange boxplots ved siden af hinanden. Ved at have dette meget hurtige overblik over variabler får vi en idé om fordelingen, og som en “bonus” får vi den komplette 5-tallige oversigt, som vil hjælpe os i den videre analyse.
Du bør se på to ting:
- Er fordelingen symmetrisk (som normalfordelingen er)
- Svarer bredden (modsat punktlighed) til bredden i normalfordelingen? Dette er svært at se på et boksplot.
2.3. Implementering
En boxplot kan nemt implementeres i python på følgende måde:
2.4. Konklusion
Boxplot er en fantastisk måde at visualisere fordelinger af flere variabler på samme tid, men en afvigelse i bredde/punktlighed er svær at identificere ved hjælp af boxplots.
3.1. Introduktion
Med QQ-plots begynder vi at komme ind på de mere seriøse ting, da dette kræver lidt mere forståelse end de tidligere beskrevne metoder.
QQ Plot står for Quantile vs Quantile Plot, og det er præcis, hvad det gør: plotte teoretiske kvanler mod de faktiske kvanler for vores variabel.
QQQ Plot giver os mulighed for at se afvigelser i en normalfordeling meget bedre end i et Histogram eller Box Plot.
3.2. Fortolkning
Hvis vores variabel følger en normalfordeling, skal kvanlerne for vores variabel være helt på linje med de “teoretiske” normale kvanler: en lige linje på QQ-plottet fortæller os, at vi har en normalfordeling.
Som det ses på billedet, følger punkterne på et normalt QQ Plot en lige linje, mens andre fordelinger afviger kraftigt.
- Den ensformige fordeling har for mange observationer i begge yderpunkter (meget høje og meget lave værdier).
- Den eksponentielle fordeling har for mange observationer på de lavere værdier, men for lidt i de højere værdier.
I praksis ser vi ofte noget mindre udtalt, men med samme form. Over- eller underrepræsentation i halen bør give anledning til tvivl om normaliteten, og i så fald bør du bruge en af de hypotesetests, der er beskrevet nedenfor.
3.3. Implementering
Den kan implementeres ved hjælp af statsmodels api’en i python som følger:
3.4. Konklusion
Med QQ Plot kan vi se afvigelsen af en normalfordeling meget bedre end i et histogram eller et boksplot.
Kolmogorov Smirnov-test
Hvis QQ Plot og andre visualiseringsteknikker ikke er entydige, kan statistisk inferens (hypotesetest) give et mere objektivt svar på, om vores variabel afviger signifikant fra en normalfordeling.
Hvis du er i tvivl om, hvordan og hvornår du skal bruge hypotesetestning, er her en artikel, der giver en intuitiv forklaring på hypotesetestning.
Kolmogorov Smirnov-testen beregner afstandene mellem den empiriske fordeling og den teoretiske fordeling og definerer teststatistikken som supremum af mængden af disse afstande.
Førdelen ved dette er, at den samme fremgangsmåde kan bruges til at sammenligne enhver fordeling, ikke nødvendigvis kun normalfordelingen.
KS-testen er velkendt, men den har ikke meget styrke. Den kan bruges til andre fordelinger end normalfordelingen.
4.2. Fortolkning
Teststatistikken for KS-testen er Kolmogorov Smirnov-statistikken, som følger en Kolmogorov-fordeling, hvis nulhypotesen er sand.
Hvis de observerede data perfekt følger en normalfordeling, vil værdien af KS-statistikken være 0. P-værdien bruges til at afgøre, om forskellen er stor nok til at forkaste nulhypotesen:
- Hvis P-værdien af KS-testen er større end 0,05, antager vi en normalfordeling
- Hvis P-værdien af KS-testen er mindre end 0,05, antager vi ikke en normalfordeling
4.3. Implementering
KS-testen i Python ved hjælp af Scipy kan implementeres på følgende måde. Den returnerer KS-statistikken og dens P-værdi.
4.4. Konklusion
KS-testen er velkendt, men den har ikke meget styrke. Det betyder, at det er nødvendigt med et stort antal observationer for at forkaste nulhypotesen. Den er også følsom over for outliers. Til gengæld kan den bruges til andre typer af fordelinger.
Lilliefors-test
Lilliefors-testen er stærkt baseret på KS-testen. Forskellen er, at det i Lilliefors-testen accepteres, at middelværdien og variansen af populationsfordelingen er estimeret i stedet for at være specificeret på forhånd af brugeren.
På grund af dette bruger Lilliefors-testen Lilliefors-fordelingen i stedet for Kolmogorov-fordelingen.
Uheldigvis for Lilliefors er dens styrke stadig lavere end Shapiro Wilk-testen.
5.2. Fortolkning
- Hvis P-værdien af Lilliefors-testen er større end 0,05, antager vi en normalfordeling
- Hvis P-værdien af Lilliefors-testen er mindre end 0,05, antager vi ikke en normalfordeling
5.3. Implementering
Implementeringen af Lilliefors-testen i statsmodels returnerer værdien af Lilliefors-teststatistikken og P-værdien på følgende måde.
OBS: I statsmodels-implementeringen returneres P-værdier under 0.001 rapporteres som 0,001, og P-værdier højere end 0,2 rapporteres som 0,2.
5.4. Konklusion
Og selv om Lilliefors er en forbedring af KS-testen, er dens styrke stadig lavere end Shapiro Wilk-testen.
Shapiro Wilk-testen
Shapiro Wilk-testen er den mest kraftfulde test, når man tester for en normalfordeling. Den er udviklet specifikt til normalfordelingen, og den kan ikke bruges til at teste mod andre fordelinger som f.eks. KS-testen.
Shapiro Wilk-testen er den mest kraftfulde test, når man tester for en normalfordeling.
6.2. Fortolkning
- Hvis P-værdien af Shapiro Wilk-testen er større end 0,05, antager vi en normalfordeling
- Hvis P-værdien af Shapiro Wilk-testen er mindre end 0,05, antager vi ikke en normalfordeling
6.3. Gennemførelse
Shapiro Wilk-testen kan gennemføres på følgende måde. Den returnerer teststatistikken kaldet W og P-værdien.
Opmærksomhed: for N > 5000 er W-teststatistikken nøjagtig, men p-værdien er det måske ikke.
6.4. Konklusion
Shapiro Wilk-testen er den mest kraftfulde test, når man tester for en normalfordeling. Du bør helt sikkert bruge denne test.
Konklusion – hvilken fremgangsmåde skal du bruge!
For hurtig og visuel identifikation af en normalfordeling skal du bruge et QQ-plot, hvis du kun har én variabel at kigge på, og et Box Plot, hvis du har mange. Brug et histogram, hvis du skal præsentere dine resultater for et ikke-statistisk publikum.
Som en statistisk test til at bekræfte din hypotese skal du bruge Shapiro Wilk-testen. Det er den mest kraftfulde test, som bør være det afgørende argument.
Ved testning i forhold til andre fordelinger kan du ikke bruge Shapiro Wilk og bør f.eks. bruge Anderson-Darling-testen eller KS-testen.