[R-br] comparação multipla para dados desbalanceados

Walmes Zeviani walmeszeviani em gmail.com
Sexta Agosto 24 13:48:09 BRT 2012


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

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

require(doBy)

# caso 1
# experimento balanceado e completamente cruzados níveis de bloc e trat
da <- expand.grid(trat=gl(3,1), bloc=gl(2,2))
da$y1 <- rnorm(nrow(da), 10, 0.1)
str(da)

m0 <- lm(y1~bloc+trat, da)

ctr <- popMatrix(m0, effect="trat")
dim(ctr)

V0 <- vcov(m0)
dim(V0)
vm0 <- ctr%*%V0%*%t(ctr)
vm0 # mesma precisão e sem correlação

#------------------------------------------------------------------------------------------
# caso 2
# experimento desbalanceado e completamente cruzados níveis de bloc e trat

da$y2 <- da$y1
da$y2[1:2] <- NA # trat 1 e 2 têm apenas 2 repetições (desbalanceamento)

m1 <- lm(y2~bloc+trat, da)

V1 <- vcov(m1)
vm1 <- ctr%*%V1%*%t(ctr)
vm1 # trat 1 e 2 tem maior variância mas fora da diagonal é zero!

#------------------------------------------------------------------------------------------
# caso 3
# experimento desbalanceado e completamente cruzados níveis de bloc e trat

da$y3 <- da$y1
da$y3[c(1,4,9,12)] <- NA # trat 1 não observado no bloc 1 (perda completa
de combinação)

m2 <- lm(y3~bloc+trat, da)

V2 <- vcov(m2)
vm2 <- ctr%*%V2%*%t(ctr)
vm2                   # diferença de precisão
round(cov2cor(vm2),3) # agora tem presença de correção devido não
ortogonalidade

#------------------------------------------------------------------------------------------
# em qualquer caso, multcomp pode comparar as médias, escolha 1 deles e faça

comb <- combn(1:nlevels(da$trat), 2)   # 1 vs 2, 1 vs 3, 2 vs 3
mcomp <- ctr[comb[1,],]-ctr[comb[2,],] # matriz de contrastes 2 a 2

require(multcomp)

g0 <- glht(m2, linfct=mcomp)
summary(g0)
plot(g0) # diferenças nas amplitudes refletem o número de repetições

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

À 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/20120824/a30a47e8/attachment.html>


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