नीचे दिए गए कथानक पर विचार करें जिसमें मैंने निम्नानुसार डेटा का अनुकरण किया है। हम एक द्विआधारी परिणाम को देखते हैं जिसके लिए 1 होने की सच्ची संभावना काली रेखा से संकेतित होती है। एक covariate और के बीच कार्यात्मक संबंध लॉजिस्टिक लिंक के साथ तीसरा क्रम बहुपद है (इसलिए यह दोहरे तरीके से गैर-रैखिक है)।
ग्रीन लाइन GLM लॉजिस्टिक रिग्रेशन फिट है जहां को 3 क्रम बहुपद के रूप में पेश किया जाता है। धराशायी हरी रेखाएँ भविष्यवाणी चारों ओर 95% विश्वास अंतराल हैं , जहां फिट किए गए प्रतिगमन गुणांकों को । मैंने इस्तेमाल किया और इसके लिए।R
glm
predict.glm
इसी तरह, प्रुपल लाइन एक समान पूर्व का उपयोग करके बायेसियन लॉजिस्टिक रिग्रेशन मॉडल के के लिए 95% विश्वसनीय अंतराल के साथ पीछे का मतलब है । मैंने इसके लिए फ़ंक्शन के साथ पैकेज का उपयोग किया (सेटिंग पहले यूनिफ़ॉर्मेटिव पूर्व देता है)।MCMCpack
MCMClogit
B0=0
लाल डॉट्स डेटा सेट में टिप्पणियों को दर्शाते हैं जिसके लिए , काले डॉट्स अवलोकन साथ टिप्पणियों हैं । ध्यान दें कि वर्गीकरण / असतत विश्लेषण में सामान्य है लेकिन है।
कई चीजें देखी जा सकती हैं:
- मैंने इस उद्देश्य से अनुकरण किया कि बाएं हाथ पर विरल है। मैं चाहता हूं कि जानकारी की कमी (टिप्पणियों) के कारण आत्मविश्वास और विश्वसनीय अंतराल यहां व्यापक हो।
- दोनों भविष्यवाणियाँ बाईं ओर ऊपर से पक्षपाती हैं। यह पूर्वाग्रह चार लाल बिंदुओं के कारण होता है जो अवलोकनों को दर्शाता है , जो गलत तरीके से यह बताता है कि असली कार्यात्मक रूप यहां ऊपर जाएगा। एल्गोरिथ्म में अपर्याप्त कार्यात्मक जानकारी है जो यह बताती है कि वास्तविक कार्यात्मक रूप नीचे की ओर झुका हुआ है।
- विश्वास अंतराल अपेक्षा के अनुरूप व्यापक हो जाता है, जबकि विश्वसनीय अंतराल नहीं होता है । वास्तव में विश्वास अंतराल पूर्ण पैरामीटर स्थान को संलग्न करता है, क्योंकि यह जानकारी की कमी के कारण होना चाहिए।
ऐसा लगता है कि एक हिस्से के लिए विश्वसनीय अंतराल गलत है / बहुत आशावादी है । यह विश्वसनीय अंतराल के लिए वास्तव में अवांछनीय व्यवहार है जब जानकारी विरल हो जाती है या पूरी तरह अनुपस्थित होती है। आमतौर पर यह नहीं है कि एक विश्वसनीय अंतराल कैसे प्रतिक्रिया करता है। क्या कोई समझा सकता है:
- इसके क्या कारण हैं?
- बेहतर विश्वसनीय अंतराल पर आने के लिए मैं क्या कदम उठा सकता हूं? (यह वह है, जो कम से कम सही कार्यात्मक रूप को संलग्न करता है, या आत्मविश्वास अंतराल जितना बेहतर होता है)
ग्राफ़िक में पूर्वानुमान अंतराल प्राप्त करने के लिए कोड यहाँ मुद्रित किया गया है:
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)
डेटा एक्सेस : https://pastebin.com/1H2iXiew @DeltaIV और @AdamO धन्यवाद
dput
डेटाफ़्रेम युक्त डेटा पर उपयोग कर सकते हैं , और फिर dput
आउटपुट को अपनी पोस्ट में कोड के रूप में शामिल कर सकते हैं।