[R-br] teste de médias para interação

Walmes Zeviani walmeszeviani em gmail.com
Terça Novembro 1 14:13:49 BRST 2011


É como o Benilton disse, vai ter que montar a matriz que identifica esse
contraste do desdobramento. É possível pegar uma atalho usando a
contrast::contrast(), e passar a matriz para a multcomp::glht() usar.
Porém, os seus dados só apresentaram interação porque eles têm
superdispersão. Se usar um modelo quasiPoisson, a interação some. De
qualquer forma segue o código **reproduzível** para você. Evite dados em
anexo. Torne as coisas o mais fácil possível para quem quer te ajudar. A
coisa tem que reproduzir com um ctrol+c ctrol+v.

da <- read.table("clipboard", header=TRUE, sep="\t") # tive que ler do
arquivo anexo
names(da) <- tolower(names(da))
da <- transform(da, avali=factor(avali), trat=factor(trat))
# tive que passar para fator (isso não é código reproduzível)
dput(da) # cole o dput dos seus dados na mensagem, o código fica
reproduzível com 1 ctrol+c

# na mensagem faça assim, carrege os dados pelo resultado do dput()
da <-
  structure(list(avali = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
                   1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L,
                   3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"),
class = "factor"),
trat = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
  1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
  2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"),
nasc = c(53L, 98L, 51L, 62L, 55L, 98L, 104L, 32L, 96L, 51L,
  5L, 6L, 3L, 67L, 1L, 2L, 8L, 2L, 102L, 2L, 11L, 15L, 7L,
  4L, 6L, 11L, 15L, 37L, 33L, 17L)), .Names = c("avali", "trat",
"nasc"), row.names = c(NA, -30L), class = "data.frame")

mod.p1 <- glm(nasc~avali*trat, family=poisson(link="log"), data=da,
              contrasts=list(avali="contr.sum", trat="contr.sum"))
an.p1 <- anova(mod.p1, test="Chisq")
an.p1 # superdispersão!!!

mod.p2 <- glm(nasc~avali*trat, family=quasipoisson(link="log"), data=da,
              contrasts=list(avali="contr.sum", trat="contr.sum"))
an.p2 <- anova(mod.p2, test="F")
an.p2 # sem interação, que foi causada pela suposição de equidispersão

#------------------------------------------------------------------------------------------
# você vai ter que montar as matrizes dessas interações, um meio fácil é
usar a contrast()
require(contrast)
c0 <- contrast(mod.p2,
               list(avali=levels(da$avali), trat="1"),
               list(avali=levels(da$avali), trat="2"))
c0
c0$X

# acabou que a interação trat dentro de avali foi desdobrada com a contrast
# usando a multicomp passando a matriz do contraste

library(multcomp)
glht.mod1 <- glht(mod.p2, linfct=c0$X)
summary(glht.mod1)

#------------------------------------------------------------------------------------------

À disposição.
Walmes.

==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes em ufpr.br
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111101/382824c0/attachment.html>


Mais detalhes sobre a lista de discussão R-br