Làm thế nào để chọn cấu trúc hiệu ứng ngẫu nhiên và cố định trong các mô hình hỗn hợp tuyến tính?


19

Xem xét các dữ liệu sau từ hai chiều trong thiết kế chủ đề:

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

Tôi muốn phân tích điều này bằng cách sử dụng các mô hình hỗn hợp tuyến tính. Xem xét tất cả các hiệu ứng cố định và ngẫu nhiên có thể có nhiều mô hình có thể:

# 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. Cách được đề xuất để chọn mô hình phù hợp nhất trong bối cảnh này là gì? Khi sử dụng kiểm tra tỷ lệ khả năng đăng nhập, thủ tục được đề nghị là gì? Tạo mô hình lên trên (từ mô hình null sang mô hình phức tạp nhất) hoặc xuống dưới (từ mô hình phức tạp nhất sang mô hình null)? Bao gồm từng bước hoặc loại trừ? Hoặc có nên đưa tất cả các mô hình vào một thử nghiệm tỷ lệ khả năng đăng nhập và chọn mô hình có giá trị p thấp nhất không? Làm thế nào để so sánh các mô hình không được lồng nhau?

  2. Trước tiên, có nên tìm cấu trúc hiệu ứng cố định phù hợp và sau đó là cấu trúc hiệu ứng ngẫu nhiên thích hợp hoặc theo cách khác (tôi đã tìm thấy tài liệu tham khảo cho cả hai tùy chọn ...)?

  3. Cách báo cáo kết quả được đề nghị là gì? Báo cáo giá trị p từ thử nghiệm tỷ lệ khả năng đăng nhập so sánh mô hình hỗn hợp đầy đủ (với hiệu ứng trong câu hỏi) với mô hình giảm (không có hiệu ứng trong câu hỏi). Hoặc tốt hơn là sử dụng thử nghiệm tỷ lệ khả năng đăng nhập để tìm mô hình phù hợp nhất và sau đó sử dụng lmerTest để báo cáo giá trị p từ các hiệu ứng trong mô hình phù hợp nhất?

Câu trả lời:


18

Tôi không chắc có một câu trả lời kinh điển cho vấn đề này, nhưng tôi sẽ cho nó một phát.

Cách được đề xuất để chọn mô hình phù hợp nhất trong bối cảnh này là gì? Khi sử dụng kiểm tra tỷ lệ khả năng đăng nhập, thủ tục được đề nghị là gì? Tạo mô hình lên trên (từ mô hình null sang mô hình phức tạp nhất) hoặc xuống dưới (từ mô hình phức tạp nhất sang mô hình null)? Bao gồm từng bước hoặc loại trừ? Hoặc có nên đưa tất cả các mô hình vào một thử nghiệm tỷ lệ khả năng đăng nhập và chọn mô hình có giá trị p thấp nhất không? Làm thế nào để so sánh các mô hình không được lồng nhau?

