<div dir="ltr">Obrigado Walmes!<div>Eu encontrei um post criado por você no "ridículas" e tentei adaptar para o meu problema.</div><div>Não tenho certeza se está adequado. Acho que não. O motivo é que encontrei interação dupla significativa entre "meio" e "tipo" e no desdobramento final, para identificar os níveis onde há diferença significativa, esta diferença não aparece ( "valor-p" sempre igual a 1).</div><div>Segue o CMR e agradeço mais uma vez a atenção.</div><div><i style="font-family:arial,sans-serif;font-size:13px"><a href="https://www.dropbox.com/s/ci4u8c4vn4cmk4l/dados.txt?dl=0" target="_blank">https://www.dropbox.com/s/ci4u8c4vn4cmk4l/dados.txt?dl=0</a></i><br></div><div><div><i>require(multcomp)</i></div><div><i>require(doBy)</i></div><div><br></div><div><i>dados <- read.table("dados.txt",header=TRUE, sep="\t")</i></div><div><i>str(dados)</i></div><div><i>attach(dados)</i></div><div><i>xtabs(~genotipo+meio+tipo, dados)</i></div><div><i>## Interação.</i></div><div><i>dados$gmt <- interaction(genotipo, meio, tipo)</i></div><div><i>attach(dados)</i></div><div><i>levels(gmt)</i></div><div><i>#Modelo fatorial completo</i></div><div><i>m0 = glm(cbind(good=n_ex_ox, bad=n_explant-n_ex_ox)~genotipo*meio*tipo,family="quasibinomial", data=dados)</i></div><div><i>par(mfrow=c(2,2))</i></div><div><i>plot(m0)</i></div><div><i>anova(m0,test="F")</i></div><div><i>drop1(m0, test="F", scope=.~.)</i></div><div><i><br></i></div><div><i>#Modelo só com efeito de primeira grau</i></div><div><i>m1 <- update(m0, .~genotipo+meio+tipo)</i></div><div><i>anova(m1, m0,test="F")</i></div><div><i><br></i></div><div><i><br></i></div><div><i>## Modelo só com efeitos até segundo grau.</i></div><div><i>m2 <- update(m0, .~(genotipo+meio+tipo)^2)</i></div><div><i>anova(m2, test="F")</i></div><div><i>anova(m2, m0,test="F")</i></div><div><i>par(mfrow=c(2,2))</i></div><div><i>plot(m2)</i></div><div><i><br></i></div><div><i>##Obs: Estou estudando o modelo logístico com superdispersão constante para melhorar os resíduos deste modelo. Por enquanto vou utilizar o modelo completo</i></div><div><i><br></i></div><div><i>do.call(rbind, strsplit(levels(dados$gmt),"\\."))</i></div><div><i><br></i></div><div><i>M <- LSmatrix(m0, effect=c("tipo","meio"))</i></div><div><i>dim(M)</i></div><div><i>class(M)</i></div><div><i><br></i></div><div><i>grid <- attr(M, "grid")</i></div><div><i><br></i></div><div><i>## Matriz de contrastes </i></div><div><i>## Antes executar a Função apc</i></div><div><i>apc <- function(pmc, lev=NULL){</i></div><div><i>  ## apc: all pairwise contrasts, pmc: popMatrix contrast</i></div><div><i>  nlev <- nrow(pmc)</i></div><div><i>  rn <- rownames(pmc)</i></div><div><i>  a <- attr(pmc, "grid")</i></div><div><i>  if(is.null(lev)){</i></div><div><i>      if(!is.null(a)){</i></div><div><i>          lev <- apply(a, 1, paste, collapse=":")</i></div><div><i>      } else if(!is.null(rn)){</i></div><div><i>          lev <- rn</i></div><div><i>      } else {</i></div><div><i>          lev <- as.character(1:nlev)</i></div><div><i>      }</i></div><div><i>  }</i></div><div><i>  cbn <- combn(seq_along(lev), 2)</i></div><div><i>  M <- pmc[cbn[1,],]-pmc[cbn[2,],]</i></div><div><i>  if(is.vector(M)) dim(M) <- c(1, length(M))</i></div><div><i>  rownames(M) <- paste(lev[cbn[1,]], lev[cbn[2,]], sep="-")</i></div><div><i>  M</i></div><div><i>}</i></div><div><i>#Matriz de contrastes entre níveis de `focus` dentro dos níveis de `split`.</i></div><div><i>split <- c("meio")</i></div><div><i>focus <- "tipo"</i></div><div><i>spl <- interaction(grid[,split])</i></div><div><i>i <- 1:nrow(grid)</i></div><div><i>l <- split(i, f=spl)</i></div><div><i>contr <- lapply(l,</i></div><div><i>                function(row){</i></div><div><i>                    ## Matriz de contrastes par a par.</i></div><div><i>                    a <- apc(M[row,], lev=levels(dados[,focus]))</i></div><div><i>                    ## Prefixo no nome das linhas.</i></div><div><i>                    rownames(a) <- paste(spl[row[1]],</i></div><div><i>                                         rownames(a), sep="/")</i></div><div><i>                    return(a)</i></div><div><i>                })</i></div><div><i>contr <- do.call(rbind, contr)</i></div><div><i><br></i></div><div><i>summary(glht(m0, linfct=contr),test=adjusted(type="fdr"))</i><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 30 de outubro de 2014 10:22, walmes . <span dir="ltr"><<a href="mailto:walmeszeviani@gmail.com" target="_blank">walmeszeviani@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Minha sugestão ou modelo de trabalhar é considerar funções do pacote doBy com multcomp. Basicamente a doBy::LSmatrix() vai te gerar uma matriz que você vai converter em matriz de contrastes e passar para multcomp::glht(). A glht() admite objetos de classe lm, glm, lme. O detalhe para objetos glm é que as "médias" e comparações são na escala do preditor linear, ou seja, quando você pedir LSmeans() para um binomial não será retornado "média" mas sim o valor esperado de log(1/(1-p)) = X%*%beta, mas aí é só converter em probabilidade com a função inversa da função de ligação. Seguem links que podem servir de inspiração.<br><br><a href="http://www.leg.ufpr.br/~walmes/analises/MESerafim/abacaxi/abacaxisolo.html" target="_blank">http://www.leg.ufpr.br/~walmes/analises/MESerafim/abacaxi/abacaxisolo.html</a><br><a href="http://www.leg.ufpr.br/~walmes/cursoR/geneticaEsalq/script10.html" target="_blank">http://www.leg.ufpr.br/~walmes/cursoR/geneticaEsalq/script10.html</a><br><br>À disposição.<span class="HOEnZb"><font color="#888888"><br>Walmes.<br><br></font></span></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>