[R-br] Fwd: Enc: model.matrix()

walmes . walmeszeviani em gmail.com
Domingo Março 22 12:48:04 BRT 2015


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.

## Fator de 4 níveis.
trat <- gl(4, 3)
levels(trat)

## k níveis => k-1 funções/combinações lineares independentes.
contrasts(trat)
contrasts(C(trat, contr="contr.sum"))
contrasts(C(trat, contr="contr.helmert"))

Xcontr <- multcomp::contrMat(n=1:nlevels(trat), type="Tukey")
dim(Xcontr)

## Posto das matrizes (número de autovalores não nulos).
eigen(crossprod(Xcontr))$values
eigen(crossprod(contrasts(trat)))$values

## Como implementar contrastes próprios?
## Ex: Contrastes entre pares na sequência (1-2, 2-3, 3-4, etc).
## Se \beta = C\mu então \mu = C^{-1}\beta.
C <- rbind("mu"=c(1,1,1,1)/4,
           "1vs2"=c(1,-1,0,0),
           "2vs3"=c(0,1,-1,0),
           "3vs4"=c(0,0,1,-1))
K <- solve(C) ## K = C^{-1}.

contrasts(trat) <- K[,-1] ## Retira o col do intercepto, deixa k-1.

y <- rnorm(trat, as.numeric(trat), sd=0.01)
tapply(y, trat, mean)
mean(y)
diff(tapply(y, trat, mean))

m0 <- lm(y~trat)
coef(m0)
anova(m0)
summary(m0)

​À
​ disposição.
Walmes.​
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150322/4bcb7f9f/attachment.html>


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