[R-br] Fwd: Enc: model.matrix() (continuação)

ASANTOS alexandresantosbr em yahoo.com.br
Sábado Março 28 11:54:26 BRT 2015


Walmes,

     Conhece alguma função para automatizar a formação dos contrastes 
abaixo:


## 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))


Pois em um fator com 4 níveis, tudo bem é bem razoável fazer "na mão", 
porém e se eu tivesse um fator com 40 níveis como em trat <-gl(40, 30), 
fica um pouco complicado, então eu gostaria de achar um jeito de criar 
os vetores das comparações com maior facilidade,


Obrigado,


-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
===================================================================



On 22/03/2015 11:48, walmes . wrote:
> 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.​
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

===



---
Este email foi escaneado pelo Avast antivírus.
http://www.avast.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150328/54580731/attachment.html>


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