बूटस्ट्रैपिंग आपके प्रतिगमन गुणांक के नमूना वितरण का अनुमान लगाने के लिए एक पुन: नमूनाकरण विधि है और इसलिए आपके प्रतिगमन गुणांक के मानक त्रुटियों / विश्वास अंतराल की गणना करता है। इस पोस्ट की अच्छी व्याख्या है। आपको कितने प्रतिकृति की आवश्यकता है, इस चर्चा के लिए, इस पोस्ट को देखें ।
- नॉनपामेट्रिक बूटस्ट्रैप बार-बार बदलता है और बेतरतीब ढंग से आपकी टिप्पणियों को प्रतिस्थापन के साथ खींचता है (यानी कुछ टिप्पणियों को केवल एक बार, दूसरों को कई बार और कुछ कभी नहीं खींचा जाता है), फिर लॉजिस्टिक प्रतिगमन की गणना करता है और गुणांक को संग्रहीत करता है। यह दोहराया जाता हैnबार। तो आप 10'000 विभिन्न प्रतिगमन गुणांक के साथ समाप्त करेंगे। ये 10'000 गुणांक तब उनके विश्वास itnervals की गणना करने के लिए इस्तेमाल किया जा सकता है। जैसा कि एक छद्म यादृच्छिक संख्या जनरेटर का उपयोग किया जाता है, आप केवल यह सुनिश्चित करने के लिए बीज को एक मनमाना संख्या में सेट कर सकते हैं कि आपके पास हर बार समान परिणाम हैं (नीचे उदाहरण देखें)। वास्तव में स्थिर अनुमान लगाने के लिए, मैं 1000 से अधिक प्रतिकृति का सुझाव दूंगा, शायद 10'000। आप कई बार बूटस्ट्रैप को चला सकते हैं और देख सकते हैं कि क्या अनुमान 1000 या 10'000 प्रतिकृति के अनुसार बदलते हैं। सादे अंग्रेजी में: जब तक आप अभिसरण तक नहीं पहुंच जाते तब तक आपको प्रतिकृति लेनी चाहिए। यदि आपका बूटस्ट्रैप अनुमान आपके अनुमानों और देखे गए एकल मॉडल के बीच भिन्न होता है, तो यह संकेत कर सकता है कि मनाया मॉडल उचित रूप से आपके नमूने की संरचना को प्रतिबिंबित नहीं करता है।
boot
R
, उदाहरण के लिए, "पूर्वाग्रह" को बाहर रखता है जो आपके एकल मॉडल के प्रतिगमन गुणांक और बूटस्ट्रैप नमूनों के बीच का अंतर है।
- बूटस्ट्रैप का प्रदर्शन करते समय, आप एक बूटस्ट्रैप नमूने में रुचि नहीं रखते हैं, लेकिन 10'000 बूटस्ट्रैप के नमूनों के बजाए आंकड़ों (जैसे प्रतिगमन गुणांक) के वितरण में।
- मैं कहता हूँ कि 10'000 1000 से बेहतर है। आधुनिक कंप्यूटर के साथ, यह एक समस्या नहीं होनी चाहिए। नीचे दिए गए उदाहरण में, 10'000 नमूनों को खींचने में मेरे पीसी को लगभग 45 सेकंड का समय लगा। यह आपके नमूना आकार के साथ बदलता रहता है। आपका नमूना आकार जितना बड़ा होगा, पुनरावृत्तियों की संख्या उतनी ही अधिक होनी चाहिए ताकि यह सुनिश्चित हो सके कि हर अवलोकन को ध्यान में रखा जाए।
- "हर बार परिणाम भिन्न होने" का क्या मतलब है? याद रखें कि हर बूटस्ट्रैप चरण में, प्रतिस्थापन के साथ अवलोकन नए हैं। इसलिए, आप थोड़े अलग प्रतिगमन गुणांक के साथ समाप्त होने की संभावना रखते हैं क्योंकि आपके अवलोकन भिन्न होते हैं। लेकिन जैसा कि मैंने कहा है: आप वास्तव में एकल बूटस्ट्रैप नमूने के परिणाम में रुचि नहीं रखते हैं। जब आपके प्रतिकृति की संख्या काफी अधिक होती है, तो बूटस्ट्रैप को हर बार बहुत समान आत्मविश्वास अंतराल और बिंदु अनुमान लगाना चाहिए।
यहाँ एक उदाहरण है R
:
library(boot)
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
head(mydata)
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
# Set up the non-parametric bootstrap
logit.bootstrap <- function(data, indices) {
d <- data[indices, ]
fit <- glm(admit ~ gre + gpa + rank, data = d, family = "binomial")
return(coef(fit))
}
set.seed(12345) # seed for the RNG to ensure that you get exactly the same results as here
logit.boot <- boot(data=mydata, statistic=logit.bootstrap, R=10000) # 10'000 samples
logit.boot
Bootstrap Statistics :
original bias std. error
t1* -3.989979073 -7.217244e-02 1.165573039
t2* 0.002264426 4.054579e-05 0.001146039
t3* 0.804037549 1.440693e-02 0.354361032
t4* -0.675442928 -8.845389e-03 0.329099277
t5* -1.340203916 -1.977054e-02 0.359502576
t6* -1.551463677 -4.720579e-02 0.444998099
# Calculate confidence intervals (Bias corrected ="bca") for each coefficient
boot.ci(logit.boot, type="bca", index=1) # intercept
95% (-6.292, -1.738 )
boot.ci(logit.boot, type="bca", index=2) # gre
95% ( 0.0000, 0.0045 )
boot.ci(logit.boot, type="bca", index=3) # gpa
95% ( 0.1017, 1.4932 )
boot.ci(logit.boot, type="bca", index=4) # rank2
95% (-1.3170, -0.0369 )
boot.ci(logit.boot, type="bca", index=5) # rank3
95% (-2.040, -0.629 )
boot.ci(logit.boot, type="bca", index=6) # rank4
95% (-2.425, -0.698 )
बूटस्ट्रैप-ओपूत मूल प्रतिगमन गुणांक ("मूल") और उनके पूर्वाग्रह को प्रदर्शित करता है, जो मूल गुणांक और बूटस्ट्रैप्ड लोगों के बीच अंतर है। यह मानक त्रुटियाँ भी देता है। ध्यान दें कि वे मूल मानक त्रुटियों से थोड़ा बड़े हैं।
आत्मविश्वास अंतराल से, पूर्वाग्रह-सही ("बीकेए") आमतौर पर पसंद किए जाते हैं। यह मूल पैमाने पर विश्वास अंतराल देता है। बाधाओं के अनुपात के लिए आत्मविश्वास के अंतराल के लिए, बस आत्मविश्वास की सीमा का विस्तार करें।