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@yahoo.com.br 
        alexandre.santos@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@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.

===



Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com