Kiểm tra các giả định mô hình hỗn hợp lmer / lme trong R


25

Tôi đã chạy một thiết kế lặp đi lặp lại, qua đó tôi đã thử nghiệm 30 nam và 30 nữ qua ba nhiệm vụ khác nhau. Tôi muốn hiểu hành vi của nam và nữ khác nhau như thế nào và điều đó phụ thuộc vào nhiệm vụ như thế nào. Tôi đã sử dụng cả gói lmer4 và lme4 để điều tra việc này, tuy nhiên, tôi bị mắc kẹt với việc cố gắng kiểm tra các giả định cho một trong hai phương pháp. Mã tôi chạy là

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

Tôi đã kiểm tra xem sự tương tác có phải là mô hình tốt nhất hay không bằng cách so sánh nó với mô hình đơn giản hơn mà không có sự tương tác và chạy anova:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

Câu 1: Có thể sử dụng các dự đoán phân loại này trong mô hình hỗn hợp tuyến tính không?
Câu hỏi 2: Tôi có hiểu chính xác không, biến kết quả ("hành vi") không cần phải được phân phối bình thường (qua giới tính / nhiệm vụ)?
Câu 3: Làm thế nào tôi có thể kiểm tra tính đồng nhất của phương sai? Đối với một mô hình tuyến tính đơn giản, tôi sử dụng plot(LM$fitted.values,rstandard(LM)). Sử dụng đã plot(reside(lm.base1))đủ chưa?
Câu 4: Để kiểm tra tính quy phạm có sử dụng đoạn mã sau được không?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)

Một điều tôi cũng nhận thấy là phiên bản lme4 tôi đang sử dụng không phải là phiên bản gần đây nhất và do đó, cốt truyện đơn giản (myModel.lm) không hoạt động, có lẽ điều này hữu ích cho những độc giả khác biết ..
crazjo

Câu trả lời:


26

Q1: Có - giống như bất kỳ mô hình hồi quy nào.

Câu 2: Giống như các mô hình tuyến tính nói chung, biến kết quả của bạn không cần phải được phân phối bình thường như một biến đơn biến. Tuy nhiên, các mô hình LME cho rằng phần dư của mô hình thường được phân phối. Vì vậy, một chuyển đổi hoặc thêm trọng số cho mô hình sẽ là một cách chăm sóc điều này (và tất nhiên là kiểm tra các lô chẩn đoán).

Quý 3: plot(myModel.lme)

Q4 : qqnorm(myModel.lme, ~ranef(., level=2)). Mã này sẽ cho phép bạn tạo các ô QQ cho từng cấp độ của các hiệu ứng ngẫu nhiên. Các mô hình LME cho rằng không chỉ các phần dư trong cụm thường được phân phối, mà mỗi mức độ của các hiệu ứng ngẫu nhiên là tốt. Thay đổi leveltừ 0, 1, đến 2 để bạn có thể kiểm tra chuột, nhiệm vụ và phần dư trong chủ đề.

EDIT: Tôi cũng nên nói thêm rằng mặc dù tính quy phạm được giả định và việc chuyển đổi có thể giúp giảm các vấn đề với các lỗi không bình thường / hiệu ứng ngẫu nhiên, không rõ ràng rằng tất cả các vấn đề thực sự được giải quyết hoặc sai lệch không được đưa ra. Nếu dữ liệu của bạn yêu cầu chuyển đổi, thì hãy thận trọng về việc ước tính các hiệu ứng ngẫu nhiên. Đây là một bài viết đề cập đến điều này .


Cảm ơn câu trả lời của bạn. Tôi muốn chia sẻ tập dữ liệu và tập lệnh của mình để phân tích bao gồm đầu ra để xem những gì tôi đã làm có thực sự đúng hay không. Có thể trao đổi ngăn xếp? Hơn nữa, tôi nghĩ rằng tôi đã chạy sai yếu tố ngẫu nhiên (1 | chuột / nhiệm vụ), không nên chỉ là (1 | chuột)? Tôi đã thử nghiệm 60rats (30 mỗi giới tính) trên ba nhiệm vụ.
crazjo

9
Tôi đã thử mã cho Q4 gần đây và tôi đã gặp lỗi về đối tượng loại 'S4' không thể cho phép. Mã đó dành cho các mô hình có phù hợp với gói lme không? Còn với lme4 thì sao?
emudrak

Về Q4, những người thực hiện các ô đó cần lưu ý rằng N cho mỗi ô được sản xuất sẽ nhỏ hơn đáng kể so với tổng và do đó các ô sẽ biến đổi nhiều hơn. Đừng mong đợi chúng trông phân phối đều đặn như bình thường.
John

14

Bạn có vẻ khá sai lệch về các giả định xung quanh các mô hình đa cấp. Không có giả định về tính đồng nhất của phương sai trong dữ liệu, chỉ là phần dư nên được phân phối bình thường. Và các dự báo phân loại được sử dụng trong hồi quy mọi lúc (hàm cơ bản trong R chạy ANOVA là lệnh hồi quy tuyến tính).

