Tengo un factor con ocho niveles pero sólo tengo cinco comparaciones que quiero hacer. Creo una matriz con todos los contrastes relevantes, sin embargo, necesito invertir esta matriz antes de pasarla a la función contrasts() para generar estimaciones correctas. Dado que necesito una matriz cuadrada, ¿es posible autogenerar dos contrastes más ortogonales para que las estimaciones devueltas por summary() sean correctas?
http://rstudio-pubs-static.s3.amazonaws.com/65059_586f394d8eb84f84b1baaf56ffb6b47f.html (Véanse las secciones "Contrastes de bricolaje" y "Ejecución de menos de J-1 contrastes para grupos J")
Ejemplo reproducible a continuación. Nota: el modelo no tiene mucho sentido con el conjunto de datos de CO2, pero los contrastes son exactamente los que necesito hacer para mi conjunto de datos original.
# Use CO2 dataset for example
data<-CO2
# Only need eight levels
data<-data[data$Plant %in% levels(data$Plant)[1:8],]
data$Plant<-factor(data$Plant)
levels(data$Plant)
# Set up contrasts
contrasts(data$Plant) <-
solve( t( cbind(
c(1,1,1,1), # Filler
c(-0.5,0,1,0,-0.5,0,0,0),
c(-0.5,0.5,0,0, -0.5, 0.5, 0, 0),
c(-0.5,0,0,1, -0.5, 0, 0, 0),
c(0,-0.5,0,-0.5, 0, 0.5, 0, 0.5),
c(-0.5,0,-0.5, 0, 0.5, 0, 0.5,0)) )
) [,2:6] #Drop filler
# Run model
fit<-lm(uptake~Plant, data=data)
summary(fit)
Gracias, Egor