So sánh các mô hình hiệu ứng hỗn hợp và hiệu ứng cố định (ý nghĩa thử nghiệm của hiệu ứng ngẫu nhiên)


10

Đưa ra ba biến số yxliên tục dương, và zphân loại, tôi có hai mô hình ứng cử viên được đưa ra bởi:

fit.me <- lmer( y ~ 1 + x + ( 1 + x | factor(z) ) )

fit.fe <- lm( y ~ 1 + x )

Tôi hy vọng so sánh các mô hình này để xác định mô hình nào là phù hợp hơn. Dường như với tôi rằng trong một số ý nghĩa fit.feđược lồng trong fit.me. Thông thường, khi kịch bản chung này được giữ, một phép thử chi bình phương có thể được thực hiện. Trong R, chúng ta có thể thực hiện kiểm tra này bằng lệnh sau,

anova(fit.fe,fit.me)

Khi cả hai mô hình đều chứa các hiệu ứng ngẫu nhiên (được tạo bởi lmertừ lme4gói), anova()lệnh sẽ hoạt động tốt. Do các tham số biên, thông thường nên kiểm tra thống kê Chi-Square kết quả thông qua mô phỏng, tuy nhiên, chúng ta vẫn có thể sử dụng thống kê trong quy trình mô phỏng.

Khi cả hai mô hình chỉ chứa các hiệu ứng cố định, cách tiếp cận này --- và, anova()lệnh liên quan --- hoạt động tốt.

Tuy nhiên, khi một mô hình chứa các hiệu ứng ngẫu nhiên và mô hình rút gọn chỉ chứa các hiệu ứng cố định, như trong kịch bản trên, anova()lệnh không hoạt động.

Cụ thể hơn, tôi nhận được lỗi sau:

 > anova(fit.fe, fit.me)
 Error: $ operator not defined for this S4 class

Có điều gì sai khi sử dụng phương pháp Chi-Square từ phía trên (với mô phỏng) không? Hay đây đơn giản chỉ là vấn đề anova()không biết cách xử lý các mô hình tuyến tính được tạo bởi các hàm khác nhau?

Nói cách khác, nó có thích hợp để tạo thủ công thống kê Chi-Square có nguồn gốc từ các mô hình không? Nếu vậy, mức độ tự do thích hợp để so sánh các mô hình này là gì? Theo tính toán của tôi:

F=((SSEreducedSSEfull)/(pk))((SSEfull)/(np1))Fpk,np1

Chúng tôi đang ước tính hai tham số trong mô hình hiệu ứng cố định (độ dốc và giao thoa) và hai tham số nữa (tham số phương sai cho độ dốc ngẫu nhiên và chặn ngẫu nhiên) trong mô hình hiệu ứng hỗn hợp. Thông thường, tham số chặn không được tính theo mức độ tính toán tự do, do đó ngụ ý rằng và ; đã nói rằng tôi không chắc liệu các tham số phương sai cho các tham số hiệu ứng ngẫu nhiên có nên được đưa vào mức độ tính toán tự do hay không; các ước tính phương sai cho các tham số hiệu ứng cố định không được xem xét , nhưng tôi tin rằng đó là do các ước tính tham số cho các hiệu ứng cố định được coi là hằng số chưa biết trong khi chúng được coi là các biến ngẫu nhiên không thể biết đượck=1p=k+2=3cho các hiệu ứng hỗn hợp. Tôi sẽ đánh giá cao một số hỗ trợ về vấn đề này.

Cuối cùng, có ai có Rgiải pháp ( dựa trên cơ sở) phù hợp hơn để so sánh các mô hình này không?


4
Nếu bạn thay thế lm()bằng gls()từ nlmegói và lmer()với lme()(một lần nữa từ nlmegói), mọi thứ sẽ hoạt động tốt. Nhưng lưu ý rằng bạn sẽ có được một bài kiểm tra bảo thủ (giá trị p quá lớn ), vì các tham số cho mô hình đơn giản hơn nằm trên ranh giới của không gian tham số. Và thực sự lựa chọn có bao gồm các hiệu ứng ngẫu nhiên nên dựa trên lý thuyết (ví dụ: kế hoạch lấy mẫu), không dựa trên kiểm tra thống kê.
Karl Ove Hufthammer 14/03/2015

1
Bạn muốn làm gì với các mô hình? Một mô hình có thể tốt hơn cho một số mục đích và mô hình khác tốt hơn cho các mục đích khác. Tất cả các mô hình đều sai, vì vậy câu hỏi không phải là mô hình nào là đúng, mà là hữu ích hơn cho vấn đề cụ thể của bạn.
Kodiologist 14/03/2015

1
@Kodiologist Về cơ bản, tôi muốn đảm bảo rằng các ước tính tham số cho các hiệu ứng cố định là đáng tin cậy. Các lỗi tiêu chuẩn có thể không đáng tin nếu các quan sát được coi là độc lập. Ngoài ra, thật tuyệt khi đưa ra một số tuyên bố về mức độ ảnh hưởng của biến ngẫu nhiên, nhưng tôi đoán điều này không hoàn toàn cần thiết.
dùng9171

2
@ user9171 Một cách tốt để kiểm tra độ ổn định (độ tin cậy) trong ước tính tham số của mô hình là sử dụng bootstrapping. Biểu đồ phân phối bootstrap cho mỗi tham số mà hai mô hình chia sẻ, với một biểu đồ cho mỗi tham số và mô hình. Phân phối chặt chẽ hơn ngụ ý sự ổn định cao hơn. Bạn có thể sẽ thấy rằng mô hình đơn giản hơn mang lại các ước tính ổn định hơn, bởi vì ít tham số hơn cho phép ước tính chính xác hơn cho từng tham số.
Kodiologist 14/03/2015

Câu trả lời:


6

Về mặt kỹ thuật, bạn có thể làm cho nó hoạt động bằng cách chỉ cần chuyển đổi thứ tự của các tham số:

> anova(fit.me, fit.fe) 

Sẽ làm việc tốt thôi. Nếu bạn vượt qua một đối tượng được tạo bởi lmerđầu tiên, anova.merModnó sẽ được gọi thay vì anova.lm(không biết cách xử lý lmercác đối tượng). Xem:

?anova.merMod

Mặc dù, chọn mô hình hỗn hợp hoặc mô hình cố định là lựa chọn mô hình cần tính đến thiết kế thử nghiệm, không phải là vấn đề lựa chọn mô hình. Xem https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#testing-significance-of-random-effects để biết thêm chi tiết:

Xem xét không kiểm tra tầm quan trọng của hiệu ứng ngẫu nhiên.


+1. Tôi đã tự do chèn một liên kết đến Câu hỏi thường gặp của @ BenBolker có chứa một số thảo luận và tham khảo thêm.
amip nói phục hồi Monica
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.