Rのモデル式の解釈に関連する多くの場合と同様に、この質問は混合モデルに固有のものではなく、一般にRの式展開機械に適用されます。
式を解釈するときにRが何をしているのかを把握するには、model.matrix()
(Rがモデルに適合するために使用する基になるモデル行列を構成する)を使用し、出力の列名を調べます。
dd <- expand.grid(fv1=c("a","b"),
fv2=c("A","B"))
dd$covar <- 1:4
あなたの最初の方法:
はここで2×2要因計画、プラス共変量との一例です)8つのパラメータ((切片+傾きの合計があります
colnames(model.matrix(~fv1*fv2*covar,dd))
## [1] "(Intercept)" "fv1b" "fv2B" "covar" "fv1b:fv2B"
## [6] "fv1b:covar" "fv2B:covar" "fv1b:fv2B:covar"
×2 fv1
x2レベルのレベルはfv2
である)。このモデルは、(a、A)((Intercept)
)の切片としてパラメータ化されています。因子(b、B)およびそれらの相互作用による切片の相違; (a、A)の傾き(covar
)。要因とその相互作用に応じた勾配の違いとの関係を示している。
/を使用するとどうなりますか?
colnames(model.matrix(~fv1*fv2/covar,dd))
## [1] "(Intercept)" "fv1b" "fv2B" "fv1b:fv2B" "fv1a:fv2A:covar"
## [6] "fv1b:fv2A:covar" "fv1a:fv2B:covar" "fv1b:fv2B:covar"
インターセプトするためのパラメータは、同じに見えるが、傾斜のためのパラメータ化は、別個の各要因の組み合わせの傾きよりもむしろ(A)のためのスロープを推定し、そのベースラインからの傾きの差を推定しますb、Bとその相互作用について。これは、ゼロのベースラインに対して個々の勾配をテストしたい場合を除いて、あなたが望むものではない可能性が高いです(因子の組み合わせ全体の勾配の差をテストするのではなく)。
代わりにモデルを~(fv1*fv2)/covar
と指定すると、インターセプトとスロープパラメータの両方が、因子の推定値の違いではなく、因子の組み合わせの推定値に展開されます。
colnames(model.matrix(~(fv1*fv2)/covar,dd))
## [1] "(Intercept)" "fv1b"
## [3] "fv2B" "fv1b:fv2B"
## [5] "fv1a:fv2A:covar" "fv1b:fv2A:covar"
## [7] "fv1a:fv2B:covar" "fv1b:fv2B:covar"
ランダムな効果は何ですか? ( 'lme'や' lmer'を使っているのであればランダムな効果が必要です...) –
右は言及していません。質問 – lueromat
を編集しました。いいえ、これは別の転倒防止バッジになるようです。ここで何かが恋しい? – lueromat