Desdobramento da interação via glht:multcomp

# Colegas ... no exemplo abaixo tento realizar uma análise do desdobramento (via glht:multcomp) do fator Proteína dentro do nível L1 e L2 do fator Linhagens. #Quem tiver um tempo e interesse gostaria que desse uma olhada e me desse uma opinião ou uma forma mais fácil de fazer o desdobramento Proteína Linhagens Peso p1 L1 1.6 p1 L1 1.7 p1 L2 2.3 p1 L2 2.2 p2 L1 1.9 p2 L1 2 p2 L2 2.2 p2 L2 2.3 p3 L1 2.3 p3 L1 2.4 p3 L2 2.3 p3 L2 2.3 y=read.table("clipboard", h=T) attach(y) m=aov(Peso~Proteína+Linhagens+Proteína*Linhagens ) anova(m) # análise via agricolae require(agricolae) df<-df.residual(m)MSError<-deviance(m)/ df.residual(m) #Melhor teor de proteína dentro da linhagem 1 with(subset(y, Linhagens == "L1"), HSD.test(Peso,Proteína, df, MSError, group=F)) #Melhor teor de proteína dentro da linhagem 2 with(subset(y, Linhagens == "L2"), HSD.test(Peso,Proteína, df, MSError, group=F)) # análise via multcomp require(multcomp) a=subset(y, Linhagens == "L1") b=subset(y, Linhagens == "L2") ##Melhor teor de proteína dentro da linhagem 1, OK!!!! y1=with(a, glht (m, linfct = mcp(Proteína = "Tukey" ))) summary(y1) #Melhor teor de proteína dentro da linhagem 2, RODA DENTRO DA LINHAGEM 1????? y2=with(b, glht (m, linfct = mcp(Proteína ="Tukey"))) summary(y2) #Criei um sistema que segue abaixo. Consiste em trocar os códigos dos níveis do fator Linhagens Linhagens=c('L2', 'L2', 'L1', 'L1', 'L2', 'L2', 'L1', 'L1', 'L2', 'L2', 'L1', 'L1') Linhagens=as.factor(Linhagens) y=data.frame(Proteína, Linhagens, Peso) a=subset(y, Linhagens == "L1") m2=aov(Peso~Proteína+Linhagens+Proteína*Linhagens) #Melhor teor de proteína dentro da linhagem 2, OK!!! Agora temos o resultado correto!!! y1=with(a, glht (m2, linfct = mcp(Proteína = "Tukey" ))) summary(y1) Perguntas. Alguém tem uma solução mais fácil? Prática? Como trocar o código dos níveis dos fatores de maneira mais fácil? Obrigado desde já por qualquer colaboração. Emmanuel Arnhold

Emmanuel, Para usar a multcomp::glht() para fazer desdobramentos o procedimento é diferente da agricole::HSD.test(). A glht() não faz desdobramentos por padrão, e nem consulta o data.frame original, ou seja, não adianta dar subset() como na HSD.test(). Tudo que a glht() precisa para fazer o teste está armazenado no objeto lm passado como primeiro argumento da função. De lá ela tira coisas como estimativas, matriz de covariâncias, matriz de contrastes. Por padrão, com a opção glht(..., linfct=mcp(fator="Tukey")) vai fazer o teste para os efeitos principais. Ela até dá um warning dizendo algo sobre interações. Para desdobrar a interação, você terá que passar a matriz de comparações múltiplas que identifica cada o desdobramente para a linfct=. Fiz CMR sobre isso que está na página de Ridículas do R ( www.leg.ufpr.br/ridiculas). Tente entender o que foi feito em termos de modelos lineares, ok? À 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@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Ok Walmes. Já tinha visto seu exemplo e outros também. Mas queria algo mais simples. O exemplo que apresentei funciona quando uso subset para L1. Não funcina quando fraciono em L2. Aí eu troquei o nome dos níveis de Linhagens e obtive o resultado correto. Não fosse a necessidade de trocar os nomes (códigos) dos níveis dos fatores seria bastante prático. Obrigado. Emmanuel Arnhold --- Em sex, 1/4/11, Walmes Zeviani <walmeszeviani@gmail.com> escreveu: De: Walmes Zeviani <walmeszeviani@gmail.com> Assunto: Re: [R-br] Desdobramento da interação via glht:multcomp Para: r-br@listas.c3sl.ufpr.br Data: Sexta-feira, 1 de Abril de 2011, 17:28 Emmanuel, Para usar a multcomp::glht() para fazer desdobramentos o procedimento é diferente da agricole::HSD.test(). A glht() não faz desdobramentos por padrão, e nem consulta o data.frame original, ou seja, não adianta dar subset() como na HSD.test(). Tudo que a glht() precisa para fazer o teste está armazenado no objeto lm passado como primeiro argumento da função. De lá ela tira coisas como estimativas, matriz de covariâncias, matriz de contrastes. Por padrão, com a opção glht(..., linfct=mcp(fator="Tukey")) vai fazer o teste para os efeitos principais. Ela até dá um warning dizendo algo sobre interações. Para desdobrar a interação, você terá que passar a matriz de comparações múltiplas que identifica cada o desdobramente para a linfct=. Fiz CMR sobre isso que está na página de Ridículas do R (www.leg.ufpr.br/ridiculas). Tente entender o que foi feito em termos de modelos lineares, ok? À 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@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ========================================================================== -----Anexo incorporado----- _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
participantes (2)
-
Emmanuel Arnhold
-
Walmes Zeviani