<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Uma matriz de contraste tem que ter no máximo k-1 funções e essas devem ser linearmente independentes. Os contrastes de Tukey formam uma matriz com k*(k-1)/2 hipóteses (ou funções) lineares. Além do mais, as funções não são linearmente independentes, o posto é sempre k-1. É por isso que você não consegue usar os contrastes de Tukey como definição de restrições na estimação. Abaixo segue CMR para esclarecer e como montar seus próprios contrastes.<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br><span style="font-family:monospace,monospace">## Fator de 4 níveis.<br>trat <- gl(4, 3)<br>levels(trat)<br><br>## k níveis => k-1 funções/combinações lineares independentes.<br>contrasts(trat)<br>contrasts(C(trat, contr="contr.sum"))<br>contrasts(C(trat, contr="contr.helmert"))<br><br>Xcontr <- multcomp::contrMat(n=1:nlevels(trat), type="Tukey")<br>dim(Xcontr)<br><br>## Posto das matrizes (número de autovalores não nulos).<br>eigen(crossprod(Xcontr))$values<br>eigen(crossprod(contrasts(trat)))$values<br><br>## Como implementar contrastes próprios?<br>## Ex: Contrastes entre pares na sequência (1-2, 2-3, 3-4, etc).<br>## Se \beta = C\mu então \mu = C^{-1}\beta.<br>C <- rbind("mu"=c(1,1,1,1)/4,<br>           "1vs2"=c(1,-1,0,0),<br>           "2vs3"=c(0,1,-1,0),<br>           "3vs4"=c(0,0,1,-1))<br>K <- solve(C) ## K = C^{-1}.<br><br>contrasts(trat) <- K[,-1] ## Retira o col do intercepto, deixa k-1.<br><br>y <- rnorm(trat, as.numeric(trat), sd=0.01)<br>tapply(y, trat, mean)<br>mean(y)<br>diff(tapply(y, trat, mean))<br><br>m0 <- lm(y~trat)<br>coef(m0)<br>anova(m0)<br>summary(m0)<br></span><br></div>​À<div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">​ disposição.<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">Walmes.​</div></div>