Binomial GLM trong R: cùng một dữ liệu, nhưng hai mô hình khác nhau


8

Xem xét hồi quy logistic trên các dữ liệu này:

X1 X2 Y
1  0  0
1  0  1
0  1  0
0  1  0
0  1  0
0  1  1
1  1  1

R chấp nhận ba biểu diễn khác nhau của dữ liệu: một hàng cho mỗi mục nhập bảng và hai biểu diễn cô đọng (một biểu đồ có trọng số, một biểu thị thành công và thất bại). Trong suy nghĩ của tôi, ba thông số kỹ thuật này đều phải giống nhau về mặt toán học: dữ liệu là 7 quan sát giống nhau và chúng được trình bày cho R ở các định dạng khác nhau.

data1 <- data.frame(x1=c(1,1,0,0,0,0,1), x2=c(0,0,1,1,1,1,1), y=c(0,1,0,0,0,1,1))
data2 <- data.frame(x1=c(0,1,0,1), x2=c(0,0,1,1), y=c(0,0.5,0.25,1), w=c(0,2,4,1))
data3x <- data.frame(x1=c(0,1,0,1), x2=c(0,0,1,1))
data3y <- cbind(c(0,1,1,1), c(0,1,3,0))

model1 <- glm(y~x1+x2, data=data1, family="binomial")
model2 <- glm(y~x1+x2, data=data2, family="binomial", weight=w)
model3 <- glm(data3y~data3x$x1+data3x$x2, family="binomial")

Mô hình 2 và 3 giống nhau, điều này có ý nghĩa. Nhưng Mô hình 1 khác với mô hình 2 và 3 và tôi không thể giải thích được tại sao cùng một dữ liệu sẽ trả về các thống kê mô hình khác nhau (hệ số, độ lệch và độ lệch dư) so với các mô hình khác. Mô hình 2 và 3 chỉ sử dụng một cách biểu diễn khác nhau của cùng một dữ liệu.

Đây có thể là cá trích đỏ, nhưng Mô hình 1 có hệ số thay đổi 4 đơn vị so với Mô hình 2, đây chính xác là sự khác biệt về số lượng hàng (dân số) / mức độ tự do còn lại giữa hai đơn vị.

> model1

Call:  glm(formula = y ~ x1 + x2, family = "binomial", data = data1)

Coefficients:
(Intercept)           x1           x2  
     -19.66        19.66        18.57  

Degrees of Freedom: 6 Total (i.e. Null);  4 Residual
Null Deviance:      9.561 
Residual Deviance: 7.271    AIC: 13.27
> model2

Call:  glm(formula = y ~ x1 + x2, family = "binomial", data = data2, 
    weights = w)

Coefficients:
(Intercept)           x1           x2  
     -23.66        23.66        22.57  

Degrees of Freedom: 2 Total (i.e. Null);  0 Residual
Null Deviance:      2.289 
Residual Deviance: 3.167e-10    AIC: 9.112

Dữ liệu2 là yếu tố không chính xác. Mức [1, 0, .5]phản hồi nhận được trọng số là 2 chỉ ra 2 mức với ylấy 0 và 1 làm phản hồi trung bình. Tuy nhiên, không có [1,0,.5]mức phản hồi trong dữ liệu bạn hiển thị.
AdamO

1
Những mô hình này đang mang lại cho bạn kết quả tương tự theo nghĩa là cả hai đều phát nổ :)
AdamO

1
@AdamO thật công bằng. Tôi nên nghĩ về những kết quả này nhiều hơn trước khi đăng. Tôi đã rất sốc khi các ước tính rất khác nhau đến mức tôi phải yêu cầu giúp đỡ.
Sycorax nói Phục hồi lại

Câu trả lời:


4

Mô hình là

EY=11+exp[(β0+β1x1+β2x2)]

& nó đã bão hòa, có nhiều tham số để ước tính là không. mô hình đồng biến riêng biệt. Vì vậy, các phương trình để giải quyết như sau:

