Trích xuất độ dốc cho các trường hợp từ mô hình hiệu ứng hỗn hợp (lme4)


12

Tôi muốn trích xuất các độ dốc cho từng cá nhân trong một mô hình hiệu ứng hỗn hợp, như được nêu trong đoạn văn sau

Các mô hình hiệu ứng hỗn hợp đã được sử dụng để mô tả các con đường thay đổi riêng lẻ trong các biện pháp tóm tắt nhận thức, bao gồm các thuật ngữ về tuổi tác, giới tính và năm giáo dục là các hiệu ứng cố định (Laird và Ware, 1982; Wilson et al., 2000, 2002c) ... Phần còn lại, các thuật ngữ độ dốc suy giảm nhận thức cá nhân được trích xuất từ ​​các mô hình hỗn hợp, sau khi điều chỉnh các tác động của tuổi tác, giới tính và giáo dục. Độ dốc còn lại được điều chỉnh cụ thể của từng người sau đó được sử dụng làm kiểu hình kết quả định lượng cho các phân tích liên kết di truyền. Các ước tính này tương đương với sự khác biệt giữa độ dốc của một cá nhân và độ dốc dự đoán của một cá nhân cùng độ tuổi, giới tính và trình độ học vấn.

De Jager, PL, Shulman, JM, Chibnik, LB, Keenan, BT, Raj, T., Wilson, RS, et al. (2012). Quét toàn bộ bộ gen cho các biến thể phổ biến ảnh hưởng đến tốc độ suy giảm nhận thức liên quan đến tuổi . Thần kinh học về lão hóa, 33 (5), 1017.e1 Tiết1017.e15.

Tôi đã xem xét việc sử dụng coefhàm để trích xuất các hệ số cho từng cá nhân, nhưng tôi không chắc đây có phải là cách tiếp cận đúng để sử dụng hay không.

Bất cứ ai có thể cung cấp một số lời khuyên về cách làm điều này?

#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)

Câu trả lời:


28

Ngươi mâu:

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

Các chức năng coeflà cách tiếp cận đúng để trích xuất sự khác biệt cá nhân.

> 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

Các giá trị này là sự kết hợp của các hiệu ứng cố định và các thành phần phương sai (hiệu ứng ngẫu nhiên). Bạn có thể sử dụng summarycoefđể có được hệ số của các hiệu ứng cố định.

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

Chặn là 251,4 và độ dốc (liên kết với Days) là 10,4. Các hệ số này là giá trị trung bình của tất cả các đối tượng. Để có được các hiệu ứng ngẫu nhiên, bạn có thể sử dụng 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

Các giá trị này là các thành phần phương sai của các đối tượng. Mỗi hàng tương ứng với một chủ đề. Giá trị trung bình của mỗi cột bằng 0 vì các giá trị tương ứng với sự khác biệt liên quan đến các hiệu ứng cố định.

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

Lưu ý rằng các giá trị này bằng 0, độ lệch là do sự không chính xác của biểu diễn số dấu phẩy động.

Kết quả của coef(fm1)$Subjectviệc tạo ra các hiệu ứng cố định thành các hiệu ứng ngẫu nhiên, nghĩa là các hệ số hiệu ứng cố định được thêm vào các hiệu ứng ngẫu nhiên. Các kết quả là cá nhân chặn và dốc.


Cảm ơn đã trả lời, đã làm rõ cách tính các hệ số riêng lẻ. Mặc dù vậy, một câu hỏi nữa, khi đoạn trên nói rằng họ điều chỉnh cho phần dư có giống như bao gồm các hiệu ứng ngẫu nhiên trong các hệ số hay đó là một vấn đề riêng biệt?
Andrew

Bạn nói rằng coef (tóm tắt (fm1)) [, "Ước tính"] tạo ra giá trị trung bình của tất cả các đối tượng. Tôi lấy điều đó để ám chỉ việc chặn là giá trị trung bình của "Phản ứng", nhưng 'mean (ngủ yên $ Reaction) = 298.5079'. Đây là cách giải thích của đánh chặn trong hồi quy tuyến tính và tôi đang cố gắng hiểu các hệ số trong các mô hình hiệu ứng hỗn hợp và đang đấu tranh để có được những thứ (như thế này để thêm vào). Tại sao không phải là đánh chặn 298.5?
Svannoy

@svannoy Lưu ý rằng phần chặn là giá trị ước tính của biến phụ thuộc khi tất cả các hiệp phương sai bằng 0. Ở đây, Dayskhông tập trung ở giá trị trung bình, và do đó, phần chặn của mô hình thấp hơn giá trị trung bình của Reaction. Hơn nữa, đường hồi quy là phù hợp tuyến tính tốt nhất. Do đó, các quan sát không nhất thiết phải trên dòng này.
Sven Hohenstein

@SvenHohenstein cảm ơn, vì đã làm rõ điều đó. Có chính xác không khi nói rằng trong hồi quy OLS chỉ với một biến dự báo phân loại duy nhất và mã hóa độ lệch (contr.sum ()), việc chặn chính xác là trung bình; trong khi đó trong hồi quy RC với mô hình đánh chặn ngẫu nhiên, đánh chặn là trung bình ước tính?
Svannoy

@svannoy Có, với độ lệch mã hóa, phần chặn phản ánh Ý nghĩa lớn trong hồi quy OLS. Trong một mô hình hỗn hợp tuyến tính, đánh chặn thực sự là Grand Mean ước tính.
Sven Hohenstein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.