¿Cómo eliminar un parámetro de orden inferior en un modelo cuando los parámetros de orden superior permanecen?
El 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 refacta y el nuevo modelo no está anidado en el modelo superior.
Vea el siguiente ejemplo (ya que vengo de ANOVAs que usocontr.sum
):
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 elimino un parámetro (A
), el nuevo modelo (m2
) está refaccionado y esno anidado en el modelo más grande (m1
). Si transformo mis factores por mano en variables de contraste numérico, puedo obtener los resultados deseados, pero ¿cómo puedo obtenerlos usando las capacidades de los factores de R?
La pregunta: ¿Cómo puedo eliminar un factor de orden inferior en R y obtener un modelo que realmente omita este parámetro y no se refactorice (es decir, el número de parámetros en el modelo más pequeño debe ser menor)?
¿Pero por qué? Quiero obtener 'Tipo 3' como p-valores para unlmer
modelo usando elKRmodcomp
función de lapbkrtest
paquete. Entonces este ejemplo es realmente solo un ejemplo.
¿Por qué no CrossValidated? Tengo la sensación de que esto es realmente una R más que una pregunta de estadísticas (es decir, sé que nunca se debe ajustar un modelo con interacciones pero sin uno de los efectos principales, pero todavía quiero hacerlo).