Để biết chi tiết về kiểm tra các giả định, hãy xem cuốn sách Pinheiro và Bates (trang 174, mục 4.3.1). Ngoài ra, nếu bạn có kế hoạch sử dụng lme4 (cuốn sách không được viết xung quanh), bạn có thể sao chép cốt truyện của họ bằng cách sử dụng cốt truyện với một lmermô hình ( ?plot.merMod).

Để nhanh chóng kiểm tra tính bình thường, nó sẽ chỉ là qqnorm(resid(myModel)).


Cám ơn bạn đã góp ý. Bạn có đề nghị sử dụng lmer trên phương pháp lme4 không? Và tôi có đúng khi hiểu biến phản ứng không cần phân phối bình thường không? Tôi sẽ có một bài đọc thích hợp thông qua cuốn sách Pinheiro và Bates.
crazjo

Ngoài ra, bạn có chắc chắn chạy qqnorm (Resid (myModel)) trên một mô hình hỗn hợp với nhiều yếu tố hoạt động không?
crazjo

Chức năng lmer mới hơn có nhiều khả năng hơn và hiệu suất cao hơn. Bạn đã thử qqnorm chưa? Thực hiện theo lời khuyên ở đầu cuốn sách về cách đọc nó.
John

Cốt truyện ban đầu tôi có vẻ kỳ lạ, có thể là vì tôi thực sự không có phiên bản mới nhất của lmer. Cảm ơn bạn đã lưu ý điều này, bây giờ nó hoạt động như cần thiết.
crazjo

12

Về quý 2:

Theo cuốn sách của Pinheiro và Bates, bạn có thể sử dụng phương pháp sau:

" lmeHàm cho phép mô hình hóa độ không đồng nhất của nhóm lỗi bên trong thông qua một weightsđối số. Chủ đề này sẽ được đề cập chi tiết trong § 5.2, nhưng, bây giờ, đủ để biết rằng varIdentcấu trúc hàm phương sai cho phép các phương sai khác nhau cho từng cấp độ một yếu tố và có thể được sử dụng để phù hợp với mô hình dị thể [...] "

Pinheiro và Bates, p. 177

Nếu bạn muốn kiểm tra các phương sai bằng nhau giữa sexbạn có thể sử dụng phương pháp này:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

Nếu phương sai khác nhau, bạn có thể cập nhật mô hình của mình theo cách sau:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

Hơn nữa, bạn có thể có một cái nhìn về robustlmmgói cũng sử dụng một phương pháp cân. Luận án tiến sĩ của Koller về khái niệm này có sẵn dưới dạng truy cập mở ("Ước tính mạnh mẽ của các mô hình hỗn hợp tuyến tính"). Các trạng thái trừu tượng:

"Một ước tính thang đo mới, ước tính Thang đo thích ứng thiết kế, được phát triển với mục đích cung cấp một nền tảng vững chắc cho các thử nghiệm mạnh mẽ tiếp theo. Nó làm như vậy bằng cách cân bằng độ không đồng nhất tự nhiên của phần dư và để điều chỉnh phương trình ước lượng mạnh mẽ cho chính thang đo Những hiệu chỉnh thích ứng thiết kế này rất quan trọng trong các cài đặt mẫu nhỏ, trong đó số lượng quan sát có thể chỉ bằng số lần tham số ước tính hoặc ít hơn. "



Tôi không có đủ điểm cho ý kiến. Tuy nhiên, tôi thấy sự cần thiết phải làm rõ một số khía cạnh của câu trả lời của @John ở trên. Pinheiro và Bates nhà nước trên p. 174:

Giả định 1 - các lỗi trong nhóm là độc lập và được phân phối bình thường, với giá trị trung bình bằng 0 và phương sai σ2 và chúng độc lập với các trường hợp ngẫu nhiên.

Tuyên bố này thực sự không rõ ràng về phương sai đồng nhất và tôi không đủ sâu vào thống kê để biết tất cả các toán học đằng sau khái niệm LME. Tuy nhiên, trên p. 175, §4.3.1, phần liên quan đến Giả định 1 họ viết:

Trong phần này, chúng tôi tập trung vào các phương pháp để đánh giá giả định rằng các lỗi trong nhóm thường được phân phối, tập trung ở mức 0 và có phương sai không đổi .

Ngoài ra, trong các ví dụ sau đây " phương sai không đổi " thực sự quan trọng. Do đó, người ta có thể suy đoán liệu họ có bao hàm sự chênh lệch đồng nhất khi họ viết " hệt thường được phân phối" trên p. 174 mà không giải quyết nó trực tiếp hơn.


-6

Q1: Có, tại sao không?

Q2: Tôi nghĩ rằng yêu cầu là các lỗi thường được phân phối.

Câu 3: Có thể được kiểm tra với bài kiểm tra của Leven chẳng hạn.

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.