Problema: No puedo eliminar un parámetro de orden inferior (por ejemplo, un parámetro de efectos principales) en un modelo, siempre que los parámetros de orden superior (es decir, las interacciones) permanezcan en el modelo. Incluso al hacerlo, el modelo se refactoriza y el nuevo modelo no se anida en el modelo superior.
Véase el siguiente ejemplo (como estoy viniendo ANOVAs utilizo contr.sum
):¿Cómo eliminar un parámetro de orden inferior en un modelo cuando los parámetros de orden superior permanecen?
d <- data.frame(A = rep(c("a1", "a2"), each = 50), B = c("b1", "b2"), value = rnorm(100))
options(contrasts=c('contr.sum','contr.poly'))
m1 <- lm(value ~ A * B, data = d)
m1
## Call:
## lm(formula = value ~ A * B, data = d)
##
## Coefficients:
## (Intercept) A1 B1 A1:B1
## -0.005645 -0.160379 -0.163848 0.035523
m2 <- update(m1, .~. - A)
m2
## Call:
## lm(formula = value ~ B + A:B, data = d)
## Coefficients:
## (Intercept) B1 Bb1:A1 Bb2:A1
## -0.005645 -0.163848 -0.124855 -0.195902
Como se puede ver, aunque se quita un parámetro (A
), el nuevo modelo (m2
) es refactorizado y es no anidado en el modelo más grande (m1
). Si transformo mis factores por mano en las variables de contraste numérico, puedo obtener los resultados deseados, pero ¿cómo puedo obtenerlo utilizando las capacidades del factor R?
La Pregunta: ¿Cómo puedo eliminar un factor de orden inferior en R y obtener un modelo que realmente pierde este parámetro y no se refactorizado (es decir, el número de parámetros en el modelo más pequeño debe ser menor)?
¿Pero por qué? Deseo obtener 'tipo 3' como valores p para un modelo lmer
usando la función KRmodcomp
del paquete pbkrtest
. Entonces este ejemplo es solo un ejemplo.
¿Por qué no CrossValidated? Tengo la sensación de que esto es realmente más una pregunta de R que de estadísticas (es decir, sé que nunca debes encajar en un modelo con interacciones pero sin uno de los efectos principales, pero aún así quiero hacerlo).
Leer Bill Venables [http://www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf](http:// www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf) sobre sumas de cuadrados tipo III. Es una pregunta de estadísticas. – mnel
Una forma de hacerlo es construir la matriz de diseño completa (usando 'model.matrix'), eliminar las columnas que no desea, y luego ajustar el modelo a las columnas restantes. Haré un ejemplo si/cuando tengo la oportunidad ... –
Eche un vistazo al ['paquete MixMod'] (http://cran.r-project.org/web/packages/MixMod/). Base 'R' no lo admitirá (vea mi comentario anterior sobre Bill Venables. – mnel