Come eseguire test di normalità multivariati in python
Quando vogliamo verificare se una singola variabile è distribuita normalmente o meno, possiamo creare a Grafico QQ per visualizzare la distribuzione oppure possiamo eseguire un test statistico formale come un test di Anderson Darling o un test di Jarque-Bera .
Tuttavia, quando vogliamo verificare se più variabili sono normalmente distribuite come gruppo, dobbiamo eseguire un test di normalità multivariato .
Questo tutorial spiega come eseguire il test di normalità multivariato di Henze-Zirkler per un dato set di dati in Python.
Correlati: se vogliamo identificare valori anomali in un contesto multivariato, possiamo utilizzare la distanza di Mahalanobis .
Esempio: test di normalità multivariato di Henze-Zirkler in Python
Il test di normalità multivariata di Henze-Zirkler determina se un gruppo di variabili segue o meno una distribuzione normale multivariata. Le ipotesi nulla e alternativa del test sono le seguenti:
H 0 (null): le variabili seguono una distribuzione normale multivariata.
H a (alternativa): le variabili non seguono una distribuzione normale multivariata.
Per eseguire questo test in Python possiamo utilizzare la funzione multivariate_normality() dalla libreria penguin.
Per prima cosa dobbiamo installare penguin:
pip install penguin
Successivamente, possiamo importare la funzione multivariate_normality() e utilizzarla per eseguire un test di normalità multivariato per un determinato set di dati:
#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)
I risultati del test sono i seguenti:
- Statistica del test Hz: 0,59569
- Valore p: 0,64618
Poiché il valore p del test non è inferiore al valore alfa da noi specificato pari a 0,05, non riusciamo a rifiutare l’ipotesi nulla. Si può presumere che il set di dati segua una distribuzione normale multivariata.
Correlato: Scopri come viene utilizzato il test Henze-Zirkler nelle applicazioni mediche del mondo reale in questo documento di ricerca .