I tienen muchas fórmulas (de clase formula
o Formula
) de la forma y ~ a*b
, donde a
y b
son factores.expansión interacciones de los factores dentro de una fórmula
Necesito escribir una función que tome tal fórmula y devuelva una fórmula con todos los términos en la interacción "deletreado". Aquí está un ejemplo:
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
donde BigFormula
vuelve formula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
.
¿Hay una manera simple de hacer esto?
(El contexto: Me postulo muchos de los comandos de la forma anova(mod1, mod2)
, donde mod2
nidos en mod1
, y donde el lado derecho de ambos modelos contiene términos como fac1*fac2
El punto de estos comandos es calcular estadísticos-F. El problema es que anova
trata fac1*fac2
como tres variables, aunque generalmente 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 anidado modelo, y sobreestima mis grados de libertad.)