Wie viele, die sich auf die Interpretation von Modellformeln in R beziehen, ist diese Frage nicht spezifisch für gemischte Modelle, sondern allgemein für die Formeln erweiternde Maschinerie von R.
Ein guter Weg herauszufinden, was R macht, wenn er eine Formel interpretiert, ist model.matrix()
(die die zugrundeliegende Modellmatrix konstruiert, die R verwendet, um das Modell anzupassen) und die Spaltennamen der Ausgabe betrachten.
Hier ist ein Beispiel mit einem 2x2 faktoriellen Design, sowie eine Kovariate:
dd <- expand.grid(fv1=c("a","b"),
fv2=c("A","B"))
dd$covar <- 1:4
Ihr erster Weg:
colnames(model.matrix(~fv1*fv2*covar,dd))
## [1] "(Intercept)" "fv1b" "fv2B" "covar" "fv1b:fv2B"
## [6] "fv1b:covar" "fv2B:covar" "fv1b:fv2B:covar"
x insgesamt 8 Parameter ((Intercept + Steigung) Es gibt 2 Ebenen von fv1
x 2 Ebenen von fv2
). Das Modell ist als Schnittpunkt von (a, A) parametrisiert ((Intercept)
); Unterschiede im Achsenabschnitt gemäß den Faktoren (b, B) und ihrer Wechselwirkung; Neigung von (a, A) (covar
); und die Unterschiede in der Steigung entsprechend den Faktoren und ihrer Wechselwirkung.
Was passiert, wenn wir/stattdessen verwenden?
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"
Die Parametrierung für die Abschnitte sieht gleich aus, aber die Parametrisierung für die Piste schätzt eine separate Steigung für jede Kombination Faktor anstatt die Neigung Abschätzung für (a, A) und die Unterschiede der Pisten von dieser Basislinie für b, B und ihre Wechselwirkung. Dies ist höchstwahrscheinlich nicht das, was Sie wollen, es sei denn, Sie möchten die einzelnen Steigungen gegen eine Basislinie von Null testen (anstatt die Unterschiede zwischen Steigungen über Faktorkombinationen zu testen).
Wenn Sie stattdessen das Modell als ~(fv1*fv2)/covar
angeben, werden sowohl der Achsenabschnitt als auch die Steigungsparameter in Faktorenkombinationsschätzungen anstatt in Differenzen zwischen Faktorenschätzungen erweitert.
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"
Was ist Ihr zufälliger Effekt? (Sie müssen einen zufälligen Effekt haben, wenn Sie 'lme' oder' lmer' verwenden ...) –
richtig, vergessen zu erwähnen. editiert die Frage – lueromat
oh nein, sieht aus wie das wird ein anderes Tumbleweed-Abzeichen sein. Hab ich hier etwas verpasst? – lueromat