R lmerTest và các thử nghiệm về nhiều hiệu ứng ngẫu nhiên


8

Tôi tò mò về cách gói lmerTest trong R, cụ thể là chức năng "rand", xử lý các thử nghiệm về hiệu ứng ngẫu nhiên. Xem xét ví dụ từ pdf lmerTest trên CRAN sử dụng bộ dữ liệu "cà rốt" tích hợp:

#import lme4 package and lmerTest package
  library(lmerTest)
#lmer model with correlation between intercept and slopes
#in the random part
  m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), data=carrots)
# table with p-values for the random effects
  rand(m)

Mô hình chỉ định hai phương sai ngẫu nhiên (chặn và "Sens2"), cả hai được lồng trong "Người tiêu dùng" và hiệp phương sai giữa phần chặn và "Sens2". Đầu ra (không được cung cấp trong pdf) cho các thành phần ngẫu nhiên từ lmer chạy như sau:

Random effects:
Groups   Name        Variance Std.Dev. Corr
Consumer (Intercept) 0.195168 0.44178      
         sens2       0.002779 0.05271  0.18
Residual             1.070441 1.03462      
Number of obs: 1233, groups:  Consumer, 103

Đó là dự kiến ​​đưa ra các đặc điểm kỹ thuật mô hình. Đầu ra từ hàm rand sau:

Analysis of Random effects Table:
                 Chi.sq Chi.DF p.value  
sens2:Consumer   6.99      2    0.03 *
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Đưa ra bảng hiệu ứng ngẫu nhiên, tôi nghĩ rằng lmerTest đang đánh giá độ dốc ngẫu nhiên cho "Sens2" nhưng nó cũng có thể là hiệp phương sai giữa độ dốc và đánh chặn. Các thử nghiệm cho đánh chặn ngẫu nhiên không được bao gồm. Tôi đã ước tính một mô hình khác chỉ có đánh chặn ngẫu nhiên (không có độ dốc ngẫu nhiên hoặc hiệp phương sai) và đã nhận được những điều sau đây từ câu lệnh "rand":

Analysis of Random effects Table:
           Chi.sq Chi.DF p.value    
Consumer   79.6      1  <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Thử nghiệm cho phương sai ngẫu nhiên liên quan đến đánh chặn được cung cấp ở đây. Vì vậy, có ai biết thử nghiệm của các thành phần phương sai ngẫu nhiên từ mô hình đầu tiên là thử nghiệm gì không? Có cách nào tôi không thể nhìn thấy từ tài liệu để kiểm tra cả ba thành phần ngẫu nhiên không? Tôi nên đề cập đến trang kiểm tra rand tại Inside-R.org có mô tả khó hiểu sau (mà tôi không thấy trong pdf trên CRAN):

Values
Produces a data frame with tests for the random terms being non-significant.

Note
If the effect has random slopes, then first the correlations between itercept [sic] and slopes are checked for significance

Có thể mô tả "Giá trị" có ngược và chỉ có tác dụng đáng kể được báo cáo? Tôi đã chạy thủ tục "bước" và không rõ liệu cả ba thành phần phương sai ngẫu nhiên có được xem xét khi chạy hay không.

Bất kỳ cái nhìn sâu sắc về vấn đề này được đánh giá rất cao.

Joe

EDIT: Cốt truyện dày lên một chút. Tôi nhận ra rằng tôi đã kiểm tra cấu trúc hiệp phương sai "đường chéo" (không có hiệp phương sai giữa giao thoa ngẫu nhiên và độ dốc) bằng cách sử dụng cách sau (dựa trên bài đăng xuất sắc này ):

m2 <- lmer(Preference ~ sens2+Homesize+(1|Consumer)+(0+sens2|Consumer), data=carrots)

Đầu ra nhỏ hơn cho phương sai ngẫu nhiên, sử dụng VarCorr, như sau:

Groups     Name        Std.Dev.
Consumer   (Intercept) 0.441807
Consumer.1 sens2       0.052719
Residual               1.034618

Mà bỏ qua chính xác hiệp phương sai (tương quan) giữa độ dốc ngẫu nhiên và đánh chặn. Chạy chức năng "rand" từ lmerTest tạo ra đầu ra sau:

Analysis of Random effects Table:
                 Chi.sq Chi.DF p.value    
Consumer         84.4      1  <2e-16 ***
sens2:Consumer    6.3      1    0.01 *  
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Vì vậy, nó sẽ kiểm tra hai thành phần phương sai cho mô hình này. Nhưng câu hỏi vẫn còn liên quan đến mô hình đầu tiên với hiệp phương sai ngẫu nhiên. Thử nghiệm lmerTest là gì?

