Como realizar testes multivariados de normalidade em r


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 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 os seguintes testes de normalidade multivariada para um determinado conjunto de dados em R:

  • O teste de Mardia
  • Teste de energia
  • Testes multivariados de curtose e assimetria

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

Exemplo: teste de Mardia em R

O teste de Mardia 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.

O código a seguir mostra como realizar este teste em R usando o pacote QuantPsyc :

 library (QuantPsyc)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mult.norm(data)$ mult.test

Beta-hat kappa p-val
Skewness 1.630474 13.5872843 0.1926626
Kurtosis 13.895364 -0.7130395 0.4758213

A função mult.norm() testa a normalidade multivariada tanto na assimetria quanto na curtose do conjunto de dados. Como ambos os valores de p não são inferiores a 0,05, não conseguimos rejeitar a hipótese nula do teste. Não temos evidências de que as três variáveis do nosso conjunto de dados não sigam uma distribuição multivariada.

Exemplo: teste de energia em R

Um teste de energia é outro teste estatístico que 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.

O código a seguir mostra como realizar esse teste em R usando o pacote de energia :

 library (energy)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mvnorm.etest(data, R= 100 )

Energy test of multivariate normality: estimated parameters

data: x, sample size 50, dimension 3, replicates 100
E-statistic = 0.90923, p-value = 0.31

O valor p do teste é 0,31 . Como este valor não é inferior a 0,05, não rejeitamos a hipótese nula do teste. Não temos evidências de que as três variáveis do nosso conjunto de dados não sigam uma distribuição multivariada.

Nota: O argumento R=100 especifica 100 réplicas mapeadas por boost a serem usadas ao executar o teste. Para conjuntos de dados com tamanhos amostrais menores, você pode aumentar esse número para produzir uma estimativa mais confiável da estatística de teste.

Recursos adicionais

Como criar e interpretar um gráfico QQ em R
Como realizar um teste de Anderson-Darling em R
Como realizar um teste Jarque-Bera em R
Como realizar um teste de Shapiro-Wilk em R

Add a Comment

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