Với các mô hình tuyến tính tổng quát, có ba loại thử nghiệm thống kê khác nhau có thể được chạy. Đó là: kiểm tra Wald, kiểm tra tỷ lệ khả năng và kiểm tra điểm số. Trang web trợ giúp thống kê UCLA tuyệt vời có một cuộc thảo luận về chúng ở đây . Hình dưới đây (được sao chép từ trang web của họ) giúp minh họa chúng:
- Các thử nghiệm Wald giả định rằng khả năng được phân phối bình thường, và trên cơ sở đó, sử dụng các mức độ cong để ước tính sai số chuẩn. Sau đó, ước tính tham số chia cho SE mang lại một điểm . Điều này giữ dưới lớn , nhưng không hoàn toàn đúng với s nhỏ hơn . Thật khó để nói khi của bạn đủ lớn để tài sản này nắm giữ, vì vậy thử nghiệm này có thể hơi rủi ro. zNNN
- Các thử nghiệm tỷ lệ khả năng xem xét tỷ lệ của khả năng (hoặc sự khác biệt về khả năng đăng nhập) ở mức tối đa và ở mức không. Đây thường được coi là thử nghiệm tốt nhất.
- Bài kiểm tra điểm dựa trên độ dốc của khả năng ở giá trị null. Điều này thường ít mạnh mẽ hơn, nhưng có những lúc khả năng đầy đủ không thể được tính toán và vì vậy đây là một tùy chọn dự phòng tốt đẹp.
Các xét nghiệm đi kèm summary.glm()
là các xét nghiệm Wald. Bạn không nói làm thế nào bạn có được khoảng tin cậy của mình, nhưng tôi cho rằng bạn đã sử dụng confint()
, lần lượt gọi profile()
. Cụ thể hơn, các khoảng tin cậy đó được tính bằng cách định hình khả năng (đây là cách tiếp cận tốt hơn so với nhân SE với ). Đó là, chúng tương tự như thử nghiệm tỷ lệ khả năng, không phải thử nghiệm Wald. Lần lượt -test là bài kiểm tra điểm. 1,96χ2
Khi của bạn trở nên lớn vô hạn, ba khác nhau sẽ hội tụ về cùng một giá trị, nhưng chúng có thể khác nhau đôi chút khi bạn không có dữ liệu vô hạn. Điều đáng chú ý là giá trị (Wald) trong đầu ra ban đầu của bạn chỉ là đáng kể và có rất ít sự khác biệt thực sự giữa chỉ hơn và chỉ dưới ( trích dẫn ). Dòng đó không phải là "ma thuật". Cho rằng hai bài kiểm tra đáng tin cậy hơn chỉ hơn , tôi sẽ nói rằng dữ liệu của bạn không hoàn toàn 'đáng kể' theo tiêu chí thông thường. Nppα = 0,05.050,05
Dưới đây tôi mô tả các hệ số theo thang đo của bộ dự báo tuyến tính và chạy thử nghiệm tỷ lệ khả năng một cách rõ ràng (thông qua anova.glm()
). Tôi nhận được kết quả tương tự như bạn:
library(MASS)
x = matrix(c(343-268,268,73-49,49), nrow=2, byrow=T); x
# [,1] [,2]
# [1,] 75 268
# [2,] 24 49
D = factor(c("N","Diabetes"), levels=c("N","Diabetes"))
m = glm(x~D, family=binomial)
summary(m)
# ...
# Coefficients:
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -1.2735 0.1306 -9.749 <2e-16 ***
# DDiabetes 0.5597 0.2813 1.990 0.0466 *
# ...
confint(m)
# Waiting for profiling to be done...
# 2.5 % 97.5 %
# (Intercept) -1.536085360 -1.023243
# DDiabetes -0.003161693 1.103671
anova(m, test="LRT")
# ...
# Df Deviance Resid. Df Resid. Dev Pr(>Chi)
# NULL 1 3.7997
# D 1 3.7997 0 0.0000 0.05126 .
chisq.test(x)
# Pearson's Chi-squared test with Yates' continuity correction
#
# X-squared = 3.4397, df = 1, p-value = 0.06365
Như @JWilliman đã chỉ ra trong một nhận xét (hiện đã bị xóa), trong đó R
, bạn cũng có thể nhận được giá trị p dựa trên điểm số bằng cách sử dụng anova.glm(model, test="Rao")
. Trong ví dụ bên dưới, lưu ý rằng giá trị p không hoàn toàn giống như trong phép thử chi bình phương ở trên, bởi vì theo mặc định, R
's chisq.test()
áp dụng hiệu chỉnh liên tục. Nếu chúng ta thay đổi cài đặt đó, giá trị p khớp với:
anova(m, test="Rao")
# ...
# Df Deviance Resid. Df Resid. Dev Rao Pr(>Chi)
# NULL 1 3.7997
# D 1 3.7997 0 0.0000 4.024 0.04486 *
chisq.test(x, correct=FALSE)
# Pearson's Chi-squared test
#
# data: x
# X-squared = 4.024, df = 1, p-value = 0.04486