Hoe u multivariate normaliteitstests kunt uitvoeren in python
Als we willen testen of een enkele variabele normaal verdeeld is of niet, kunnen we een QQ-plot om de verdeling te visualiseren of we kunnen een formele statistische test uitvoeren, zoals een Anderson Darling-test of een Jarque-Bera-test .
Als we echter willen testen of meerdere variabelen normaal verdeeld zijn als groep, moeten we een multivariate normaliteitstest uitvoeren.
In deze tutorial wordt uitgelegd hoe u de Henze-Zirkler multivariate normaliteitstest uitvoert voor een bepaalde dataset in Python.
Gerelateerd: Als we uitschieters in een multivariate context willen identificeren, kunnen we Mahalanobis-afstand gebruiken .
Voorbeeld: Henze-Zirkler multivariate normaliteitstest in Python
De Henze-Zirkler multivariate normaliteitstest bepaalt of een groep variabelen al dan niet een multivariate normale verdeling volgt. De nul- en alternatieve hypothesen van de test zijn als volgt:
H 0 (nul): De variabelen volgen een multivariate normale verdeling.
H a (alternatief): De variabelen volgen geen multivariate normale verdeling.
Om deze test in Python uit te voeren, kunnen we de functie multivariate_normality() uit de pinguïnbibliotheek gebruiken.
Eerst moeten we Penguin installeren:
pip install penguin
Vervolgens kunnen we de functie multivariate_normality() importeren en deze gebruiken om een multivariate normaliteitstest uit te voeren voor een bepaalde dataset:
#import necessary packages from penguin import multivariate_normality import pandas as pd import numpy as np #create a dataset with three variables x1, x2, and x3 df = pd.DataFrame({'x1':np.random.normal(size= 50 ), 'x2': np.random.normal(size= 50 ), 'x3': np.random.normal(size= 50 )}) #perform the Henze-Zirkler Multivariate Normality Test multivariate_normality(df, alpha= .05 ) HZResults(hz=0.5956866563391165, pval=0.6461804077893423, normal=True)
De testresultaten zijn als volgt:
- Teststatistiek Hz: 0,59569
- p-waarde: 0,64618
Omdat de p-waarde van de test niet kleiner is dan onze gespecificeerde alfawaarde van 0,05, slagen we er niet in de nulhypothese te verwerpen. Aangenomen kan worden dat de dataset een multivariate normale verdeling volgt.
Gerelateerd: Leer in dit onderzoeksartikel hoe de Henze-Zirkler-test wordt gebruikt in medische toepassingen in de echte wereld.