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 .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *