Làm thế nào để có được một giá trị p và giá trị hiệu ứng tổng thể của hoàng tử cho một yếu tố phân loại trong mô hình hỗn hợp (lme4)?


28

Tôi muốn nhận giá trị p và kích thước hiệu ứng của biến phân loại độc lập (với nhiều cấp độ) - đó là "tổng thể" chứ không phải cho từng cấp riêng biệt, như đầu ra bình thường từ lme4trong R. Nó giống như điều mọi người báo cáo khi chạy ANOVA.

Làm thế nào tôi có thể nhận được điều này?


Bạn muốn thống kê chính xác những gì? Bạn có thể sử dụng anova()hàm để có được một bảng anova với các mô hình hỗn hợp tuyến tính giống như với các mô hình tuyến tính.
smillig

Tôi đã thử anova () nhưng nó mang lại cho tôi giá trị Df, Sum Sq, Mean Sq và F. Tôi không thấy kích thước hiệu ứng và giá trị p. Bạn có bất cứ ý tưởng về điều này?
user3288202

1
Theo kích thước hiệu ứng, bạn có nghĩa là một cái gì đó tương đương với ? Đối với các giá trị p, có một cuộc tranh luận lâu dài và đáng kể xung quanh ước tính của họ và xung quanh việc thực hiện chúng trong . Hãy xem cuộc thảo luận trong câu hỏi này để biết thêm chi tiết. R2lme4
smillig

Cảm ơn các liên kết, Smilig. Điều đó có nghĩa là vì có vấn đề với tính toán giá trị p, nên kích thước hiệu ứng của yếu tố nói chung cũng là một vấn đề?
user3288202

Chúng không phải là vấn đề liên quan trực tiếp. Tuy nhiên, bạn nên nhớ rằng mô hình hỗn hợp tuyến tính không hoạt động chính xác như mô hình tuyến tính mà không có hiệu ứng ngẫu nhiên, do đó, một biện pháp có thể phù hợp với mô hình tuyến tính không nhất thiết phải khái quát hóa cho mô hình hỗn hợp.
smillig

Câu trả lời:


48

Cả hai khái niệm bạn đề cập (giá trị p và kích thước hiệu ứng của mô hình hỗn hợp tuyến tính) đều có vấn đề cố hữu. Liên quan đến kích thước hiệu ứng , trích dẫn Doug Bates, tác giả ban đầu của lme4,

Giả sử rằng người ta muốn xác định thước đo , tôi nghĩ rằng có thể đưa ra một đối số để xử lý tổng bình phương còn lại bị phạt từ mô hình hỗn hợp tuyến tính giống như cách chúng ta xem xét tổng bình phương còn lại từ mô hình tuyến tính. Hoặc người ta có thể chỉ sử dụng tổng bình phương còn lại mà không bị phạt hoặc tổng bình phương tối thiểu có thể đạt được từ một tập hợp các thuật ngữ nhất định, tương ứng với ma trận chính xác vô hạn. Tôi thực sự không biết. Nó phụ thuộc vào những gì bạn đang cố gắng để đặc trưng.R2

Để biết thêm thông tin, bạn có thể nhìn vào chủ đề này , chủ đề này , và thông điệp này . Về cơ bản, vấn đề là không có một phương pháp nào được thống nhất để đưa vào và phân tách phương sai từ các hiệu ứng ngẫu nhiên trong mô hình. Tuy nhiên, có một vài tiêu chuẩn được sử dụng. Nếu bạn có một cái nhìn về Wiki được thiết lập cho / bởi danh sách gửi thư mô hình hỗn hợp r-sig , có một vài cách tiếp cận được liệt kê.

Một trong những phương pháp được đề xuất xem xét mối tương quan giữa các giá trị được trang bị và quan sát được. Điều này có thể được thực hiện trong R theo đề xuất của Jarrett Byrnes trong một trong những chủ đề đó:

r2.corr.mer <- function(m) {
  lmfit <-  lm(model.response(model.frame(m)) ~ fitted(m))
  summary(lmfit)$r.squared
}

Vì vậy, ví dụ, giả sử chúng tôi ước tính mô hình hỗn hợp tuyến tính sau:

set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
                g = sample(letters[1:4], 250, replace=T)       )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
