1.1. Inleiding

De eerste methode die bijna iedereen kent is het histogram. Het histogram is een gegevensvisualisatie die de verdeling van een variabele toont. Het geeft ons de frequentie van voorkomen per waarde in de dataset, waar het bij verdelingen om gaat.

Het histogram is een geweldige manier om snel de verdeling van een enkele variabele te visualiseren.

1.2. Interpretatie

In de onderstaande afbeelding tonen twee histogrammen een normale verdeling en een niet-normale verdeling.

  • Aan de linkerkant is er een zeer geringe afwijking van de steekproefverdeling (in grijs) ten opzichte van de theoretische bell curve-verdeling (rode lijn).
  • Rechts zien we een heel andere vorm in het histogram, die ons direct vertelt dat dit geen normale verdeling is.

Soms is de afwijking van een normale verdeling zo duidelijk dat deze visueel kan worden waargenomen.

1.3. Implementatie

Een histogram kan als volgt eenvoudig in python worden gemaakt:

Een histogram maken met behulp van pandas in python

1.4. Conclusie

Het histogram is een geweldige manier om snel de verdeling van een enkele variabele te visualiseren.

2.1. Inleiding

De boxplot is een andere visualisatietechniek die kan worden gebruikt voor het opsporen van niet-normale steekproeven. De boxplot toont het 5-getallenoverzicht van een variabele: minimum, eerste kwartiel, mediaan, derde kwartiel en maximum.

De boxplot is een geweldige manier om verdelingen van meerdere variabelen tegelijk te visualiseren.

2.2 Interpretatie

De boxplot is een geweldige visualisatietechniek omdat het mogelijk is om veel boxplots naast elkaar te plotten. Dit zeer snelle overzicht van variabelen geeft ons een idee van de verdeling en als “bonus” krijgen we de volledige 5-getallen samenvatting die ons zal helpen bij verdere analyse.

U moet naar twee dingen kijken:

  • Is de verdeling symmetrisch (zoals de normale verdeling)?
  • Komt de breedte (tegenovergestelde van puntigheid) overeen met de breedte van de normale verdeling? Dit is moeilijk te zien op een boxplot.

Normale (links), Uniforme (midden) en exponentiële (rechts) boxplots vs normale klokcurve

2.3. Implementatie

Een boxplot kan gemakkelijk als volgt in python worden geïmplementeerd:

Een boxplot maken met behulp van pandas in python

2.4. Conclusie

De boxplot is een geweldige manier om verdelingen van meerdere variabelen tegelijk te visualiseren, maar een afwijking in breedte/puntigheid is moeilijk te identificeren met boxplots.

3.1. Inleiding

Met QQ-plots beginnen we aan het serieuzere werk, want dit vereist iets meer begrip dan de eerder beschreven methoden.

QQ Plot staat voor Quantile vs Quantile Plot, en dat is precies wat het doet: theoretische kwantielen uitzetten tegen de werkelijke kwantielen van onze variabele.

De QQ Plot stelt ons in staat afwijkingen van een normale verdeling veel beter te zien dan in een Histogram of Box Plot.

3.2. Interpretatie

Als onze variabele een normale verdeling volgt, moeten de kwantielen van onze variabele perfect in overeenstemming zijn met de “theoretische” normale kwantielen: een rechte lijn op de QQ Plot vertelt ons dat we een normale verdeling hebben.

Normale (links), uniforme (midden) en exponentiële (rechts) QQ Plots

Zoals in de afbeelding te zien is, volgen de punten op een normale QQ Plot een rechte lijn, terwijl andere verdelingen sterk afwijken.

  • De uniforme verdeling heeft te veel waarnemingen in beide uitersten (zeer hoge en zeer lage waarden).
  • De exponentiële verdeling heeft te veel waarnemingen in de lagere waarden, maar te weinig in de hogere waarden.

In de praktijk zien we vaak iets dat minder uitgesproken is, maar wel een vergelijkbare vorm heeft. Een over- of ondervertegenwoordiging in de staart moet twijfel doen rijzen over de normaliteit, in welk geval u een van de hieronder beschreven hypothesetests moet gebruiken.

3.3. Implementatie

Het maken van een QQ Plot kan als volgt worden gedaan met behulp van de statsmodels api in python:

Een QQ Plot maken met behulp van statsmodels

3.4. Conclusie

Met de QQ Plot kunnen we de afwijking van een normale verdeling veel beter zien dan in een Histogram of boxplot.

Kolmogorov Smirnov test

Als de QQ Plot en andere visualisatietechnieken geen uitsluitsel geven, kan statistische gevolgtrekking (hypothesetest) een objectiever antwoord geven op de vraag of onze variabele significant afwijkt van een normale verdeling.

Als u twijfelt over hoe en wanneer u hypothesetests moet gebruiken, is hier een artikel dat een intuïtieve uitleg geeft over hypothesetests.

