Giải thích sau đây không giới hạn ở hồi quy logistic mà áp dụng như nhau trong hồi quy tuyến tính thông thường và các GLM khác. Thông thường, R
loại trừ một cấp độ phân loại và hệ số biểu thị sự khác biệt của từng lớp đối với lớp tham chiếu này (hoặc đôi khi được gọi là lớp cơ sở) (đây được gọi là mã hóa giả hoặc tương phản điều trị R
, xem ở đây để biết tổng quan tuyệt vời về các tùy chọn tương phản khác nhau ). Để xem sự tương phản hiện tại trong R
, gõ options("contrasts")
. Thông thường, sắp R
xếp các mức của biến phân loại theo thứ tự abc và lấy đầu tiên làm lớp tham chiếu. Điều này không phải lúc nào cũng tối ưu và có thể được thay đổi bằng cách gõ (ở đây, chúng tôi sẽ đặt lớp tham chiếu thành "c" trong biến mới)new.variable <- relevel(old.variable, ref="c")
zpanova(model1, model2, test="LRT")
R
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
rank1
rank
rank1
rank
rank1
rank2
- 0,675rank1
rank2
- 3,99 - 0,675 = - 4,67rank1
rank1
. Bạn cũng có thể điều chỉnh mô hình mà không bị chặn bằng cách thêm - 1
vào công thức mô hình để xem trực tiếp tất cả các hệ số:
my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")
summary(my.mod2) # no intercept model
Coefficients:
Estimate Std. Error z value Pr(>|z|)
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank1 -3.989979 1.139951 -3.500 0.000465 ***
rank2 -4.665422 1.109370 -4.205 2.61e-05 ***
rank3 -5.330183 1.149538 -4.637 3.54e-06 ***
rank4 -5.541443 1.138072 -4.869 1.12e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Lưu ý rằng việc đánh chặn đã biến mất ngay bây giờ và hệ số rank1
chính xác là đánh chặn của mô hình đầu tiên. Ở đây, kiểm tra Wald kiểm tra không phải sự khác biệt theo cặp giữa các hệ số mà là giả thuyết rằng mỗi hệ số riêng lẻ bằng không. Một lần nữa, chúng tôi có bằng chứng rằng mọi hệ số rank
khác 0. Cuối cùng, để kiểm tra xem toàn bộ biến có rank
cải thiện sự phù hợp của mô hình hay không, chúng ta khớp một mô hình với ( my.mod1
) và một mô hình không có biến rank
( my.mod2
) và tiến hành kiểm tra tỷ lệ khả năng. Điều này kiểm tra giả thuyết rằng tất cả các hệ số rank
bằng không:
my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank
anova(my.mod1, my.mod2, test="LRT")
Analysis of Deviance Table
Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 394 458.52
2 397 480.34 -3 -21.826 7.088e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Kiểm tra tỷ lệ khả năng là rất quan trọng và chúng tôi sẽ kết luận rằng biến rank
nên vẫn còn trong mô hình.
Bài này cũng rất thú vị.
admit ~ 1
vsadmit ~ rank - 1
?