Làm thế nào để xác định hiệu ứng ngẫu nhiên trong lme?


8

Tôi đã tìm kiếm trực tuyến này trong nhiều giờ nhưng không có bài viết trực tuyến nào là những gì tôi đang tìm kiếm. Câu hỏi của tôi rất dễ thực hiện trong quy trình hỗn hợp của SAS Proc nhưng tôi không chắc làm thế nào để thực hiện nó trong các gói lme và / hoặc lmer. Giả sử, tôi có một mô hình, y=μ+α+β+αβ+e, Ở đâu α là cố định nhưng βαβlà ngẫu nhiên. Mã R của tôi là

 f1 = lme(y ~ factor(a), data = mydata,
     random = list(factor(b) = ~ 1, factor(a):factor(b) = ~ 1))

Lỗi: không mong muốn =trong:

 f1 = lme(y ~ factor(a), data = mydata,
          random = list(factor(a) =  

Ai đó có thể vui lòng cho tôi biết làm thế nào để xác định các hiệu ứng ngẫu nhiên trong lme? Rất cám ơn trước


Nó giúp sử dụng dputđể có được mã cần thiết để tạo lại dữ liệu của bạn. Từ nhận xét bạn để lại, kết quả làstructure(list(method = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"), day = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L), .Label = c("1", "2", "3", "4"), class = "factor"), level = c(142.3, 144, 134.9, 146.3, 148.6, 156.5, 152, 151.4, 142.9, 147.4, 125.9, 127.6, 135.5, 138.9, 142.9, 142.3)), .Names = c("method", "day", "level"), row.names = c(NA, -16L), class = "data.frame")
Aaron rời khỏi Stack Overflow

Câu trả lời:


12

Hãy thử điều này, đó là một cách tiêu chuẩn để thực hiện một âm mưu phân chia. Ký hiệu /có nghĩa là phương pháp đó được lồng trong ngày.

lme(level~method, random=~1|day/method, data=d)

Xin chào Aaron, Cảm ơn bạn rất nhiều. Đầu ra R của bạn hoàn toàn giống với đầu ra SAS và sách giáo khoa. Nhưng tại sao chúng ta phải sử dụng "lồng" trong cú pháp R. Bởi vì trong sách giáo khoa, nó nói rõ rằngαβlà một thuật ngữ tương tác ngẫu nhiên và tôi cũng sử dụng thuật ngữ tương tác ngẫu nhiên trong SAS. Bạn có thể vui lòng cho tôi biết tại sao / làm thế nào để chỉ định một hiệu ứng tương tác ngẫu nhiên trong lme, nếu có thể? Rất cám ơn Tu.2
Tu.2

3
Câu hỏi của bạn không phải là về cú pháp R, đó là về ý nghĩa của việc lồng nhau. Nesting B trong A (với A / B) tạo ra hai biến A và tương tác giữa A và B, đó chính xác là những gì bạn mô tả.
Aaron rời Stack Overflow

Xin chào, đây là một lời giải thích tuyệt vời. Cảm ơn rât nhiều.
Tu.2

2

Nó sẽ giúp ích rất nhiều nếu bạn cung cấp data.frame. Bây giờ không rõ yếu tố nhóm là gì. Tôi đánh giá rằng nó làβ. Sau đó, trong lmeký hiệu, mô hình của bạn nên được viết như sau:

lme(y~a,random=~a|b, data=mydata)

Xin chào mpiktas, cảm ơn bạn đã phản hồi nhưng kết quả R rất khác so với quy trình hỗn hợp của SAS Proc. Đầu ra của SAS giống với câu trả lời trong sách giáo khoa (Kuehk RO. 1999. Thiết kế thí nghiệm: nguyên tắc thống kê của thiết kế và phân tích nghiên cứu, ấn bản lần 2). Tập dữ liệu là phương pháp ngày cấp 1 1 142.3 1 1 144.0 1 2 134.9 1 2 146.3 1 3 148.6 1 3 156.5 1 4 152.0 1 4 151.4 2 1 142.9 2 1 147.4 2 2 125.9 2 2 127.6 2 3 135.5 2 3 138.9 2 4 142,9 2 4
142.3
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.