#    Data: d
# REML criterion at convergence: 744.4
# 
# Scaled residuals: 
#     Min      1Q  Median      3Q     Max 
# -2.7808 -0.6123 -0.0244  0.6330  3.5374 
# 
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr 
#  g        (Intercept) 0.006218 0.07885       
#           z           0.001318 0.03631  -1.00
#  Residual             1.121439 1.05898       
# Number of obs: 250, groups: g, 4
# 
# Fixed effects:
#             Estimate Std. Error t value
# (Intercept)  0.02180    0.07795   0.280
# x            0.04446    0.06980   0.637
# 
# Correlation of Fixed Effects:
#   (Intr)
# x -0.005

Chúng ta có thể tính kích thước hiệu ứng bằng cách sử dụng hàm được xác định ở trên:

r2.corr.mer(fm1)
# [1] 0.0160841

Ω02

1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721  # Usually, it would be even closer to the value above

Đối với các giá trị p , đây là một vấn đề gây tranh cãi hơn nhiều (ít nhất là trong cộng đồng R / lme4). Xem các cuộc thảo luận trong các câu hỏi ở đây , ở đâyở đây trong số nhiều người khác. Tham khảo trang Wiki một lần nữa, có một vài cách tiếp cận để kiểm tra các giả thuyết về hiệu ứng trong các mô hình hỗn hợp tuyến tính. Được liệt kê từ "tệ nhất đến tốt nhất" (theo các tác giả của trang Wiki mà tôi tin bao gồm Doug Bates cũng như Ben Bolker, người đóng góp rất nhiều ở đây):

  • Kiểm tra Wald Z
  • Đối với các LMM cân bằng, lồng nhau trong đó df có thể được tính toán: Wald t-tests
  • Kiểm tra tỷ lệ khả năng, bằng cách thiết lập mô hình sao cho tham số có thể được tách / bỏ (thông qua anovahoặc drop1) hoặc thông qua các cấu hình khả năng tính toán
  • MCMC hoặc khoảng tin cậy bootstrap tham số

Họ đề xuất phương pháp lấy mẫu Monte Carlo chuỗi Markov và cũng liệt kê một số khả năng để thực hiện điều này từ phương pháp giả và đầy đủ Bayes, được liệt kê dưới đây.

