Caros Listeiros,

            Gostaria de criar uma matriz de contraste com vários níveis dentro de um fator, conforme o CRM abaixo, quando utilizo 3 níveis, funciona corretamente a função contrasts(), porém quando utilizo 4 ou mais níveis não funciona, alguém poderia me sugerir uma solução,

Obrigado,


     #Dados artificiais
colony<-as.factor(sort(rep(c("colony1", "colony2","colony3", "colony4"), 100)))
y1 <- c(rnorm(100,1,0.1),rnorm(100,5,0.1),rnorm(100,3.5,0.1))
y2 <- c(rnorm(100,10,0.3),rnorm(100,11,0.6),rnorm(100,5,0.6))
y3 <- c(rnorm(100,10,2.3),rnorm(100,11,2.6),rnorm(100,11,2.5))
y4 <- c(rnorm(100,5,0.5),rnorm(100,7,0.5),rnorm(100,22,0.5))
y5 <- c(rnorm(100,11,0.1),rnorm(100,11,0.1),rnorm(100,11,0.1))

#Cria o data frame
avaliacao <- as.factor(colony)
espectro <- cbind(y1,y2,y3,y4,y5)
dados <- data.frame(avaliacao = I(as.matrix(avaliacao)), bands = I(as.matrix(espectro)))

## Cria uma matriz de contraste
##Niveis
levels(avaliacao)
Xcontr <- contrMat(n=1:nlevels(avaliacao), type="Tukey")
contrasts(avaliacao) <- Xcontr


 

On 25/02/2015 13:09, walmes . wrote:
Considere o CMR abaixo.

da <- data.frame(col=gl(3,100, labels=c("A","B","C")))
da$y <- with(da, rnorm(length(col), mean=as.numeric(col), sd=1))

## Modelo com a restrição de não haver nível de referência, aqui estima
## a média de cada nível.
m0 <- lm(y~0+col, data=da)
summary(m0)

require(multcomp)

## Matriz de contrastes (lembrar de ter o 0 na formula!).
Xcontr <- contrMat(n=1:nlevels(da$col), type="Tukey")
str(Xcontr)

## Estimativa e erro padrão.
Xcontr%*%coef(m0)
sqrt(diag(Xcontr%*%vcov(m0)%*%t(Xcontr)))

## Via glht().
summary(glht(m0, linfct=mcp(col="Tukey")))

À 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.

-- 
======================================================================
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                   
======================================================================



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