O teste de Shapiro-Wilk testa a hipótese nula que uma amostra \(y_1, y_2, \cdots, y_n\), retirada de uma população, tem distribuição normal. Para calcular o valor da estatística \(W\), dada a amostra aleatória, de tamanho \(n\), deve-se proceder da seguinte maneira:

  1. Obter uma amostra ordenada: \(y_1 \leq y_2 \leq \cdots \leq y_n\);


  1. Calcular a soma de quadrado dos desvios:

\[ S^2 = \displaystyle \sum_{i=1}^n (y_i - \bar{y})^2 = \displaystyle \sum_{i=1}^n y_i^2 - \displaystyle \frac{ \left(\displaystyle \sum_{i=1}^n y_i \right)^2 }{n} \]


  1. Uma vez que se tem o número de amostras \((n)\) coletadas, tem-se que:

\[ b = \displaystyle \sum_{i=1}^k a_{n-i+1} \left(y_{n-i+1} - y_i\right) \] em que os valores de \(a_i\) são obtidos na tabela de coeficientes de Shapiro-Wilk.


\[ b = \displaystyle a_n \left(y_n - y_1 \right) + \cdots + \displaystyle a_{k+2} \left(y_{k+2} - y_k \right) \] em que o valor de \(y_{k+1}\), que é a mediana, não entra no cálculo de \(b\).


  1. Calcule

\[ W = \displaystyle \frac{b^2}{S^2}. \]


  1. Para tomada de decisão a respeito da normalidade dos dados, compara-se o valor calculado de \(W\) com o valor tabelado \(W_{n; \alpha}\), obtido da Tabela Shapiro_prob. Se o valor calculado \(W\) for menor que o tabelado, rejeita-se a hipótese de normalidade ao nível \(\alpha\) de significância.




Um pouco sobre a biografia de Samuel Sanford Shapiro e Martin Bradbury Wilk , pode ser encontrado nestes links: Shapiro e Wilk.




Aplicação aos resíduos da análise de variância dos dados de colesterol.

As hipóteses testadas são:

\[\begin{eqnarray*} \left\{ \begin{array}{l} H_0: \mbox{Os erros têm distribuição normal;} \\ H_1: \mbox{Os erros não têm distribuição normal.} \end{array} \right. \end{eqnarray*}\]


Extraindo e ordenando os resíduos do modelo ajustado:

residuos <- with(Dados, mod$residuals)
(res.ord = sort(residuos, decreasing=T))
##      7      5     14      4      6     17     13     11      9      3 
##  2.186  2.182  2.056  1.652  1.456  0.882  0.606  0.556  0.496  0.452 
##     19     20     18     16     10     12     15      2      1      8 
##  0.122  0.072 -0.208 -0.868 -1.164 -1.494 -1.724 -1.898 -2.388 -2.974
(n = length(residuos))      # Número de dados
## [1] 20
(média = mean(residuos))    # Média dos resíduos
## [1] 1.112866e-17
# Soma de Quadrado dos desvios
(SQ = sum((residuos - média)^2))
## [1] 46.046


Valores dos coeficientes obtidos na tabela de coeficientes de Shapiro-Wilk:

a = c(.4734, .3211, .2565, .2085, .1686, .1334, .1013, .0711, .0422, .0140)

# Calculando o valor de b
b = a[1]*(res.ord[1] - res.ord[20]) + 
    a[2]*(res.ord[2] - res.ord[19]) + 
    a[3]*(res.ord[3] - res.ord[18]) + 
    a[4]*(res.ord[4] - res.ord[17]) + 
    a[5]*(res.ord[5] - res.ord[16]) + 
    a[6]*(res.ord[6] - res.ord[15]) + 
    a[7]*(res.ord[7] - res.ord[14]) + 
    a[8]*(res.ord[8] - res.ord[13]) + 
    a[9]*(res.ord[9] - res.ord[12]) + 
    a[10]*(res.ord[10] - res.ord[11])
b
##        7 
## 6.624724
# Valor da estatística
(W = b^2/SQ)
##         7 
## 0.9531114


Conclusão:

Comparando com a tabela de probabilidades do shapiro, tem que O valor calculado (0.9531114), está entre as probabilidades 0,10 e 0,50, logo, não se rejeita a hipótese de normalidade dos erros, ao nível de 5% de significância.