De Kolmogorov Smirnov-test berekent de afstanden tussen de empirische verdeling en de theoretische verdeling en definieert de teststatistiek als de supremum van de reeks van die afstanden.

Het voordeel hiervan is dat dezelfde aanpak kan worden gebruikt voor het vergelijken van elke verdeling, niet noodzakelijkerwijs alleen de normale verdeling.

De KS-test is bekend, maar hij heeft niet veel kracht. Hij kan worden gebruikt voor andere verdelingen dan de normale.

4.2. Interpretatie

De teststatistiek van de KS-test is de Kolmogorov Smirnov-statistiek, die een Kolmogorov-verdeling volgt als de nulhypothese waar is.

Als de waargenomen gegevens perfect een normale verdeling volgen, zal de waarde van de KS-statistiek 0 zijn. De P-waarde wordt gebruikt om te beslissen of het verschil groot genoeg is om de nulhypothese te verwerpen:

  • Als de P-waarde van de KS-test groter is dan 0,05, gaan we uit van een normale verdeling
  • Als de P-waarde van de KS-test kleiner is dan 0,05, gaan we niet uit van een normale verdeling

4.3. Implementatie

De KS Test in Python met Scipy kan als volgt worden geïmplementeerd. Het geeft de KS statistiek en zijn P-waarde.

Toepassing van de KS Test in Python met behulp van Scipy

4.4. Conclusie

De KS-test is bekend, maar heeft niet veel power. Dit betekent dat een groot aantal waarnemingen nodig is om de nulhypothese te verwerpen. Hij is ook gevoelig voor uitbijters. Daarentegen kan hij wel worden gebruikt voor andere typen verdelingen.

Lilliefors test

De Lilliefors test is sterk gebaseerd op de KS test. Het verschil is dat bij de Lilliefors-test wordt aanvaard dat het gemiddelde en de variantie van de populatieverdeling worden geschat in plaats van vooraf door de gebruiker te worden gespecificeerd.

Om die reden gebruikt de Lilliefors-test de Lilliefors-verdeling in plaats van de Kolmogorov-verdeling.

Gelukkig genoeg voor Lilliefors is zijn power nog steeds lager dan die van de Shapiro Wilk-test.

5.2. Interpretatie

  • Als de P-Value van de Lilliefors Test groter is dan 0,05, gaan we uit van een normale verdeling
  • Als de P-Value van de Lilliefors Test kleiner is dan 0,05, gaan we niet uit van een normale verdeling

5.3. Implementatie

De implementatie van de Lilliefors test in statsmodels zal de waarde van de Lilliefors test statistic en de P-Value als volgt teruggeven.

Opgelet: in de statsmodels implementatie worden P-Values lager dan 0.001 worden gerapporteerd als 0,001 en P-waarden hoger dan 0,2 worden gerapporteerd als 0,2.

Toepassing van de Lilliefors-test met behulp van statsmodels

5.4. Conclusie

Hoewel Lilliefors een verbetering is ten opzichte van de KS-toets, is de kracht ervan nog steeds lager dan die van de Shapiro Wilk-toets.

Shapiro Wilk-toets

De Shapiro Wilk-toets is de krachtigste toets bij het toetsen van een normale verdeling. Hij is speciaal ontwikkeld voor de normale verdeling en kan niet worden gebruikt om te toetsen aan andere verdelingen, zoals bijvoorbeeld de KS-test.

De Shapiro Wilk-test is de krachtigste test bij het toetsen aan een normale verdeling.

6.2. Interpretatie

  • Als de P-waarde van de Shapiro Wilk Test groter is dan 0,05, gaan we uit van een normale verdeling
  • Als de P-waarde van de Shapiro Wilk Test kleiner is dan 0,05, gaan we niet uit van een normale verdeling

6.3. Implementatie

De Shapiro Wilk test kan als volgt worden geïmplementeerd. Het zal de teststatistiek genaamd W en de p-waarde teruggeven.

Opgelet: voor N > 5000 is de teststatistiek W nauwkeurig, maar de p-waarde misschien niet.

Toepassing van de Shapiro Wilk test met behulp van statsmodels in Python

6.4. Conclusie

De Shapiro Wilk-test is de krachtigste test bij het testen op een normale verdeling. U moet deze test zeker gebruiken.

Conclusie – welke aanpak te gebruiken!

Voor een snelle en visuele identificatie van een normale verdeling gebruikt u een QQ-plot als u slechts één variabele hebt om naar te kijken en een boxplot als u er veel hebt. Gebruik een histogram als u uw resultaten moet presenteren aan een niet-statistisch publiek.

Als statistische test om uw hypothese te bevestigen, gebruikt u de Shapiro Wilk-test. Het is de krachtigste test, die de doorslag zou moeten geven.

Wanneer u toetst aan andere verdelingen, kunt u Shapiro Wilk niet gebruiken en moet u bijvoorbeeld de Anderson-Darling test of de KS test gebruiken.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.