[R-br] Heterocedasticidade e teste de média
Walmes Zeviani
walmeszeviani em gmail.com
Sábado Novembro 5 10:55:03 BRST 2016
Pessoal,
Estes dados apresentam um padrão peculiar onde a solução transformação
Box-Cox não resolve. O Wagner mostrou um ajuste que modela a variância com
uma função. Aqui estou repetindo o que ele fez, usando funções do pacote
nlme, para fazer teste de razão de verossimilhança. Como a relação média
variância nos dados não é exatamente uma função monótona, o ajuste com
função Exp para a variância não resultou em melhoria. Então eu modelei a
variância em função de grupos. Pro caso de comparar os tratamentos com a
testemunha, reordene os níveis do fator para a testemunha ser o primeiro
nível. Assim, o summary vai exibir estes contrastes.
Fenois <- c(337.311, 344.874, 342.353, 325.546, 333.950, 330.588, 328.067,
328.067, 318.824, 331.429, 333.950, 334.790, 336.471, 338.151,
342.353, 259.160, 252.437, 268.403, 265.882, 266.723, 287.731,
88.571, 88.571, 90.252, 41.513, 52.437, 49.076, 88.571,
88.571, 90.252, 64.202, 60.000, 61.681)
Cor <- factor(c(rep("ambar",6), rep("ambar_claro",3), rep("ambar",6),
rep("ambar_claro",6),rep("branco",6),
rep("extra_ambar_claro",3),rep("branco",3)))
dados <- data.frame(Fenois, Cor)
xtabs(~Cor, data = dados)
library(lattice)
library(latticeExtra)
xyplot(Fenois ~ Cor, data = dados)
# ATENÇÃO. O padrão a relação média variância não é uma função
# monótona, ou seja, pelo gráfico, a variância não aumenta com a média
# pois o trat 3 tem mesma média do 4 mas com variância bem maior o trat
# 1 que é o de maior média tem variância baixa.
mv <- aggregate(Fenois ~ Cor,
data = dados,
FUN = function(y) {
cbind(m = mean(y), v = var(y))
})
str(mv)
xyplot(Fenois[, 2] ~ Fenois[, 1],
data = mv,
xlab = "Média", ylab = "Variância",
type = c("p", "r")) +
layer(panel.text(x = x, y = y, labels = mv$Cor, pos = 3))
m0 <- lm(Fenois ~ Cor, data = dados)
par(mfrow = c(2, 2))
plot(m0)
layout(1)
MASS::boxcox(m0)
# A Box-Cox sugere transformação quando existe relação média variância
# por função monótona ou problema de simetria. Esse padrão ela corrige.
library(nlme)
m1 <- gls(Fenois ~ Cor, data = dados, weights = varExp(), method = "ML")
logLik(m0)
logLik(m1)
anova(m1, m0)
# Razão entre modelos aponta que a função de variância exponencial (que
# é monótona) não difere do modelo nulo para a variância.
anova(m1)
# Criar um fator que represente tratamento com a mesma variância. Nesse
# caso serão formados dois grupos.
dput(levels(dados$Cor))
dados$grupo <- factor(ifelse(dados$Cor %in% c("ambar_claro", "branco"),
"alta", "baixa"))
xyplot(Fenois ~ Cor, data = dados, groups = grupo, auto.key = TRUE)
m2 <- gls(Fenois ~ Cor, data = dados,
weights = varIdent(form = ~1 | grupo),
method = "ML")
anova(m2, m0)
anova(m2)
summary(m2)
À
disposição
Walmes.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161105/84913c2b/attachment.html>
Mais detalhes sobre a lista de discussão R-br