Giả-Bayesian:

  • Lấy mẫu sau đại học, thường là (1) giả sử các linh mục phẳng và (2) bắt đầu từ MLE, có thể sử dụng ước lượng phương sai hiệp phương sai gần đúng để chọn phân phối ứng viên
  • Thông qua mcmcsamp (nếu có sẵn cho vấn đề của bạn: tức là các LMM có hiệu ứng ngẫu nhiên đơn giản - không phải GLMM hoặc hiệu ứng ngẫu nhiên phức tạp)
    Qua pvals.fnctrong languageRgói, một trình bao bọc cho mcmcsamp)
  • Trong AD Model Builder, có thể thông qua glmmADMB gói (sử dụng mcmc=TRUEtùy chọn) hoặc R2admbgói (viết định nghĩa mô hình của riêng bạn trong Trình tạo mô hình AD) hoặc bên ngoài R
  • Thông qua simchức năng từ armgói (chỉ mô phỏng hệ số sau cho các hệ số beta (hiệu ứng cố định)

Cách tiếp cận hoàn toàn Bayes:

  • Qua MCMCglmmgói
  • Sử dụng glmmBUGS(trình bao bọc WinBUGS / giao diện R của )
  • Sử dụng JAGS / WinBUGS / OpenBUGS, v.v., thông qua rjags/ r2jags/ R2WinBUGS/BRugs gói

Để minh họa cho thấy điều này có thể trông như thế nào, bên dưới là MCMCglmmước tính bằng cách sử dụng MCMCglmmgói mà bạn sẽ thấy mang lại kết quả tương tự như mô hình trên và có một số loại giá trị p Bayesian:

library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval  = 10
#  Sample size  = 1000 
# 
#  DIC: 697.7438 
# 
#  G-structure:  ~us(z):g
# 
#       post.mean  l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268    397.6
# 
#  R-structure:  ~units
# 
#       post.mean l-95% CI u-95% CI eff.samp
# units    0.9466   0.7926    1.123     1000
# 
#  Location effects: y ~ x 
# 
#             post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept)  -0.04936 -0.17176  0.07502     1000 0.424
# x            -0.07955 -0.19648  0.05811     1000 0.214

Tôi hy vọng điều này sẽ giúp phần nào. Tôi nghĩ rằng lời khuyên tốt nhất cho ai đó bắt đầu với các mô hình hỗn hợp tuyến tính và cố gắng ước tính chúng trong R là đọc các faq Wiki từ đó phần lớn thông tin này được rút ra. Nó là một nguồn tài nguyên tuyệt vời cho tất cả các loại chủ đề hiệu ứng hỗn hợp từ cơ bản đến nâng cao và từ mô hình hóa đến cốt truyện.


Cảm ơn rất nhiều smilig. Vì vậy, tôi có thể không báo cáo kích thước hiệu ứng cho các tham số tổng thể.
user3288202

r2

3
+6, ấn tượng rõ ràng, toàn diện, và chú thích kỹ lưỡng.
gung - Phục hồi Monica

1
Ngoài ra, bạn có thể xem gói afex và đặc biệt là hàm hỗn hợp. xem tại đây
startedneR

6

Liên quan đến việc tính toán các giá trị ý nghĩa ( p ), Luke (2016) Đánh giá tầm quan trọng trong các mô hình hiệu ứng hỗn hợp tuyến tính trong R báo cáo rằng phương pháp tối ưu là xấp xỉ Kenward-Roger hoặc Satterthwaite cho mức độ tự do (có sẵn trong R với các gói như lmerTesthoặc afex).

trừu tượng

Các mô hình hiệu ứng hỗn hợp đang được sử dụng thường xuyên hơn trong phân tích dữ liệu thực nghiệm. Tuy nhiên, trong gói lme4 trong R, các tiêu chuẩn để đánh giá tầm quan trọng của các hiệu ứng cố định trong các mô hình này (nghĩa là thu được giá trị p) có phần mơ hồ. Có nhiều lý do cho việc này, nhưng trong nhiều trường hợp, các nhà nghiên cứu đang sử dụng các mô hình này được yêu cầu báo cáo giá trị p, một số phương pháp để đánh giá tầm quan trọng của đầu ra mô hình là cần thiết. Bài viết này báo cáo kết quả mô phỏng cho thấy hai phương pháp phổ biến nhất để đánh giá tầm quan trọng, sử dụng các thử nghiệm tỷ lệ khả năng và áp dụng phân phối z cho các giá trị Wald t từ đầu ra mô hình (t-as-z), có phần chống bảo thủ, đặc biệt là đối với kích thước mẫu nhỏ hơn. Các phương pháp khác để đánh giá ý nghĩa,Kết quả của các mô phỏng này cho thấy tỷ lệ lỗi Loại 1 gần nhất với 0,05 khi các mô hình được trang bị bằng cách sử dụng REML và giá trị p được lấy bằng các xấp xỉ Kenward-Roger hoặc Satterthwaite, vì các xấp xỉ này đều tạo ra tỷ lệ lỗi Loại 1 chấp nhận được ngay cả khi nhỏ hơn mẫu.

(nhấn mạnh thêm)


4
+1 Cảm ơn bạn đã chia sẻ liên kết này. Tôi sẽ chỉ nhận xét ngắn gọn rằng xấp xỉ Kenward-Roger có sẵn trong lmerTestgói.
amip nói rằng Phục hồi lại

5

Tôi sử dụng lmerTestgói. Điều này thuận tiện bao gồm ước tính giá trị p trong anova()đầu ra cho các phân tích MLM của tôi, nhưng không đưa ra kích thước hiệu ứng cho các lý do được đưa ra trong các bài đăng khác ở đây.


1
Trong trường hợp của tôi, tôi thích so sánh cặp bằng cách sử dụng lsmeans vì nó cho tôi tất cả các cặp tương phản bao gồm cả giá trị p. Nếu tôi sử dụng lmerTest, tôi sẽ phải chạy mô hình sáu lần với các đường cơ sở khác nhau để xem tất cả các cặp tương phản.
user3288202
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.