Você está na página 1de 5

Diferentes testes para verificar

normalidade de uma amostra aleatória


Fernando Lucambio
Departamento de Estatı́stica
Universidade Federal do Paraná
Curitiba/PR, 81531–990, Brasil

email: lucambio@ufpr.br
Maio de 2008

Mostraremos os testes para normalidade mais utilizados: teste Jarque-Beta, teste D’Agostino,
teste χ2 de Pearson de bondade de ajuste, teste Shapiro-Wilk, teste Lilliefors, teste Anderson-
Darling e teste de Cramer-von Mises. Este tema é extremamente importante e por isso existem
muitas outras propostas de testes para verificar normalidade de amostras em diferentes contextos,
uma excelente referência é Stephens (1986).

1 Teste Jarque-Beta
Proposto por Bera & Jarque (1980), baseia-se na diferença entre os coeficientes de skewness e
kurtosis dos dados y1 , y2 , . . . , yn e àqueles da distribuição assumida normal.
As hipóteses nula e alternativa no teste Jarque-Bera são:

H0 : y1 , y2 , . . . , yn ∼ N (µ, σ 2 ) vs H1 : não H0

A estatı́stica de teste é µ ¶
α32 (α4 − 3)2
JB = n + ,
6 24
onde
Pn 3
i=1 (yi − y)
α3 = 3
,
Pn ns
4
i=1 (yi − y)
α4 = 4
,
Pn ns 2
i=1 (yi − y)
s2 = ·
n
Aqui, y é a média amostral e s2 , α3 e α4 o segundo, terceiro e quarto momentos centrais,
respectivamente. A estatı́stica JB têm distribuição assintótica χ2 (2) sob a hipóteses nula.
O teste de Jarque-Beta é conhecido por ter boas propriedades para verificar normalidade, é
claro e simples de calcular e é muito utilizado no contexto de regressão em econometria. Uma
limitação é que somente pode ser utlizado na verificação de normalidade.
No R (R Development Core Team, 2006) a função rjb.test no pacote lawstat fornece a es-
tatı́stica de teste JB acima assim como o p-valor e também NormalityTests no pacote fBasics.

1
2 Teste D’Agostino-Pearson
Também conhecido como teste D foi proposto por D’Agostino (1970) e têm sido muito utilizado
para verificar normalidade. Suponha que y1 , y2 , . . . , yn é a amostra aleatória e que y(1) , y(2) , . . . , y(n)
é a amostra ordenada, isto é, y(1) ≤ y(2) ≤ . . . ≤ y(n) .
A estatı́stica D de teste é
T
D= 2 ,
ns
onde s é o desvio padrão amostral, o quel é calculado como a raı́z quadrado positiva de s2
segundo definido no contexto do teste Jarque-Bera e
X n µ ¶
n+1
T = i− y(i) ·
i=1
2
Se a amostra é da distribuição normal, temos que
(n − 1)Γ( n2 − 21 ) 1
E{D} = √ n
≈ √ ≈ 0.28209479,
2 2nπΓ( 2 ) 2 π
o desvio padrão assintótico da estatı́stica D é
s √
12 3 − 37 + 2π 0.02998598
s{D} = ≈ √ ·
24nπ n
Utiliza-se a estatı́stica D padronizada como
D − E{D}
D∗ = ,
s{D}
a qual têm distribuiçãonormal aproximada sob hipótese nula. No R a função NormalityTests no
pacote fBasics fornece a estatı́stica de teste D acima assim como o p-valor.

3 Teste χ2 de Pearson de bondade de ajuste