Câu trả lời:


2

Các tài liệu về lmerTest::rand()chức năng chắc chắn là ngắn gọn.

(1 | Consumer) H0:σα2= =0αj[Tôi]~N(μα,σα2)j= =1,Giáo dục,J


elimRandEffsαj[Tôi]α

rand0<rqrand


Vì vậy, trực giác của bạn rằng "lmerTest đang đánh giá độ dốc ngẫu nhiên cho 'Sens2' [và] cũng có thể là hiệp phương sai giữa độ dốc và đánh chặn" là chính xác trong randcác thử nghiệm nếu phương sai hiệu ứng ngẫu nhiên khác 0 đáng kể.

Nhưng không đúng khi nói rằng "không bao gồm thử nghiệm cho việc đánh chặn ngẫu nhiên". RE trong đặc tả đầu tiên của bạn:

 (1 + sens2 | Consumer) 

giả định mối tương quan khác không giữa phần chặn và độ dốc, nghĩa là chúng thay đổi cùng nhau và do đó rand()kiểm tra đặc tả đó dựa trên mô hình không có RE (nghĩa là giảm theo hồi quy cổ điển).

Đặc điểm kỹ thuật thứ hai

 (1  | Consumer) + (0 + sens2 | Consumer) 

đưa ra hai dòng đầu ra vì các hiệu ứng ngẫu nhiên có thể tách rời nhau. Ở đây randkiểm tra (ở hàng đầu ra thứ 1) một mô hình với phần chặn được cố định / gộp với độ dốc ngẫu nhiên so với thông số kỹ thuật của bạn. Ở hàng thứ 2, bài kiểm tra chống lại một dốc được gộp với một đánh chặn ngẫu nhiên. Vì vậy, giống như stepchức năng, randkiểm tra từng RE độc lập tại một thời điểm.

Tôi vẫn còn bối rối bởi bên trong-R.org lưu ý rằng

  Note
  If the effect has random slopes, then first the correlations between itercept [sic] and slopes are checked for significance

Điều đó không có trong tài liệu gói, vì vậy tôi không biết nó đến từ đâu và cũng không tìm thấy thử nghiệm như vậy trong đầu ra.

BIÊN TẬP

Tôi nghĩ rằng tôi đã sai về mô hình null trong mô hình độ dốc / chặn tương quan như trong đặc tả đầu tiên. Các steptài liệu nói:

trong phần ngẫu nhiên nếu có mối tương quan giữa độ dốc và giao thoa, mô hình đơn giản hóa sẽ chỉ chứa một giao thoa. Đó là nếu phần ngẫu nhiên của mô hình ban đầu là (1 + c | f), thì mô hình này được so sánh với (1 | f) bằng cách sử dụng LRT.

Tôi tưởng tượng nguyên tắc tương tự là tại nơi làm việc cho rand.


1

Các tài liệu lmerTest mô tả rand()như năng suất

"... một vectơ thống kê Chi bình phương và giá trị p tương ứng của các phép thử tỷ lệ khả năng."

Vì vậy, tôi tin rằng nó là một thử nghiệm tỷ lệ khả năng. Đó là, đơn giản, việc so sánh một mô hình với một hiệu ứng ngẫu nhiên nhất định với cùng một mô hình mà không có hiệu ứng ngẫu nhiên.

Liên quan đến ví dụ, rand()so sánh mô hình với độ dốc ngẫu nhiên của Sens2 trong Consumer với một mô hình có khả năng chặn ngẫu nhiên của Consumer .

Tính hai mô hình:

m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), data=carrots, REML = FALSE)
m2 <- lmer(Preference ~ sens2+Homesize+(1|Consumer), data=carrots, REML = FALSE)

Kiểm tra đầu ra của rand(m):

rand(m)
Analysis of Random effects Table:
           Chi.sq Chi.DF p.value  
sens2:Consumer   6.99      2    0.03 *

Thực hiện kiểm tra tỷ lệ khả năng so sánh mô hình m với mô hình m2 :

anova(m, m2, test = "Chi")
   Df  AIC    BIC    logLik  deviance  Chisq   Chi Df Pr(>Chisq)  
m   5 3751.4 3777.0 -1870.7   3741.4                           
m2  7 3748.7 3784.5 -1867.4   3734.7   6.6989    2     0.0351 *

Thật vậy, anova() Chisq hơi ít hơn so với rand(m), nhưng về mặt khác, đầu ra về cơ bản là giống hệt nhau. Có lẽ cách giải thích của tôi không chính xác nhưng tôi luôn cho rằng đây là cách rand()hàm tạo ra đầu ra của 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.