Como realizar testes de normalidade multivariada em python


Quando queremos testar se uma única variável é normalmente distribuída ou não, podemos criar um   Gráfico QQ para visualizar a distribuição ou podemos realizar um teste estatístico formal como um teste de Anderson Darling ou um teste de Jarque-Bera .

No entanto, quando queremos testar se múltiplas variáveis são normalmente distribuídas como um grupo, precisamos realizar um teste de normalidade multivariada .

Este tutorial explica como realizar o teste de normalidade multivariada Henze-Zirkler para um determinado conjunto de dados em Python.

Relacionado: Se quisermos identificar valores discrepantes em um contexto multivariado, podemos usar a distância de Mahalanobis .

Exemplo: teste de normalidade multivariada Henze-Zirkler em Python

O teste de normalidade multivariada de Henze-Zirkler determina se um grupo de variáveis segue ou não uma distribuição normal multivariada. As hipóteses nula e alternativa do teste são as seguintes:

H 0 (nulo): As variáveis seguem uma distribuição normal multivariada.

Ha (alternativa): As variáveis não seguem distribuição normal multivariada.

Para realizar este teste em Python podemos usar a função multivariate_normality() da biblioteca penguin.

Primeiro, precisamos instalar o pinguim:

 pip install penguin

A seguir, podemos importar a função multivariate_normality() e usá-la para realizar um teste de normalidade multivariada para um determinado conjunto de dados:

 #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)

Os resultados do teste são os seguintes:

  • Estatística de teste Hz: 0,59569
  • Valor p: 0,64618

Como o valor p do teste não é inferior ao nosso valor alfa especificado de 0,05, não conseguimos rejeitar a hipótese nula. Pode-se presumir que o conjunto de dados segue uma distribuição normal multivariada.

Relacionado: Aprenda como o teste Henze-Zirkler é usado em aplicações médicas do mundo real neste artigo de pesquisa .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *