next up previous
Next: Exercícios Up: Aula 03: Transformação de Previous: ANOVA e Pressupostos

Definindo a transformação

Para tentar contornar o problema utiliza-se a transformação Box-Cox, que consiste em transformar os dados de acordo com a expressão


\begin{displaymath}
Y^\ast=Y^\lambda
\end{displaymath}

onde $\lambda$ é um parâmeto a ser estimado dos dados. Se $\lambda = 0$ a equação acima se reduz a


\begin{displaymath}
Y^\ast=\log(Y)
\end{displaymath}

onde $\log$ é o logarítmo neperiano. Uma vez obtido o valor de $\lambda$ encontra-se os valores dos dados transformados conforme a equação acima e utiliza-se estes dados transformados para efetuar as análises.

A função boxcox do pacote MASS calcula a verossimilhança perfilhada do parâmetro $\lambda$. Deve-se escolher o valor que maximiza esta função. Nos comandos a seguir inicia-se carregando o pacote MASS e depois obtém-se o gráfico da verossimilhança perfilhada. Neste caso, é de interesse obter o valor máximo de $\lambda$. Um gráfico com um zoom na região de interesse fornece esse valor.

require(MASS)
box.tr<-boxcox(resp ~ trat, data=tr, plotit=T)
box.tr<-boxcox(resp ~ trat, data=tr, lam=seq(-1, 1, 1/10))

O gráfico mostra que o valor que maximiza a função é aproximadamente $\hat{\lambda} = 0.19$. Abaixo, uma forma de se obter o valor exato de $\hat{\lambda}$

Transformação BOX-COX

lambda <- box.tr$x[which(box.tr$y == max(box.tr$y))] 

lambda
[1] 0.1919192

Desta forma o próximo passo é obter os dados transformados e depois realizar as análises utilizando estes novos dados.

tr$respt <- tr$resp^(lambda)
tr.avt <- aov(respt ~ trat, data=tr)

Note que os resíduos tem um comportamento bem melhor do que o observado para os dados originais. A análise deve prosseguir utilizando-se então os dados transformados.

bartlett.test(tr$respt, tr$trat)
shapiro.test(tr.avt$res)

NOTA: No gráfico da verossimilhança perfilhada notamos que é mostrado um intervalo de confiança para $\lambda$ e que o valor $0$ está contido neste intervalo. Isto indica que podemos utilizar a transformação logarítimica dos dados e os resultados serão bem próximos dos obtidos com a transformação previamente adotada.

tr.avl <- aov(log(resp) ~ trat, data=tr)
plot(tr.avl)


next up previous
Next: Exercícios Up: Aula 03: Transformação de Previous: ANOVA e Pressupostos
ADILSON DOS ANJOS 2005-04-15