Wie wählt man Zufalls- und Festeffektstruktur in linearen gemischten Modellen?

19

Betrachten Sie die folgenden Daten aus einer wechselseitigen Betrachtung innerhalb des Probandendesigns:

df <- "http://personality-project.org/r/datasets/R.appendix4.data"
df <- read.table(df,header=T)
head(df)

Observation Subject Task Valence Recall
1           1     Jim Free     Neg      8
2           2     Jim Free     Neu      9
3           3     Jim Free     Pos      5
4           4     Jim Cued     Neg      7
5           5     Jim Cued     Neu      9
6           6     Jim Cued     Pos     10

Ich möchte dies mit gemischt-linearen Modellen analysieren. Unter Berücksichtigung aller möglichen Fix- und Zufallseffekte gibt es mehrere mögliche Modelle:

# different fixed effects with random-intercept
a0 <- lmer(Recall~1 + (1|Subject), REML=F,df)
a1 <- lmer(Recall~Task + (1|Subject), REML=F,df)
a2 <- lmer(Recall~Valence + (1|Subject), REML=F,df)
a3 <- lmer(Recall~Task+Valence + (1|Subject), REML=F,df)
a4 <- lmer(Recall~Task*Valence + (1|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope
b0 <- lmer(Recall~1 + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b1 <- lmer(Recall~Task + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b2 <- lmer(Recall~Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b3 <- lmer(Recall~Task+Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b4 <- lmer(Recall~Task*Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope including variance-covariance matrix
c0 <- lmer(Recall~1 + (1 + Valence + Task|Subject), REML=F,df)
c1 <- lmer(Recall~Task + (1 + Valence + Task|Subject), REML=F,df)
c2 <- lmer(Recall~Valence + (1 + Valence + Task|Subject), REML=F,df)
c3 <- lmer(Recall~Task+Valence + (1 + Valence + Task|Subject), REML=F,df)
c4 <- lmer(Recall~Task*Valence + (1 + Valence + Task|Subject), REML=F,df)
  1. Wie wird in diesem Zusammenhang die Auswahl des am besten passenden Modells empfohlen? Welche Vorgehensweise wird bei Verwendung von Log-Likelihood-Ratio-Tests empfohlen? Modelle aufwärts (vom Nullmodell zum komplexesten Modell) oder abwärts (vom komplexesten Modell zum Nullmodell) generieren? Schrittweise Einbeziehung oder Ausgrenzung? Oder wird empfohlen, alle Modelle in einem Log-Likelihood-Ratio-Test zusammenzufassen und das Modell mit dem niedrigsten p-Wert auszuwählen? Wie vergleiche ich nicht verschachtelte Modelle?

  2. Ist es empfehlenswert, zuerst die geeignete Festeffektstruktur und dann die geeignete Zufallseffektstruktur zu finden oder umgekehrt (Ich habe Referenzen für beide Optionen gefunden ...)?

  3. Wie werden die Ergebnisse empfohlen? Angabe des p-Werts aus dem Log-Likelihood-Ratio-Test, wobei das vollständige gemischte Modell (mit dem fraglichen Effekt) mit dem reduzierten Modell (ohne den fraglichen Effekt) verglichen wird. Oder ist es besser, den Log-Likelihood-Ratio-Test zu verwenden, um das beste Anpassungsmodell zu finden, und dann lmerTest zu verwenden, um p-Werte von den Effekten im besten Anpassungsmodell zu melden?

Witz
quelle

Antworten:

18

Ich bin mir nicht sicher, ob es wirklich eine kanonische Antwort darauf gibt, aber ich werde es versuchen.

Wie wird in diesem Zusammenhang die Auswahl des am besten passenden Modells empfohlen? Welche Vorgehensweise wird bei Verwendung von Log-Likelihood-Ratio-Tests empfohlen? Modelle aufwärts (vom Nullmodell zum komplexesten Modell) oder abwärts (vom komplexesten Modell zum Nullmodell) generieren? Schrittweise Einbeziehung oder Ausgrenzung? Oder wird empfohlen, alle Modelle in einem Log-Likelihood-Ratio-Test zusammenzufassen und das Modell mit dem niedrigsten p-Wert auszuwählen? Wie vergleiche ich nicht verschachtelte Modelle?

Es kommt darauf an, was Ihre Ziele sind.

  • Im Allgemeinen sollten Sie bei der Modellauswahl sehr , sehr vorsichtig sein (siehe z. B. diese Antwort oder diesen Beitrag oder einfach Google "Harrell stepwise" ...).
  • Wenn Sie Ihre p-Werte interessiert sind sein in mit aussagekräftigen (dh Sie bestätigende Hypothesentests tun), dann sollten Sie nicht die Modellauswahl tun. Allerdings : Mir ist nicht so klar, ob Modellauswahlverfahren genauso schlecht sind, wenn Sie Modellauswahl an nicht-fokalen Teilen des Modells durchführen , z. B. Modellauswahl an den Zufallseffekten, wenn Sie hauptsächlich auf die festen Effekte abzielen.
  • Es gibt keine Möglichkeit, "alle Modelle in einen Likelihood-Ratio-Test zu setzen" - Likelihood-Ratio-Tests werden paarweise durchgeführt. Wenn Sie eine Modellauswahl (z. B.) für die Zufallseffekte vornehmen möchten, würde ich wahrscheinlich einen "All-in-One" -Ansatz unter Verwendung von Informationskriterien wie in diesem Beispiel empfehlen - der zumindest einige vermeidet der Probleme von schrittweisen Ansätzen (aber nicht von Modellauswahl allgemeiner).
  • Barr et al. 2013 "Keep it maximal" Journal of Memory and Language (doi: 10.1016 / j.jml.2012.11.001) würde die Verwendung des Maximalmodells (nur) empfehlen.
  • Shravan Vasishth ist anderer Meinung und argumentiert, dass solche Modelle unterfordert und daher problematisch sein werden, es sei denn, der Datensatz ist sehr groß (und das Signal-Rausch-Verhältnis ist hoch).
  • Ein anderer vernünftigerweise vertretbarer Ansatz besteht darin, ein großes, aber vernünftiges Modell anzupassen und dann, wenn die Anpassung singulär ist, Terme zu entfernen, bis sie nicht mehr vorhanden sind
  • Mit einigen Einschränkungen (aufgeführt in den GLMM-FAQ ) können Sie Informationskriterien verwenden, um nicht verschachtelte Modelle mit unterschiedlichen zufälligen Effekten zu vergleichen (obwohl Brian Ripley anderer Meinung ist: siehe unten auf Seite 6 hier ).

Ist es empfehlenswert, zuerst die geeignete Festeffektstruktur und dann die geeignete Zufallseffektstruktur zu finden oder umgekehrt (Ich habe Referenzen für beide Optionen gefunden ...)?

Ich glaube, niemand weiß es. Siehe vorherige Antwort zur Modellauswahl im Allgemeinen. Wenn Sie Ihre Ziele ausreichend klar definieren könnten (was nur wenige Leute tun), könnte die Frage beantwortbar sein. Wenn Sie Referenzen für beide Optionen haben, wäre es nützlich, Ihre Frage zu bearbeiten, um sie einzuschließen ... (In diesem (oben bereits zitierten) Beispiel werden für die Auswahl des Teils mit zufälligen Effekten Informationskriterien verwendet fester Bestandteil des Modells.

Wie werden die Ergebnisse empfohlen? Angabe des p-Werts aus dem Log-Likelihood-Ratio-Test, wobei das vollständige gemischte Modell (mit dem fraglichen Effekt) mit dem reduzierten Modell (ohne den fraglichen Effekt) verglichen wird. Oder ist es besser, den Log-Likelihood-Ratio-Test zu verwenden, um das beste Anpassungsmodell zu finden, und dann lmerTest zu verwenden, um p-Werte von den Effekten im besten Anpassungsmodell zu melden?

Dies ist leider eine andere schwierige Frage. Wenn Sie die von gemeldeten Randeffekte melden lmerTest, müssen Sie sich um die Randeffekte sorgen (z. B. ob die Schätzungen der Haupteffekte von Aund Bsinnvoll sind, wenn im Modell eine Wechselwirkung Avorliegt B). Dies ist eine riesige Dose Würmer, die jedoch etwas gemildert wird, wenn Sie sie verwenden, contrasts="sum"wie von empfohlen afex::mixed(). Ausgewogene Designs helfen auch ein bisschen. Wenn Sie wirklich alle diese Risse überarbeiten möchten, würde ich empfehlen afex::mixed, was Ihnen eine ähnliche Ausgabe gibt lmerTest, aber versucht, mit diesen Problemen umzugehen.

Ben Bolker
quelle
12

Update Mai 2017 : Wie sich herausstellt, ist eine Menge von dem, was ich hier geschrieben habe, irgendwie falsch . Einige Aktualisierungen werden im gesamten Beitrag vorgenommen.


Ich stimme dem, was Ben Bolker bereits gesagt hat, sehr zu (danke für den Gruß an afex::mixed() ), aber lassen Sie mich noch einige allgemeine und spezifische Gedanken zu diesem Thema hinzufügen.

Konzentrieren Sie sich auf feste oder zufällige Effekte und wie Sie Ergebnisse melden

Für die Art der experimentellen Forschung, die im Beispieldatensatz von Jonathan Baron dargestellt ist, verwenden Sie in der Regel die wichtige Frage, ob eine Manipulation vorliegt oder nicht Faktor eine Gesamtwirkung hat . Finden wir zum Beispiel einen Gesamteffekt oder eine Wechselwirkung von Task? Ein wichtiger Punkt ist, dass in diesen Datensätzen normalerweise alle Faktoren unter vollständiger experimenteller Kontrolle stehen und zufällig zugewiesen werden. Folglich liegt der Schwerpunkt des Interesses in der Regel auf den festen Effekten.
Im Gegensatz dazu können die Zufallseffektkomponenten als "störende" Parameter angesehen werden, die systematische Varianz erfassen (dh interindividuelle Unterschiede in der Größe des Effekts), die für die Hauptfrage nicht unbedingt wichtig sind. Unter diesem Gesichtspunkt wurde vorgeschlagen, die von Barr et al. folgt etwas natürlich. Es ist leicht vorstellbar, dass eine experimentelle Manipulation nicht alle Individuen auf die gleiche Weise beeinflusst, und wir möchten dies kontrollieren. Andererseits ist die Anzahl der Faktoren oder Stufen in der Regel nicht zu groß, so dass die Gefahr einer Überanpassung vergleichsweise gering erscheint.

Infolgedessen würde ich dem Vorschlag von Barr et al. und spezifiziere eine maximale zufällige Effektstruktur und berichte Tests der festen Effekte als meine Hauptergebnisse. Um die festen Effekte zu testen, würde ich auch vorschlagen, afex::mixed()Tests von Effekten oder Faktoren (anstelle von Parametertests) zu verwenden und diese Tests auf eine etwas vernünftige Weise zu berechnen (z. B. für alle Modelle, in denen a Einzeleffekt wird entfernt, verwendet Summen-zu-Null-Kontraste, bietet verschiedene Methoden zur Berechnung von p- Werten, ...).

Was ist mit den Beispieldaten?

Das Problem mit den Beispieldaten, die Sie angegeben haben, ist, dass für diesen Datensatz die maximale Zufallseffektstruktur zu einem übersättigten Modell führt, da es nur einen Datenpunkt pro Zelle des Designs gibt:

> with(df, table(Valence, Subject, Task))
, , Task = Cued

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

, , Task = Free

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

Folglich lmerDrosseln auf der maximalen zufälligen Effektstruktur:

> lmer(Recall~Task*Valence + (Valence*Task|Subject), df)
Error: number of observations (=30) <= number of random effects (=30) for term
(Valence * Task | Subject); the random-effects parameters and the residual variance
(or scale parameter) are probably unidentifiable

Leider gibt es meines Wissens keinen vereinbarten Weg, um mit diesem Problem umzugehen. Aber lassen Sie mich einige skizzieren und diskutieren:

  1. Eine erste Lösung könnte darin bestehen, die höchste zufällige Steigung zu entfernen und die Auswirkungen für dieses Modell zu testen:

    require(afex)
    mixed(Recall~Task*Valence + (Valence+Task|Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 6.56   1 4.00      1.00     .06
    2      Valence 0.80   2 3.00      0.75     .53
    3 Task:Valence 0.42   2 8.00      1.00     .67

    Diese Lösung ist jedoch ein wenig ad-hoc und nicht übermotiviert.

    Update Mai 2017: Dies ist der Ansatz, den ich derzeit befürworte. Siehe diesen Blog-Beitrag und den Entwurf des Kapitels, an dem ich mitarbeite , Abschnitt "Random Effects Structures for Traditional ANOVA Designs".

  2. Eine alternative Lösung (und eine, die von Barr et al. Als befürwortet angesehen werden könnte) könnte darin bestehen, immer die zufälligen Steigungen für den kleinsten Effekt zu entfernen. Dies hat jedoch zwei Probleme: (1) Welche zufällige Effektstruktur verwenden wir, um herauszufinden, was der kleinste Effekt ist, und (2) R zögert, einen Effekt niedrigerer Ordnung wie einen Haupteffekt zu entfernen, wenn Effekte höherer Ordnung wie ein Wechselwirkung dieses Effektes vorhanden ist (siehe hier ). Infolgedessen müsste man diese Zufallseffektstruktur von Hand aufbauen und die so aufgebaute Modellmatrix an den früheren Aufruf übergeben.

  3. Eine dritte Lösung könnte darin bestehen, eine alternative Parametrisierung des Teils mit zufälligen Effekten zu verwenden, nämlich eine, die dem RM-ANOVA-Modell für diese Daten entspricht. Leider lmererlaubt (?) Keine "negativen Varianzen", so dass diese Parametrisierung nicht für alle Datensätze genau der RM-ANOVA entspricht , siehe Diskussion hier und anderswo (zB hier und hier ). Die "lmer-ANOVA" für diese Daten wäre:

    > mixed(Recall~Task*Valence + (1|Subject) + (1|Task:Subject) + (1|Valence:Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 7.35   1 4.00      1.00     .05
    2      Valence 1.46   2 8.00      1.00     .29
    3 Task:Valence 0.29   2 8.00      1.00     .76

Angesichts all dieser Probleme würde ich einfach nicht lmerzum Anpassen von Datensätzen verwenden, für die es nur einen Datenpunkt pro Zelle des Entwurfs gibt, es sei denn, es ist eine besser abgestimmte Lösung für das Problem der maximalen Zufallseffektstruktur verfügbar.

  1. Stattdessen würde ich auch noch die klassische ANOVA verwenden können. Mithilfe des auf Wrapper car::Anova()in afexden Ergebnissen wäre:

    > aov4(Recall~Task*Valence + (Valence*Task|Subject), df)
            Effect         df  MSE      F  ges   p
    1      Valence 1.44, 5.75 4.67   1.46  .02 .29
    2         Task       1, 4 4.08 7.35 +  .07 .05
    3 Valence:Task 1.63, 6.52 2.96   0.29 .003 .71

    Beachten Sie, dass es afexjetzt auch möglich ist, das Modell, mit aovdem es ausgestattet ist, lsmeansfür Post-Hoc-Tests zurückzugeben (aber für die Prüfung der Auswirkungen sind die von gemeldeten car::Anovanoch vernünftiger):

    > require(lsmeans)
    > m <- aov4(Recall~Task*Valence + (Valence*Task|Subject), df, return = "aov")
    > lsmeans(m, ~Task+Valence)
     Task Valence lsmean       SE   df lower.CL upper.CL
     Cued Neg       11.8 1.852026 5.52  7.17157 16.42843
     Free Neg       10.2 1.852026 5.52  5.57157 14.82843
     Cued Neu       13.0 1.852026 5.52  8.37157 17.62843
     Free Neu       11.2 1.852026 5.52  6.57157 15.82843
     Cued Pos       13.6 1.852026 5.52  8.97157 18.22843
     Free Pos       11.0 1.852026 5.52  6.37157 15.62843
    
    Confidence level used: 0.95 
Henrik
quelle
(+1) "Leider erlaubt lmer keine negativen Korrelationen" - sollte das nicht "erlaubt keine negativen Varianzen" sein? Auch zu Update: Könnten Sie in dieser Antwort genauer beschreiben, was genau "falsch" ist?
Amöbe sagt Reinstate Monica
(Ich habe den verlinkten Beitrag gelesen und es scheint, dass die Hauptbotschaft darin besteht, dass der hier als Nr. 1 aufgeführte Ansatz koscher ist, als Sie bisher dachten. Richtig? Es ist immer noch nicht klar, ob Sie jetzt der Meinung sind, dass er # 3 oder # 4 vorzuziehen ist ).
Amöbe sagt Reinstate Monica
@amoeba Ja du bist richtig. Ich war einfach zu faul, um meine Antwort hier entsprechend zu aktualisieren.
Henrik
@amoeba Und du hast auch Recht auf Korrelationen. lmererlaubt keine negativen Varianzen, aber offensichtlich negative Korrelationen zwischen den Varianzkomponenten.
Henrik
1
Ich habe einige Änderungen vorgenommen. Vielleicht möchten Sie sicherstellen, dass ich Sie nicht falsch dargestellt habe.
Amöbe sagt Reinstate Monica