Extrahieren von Steigungen für Fälle aus einem Mixed-Effects-Modell (lme4)

12

Ich möchte die Steigungen für jedes Individuum in einem Mischeffektmodell extrahieren, wie im folgenden Absatz erläutert

Modelle mit gemischten Effekten wurden verwendet, um einzelne Änderungspfade in den kognitiven Übersichtsmaßen zu charakterisieren, einschließlich Begriffen für Alter, Geschlecht und Bildungsjahr als feste Effekte (Laird und Ware, 1982; Wilson et al., 2000, 2002c). Aus den gemischten Modellen wurden verbleibende, individuelle kognitive Abnahmesteigungsterme extrahiert, wobei die Auswirkungen von Alter, Geschlecht und Bildung berücksichtigt wurden. Personenspezifisch angepasste Reststeigungen wurden dann als quantitativer Endpunktphänotyp für die genetischen Assoziationsanalysen verwendet. Diese Schätzungen entsprechen der Differenz zwischen der Steigung einer Person und der vorhergesagten Steigung einer Person des gleichen Alters, Geschlechts und Bildungsniveaus.

De Jager, PL, Shulman, JM, Chibnik, LB, Keenan, BT, Raj, T., Wilson, RS, et al. (2012). Ein genomweiter Scan nach häufigen Varianten, die die Geschwindigkeit des altersbedingten kognitiven Rückgangs beeinflussen . Neurobiology of Ageing, 33 (5), 1017.e1–1017.e15.

Ich habe die Verwendung der coefFunktion zum Extrahieren der Koeffizienten für jedes Individuum in Betracht gezogen, bin mir jedoch nicht sicher, ob dies der richtige Ansatz ist.

Kann mir jemand einen Rat geben, wie das geht?

#example R code 
library(lme4)
attach(sleepstudy)  
fml <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
beta <- coef(fml)$Subject
colnames(beta) <- c("Intercept", "Slope")
beta

summary(beta)
summary(fm1)
Andrews
quelle

Antworten:

28

Das Model:

library(lme4)
data(sleepstudy)
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)

Die Funktion coefist der richtige Ansatz, um individuelle Unterschiede zu extrahieren.

> coef(fm1)$Subject
    (Intercept)       Days
308    253.6637 19.6662581
309    211.0065  1.8475834
310    212.4449  5.0184067
330    275.0956  5.6529540
331    273.6653  7.3973908
332    260.4446 10.1951151
333    268.2455 10.2436611
334    244.1725 11.5418622
335    251.0714 -0.2848735
337    286.2955 19.0955694
349    226.1950 11.6407008
350    238.3351 17.0814915
351    255.9829  7.4520286
352    272.2687 14.0032989
369    254.6806 11.3395025
370    225.7922 15.2897513
371    252.2121  9.4791308
372    263.7196 11.7513155

Diese Werte sind eine Kombination der festen Effekte und der Varianzkomponenten (Zufallseffekte). Sie können summaryund verwenden coef, um die Koeffizienten der festen Effekte zu erhalten.

> coef(summary(fm1))[ , "Estimate"]
(Intercept)        Days 
  251.40510    10.46729 

Der Achsenabschnitt beträgt 251,4 und die Steigung (assoziiert mit Days) 10,4. Diese Koeffizienten sind der Mittelwert aller Probanden. Um die zufälligen Effekte zu erhalten, können Sie verwenden ranef.

> ranef(fm1)$Subject
    (Intercept)        Days
308   2.2585637   9.1989722
309 -40.3985802  -8.6197026
310 -38.9602496  -5.4488792
330  23.6905025  -4.8143320
331  22.2602062  -3.0698952
332   9.0395271  -0.2721709
333  16.8404333  -0.2236248
334  -7.2325803   1.0745763
335  -0.3336936 -10.7521594
337  34.8903534   8.6282835
349 -25.2101138   1.1734148
350 -13.0699598   6.6142055
351   4.5778364  -3.0152574
352  20.8635944   3.5360130
369   3.2754532   0.8722166
370 -25.6128737   4.8224653
371   0.8070401  -0.9881551
372  12.3145406   1.2840295

Diese Werte sind die Varianzkomponenten der Probanden. Jede Zeile entspricht einem Thema. Inhärent ist der Mittelwert jeder Spalte Null, da die Werte den Unterschieden in Bezug auf die festen Effekte entsprechen.

> colMeans(ranef(fm1)$Subject)
  (Intercept)          Days 
 4.092529e-13 -2.000283e-13 

Beachten Sie, dass diese Werte gleich Null sind. Abweichungen sind auf die ungenaue Darstellung von Gleitkommazahlen zurückzuführen.

Das Ergebnis von coef(fm1)$Subjectinkoporiert die festen Effekte in die zufälligen Effekte, dh die festen Effektkoeffizienten werden zu den zufälligen Effekten addiert. Das Ergebnis sind individuelle Abschnitte und Steigungen.

Sven Hohenstein
quelle
Vielen Dank für die Antwort, die geklärt hat, wie die einzelnen Koeffizienten berechnet werden. Eine weitere Frage, wenn der obige Absatz angibt, dass sie um Residuen bereinigt sind, ist dies das Gleiche wie das Einbeziehen der Zufallseffekte in die Koeffizienten, oder handelt es sich um eine separate Frage?
Andrews
Sie geben an, dass coef (summary (fm1)) [, "Estimate"] den Mittelwert aller Probanden ergibt. Ich gehe davon aus, dass der Achsenabschnitt der Mittelwert von "Reaktion" ist, aber "Mittelwert (Schlafstudie $ Reaktion) = 298.5079". Dies ist die Interpretation des Achsenabschnitts in einer linearen Regression. Ich versuche, die Koeffizienten in Modellen mit gemischten Effekten zu verstehen und habe Mühe, Dinge zu verstehen (wie diese, um sie zu addieren). Warum ist der Intercept nicht 298.5?
Svannoy
@svannoy Beachten Sie, dass der Achsenabschnitt der geschätzte Wert der abhängigen Variablen ist, wenn alle Kovariaten gleich Null sind. Hier Daysist nicht auf den Mittelwert zentriert, und daher ist der Achsenabschnitt des Modells niedriger als der Mittelwert von Reaction. Darüber hinaus ist die Regressionsgerade die beste lineare Anpassung. Daher sind die Beobachtungen nicht unbedingt auf dieser Linie.
Sven Hohenstein
@SvenHohenstein danke, für die Klarstellung. Ist es richtig zu sagen, dass in der OLS-Regression mit nur einer einzigen kategorialen Prädiktorvariablen und Abweichungscodierung (contr.sum ()) der Achsenabschnitt genau der große Mittelwert ist? während in der RC-Regression mit einem zufälligen Intercept-Modell der Intercept der geschätzte Mittelwert ist?
Svannoy
@svannoy Ja, mit Abweichungscodierung spiegelt der Achsenabschnitt den großen Mittelwert in der OLS-Regression wider. In einem linearen gemischten Modell ist der Achsenabschnitt tatsächlich der geschätzte Grand Mean.
Sven Hohenstein