sự khác biệt lớn giữa các ước tính của hồi quy nhị thức khi bao gồm cả hiệu ứng ngẫu nhiên so với khi không


7

Tôi đang cố gắng ước tính điểm trung bình cho hai nhóm học sinh. Tôi sử dụng mô hình hồi quy nhị thức. Các total_anslà câu hỏi tổng họ đã đã trả lời, mà có thể khác nhau cho sinh viên khác nhau.

Mô hình 1 trực tiếp ước tính

model <- glm(cbind(total_correct, total_ans-total_correct) ~ student_type,family= binomial, data = df)

Call:  glm(formula = cbind(total_correct, total_ans - total_correct) ~ student_type, family = binomial, data = df)

Coefficients:
                  (Intercept)  student_group_2  
                      -1.9684           0.2139  

Degrees of Freedom: 1552 Total (i.e. Null);  1551 Residual Null
Deviance:       1480  Residual Deviance: 1477   AIC: 1764


lsmeans(model,~ student_type, type="response")

 student_type           prob         SE df asymp.LCL asymp.UCL
 student_group_1   0.1225627 0.00654160 NA 0.1103074 0.1359715
 student_group_2   0.1474774 0.01275231 NA 0.1241918 0.1742602

Trong mô hình 2, tôi sử dụng một hiệu ứng ngẫu nhiên để giải thích tốt hơn cho các phương sai riêng lẻ.

model <- glmer(cbind(total_correct, total_ans-total_correct) ~ (1|student)  + student_type, family= binomial, data = sub_df, control=glmerControl(optimizer = "nloptwrap", calc.derivs = FALSE))

Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: cbind(total_correct, total_ans - total_correct) ~ (1 | student) +  
    student_type
   Data: sub_df
      AIC       BIC    logLik  deviance  df.resid 
1653.9049 1669.9488 -823.9525 1647.9049      1550 
Random effects:
 Groups Name        Std.Dev.
 student (Intercept) 1.881   
Number of obs: 1553, groups:  author, 1553
Fixed Effects:
                  (Intercept)  student_group_2  
                      -3.0571   0.3915  


lsmeans(model,~ student_type, type="response")

 student_type            prob          SE df  asymp.LCL asymp.UCL
 student_group_1   0.04491007 0.004626728 NA 0.03666574 0.0549025
 student_group_2   0.06503249 0.015117905 NA 0.04097546 0.1017156

Tôi ngạc nhiên rằng có một sự khác biệt lớn như vậy giữa các kết quả trong hai nhóm. Điều gì có thể là lý do cho điều này?

Thông tin thêm: nhóm 1 có 1434 sinh viên, nhóm 2 có 119 sinh viên. đây là những nhóm xuất hiện tự nhiên


3
@PeterFlom đó chỉ là một cách để xác định số lần thành công, số lần thất bại trong glm. tổng của cả hai là tổng số thử nghiệm
user926321

3
Lý do chính khiến các kết quả khác nhau rất nhiều là do mô hình thứ hai chứng minh đầu tiên là sai hoàn toàn. Giả thuyết thứ nhất giả sử đáp ứng nhị thức với xác suất không đổi trong mỗi nhóm, trong khi độ lệch chuẩn lớn của thành phần ngẫu nhiên (1.8) trong mô hình thứ hai cho thấy dữ liệu không phù hợp với giả định về xác suất không đổi. Biểu đồ tỷ lệ chính xác theo nhóm nên tiết lộ rõ ​​ràng. Một vài lô được chọn tốt của dữ liệu sẽ giúp làm sáng tỏ vấn đề này.
whuber

2
Chủ đề thú vị, mặc dù thiếu một thông tin chính: Học sinh trong mỗi nhóm đã trả lời bài kiểm tra nhiều lần, sao cho mỗi lần bạn ghi lại số câu trả lời đúng của chúng so với số câu hỏi đã trả lời? Nếu không, tôi không thấy lý do tại sao bạn sẽ bao gồm một hiệu ứng sinh viên ngẫu nhiên trong mô hình của bạn.
Isabella Ghement

1
Vấn đề khác là đây là những nhóm xuất hiện tự nhiên, vì vậy chúng có khả năng khác nhau theo nhiều cách (có thể giải thích sự khác biệt nhìn thấy giữa các nhóm). Nếu bạn có thể kiểm soát bất kỳ biến gây nhiễu nào mà bạn có thể đo được, điều đó có thể giúp giải thích kết quả của bạn.
Isabella Ghement

2
Nhận xét ngắn: lsmeans bị phản đối. Bạn nên chuyển sang emmeans. Cú pháp rất có thể sẽ gần giống nhau.
COOLSerdash

Câu trả lời:


4

Có đủ thông tin trong câu hỏi để làm rõ điều này. lsmeans chỉ đơn giản là sử dụng các hệ số để có được xác suất dự đoán của nhóm.

Vì vậy, đối với GLM, mô hình ngụ ý của OP là:

π^= =11+e-(-1.9684+0,2139×d)

Ở đâu d là một chỉ số cho thành viên trong nhóm 2. Vì vậy, xác suất dự đoán là: (1+e-(-1.9684))-1(1+e-(-1.9684+0,2139))-1cho nhóm 1 và 2 tương ứng. Những kết quả này trong xác suất dự đoán về12,25%14,75% tương ứng.

Đối với mô hình đa cấp (hoặc GLMM), mô hình ngụ ý của OP là:

π^= =11+e-(-3.0571+0,3915×d+1.881×bạn^)

