<font face="trebuchet ms,sans-serif">Eu prefiro usar a multcomp porque lá eu tenho controle total das comparações que quero fazer. Eu aprendi a usá-la antes de pacotes mais dedicados estarem disponíveis. Basicamente, qual o problema das comparações múltiplas? É o fato de você testar muitas hipóteses e isso elevar rapidamente a taxa de erro tipo I global. Qual a solução? Lançar mão de métodos que mantenham essa taxa global próximo do valor nominal, na sua maioria 5%. Tudo o que se conhece sobre testes de comparações múltiplas são conceitualmente maneiras de fazer isso. Cada um lança mão de um princípio para fazê-lo e por isso possem alguma divergência. Alguns deles se baseiam no fato das estimativas terem mesma precisão e serem independentes, o que ocorre em todo experimento de fatores categóricos completamente cruzados e balanceado. Nesses casos a matriz de covariância das estimativas das médias é diagonal. Com fatores cruzados mas não balanceado (diferente número de repetições), será diagonal com precisões diferentes para cada nível do fator. Com cruzamento incompleto, chamado de perda de caselas, você terá elementos fora da diagonal não nulos. É importante que você entenda que médias amostrais só são estimadores admissíveis para médias (parâmetro) em raras situações. Deve usar médias obtidas matricialmente, que foi batizado por aí de médias ajustadas. Eu pessoalmente não vejo porque o uso da palavra ajustado se de fato é o procedimento correto, o caso geral para estimar uma média. As médias amostrais é que deviam ser chamadas de "médias possivelmente desajustadas/viesadas". Eu gosto da multcomp porque o que tá implementado lá resolve todos os casos e faz o que tem que fazer, controlar a taxa nominal de significância (conduza um estudo de simulação e verifique se for o caso). Os tipos de somas de quadrados em si não têm importância porque as incertezas sobre as médias estão na matriz de covariância das estimativas e são invariantes a soma de quadrado. Além do mais, essa coisa de soma de quadrado é particular da anova e comparações múltiplas de estimativas podem ser aplicadas em qualquer situação, seja em GLM e até mesmo para parâmetros em modelos de regressão não linear. Esqueça uso de letras seguindo as médias. Faça um gráfico dos contrastes do teu interesse e verifique se o valor nulo está contido no intervalo de confiança. Para ilustrar, rode o CMR<br>
<br><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------</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"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"># caso 1</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"># experimento balanceado e completamente cruzados níveis de bloc e trat</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da <- expand.grid(trat=gl(3,1), bloc=gl(2,2))</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">da$y1 <- rnorm(nrow(da), 10, 0.1)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">str(da)</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">m0 <- lm(y1~bloc+trat, da)</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">ctr <- popMatrix(m0, effect="trat")</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">dim(ctr)</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">V0 <- vcov(m0)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">dim(V0)</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">vm0 <- ctr%*%V0%*%t(ctr)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">vm0 # mesma precisão e sem correlação</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"># caso 2</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"># experimento desbalanceado e completamente cruzados níveis de bloc e trat</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da$y2 <- da$y1</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da$y2[1:2] <- NA # trat 1 e 2 têm apenas 2 repetições (desbalanceamento)</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">m1 <- lm(y2~bloc+trat, da)</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">V1 <- vcov(m1)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">vm1 <- ctr%*%V1%*%t(ctr)</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">vm1 # trat 1 e 2 tem maior variância mas fora da diagonal é zero!</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"># caso 3</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"># experimento desbalanceado e completamente cruzados níveis de bloc e trat</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da$y3 <- da$y1</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da$y3[c(1,4,9,12)] <- NA # trat 1 não observado no bloc 1 (perda completa de combinação)</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">m2 <- lm(y3~bloc+trat, da)</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">V2 <- vcov(m2)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">vm2 <- ctr%*%V2%*%t(ctr)</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">vm2                   # diferença de precisão</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">round(cov2cor(vm2),3) # agora tem presença de correção devido não ortogonalidade</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"># em qualquer caso, multcomp pode comparar as médias, escolha 1 deles e faça</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">comb <- combn(1:nlevels(da$trat), 2)   # 1 vs 2, 1 vs 3, 2 vs 3</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">mcomp <- ctr[comb[1,],]-ctr[comb[2,],] # matriz de contrastes 2 a 2</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"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">g0 <- glht(m2, linfct=mcomp)</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">summary(g0)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">plot(g0) # diferenças nas amplitudes refletem o número de repetições</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------</span><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 href="mailto:walmes@ufpr.br" target="_blank">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 href="http://www.leg.ufpr.br/%7Ewalmes" target="_blank">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>