<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:12pt"><div><span>Boa noite Walmes, obrigado pela pronta resposta!<br><br>É provável que não estejamos falando do mesmo tipo de ANCOVA (Análise de covariância). No entanto, como você está anos luz a frente, solucione algumas dúvidas primeiro para que eu não fale besteira. Eu não entendi a seguinte pedaço de frase:``você deve definir antecipadamente em que nível(is) de x quer comparar níveis de F.'' O tipo de ANCOVA que estou falando, não tem sentido comparar níveis de um grupo para um determinado nível de covariável, afinal de contas ela é quantitativa e sua inclusão foi muito bem explicada por você nos trechos acima. O fato de incluirmos a interação entre a covariável e o fator é devido a intenção de avaliar se será necessário ajustar as médias considerandos slopes diferentes (caso dê significativo), ou se considera
um slope comum na correção das médias. Até cheguei cogitar de no ítem `` médias populacionais marginais em x=0.5'', você ter considerado x=0.5 como um slope comum para ajuste das médias, mais pelos resultados, creio que não foi essa a intenção. Vamos pegar o gancho do seu CRM, e discutindo ao longo das análises para que eu possa me fazer entender.<br><br>Considerando já todo o enredo brilhantemente explicado por ti de acordo com o CRM temos o seguinte modelo:<br><br>ac0 <- glm(y~F*x, data=da, family=poisson)<br>anova(ac0, test="Chisq")<br><br>De acordo com os resultados, há a necessidade de se ajustar as médias considerando uma regressão diferente para cada grupo. E de fato, os slopes são diferentes estimados para cada grupo.<br><br>Graficamente, de fato:<br><br>require(lattice)<br>xyplot(y~x, groups=F, data=da, type="a")<br><br>Analiticamente, de fato:<br><br>slopes <- list()<br>for(i in 1:5){<br> slopes[[i]]
<- coef(glm(y ~ x, data=subset(da,F==i)))[2]<br>}<br>slopes<br><br>Segundo a literatura, o ideal é que ao se comparar as médias, estas devem estar ajustadas para as covariáveis (caso ela for significativa é claro). Então ao invés de eu comparar estas médias:<br><br>with(da, tapply(y, F, mean))<br><br>e devo comparar estas médias:<br><br>novamedia_F1 <- with(da,mean(y[F==1])) - (exp(as.numeric(slopes[1]))*(with(da,mean(x[F==1]))-mean(da$x)))<br>novamedia_F2 <- with(da,mean(y[F==2])) - (exp(as.numeric(slopes[2]))*(with(da,mean(x[F==2]))-mean(da$x)))<br>novamedia_F3 <- with(da,mean(y[F==3])) - (exp(as.numeric(slopes[3]))*(with(da,mean(x[F==3]))-mean(da$x)))<br>novamedia_F4 <- with(da,mean(y[F==4])) - (exp(as.numeric(slopes[4]))*(with(da,mean(x[F==4]))-mean(da$x)))<br>novamedia_F5 <- with(da,mean(y[F==5])) -
(exp(as.numeric(slopes[5]))*(with(da,mean(x[F==5]))-mean(da$x)))<br><br>rbind(novamedia_F1,novamedia_F2,novamedia_F3,novamedia_F4,novamedia_F5)<br><br>E a grande pergunta: Como eu posso fazer isso no R?<br></span></div><div><span></span></div><div> </div><div style="background-color:transparent;" align="center"><font style="background-color:transparent;" face="comic sans ms" size="2"><font size="1"><b><br></b></font></font></div><div style="text-align:left;background-color:transparent;" align="center"><font style="background-color:transparent;"><font face="courier, monaco, monospace, sans-serif" size="2">\begin{signature}</font></font></div><div style="text-align:left;background-color:transparent;" align="center"><font style="background-color:transparent;"><font face="courier, monaco, monospace, sans-serif" size="2"><<>>=</font></font></div><div style="text-align:left;background-color:transparent;" align="center"><font
class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">Prof. Dr. Ivan Bezerra Allaman</font></div><div style="text-align:left;background-color:transparent;" align="center"><font class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">Universidade Estadual de Santa Cruz</font></div><div style="text-align:left;background-color:transparent;" align="center"><font class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">Departamento de Ciências Exatas e Tecnológicas</font></div><div style="text-align:left;background-color:transparent;" align="center"><font class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">Ilhéus/BA - Brasil</font></div><div style="text-align:left;background-color:transparent;" align="center"><font class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">Fone: +55 73 3680-5596</font></div><div
style="text-align:left;background-color:transparent;" align="center"><font class="Apple-style-span" face="courier, monaco, monospace, sans-serif" size="2">E-mail: ivanalaman@yahoo.com.br/ivanalaman@gmail.com</font></div><div style="text-align:left;background-color:transparent;" align="center"><font style="background-color:transparent;"><font face="courier, monaco, monospace, sans-serif" size="2">@</font></font></div><div style="text-align:left;background-color:transparent;" align="center"><font style="background-color:transparent;"><font face="courier, monaco, monospace, sans-serif" size="2">\end{signature}</font></font></div><div><br></div> <div style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1"> <b><span style="font-weight:bold;">De:</span></b> Walmes Zeviani
<walmeszeviani@gmail.com><br> <b><span style="font-weight: bold;">Para:</span></b> r-br@listas.c3sl.ufpr.br; Ivan Bezerra Allaman <ivanalaman@yahoo.com.br> <br> <b><span style="font-weight: bold;">Enviadas:</span></b> Quarta-feira, 9 de Maio de 2012 16:05<br> <b><span style="font-weight: bold;">Assunto:</span></b> Re: [R-br] Teste de médias em GLMM com covariável!<br> </font> </div> <br><div id="yiv2095552547"><font face="trebuchet ms,sans-serif">Ivan,<br><br>Vamos primeiro primeiro apodar as arestas a fim de fazer a coisa rolar. Você tem um experimento com um fator de 5 níveis nominais, denominado de F. Cada animal é uma unidade experimental do qual se observa uma resposta y e uma covariável x. Acredita-se que x afeta y e portanto quer-se remover esse efeito para poder estudar a variação explicada por F. Pode-se supor que F e x tenham efeitos aditivos (sem interação) ou pode-se assumir que existe interação. Na ausência de
interação as diferenças entre níveis de F são as mesmas sem importar o nível de x, mas o mesmo não vale para presença de interação, de forma que, você deve definir antecipadamente em que nível(is) de x quer comparar níveis de F. Não sei o CMR é exatamente o que você tem, pois o CMR não parece ser um caso de modelo misto porque animal é a unidade experimental e não um fator de agrupamento (embora para Poisson este seja um modelo estimável), enfim... vou considerar um glm fixo, daí é só fazer as devidas extensões para o glmm.<br>
<br><span style="font-family:courier new, monospace;">da <- data.frame(F=gl(5,20), x=runif(5*20))</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">da$Ey <- with(da, exp(1+as.numeric(F)/2+(as.numeric(F)-2)/3*x))</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">da$y <- with(da, rpois(F, lambda=exp(1+as.numeric(F)/2+(as.numeric(F)-2)/3*x)))</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">with(da, tapply(y, F, mean))</span><br style="font-family:courier new, monospace;">
<br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">require(lattice)</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">xyplot(y~x, groups=F, data=da, type="a")</span><br style="font-family:courier new, monospace;">
<br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">ac0 <- glm(y~F*x, data=da, family=poisson)</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">anova(ac0, test="Chisq")</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">betas <- coef(ac0)</span><br style="font-family:courier new, monospace;"><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">require(doBy)</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;"># médias populacionais marginais em x=0.5</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">mpm <- popMatrix(ac0, effect="F", at=list(x=0.5))</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">mpm%*%betas</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">exp(mpm%*%betas)</span><br style="font-family:courier new, monospace;">
<br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;"># diferença nas médias populacionais marginais duas à duas</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">nlevels(da$F)</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">comp <- t(combn(1:nlevels(da$F), 2))</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">rownames(comp) <- apply(comp, 1, paste, collapse="-")</span><br style="font-family:courier new, monospace;">
<br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">dmpm <- t(apply(comp, 1, function(vs) mpm[vs[1],]-mpm[vs[2],]))</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">rownames(dmpm) <- rownames(comp)</span><br style="font-family:courier new, monospace;">
<br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">apply(dmpm, 1, function(x) x%*%betas)</span><br style="font-family:courier new, monospace;"><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">require(multcomp)</span><br style="font-family:courier new, monospace;"><span style="font-family:courier new, monospace;">summary(glht(ac0, linfct=mpm)) # médias populacionais marginais</span><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;">summary(glht(ac0, linfct=dmpm)) # contraste entre as médias populacionais marginais</span><br style="font-family:courier new, monospace;"><br style="font-family:courier new, monospace;">
<span style="font-family:courier new, monospace;"># na verdade isso não é a média, mas sim o exp() disso</span><br style="font-family:courier new, monospace;"><br>E é isso aí Ivan. Esse procedimento aí que fiz foi o que deixou um determinado software famoso por dar esses resultados aos usuários. Trata-se de algo que, depois de fazer pela primeira vez e entender, passa a ser trivial.<br>
<br>À disposição.<br>Walmes.<br><br clear="all"></font><span style="font-family:trebuchet ms, sans-serif;">==========================================================================</span><br style="font-family:trebuchet ms, sans-serif;">
<span style="font-family:trebuchet ms, sans-serif;">Walmes Marques Zeviani</span><br style="font-family:trebuchet ms, sans-serif;"><span style="font-family:trebuchet ms, sans-serif;">LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)</span><br style="font-family:trebuchet ms, sans-serif;">
<span style="font-family:trebuchet ms, sans-serif;">Departamento de Estatística - Universidade Federal do Paraná</span><br style="font-family:trebuchet ms, sans-serif;"><span style="font-family:trebuchet ms, sans-serif;">fone: (+55) 41 3361 3573</span><br style="font-family:trebuchet ms, sans-serif;">
<span style="font-family:trebuchet ms, sans-serif;">VoIP: (3361 3600) 1053 1173</span><br style="font-family:trebuchet ms, sans-serif;"><span style="font-family:trebuchet ms, sans-serif;">e-mail: <a rel="nofollow" ymailto="mailto:walmes@ufpr.br" target="_blank" href="mailto:walmes@ufpr.br">walmes@ufpr.br</a></span><br style="font-family:trebuchet ms, sans-serif;">
<span style="font-family:trebuchet ms, sans-serif;">twitter: @walmeszeviani</span><br style="font-family:trebuchet ms, sans-serif;"><span style="font-family:trebuchet ms, sans-serif;">homepage: <a rel="nofollow" target="_blank" href="http://www.leg.ufpr.br/%7Ewalmes">http://www.leg.ufpr.br/~walmes</a></span><br style="font-family:trebuchet ms, sans-serif;">
<span style="font-family:trebuchet ms, sans-serif;">linux user number: 531218</span><br style="font-family:trebuchet ms, sans-serif;"><span style="font-family:trebuchet ms, sans-serif;">==========================================================================</span><br>
</div><br><br> </div> </div> </div></body></html>