Nó phụ thuộc vào mục tiêu của bạn là gì.

  • Nói chung, bạn nên rất , rất cẩn thận về việc lựa chọn mô hình (xem ví dụ câu trả lời này hoặc bài đăng này hoặc chỉ Google "Mitchell từng bước" ...).
  • Nếu bạn quan tâm đến việc giá trị p của bạn có ý nghĩa (nghĩa là bạn đang thực hiện kiểm tra giả thuyết xác nhận), bạn không nên thực hiện lựa chọn mô hình. Tuy nhiên : tôi không rõ liệu các quy trình lựa chọn mô hình có quá tệ hay không nếu bạn thực hiện lựa chọn mô hình trên các phần không tập trung của mô hình , ví dụ: thực hiện lựa chọn mô hình trên các hiệu ứng ngẫu nhiên nếu mối quan tâm chính của bạn là suy luận về các hiệu ứng cố định.
  • Không có thứ gọi là "đưa tất cả các mô hình vào một thử nghiệm tỷ lệ khả năng" - thử nghiệm tỷ lệ khả năng là một quy trình theo cặp. Nếu bạn muốn thực hiện lựa chọn mô hình (ví dụ) về các hiệu ứng ngẫu nhiên, tôi có thể khuyên bạn nên sử dụng phương pháp "tất cả cùng một lúc" bằng cách sử dụng tiêu chí thông tin như trong ví dụ này - rằng ít nhất tránh được một số vấn đề của cách tiếp cận từng bước (nhưng không phải là lựa chọn mô hình nói chung hơn).
  • Barr và cộng sự. Tạp chí Bộ nhớ và Ngôn ngữ "Giữ cho nó tối đa" (doi: 10.1016 / j.jml.2012.11.001) sẽ khuyến nghị sử dụng mô hình tối đa (chỉ).
  • Shravan Vasishth không đồng ý , cho rằng các mô hình như vậy sẽ bị thiếu năng lượng và do đó có vấn đề trừ khi bộ dữ liệu rất lớn (và tỷ lệ nhiễu tín hiệu cao)
  • Một cách tiếp cận hợp lý khác là phù hợp với một mô hình lớn nhưng hợp lý và sau đó, nếu sự phù hợp là số ít, hãy loại bỏ các điều khoản cho đến khi nó không còn nữa
  • Với một số cảnh báo (được liệt kê trong Câu hỏi thường gặp về GLMM ), bạn có thể sử dụng tiêu chí thông tin để so sánh các mô hình không lồng nhau với các hiệu ứng ngẫu nhiên khác nhau (mặc dù Brian Ripley không đồng ý: xem phần dưới của trang 6 tại đây )

Trước tiên, có nên tìm cấu trúc hiệu ứng cố định phù hợp và sau đó là cấu trúc hiệu ứng ngẫu nhiên thích hợp hoặc theo cách khác (tôi đã tìm thấy tài liệu tham khảo cho cả hai tùy chọn ...)?

