y ~ a*b
という形の多くの数式(クラスformula
またはFormula
)があります。a
とb
が要因です。数式内の拡大因子の相互作用
このような数式を取り、相互作用の用語がすべて「スペルアウト」された数式を返す関数を記述する必要があります。ここでの例である:
BigFormula
戻り
formula(x ~ a + b + c + d + a:c + a:d + b:c + b:d)
fac1 <- factor(c('a', 'a', 'b', 'b'))
fac2 <- factor(c('c', 'd', 'c', 'd'))
BigFormula(formula(x ~ fac1*fac2))
。
これを行う簡単な方法はありますか?
(コンテキスト:私はmod1
でmod2
巣の形anova(mod1, mod2)
、多くのコマンドを実行している、とどこ両モデルの右辺はfac1*fac2
などの用語が含まれていますこれらのコマンドのポイントは、F-統計を計算することです。問題は、anova
は通常3つ以上の変数を表すにもかかわらず、fac1*fac2
を3つの変数として扱います(上記のコードでは、fac1*fac2
は8つの変数を表します)。結果として、anova
は入れ子にされた制限の数を過小評価します私の自由度を過大評価しています)。