Ở đâu bạn^là đánh chặn ngẫu nhiên được coi là tiêu chuẩn bình thường. Xác suất dự đoán từ lsmeans giả sử giá trị chặn ngẫu nhiên bằng không(bạn^= =0) dẫn đến: (1+e-(-3.0571))-1(1+e-(-3.0571+0,3915))-1cho nhóm 1 và 2 tương ứng. Những kết quả này trong xác suất dự đoán về4,49%6,50%tương ứng. Đây là các kết quả GLMM lsmeans.

Một vấn đề là việc đánh chặn trong GLMM là tỷ lệ thành công log-log dự kiến ​​cho một người "trung bình" so với người khác. Vì vậy, sử dụng điều này làm cơ sở để báo cáo toàn bộ mô hình là một vấn đề. Về hệ số khác, một gợi ý cho lý do tại sao hệ số chênh lệch nhóm tăng là chất lượng mô hình tốt hơn nên hệ số tăng, tìm kiếm có thể thu gọn trên trang web này hoặc xem Phân tích tổng hợp tỷ lệ cược về cơ bản là vô vọng? .

Để làm cho kết quả GLMM của lsmeans tương đương với kết quả GLM của lsmeans. Chúng ta phải sử dụng các giá trị quan sát của đánh chặn ngẫu nhiên,bạn^. Người ta có thể mô phỏng các lần chặn ngẫu nhiên để khớp với mô hình cụ thể của OP:

set.seed(12345)
u_hat <- rnorm(1553, 0, 1.881)
d <- c(rep(0, 1434), rep(1, 119))
# predicted log odds:
pred_log_odds <- -3.0571 + 0.3915 * d + u_hat
pred_prob <- plogis(pred_log_odds)
coef(lm(pred_prob ~ 0 + factor(d)))

factor(d)0 factor(d)1 
 0.1189244  0.1490395

Trong ví dụ mô phỏng này, các giá trị này gần hơn rất nhiều với kết quả GLM của lsmeans. Nếu bạn chạy một cái gì đó như cú pháp dưới đây trên dữ liệu của bạn:

lm(fitted(model) ~ 0 + df$student_type)

nơi modellà GLMM, bạn sẽ nhận được giá trị khá gần với các giá trị lsmeans. Tôi giả định rằng khi bạn gọi fitted()về glmer(), nó cũng bao gồm việc đánh chặn ngẫu nhiên và các giá trị được trả về là xác suất.


Trong tình huống của bạn khi các nhóm xảy ra một cách tự nhiên, một điều nữa cần khám phá trong dữ liệu là các phương sai nhóm khác nhau trên phần chặn ngẫu nhiên, do đó, một mô hình như:

glmer(cbind(total_correct, total_ans-total_correct) ~
  (0 + student_type || student) + student_type,
  family = binomial, data = sub_df,
  control = glmerControl(optimizer = "nloptwrap", calc.derivs = FALSE))

có thể đáng để khám phá kể từ bây giờ, bạn cho rằng phương sai đánh chặn ngẫu nhiên không khác nhau theo nhóm. Tôi đã sử dụng ||vì vậy lme4 không cố gắng tương quan giữa hai lần chặn ngẫu nhiên.


Tôi không biết rằng người ta có thể thêm một lần đánh chặn ngẫu nhiên cho mỗi sinh viên khi họ về cơ bản chỉ có một hàng trong dữ liệu. Nhưng tôi đang hợp lý hóa nó bằng cách giả định rằng thử nghiệm so với thất bại trên mỗi hàng lên tới một số hàng ở dạng dài.


1

Mô hình 1, hồi quy logistic không có hiệu ứng ngẫu nhiên:

LogTôit(Pr(Y= =1))= =Xβ

Chúng tôi biết MLE β^là không có triệu chứng không thiên vị. Nhưng

P^r(Y= =1)= =LogTôit-1(Xβ^)
là ước tính sai lệch của Pr(Y= =1), bởi vì tính phi tuyến tính của hàm logit. Nhưng không có triệu chứng là không thiên vị. Vì vậy, đối với mô hình 1,P^r(Y= =1)= =LogTôit-1(Xβ^) là chấp nhận được.

Mô hình 2, hồi quy logistic với đánh chặn ngẫu nhiên:

LogTôit(Pr(YTôij= =1))= =XTôijβ+γTôi
γ~N(0,σ2)

Trong tình huống này, lỗi phổ biến là

Pr(Y= =1|X)= =E(Y|X)= =E(LogTôit-1(Xβ+γTôi))= =LogTôit-1(E(Xβ+γTôi))= =LogTôit-1(Xβ)

Trong quá trình này, tính phi tuyến tính của hàm logit hoàn toàn bị thu hút.

Vì vậy, đầu ra sau đây là rất sai lệch. Nó đưa ra một ý tưởng rằng đối với học sinh nhóm 1, Xác suất sửa lỗi là 4,5%.

    student_type            prob          SE df  asymp.LCL asymp.UCL
    student_group_1   0.04491007 0.004626728 NA 0.03666574 0.0549025
    student_group_2   0.06503249 0.015117905 NA 0.04097546 0.1017156

Những sai lầm ở trên không thể góp phần vào hồi quy logistic hiệu quả hỗn hợp, xuất phát từ việc giải thích sai các kết quả.

Hãy xem làm thế nào để lấy chính xác trung bình biên của Y.

Pr(Y= =1|X)= =E(Y|X)= =E(LogTôit-1(Xβ+γTôi))= =-LogTôit-1(z)φ(z)dz
Ở đâu z= =Xβ+γTôiφ là pdf của N(Xβ,σ2)

Đối với học sinh nhóm 1, kết quả chỉ ra rằng Xβ= =-3.0571, σ= =1.881. Sử dụng phương pháp bậc hai Gauss từ Hermite với 20 điểm, tôi đã nhận được Pr(Y= =1|X= =0)= =0,172. tương tự,Pr(Y= =1|X= =0)= =0.1492.

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.