Tôi không nghĩ có ai biết. Xem câu trả lời trước về lựa chọn mô hình nói chung hơn. Nếu bạn có thể xác định mục tiêu của mình đủ rõ ràng (điều mà ít người làm), câu hỏi có thể trả lời được. Nếu bạn có tài liệu tham khảo cho cả hai tùy chọn, sẽ rất hữu ích khi chỉnh sửa câu hỏi của bạn để bao gồm chúng ... (Đối với giá trị của nó, ví dụ này (đã được trích dẫn ở trên) sử dụng tiêu chí thông tin để chọn phần hiệu ứng ngẫu nhiên, sau đó chọn eschews trên phần hiệu ứng cố định của mô hình.

Cách báo cáo kết quả được đề nghị là gì? Báo cáo giá trị p từ thử nghiệm tỷ lệ khả năng đăng nhập so sánh mô hình hỗn hợp đầy đủ (với hiệu ứng trong câu hỏi) với mô hình giảm (không có hiệu ứng trong câu hỏi). Hoặc tốt hơn là sử dụng thử nghiệm tỷ lệ khả năng đăng nhập để tìm mô hình phù hợp nhất và sau đó sử dụng lmerTest để báo cáo giá trị p từ các hiệu ứng trong mô hình phù hợp nhất?

Đây là (than ôi) một câu hỏi khó. Nếu bạn báo cáo tác động bên lề theo báo cáo của lmerTest, bạn phải lo lắng về lề (ví dụ, cho dù các ước tính về những ảnh hưởng chính của ABcó ý nghĩa khi có một A-by- Btương tác trong mô hình); Đây là một con giun khổng lồ, nhưng có phần giảm nhẹ nếu bạn sử dụng contrasts="sum"theo khuyến nghị của afex::mixed(). Thiết kế cân bằng giúp một chút quá. Nếu bạn thực sự muốn viết lên tất cả các vết nứt này, tôi nghĩ tôi sẽ khuyên bạn nên afex::mixedcung cấp cho bạn đầu ra tương tự lmerTest, nhưng cố gắng xử lý các vấn đề này.


12

Cập nhật tháng 5 năm 2017 : Hóa ra, một loạt những gì tôi đã viết ở đây là loại sai . Một số cập nhật được thực hiện trong suốt bài viết.


Tôi đồng ý rất nhiều với những gì đã được Ben Bolker nói (cảm ơn vì đã hét to afex::mixed()) nhưng hãy để tôi thêm một vài suy nghĩ chung chung và cụ thể hơn về vấn đề này.

Tập trung vào các hiệu ứng cố định và ngẫu nhiên và cách báo cáo kết quả

Đối với loại nghiên cứu thử nghiệm được trình bày trong tập dữ liệu mẫu từ Jonathan Baron, bạn sử dụng câu hỏi quan trọng thường là liệu một yếu tố thao túng có ảnh hưởng tổng thể hay không . Ví dụ, chúng ta có tìm thấy một hiệu ứng chính hoặc tương tác tổng thể Taskkhông? Một điểm quan trọng là trong các tập dữ liệu đó, tất cả các yếu tố đều nằm dưới sự kiểm soát hoàn toàn thử nghiệm và được chỉ định ngẫu nhiên. Do đó, trọng tâm của sự quan tâm thường là các hiệu ứng cố định.
Ngược lại, các thành phần hiệu ứng ngẫu nhiên có thể được xem là tham số "phiền toái" thu được phương sai hệ thống (nghĩa là sự khác biệt giữa các cá nhân về kích thước của hiệu ứng) không nhất thiết quan trọng đối với câu hỏi chính. Từ quan điểm này, đề xuất sử dụng cấu trúc hiệu ứng ngẫu nhiên tối đa như được ủng hộ bởi Barr et al. theo sau một cách tự nhiên. Thật dễ dàng để tưởng tượng rằng một thao tác thử nghiệm không ảnh hưởng đến tất cả các cá nhân theo cùng một cách chính xác và chúng tôi muốn kiểm soát điều này. Mặt khác, số lượng các yếu tố hoặc cấp độ thường không quá lớn do đó nguy cơ quá mức có vẻ tương đối nhỏ.

Do đó, tôi sẽ làm theo gợi ý của Barr et al. và chỉ định cấu trúc hiệu ứng ngẫu nhiên tối đa và báo cáo thử nghiệm các hiệu ứng cố định làm kết quả chính của tôi. Để kiểm tra các hiệu ứng cố định, tôi cũng đề nghị sử dụng afex::mixed()vì nó báo cáo các thử nghiệm về hiệu ứng hoặc yếu tố (thay vì kiểm tra các tham số) và tính toán các thử nghiệm đó theo cách hơi hợp lý (ví dụ: sử dụng cùng cấu trúc hiệu ứng ngẫu nhiên cho tất cả các mô hình trong đó hiệu ứng duy nhất được loại bỏ, sử dụng độ tương phản tổng bằng không, cung cấp các phương pháp khác nhau để tính giá trị p , ...).

Những gì về dữ liệu ví dụ

Vấn đề với dữ liệu mẫu mà bạn đưa ra là đối với tập dữ liệu này, cấu trúc hiệu ứng ngẫu nhiên tối đa dẫn đến một mô hình không bão hòa vì chỉ có một điểm dữ liệu trên mỗi ô của thiết kế:

> 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

Do đó, lmercuộn cảm trên cấu trúc hiệu ứng ngẫu nhiên tối đa:

> 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

Thật không may, có kiến ​​thức của tôi không có cách nào để thỏa thuận với vấn đề này. Nhưng hãy để tôi phác thảo và thảo luận về một số:

  1. Một giải pháp đầu tiên có thể là loại bỏ độ dốc ngẫu nhiên cao nhất và kiểm tra các hiệu ứng cho mô hình này:

    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

    Tuy nhiên, giải pháp này hơi đặc biệt và không quá thúc đẩy.

    Cập nhật tháng 5 năm 2017: Đây là cách tiếp cận tôi hiện đang chứng thực. Xem bài đăng trên blog nàybản nháp của chương tôi là đồng tác giả , phần "Cấu trúc hiệu ứng ngẫu nhiên cho các thiết kế ANOVA truyền thống".

  2. Một giải pháp thay thế (và một giải pháp có thể được xem là được ủng hộ bởi cuộc thảo luận của Barr và cộng sự) có thể là luôn luôn loại bỏ các sườn dốc ngẫu nhiên để đạt hiệu quả nhỏ nhất. Tuy nhiên, điều này có hai vấn đề: (1) Chúng ta sử dụng cấu trúc hiệu ứng ngẫu nhiên nào để tìm ra hiệu ứng nhỏ nhất là gì và (2) R miễn cưỡng loại bỏ hiệu ứng bậc thấp như hiệu ứng chính nếu hiệu ứng bậc cao hơn như hiệu ứng tương tác của hiệu ứng này là hiện tại (xem ở đây ). Kết quả là người ta sẽ cần phải thiết lập cấu trúc hiệu ứng ngẫu nhiên này bằng tay và truyền ma trận mô hình được xây dựng như vậy cho cuộc gọi lmer.

  3. Một giải pháp thứ ba có thể là sử dụng một tham số thay thế của phần hiệu ứng ngẫu nhiên, cụ thể là phần tương ứng với mô hình RM-ANOVA cho dữ liệu này. Thật không may (?), lmerKhông cho phép "phương sai âm" vì vậy tham số hóa này không chính xác tương ứng với RM-ANOVA cho tất cả các bộ dữ liệu , xem thảo luận tại đây và các nơi khác (ví dụ ở đâyở đây ). "Lmer-ANOVA" cho các dữ liệu này sẽ là:

    > 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

Với tất cả các vấn đề này, tôi chỉ đơn giản là không sử dụng lmerđể phù hợp với các tập dữ liệu mà chỉ có một điểm dữ liệu trên mỗi ô của thiết kế trừ khi có sẵn giải pháp thỏa thuận hơn cho vấn đề về cấu trúc hiệu ứng ngẫu nhiên tối đa.

  1. Thay vào đó, tôi cũng sẽ vẫn có thể sử dụng ANOVA cổ điển. Sử dụng một trong các hàm bao car::Anova()trong afexkết quả sẽ là:

    > 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

    Lưu ý rằng afexbây giờ cũng cho phép trả về mô hình được trang bị có aovthể được chuyển qua lsmeanscho các bài kiểm tra sau hoc (nhưng để kiểm tra các hiệu ứng mà các hiệu ứng được báo cáo car::Anovavẫn hợp lý hơn):

    > 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 

(+1) "Thật không may, lmer không cho phép tương quan tiêu cực" - không nên đây là "không cho phép phương sai âm"? Ngoài ra, cập nhật lại: bạn có thể nói rõ hơn về chính xác "sai-ish" trong câu trả lời này là gì không?
amip nói rằng Phục hồi Monica

(Tôi đã đọc bài đăng được liên kết và có vẻ như thông điệp chính ở đây là cách tiếp cận được liệt kê ở đây là số 1 nhiều hơn bạn nghĩ. Đúng vậy? Vẫn chưa rõ nếu bây giờ bạn nghĩ rằng nó thích hợp hơn # 3 hoặc # 4 ).
amip nói rằng Phục hồi lại

@amoeba Vâng bạn đúng rồi. Tôi đã quá lười biếng để cập nhật câu trả lời của tôi ở đây cho phù hợp.
Henrik

@amoeba Và bạn cũng đúng tương quan. lmerkhông cho phép phương sai âm nhưng rõ ràng là tương quan âm giữa các thành phần phương sai.
Henrik

1
Tôi đã thực hiện một số chỉnh sửa, bạn có thể muốn đảm bảo rằng tôi đã không đại diện sai cho bạn.
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.