Hãy xem xét cốt truyện dưới đây trong đó tôi mô phỏng dữ liệu như sau. Chúng tôi xem xét một kết quả nhị phân mà xác suất thực sự là 1 được biểu thị bằng đường màu đen. Mối quan hệ chức năng giữa hiệp phương trình và là đa thức bậc 3 với liên kết logistic (vì vậy nó không tuyến tính theo cách hai chiều).
Đường màu xanh là hồi quy logistic GLM phù hợp trong đó được giới thiệu là đa thức bậc 3. Các đường màu lục nét đứt là khoảng tin cậy 95% xung quanh dự đoán , trong đó các hệ số hồi quy được trang bị. Tôi đã sử dụng và cho điều này.R
glm
predict.glm
Tương tự, dòng pruple là giá trị trung bình của hậu thế với khoảng tin cậy 95% cho của mô hình hồi quy logistic Bayes sử dụng đồng phục trước. Tôi đã sử dụng gói có chức năng này (cài đặt cung cấp cho đồng phục không chính xác trước).MCMCpack
MCMClogit
B0=0
Các chấm đỏ biểu thị các quan sát trong tập dữ liệu mà , các chấm đen là các quan sát với . Lưu ý rằng như phổ biến trong phân loại / phân tích rời rạc nhưng không quan sát thấy .
Một số điều có thể được nhìn thấy:
- Tôi mô phỏng trên mục đích rằng là thưa thớt trên tay trái. Tôi muốn rằng sự tự tin và khoảng tin cậy sẽ được mở rộng ở đây do thiếu thông tin (quan sát).
- Cả hai dự đoán đều thiên về phía bên trái. Sự thiên vị này được gây ra bởi bốn điểm màu đỏ biểu thị quan sát, điều này cho thấy sai rằng hình thức chức năng thực sự sẽ xuất hiện ở đây. Thuật toán không đủ thông tin để kết luận dạng chức năng thực sự bị uốn cong xuống.
- Khoảng tin cậy sẽ rộng hơn như mong đợi, trong khi khoảng tin cậy thì không . Trong thực tế, khoảng tin cậy bao quanh không gian tham số hoàn chỉnh, do đó cần phải thiếu thông tin.
Có vẻ như khoảng tin cậy là sai / quá lạc quan ở đây đối với một phần của . Đó thực sự là hành vi không mong muốn cho khoảng tin cậy bị thu hẹp khi thông tin trở nên thưa thớt hoặc hoàn toàn không có. Thông thường đây không phải là cách một khoảng tin cậy phản ứng. Ai đó có thể giải thích:
- Lý do cho điều này là gì?
- Những bước tôi có thể thực hiện để đi đến một khoảng đáng tin cậy tốt hơn? (nghĩa là, một trong đó có ít nhất là dạng chức năng thực sự, hoặc tốt hơn là rộng bằng khoảng tin cậy)
Mã để có được các khoảng dự đoán trong đồ họa được in ở đây:
fit <- glm(y_obs ~ x + I(x^2) + I(x^3), data=data, family=binomial)
x_pred <- seq(0, 1, by=0.01)
pred <- predict(fit, newdata = data.frame(x=x_pred), se.fit = T)
plot(plogis(pred$fit), type='l')
matlines(plogis(pred$fit + pred$se.fit %o% c(-1.96,1.96)), type='l', col='black', lty=2)
library(MCMCpack)
mcmcfit <- MCMClogit(y_obs ~ x + I(x^2) + I(x^3), data=data, family=binomial)
gibbs_samps <- as.mcmc(mcmcfit)
x_pred_dm <- model.matrix(~ x + I(x^2) + I(x^3), data=data.frame('x'=x_pred))
gibbs_preds <- apply(gibbs_samps, 1, `%*%`, t(x_pred_dm))
gibbs_pis <- plogis(apply(gibbs_preds, 1, quantile, c(0.025, 0.975)))
matlines(t(gibbs_pis), col='red', lty=2)
Truy cập dữ liệu : https://pastebin.com/1H2iXiew cảm ơn @DeltaIV và @AdamO
dput
trên khung dữ liệu chứa dữ liệu và sau đó bao gồm dput
đầu ra dưới dạng mã trong bài đăng của bạn.