A estatı́stica do teste Pearson é n
X (Ci − Ei )2
P = ,
i=1
Ei
onde Ci é o número de observações e Ei é o número de observações esperadas (sob a hipóteses
nula) na i-ésima classe. Estas classes são escolhidas de maneira sejam equiprováveis sob a
hipóteses de normalidade.
O p-valor é calculado da distribuição χ2 com graus de liberdade iguais ao número de classes
menos 3 ou ao número de classes menos 1 se decide-se pela correção ou não (a correção recomenda-
se somente em pequenos tamanhos de amostras). Em ambos os casos este não é o correto valor
do p-valor, ficando na maioria das vezes entre estes dois valores (Moore, 1986).
Este teste não é recomendado para testar normalidade devido às inferiores propriedades
comparado aos otros testes disponı́veis. Em siatuções práticas calcula-se o p-valor da distribuição
χ2 com graus de liberdade iguais ao número de classes menos 3, devido à estimação dos dois
parâmetros da densidade normal. As funções R pchiTest no pacote fBasics e pearson.test no
pacote nortest calculam este teste. Devido a que, como mencionado, o verdadeiro valor do
p-valor na maioria das vezes fica entre dois valores recomenda-se utilizar primeiro a função
pearson.test(y,adjust=TRUE) e depois pearson.test(y,adjust=FALSE), também sugere-se alterar
o número de classes e observar o efeito disso no p-valor.

2
4 Teste Shapiro-Wilk
Proposto por Shapiro & Wilk (1965) utiliza a estatı́stica
¡Pn ¢2
a i y(i)
W = Pn i=1 2
,
i=1 (yi − y)

onde as constantes a1 , a2 , . . . , an são calculadas como a solução de

m> V −1
(a1 , a2 , . . . , an ) = ,
(m> V −1 V −1 m)1/2

sendo m = (m1 , m2 , . . . , mn )> o vetor dos valores esperados das estatı́sticas de órdem da amostra
e V a matriz de covariancias dessas estatı́sticas. O p-valor deste teste é calculado exatamente
para n = 3, em outras situações utilizam-se aproximações diferentes para 4 ≤ n ≤ 11 e para
n ≥ 12, (Shapiro & Francia, 1972).
No R as funções shapiro.test no pacote stats fornece a estatı́stica de teste acima assim como
o p-valor e a função sfTest no pacote fBasics.

5 Teste Lilliefors
O teste Lilliefors, uma modificação do teste Kolmogorov-Smirnov, utiliza a estatı́stica D de
Kolmogorov-Smirnov que mede a diferença máxima absoluta entre a função de distribuição
acumulada empı́rica e teórica.
A estatı́stica de teste é
D = max{D+ , D− },
onde D+ = maxi=1,...,n { ni − p(i) }, D− = maxi=1,...,n {p(i) − i−1 n
}, e p(i) = Φ([x(i) − x]/s). Nesta
expressão, Φ é a função de distribuição acumulada normal padrão e x and s são a média e desvio
padrão amostrais.
O p-valor é calculado pela fórmula em Dallal & Wilkinson (1986), a qual é confiav́el quando
o p-valor é menor do que 0.1. Se o p-valor Dallal-Wilkinson fornece um valor maior do que 0.1
o verdadeiro p-valor deve ser calculado da distribuição da estatı́stica de teste modificada
µ ¶
√ 0.85
Z=D n − 0.01 + √
n

(Stephens, 1986), o p-valor é obtido então via simulações e aproximações.


As funções R ksnormTest no pacote fBasics e ks.test no pacote nortest calculam o teste
Kolmogorov-Smirnov e as funções lillieTest no pacote fBasics e lillie.test no pacote nortest cal-
culam o test Lilliefors.
O teste Lilliefors (Kolomorov-Smirnov) é o mais famoso teste para verificar normalidade.
Comparado aos teste Anderson-Darling e Cramer-von Mises é conhecido que sua performan-se
é pior. Embora as estatı́sticas obtidas das funções R lillie.test(y) e ks.test(y, ”pnorm”, mean(y),
sd(y)) sejam iguais, isto não acontece com o p-valor devido a que a distribuição das estatı́sticas
de teste diferem quando estimados os parâmetros.

