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.

Sommetider er afvigelsen fra en normalfordeling så tydelig, at den kan opdages visuelt.

1.3. Gennemførelse

Et histogram kan nemt oprettes i python på følgende måde:

Oprettelse af et histogram ved hjælp af pandas i python

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.

Normale (venstre), ensartede (midten) og eksponentielle (højre) boksplots vs. normal klokkekurve

2.3. Implementering

En boxplot kan nemt implementeres i python på følgende måde:

Skabelse af en boxplot ved hjælp af pandas i python

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.

Normale (venstre), ensartede (midten) og eksponentielle (højre) QQ Plots

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:

Skabelse af en QQ-plot ved hjælp af statsmodels

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.

Anvendelse af KS-testen i Python ved hjælp af Scipy

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.

Anvendelse af Lilliefors-testen ved hjælp af statsmodels

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.

Anvendelse af Shapiro Wilk-testen ved hjælp af statsmodeller i Python

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.