Với , ,x1=1x2=0EY=12

β0+β1=0

Với , ,x1=0x2=1EY=14

β0+β2=log3

Với , ,x1=1x2=1EY=1

β0+β1+β2=

Có sự phân tách gần như hoàn chỉnh (nếu thì ), do đó, ước tính khả năng tối đa của các hệ số là không giới hạn. Nhưng bất kỳ giá trị đủ lớn nào cũng có thể thay thế cho vô hạn, đưa ra các giải pháp:x1+x2>1EY=1c

β0=(c+log3)

β1=c+log3

β2=c

Tôi không biết tại sao glmtừ bỏ việc cố gắng tối đa hóa khả năng ở các giá trị khác nhau cho tùy thuộc vào cấu trúc dữ liệu, nhưng nó không có kết quả thực tế: dự đoán và sự khác biệt về khả năng sẽ gần như giống nhau.c


2

Mặc dù sự hội tụ thất bại đã được minh họa trong ví dụ này, cần lưu ý rằng thực sự có một số khác biệt chính trong các ứng dụng này. GLM có trọng số có số lượng quan sát bằng với số mức phản hồi, ngay cả khi các trọng số là trọng số tần số. Mặt khác, nếu bạn sao chép các mức yếu tố theo trọng số tần số, số lượng quan sát bằng tổng trọng số (một cách thích hợp). Cuối cùng, chúng sẽ hội tụ đến cùng một thứ, nhưng hành vi thú vị được quan sát thấy khi bạn kiểm tra các thuộc tính của các công cụ ước tính một bước:

set.seed(123)
x <- 0:2
y <- c(1,0,2)/2
w <- 1:3*10

## weighted and unweighted one step glms
summary(glm(y ~ x, family=binomial, weights=w, control=list(maxit = 1)))
summary(glm(y ~ x, family=binomial, data.frame('y'=rep.int(y, w), 'x'=rep.int(x,w)), control=list(maxit = 1)))

Cho kết quả (khác nhau) sau:

Call:
glm(formula = y ~ x, family = binomial, weights = w, control = list(maxit = 1))

Deviance Residuals: 
      1        2        3  
 0.8269  -7.0855   2.3210  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  -0.5260     0.6210  -0.847   0.3970  
x             1.4456     0.7484   1.932   0.0534 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 67.640  on 2  degrees of freedom
Residual deviance: 56.275  on 1  degrees of freedom
AIC: 63.079

Number of Fisher Scoring iterations: 1

Warning message:
glm.fit: algorithm did not converge 
> 

Call:
glm(formula = y ~ x, family = binomial, data = data.frame(y = rep.int(y, 
    w), x = rep.int(x, w)), control = list(maxit = 1))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.1496  -1.1496   0.5946   0.5946   0.8376  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.7747     0.5502  -3.226  0.00126 ** 
x             1.7089     0.3700   4.618 3.87e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 67.640  on 59  degrees of freedom
Residual deviance: 44.055  on 58  degrees of freedom
AIC: 44.171

Number of Fisher Scoring iterations: 1

Warning messages:
1: In eval(expr, envir, enclos) :
  non-integer #successes in a binomial glm!
2: glm.fit: algorithm did not converge 
> 

Vì vậy, để trả lời câu hỏi của OP, lý do tại sao đây là những kết quả không thể hòa giải (mặc dù thất bại hội tụ) là do dấu vết thực tế của Điểm số Fisher khác nhau đối với các phân tích có trọng số và không trọng số vì trong trường hợp có trọng số, thông tin của Fisher dựa trên 3 trọng số quan sát mẫu, trong trường hợp không có trọng số, Thông tin Fisher được dựa trên 60 thông tin không trọng số quan sát. Cả 3 quan sát có trọng số và 60 khả năng không có trọng số quan sát chỉ đồng ý khi điểm Fisher thực sự đạt được ước tính beta đưa ra giải pháp tổng điểm 0.

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.