3
6 Teste Anderson-Darling
Proposto por Anderson & Darling (1952) é mais utilizado quando o tamanho da amostra não é
superior a 25. Este teste é baseado na função de distribuição empı́ica, a idéia é que dada a função
de distribuição sob hipóteses nula, os dados podem ser transformados à distribuição uniforme.
Os dados transformados podem então serem testados para uniformidade.
A estatı́stica de teste é
n
1X
A = −n − [2i − 1][ln(p(i) ) + ln(1 − p(n−i+1) )],
n i=1

onde p(i) = Φ([y(i) −y]/s) são os percentis ordenados da distribuição normal padrão e Φ representa
a função de distribuição acumulada normal padrão.
O p-valor é calculado da estatı́stica modificada
µ ¶
0.75 2.25
Z = 1.0 + + 2 A,
n n
2 2
como 1 − e−13.436+101.14Z−223.73Z se Z < 0.2, 1 − e−8.318+42.796Z−59.938Z se 0.2 ≤ Z < 0.34,
2 2
e0.9177−4.279Z−1.38Z se 0.34 ≤ Z < 0.6 e e1.2937−5.709Z+0.0186Z se Z ≥ 0.6. No R as funções ad.test
no pacote nortest fornece a estatı́stica de teste acima assim como o p-valor e a função adTest no
pacote fBasics.

7 Teste Cramer-von Mises


Este teste é também baseado na distribuição acumulada, foi proposto por Darling (1957).
A estatı́stica de teste é n µ ¶
1 X 2i − 1
W = + p(i) − ,
12n i=1 2n
onde p(i) = Φ([x(i) −x]/s) são os percentis ordenados da distribuição normal padrão e Φ representa
a função de distribuição acumulada normal padrão.
O p-valor é calculado da estatı́stica modificada
µ ¶
1
Z = 1.0 + W,
2n
2 2
como 1 − e−13.953+775.5Z−12542.61Z se Z < 0.0275, 1 − e−5.903+179.546Z−1515.29Z se 0.0275 ≤ Z <
2 2
0.051, e0.886−31.62Z+10.897Z se 0.051 ≤ Z < 0.092 e e1.111−34.242Z+12.832Z se Z ≥ 0.092. No R as
funções cvm.test no pacote nortest fornece a estatı́stica de teste acima assim como o p-valor e a
função cvmTest no pacote fBasics.

Referências
Anderson, T.W. & Darling, D.A. (1952). Asymptotic theory of certain goodness-of-fit criteria
based on stochastic processes. Annals of Mathematical Statistics, 23, 193–212.

Bera, A. & Jarque, C. (1980). Efficient test for normality, heterocedasticity and serial indepen-
dence of regression residuals. Econometrics Letters, 6, 255–259.

4
D’Agostino, R.B. (1970). Transformation to normality of the null distribution of g1 . Biometrika,
57(3), 679–681.

Dallal, G.E. & Wilkinson, L. (1986). An analytic approximation to the distribution of Lilliefors’s
test for normality. The American Statistician, 40, 291–296.

Darling, D.A. (1957). The Kolmogorov-Smirnov, Cramer-von Mises Tests. Annals of Mathema-
tical Statistics, 28(4 (Dec.)), 823–838.

Moore, D.S. (1986). Tests of the chi-squared type. D’Agostino, R.B. and Stevens, M.A., eds.:
Goodness-of-Fit Techniques. New York: Marcel Dekker.

R Development Core Team (2006). R: A Language and Environment for Statistical Computing.
R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0.

Shapiro, S.S. & Francia, R.S. (1972). An Approximate Analysis of Variance Test for Normality.
Journal of the American Statistical Association, 67, 215–216.

Shapiro, S.S. & Wilk, M. (1965). An analysis of variance test for normality (complete samples).
Biometrika, 52, 591–611.

Stephens, M.A. (1986). Tests based on EDF statistics. In Goodness-of-Fit Techniques.


D’Agostino, R.B. and Stevens, M.A., eds.: Goodness-of-Fit Techniques. New York: Marcel
Dekker.