expandiendo las interacciones de los factores dentro de una fórmula
Tengo muchas fórmulas (de claseformula
oFormula
) de la formay ~ a*b
, dóndea
yb
son factores
Necesito escribir una función que tome tal fórmula y devuelva una fórmula con todos los términos de la interacción "enunciados". Aquí hay un ejemplo:
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
dóndeBigFormula
devolucionesformula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
.
¿Hay una manera simple de hacer esto?
(El contexto: estoy ejecutando muchos comandos de la formaanova(mod1, mod2)
, dóndemod2
anida enmod1
, y donde el lado derecho de ambos modelos contiene términos comofac1*fac2
. El punto de estos comandos es calcular F-estadísticas. El problema es eseanova
tratafac1*fac2
como tres variables, aunque por lo general representa más de tres variables. (En el código anterior, por ejemplo,fac1*fac2
representa ocho variables.) Como resultado,anova
subestima el número de restricciones en el modelo anidado, y sobreestima mis grados de libertad.)