मेरे बूटस्ट्रैप अंतराल में भयानक कवरेज क्यों है?


29

मैं एक वर्ग प्रदर्शन करना चाहता था जहां मैं एक टी-अंतराल की तुलना बूटस्ट्रैप अंतराल से करता हूं और दोनों की कवरेज संभावना की गणना करता हूं। मैं चाहता था कि डेटा एक तिरछी वितरण से आए, इसलिए मैंने डेटा को उत्पन्न करने के लिए चुना exp(rnorm(10, 0, 2)) + 1, एक स्थानांतरित लॉजिकल से आकार 10 का एक नमूना। मैंने 1000 नमूनों को आकर्षित करने के लिए एक स्क्रिप्ट लिखी और प्रत्येक नमूने के लिए, 1000 प्रतिकृति पर आधारित 95% टी-अंतराल और 95% बूटस्ट्रैप प्रतिशताइल अंतराल की गणना की।

जब मैं स्क्रिप्ट चलाता हूं, तो दोनों विधियां बहुत समान अंतराल देती हैं और दोनों में 50-60% की कवरेज संभावना होती है। मुझे आश्चर्य हुआ क्योंकि मुझे लगा कि बूटस्ट्रैप अंतराल बेहतर होगा।

मेरा प्रश्न है, क्या मेरे पास है

  • कोड में कोई गलती हुई है?
  • अंतराल की गणना में गलती हुई?
  • बेहतर कवरेज गुण रखने के लिए बूटस्ट्रैप अंतराल की अपेक्षा करके गलती हुई?

इसके अलावा, क्या इस स्थिति में अधिक विश्वसनीय सीआई बनाने का एक तरीका है?

 tCI.total <- 0
 bootCI.total <- 0
 m <- 10 # sample size
 true.mean <- exp(2) + 1

for (i in 1:1000){
 samp <- exp(rnorm(m,0,2)) + 1
 tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)

 boot.means <- rep(0,1000)
 for (j in 1:1000) boot.means[j] <- mean(sample(samp,m,replace=T))
 bootCI <- sort(boot.means)[c(0.025*length(boot.means), 0.975*length(boot.means))]

 if (true.mean > min(tCI) & true.mean < max(tCI)) tCI.total <- tCI.total + 1
 if (true.mean > min(bootCI) & true.mean < max(bootCI)) bootCI.total <- bootCI.total + 1 
}
tCI.total/1000     # estimate of t interval coverage probability
bootCI.total/1000  # estimate of bootstrap interval coverage probability

3
लोग अक्सर बूटस्ट्रैप का एक और उपयोग भूल जाते हैं: पूर्वाग्रह को पहचानने और सही करने के लिए । मुझे संदेह है कि यदि आप अपने बूटस्ट्रैपिंग के भीतर एक पूर्वाग्रह सुधार को शामिल करने के लिए थे, तो आपको सीआई से बेहतर प्रदर्शन मिल सकता है।
whuber

@ शुभकर्ता: अच्छा बिंदु, +1। जहां तक ​​मुझे याद है, डेविसन एंड हिंकले द्वारा बूटस्ट्रैप विधियां और उनके अनुप्रयोग बूटस्ट्रैप पर पूर्वाग्रह सुधार और अन्य सुधारों के लिए एक अच्छा और सुलभ परिचय देते हैं।
एस। कोलासा - मोनिका

1
यह अन्य बूटस्ट्रैप वेरिएंट्स की कोशिश करने के लायक है, विशेष रूप से मूल बूटस्ट्रैप।
फ्रैंक हरेल

3
बूटस्ट्रैपिंग एक बड़ी-नमूना प्रक्रिया है। बड़ा नहीं है, विशेष रूप से लॉग-सामान्य डेटा के लिएn=10
क्लिफ एबी

जवाबों:


16

कैंटो, डेविसन, हिंकले और वेंचुरा (2006) द्वारा बूटस्ट्रैप डायग्नोस्टिक्स और उपचार एक तार्किक बिंदु है। वे कई तरीकों पर चर्चा करते हैं, जिससे बूटस्ट्रैप टूट सकता है - और अधिक महत्वपूर्ण बात यह है कि - निदान और संभावित उपचार प्रदान करें:

  1. बाहरी कारकों के कारण
  2. गलत पुनरुत्पादन मॉडल
  3. Nonpivotality
  4. बूटस्ट्रैप विधि की असंगति

मुझे इस स्थिति में 1, 2 और 4 की समस्या नहीं दिख रही है। आइए 3 देखें। @Ben Ogorek नोट्स के रूप में (हालांकि मैं @Glen_b से सहमत हूं कि सामान्य चर्चा एक लाल हेरिंग हो सकती है), बूटस्ट्रैप की वैधता उस सांख्यिकीय की धुरी पर निर्भर करती है जिसमें हम रुचि रखते हैं।

कैंटी एट अल में धारा 4। प्रत्येक बूटस्ट्रैप पुनरुत्पादन के भीतर पैरामीटर अनुमान के लिए पूर्वाग्रह और विचरण का एक उपाय प्राप्त करने के लिए, पुनःसमर्पण-भीतर-पुनर्नामों का सुझाव देता है । यहाँ पी से सूत्रों को दोहराने के लिए कोड है। लेख के 15:

library(boot)
m <- 10 # sample size
n.boot <- 1000
inner.boot <- 1000

set.seed(1)
samp.mean <- bias <- vars <- rep(NA,n.boot)
for ( ii in 1:n.boot ) {
    samp <- exp(rnorm(m,0,2)) + 1
    samp.mean[ii] <- mean(samp)
    foo <- boot(samp,statistic=function(xx,index)mean(xx[index]),R=inner.boot)
    bias[ii] <- mean(foo$t[,1])-foo$t0
    vars[ii] <- var(foo$t[,1])
}

opar <- par(mfrow=c(1,2))
    plot(samp.mean,bias,xlab="Sample means",ylab="Bias",
        main="Bias against sample means",pch=19,log="x")
    abline(h=0)
    plot(samp.mean,vars,xlab="Sample means",ylab="Variance",
        main="Variance against sample means",pch=19,log="xy")
par(opar)

बूटस्ट्रैप डायग्नोस्टिक्स

लॉग तराजू पर ध्यान दें - लॉग के बिना, यह और भी अधिक स्पष्ट है। हम अच्छी तरह से देखते हैं कि बूटस्ट्रैप माध्य का अनुमान किस प्रकार बूटस्ट्रैप नमूने के माध्य से ऊपर जाता है। यह मुझे कम विश्वास अंतराल कवरेज के लिए दोषी के रूप में गैर-धुरी पर दोष संलग्न करने के लिए धूम्रपान बंदूक की तरह दिखता है।

हालाँकि, मैं ख़ुशी से स्वीकार करूँगा कि कोई भी बहुत से तरीकों का पालन कर सकता है। उदाहरण के लिए, हम यह देख सकते हैं कि किसी विशिष्ट बूटस्ट्रैप प्रतिकृति से विश्वास अंतराल कैसे शामिल होता है जिसमें सही अर्थ विशेष प्रतिकृति के माध्यम पर निर्भर करता है।

उपचार के लिए, कैंटी एट अल। परिवर्तनों पर चर्चा करें, और लघुगणक यहाँ ध्यान में आते हैं (उदाहरण के लिए, बूटस्ट्रैप और आत्मविश्वास अंतराल का निर्माण, मतलब डेटा के लिए नहीं), लेकिन मैं वास्तव में इसे काम नहीं कर सका।

कैंटी एट अल। इस बात पर चर्चा करना जारी रखें कि कोई व्यक्ति आंतरिक बूटस्ट्रैप की संख्या और शेष शोर को कम करके महत्व नमूनाकरण और चौरसाई के साथ-साथ पिवट भूखंडों में आत्मविश्वास बैंड जोड़ सकता है।

यह एक स्मार्ट छात्र के लिए एक मजेदार थीसिस परियोजना हो सकती है। मैं किसी भी संकेत की सराहना करता हूँ जहाँ मैं गलत हो गया, साथ ही साथ किसी भी अन्य साहित्य के लिए। और मैं diagnosticइस सवाल का टैग जोड़ने की स्वतंत्रता लूंगा ।


13

μ^μ
μ^t
mμ^μσ^

फिर मैंने पूरे सेटअप के बारे में थोड़ा और सोचा। केवल 10 टिप्पणियों और एक बहुत ही विषम वितरण के साथ, यह तो नहीं मूल रूप से असंभव है nonparametrically सही कवरेज के साथ मतलब अकेले निर्माण विश्वास के अंतराल का अनुमान है?

e2+1=8.39P(X2)=0.84XN(0,4)0.840.8410=0.178। इसलिए 18% से कम मामलों में, सबसे बड़ा अवलोकन माध्य से छोटा है। 0.82 से अधिक कवरेज प्राप्त करने के लिए हमें सबसे बड़े अवलोकन से परे फैली हुई मीन के लिए एक विश्वास अंतराल के निर्माण की आवश्यकता है। मेरे पास यह कल्पना करने का कठिन समय है कि इस तरह का निर्माण कैसे किया जा सकता है (और उचित) पूर्व धारणाओं के बिना कि वितरण बेहद तिरछा है। लेकिन मैं किसी भी सुझाव का स्वागत करता हूं।


मैं आपसे सहमत हुँ। मैं वास्तव में किसी के दृष्टिकोण से इस बारे में सोचना चाहता था जिसे इस वितरण से एक नमूना मिला है। मुझे कैसे पता चलेगा कि इस मामले में बूटस्ट्रैप का इस्तेमाल करना अस्पष्ट है? केवल यही सोचता हूं कि मैं यह सोच सकता हूं कि विश्लेषण करने से पहले मैंने अच्छी तरह से लॉग लिया होगा, लेकिन अन्य उत्तरदाताओं में से एक का कहना है कि यह वास्तव में मदद करेगा।
फ्लॉडरर

1
आपको पता नहीं चलेगा कि यह अकेले 10 डेटा पॉइंट्स से सुरक्षित या असुरक्षित है। यदि आपको तिरछापन या भारी पूंछ पर संदेह है, तो समाधान माध्य से भिन्न पैरामीटर पर ध्यान केंद्रित कर सकता है। उदाहरण के लिए लॉग-माध्य या माध्यिका। जब तक आप अतिरिक्त अनुमान नहीं लगाते हैं, तब तक आपको इसका मतलब (या विश्वास अंतराल के लिए) का अनुमान नहीं होगा, लेकिन वितरण के पूंछ के प्रति कम संवेदनशील होने वाले पैरामीटर पर ध्यान देना बेहतर होगा।
NRH

6

गणना सही थी, मैंने प्रसिद्ध पैकेज बूट के साथ क्रॉस-चेक किया । इसके अतिरिक्त मैंने बीसीए-अंतराल (एफ्रॉन द्वारा) को जोड़ दिया, प्रतिशतक बूटस्टाइल अंतराल का एक पूर्वाग्रह-सही संस्करण:

for (i in 1:1000) {
  samp <- exp(rnorm(m, 0, 2)) + 1

  boot.out <- boot(samp, function(d, i) sum(d[i]) / m, R=999)
  ci <- boot.ci(boot.out, 0.95, type="all")

  ##tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)
  tCI <- ci$normal[2:3]
      percCI <- ci$perc[4:5]
  bcaCI <- ci$bca[4:5]
      boottCI <- ci$student[4:5]

  if (true.mean > min(tCI) && true.mean < max(tCI)) tCI.total <- tCI.total + 1
  if (true.mean > min(percCI) && true.mean < max(percCI)) percCI.total <- percCI.total + 1 
  if (true.mean > min(bcaCI) && true.mean < max(bcaCI)) bcaCI.total <- bcaCI.total + 1
}

tCI.total/1000     # estimate of t interval coverage probability
0.53
percCI.total/1000  # estimate of percentile interval coverage probability
0.55
bcaCI.total/1000  # estimate of BCa interval coverage probability
0.61

मुझे लगता है कि मूल नमूना आकार बड़ा है तो अंतराल 10 से बेहतर होगा, 20 या 50 का कहना है।

इसके अलावा बूटस्ट्रैप-टी पद्धति आमतौर पर तिरछे आँकड़ों के लिए बेहतर परिणाम देती है। हालाँकि इसके लिए नेस्टेड लूप की आवश्यकता होती है और इसलिए 20+ बार अधिक कम्प्यूटेशनल समय होता है।

परिकल्पना परीक्षण के लिए यह भी बहुत महत्वपूर्ण है कि 1-पक्षीय आवरण अच्छे हों। इसलिए केवल 2-पक्षीय कवरेज को देखना अक्सर भ्रामक हो सकता है।


1
n<100

5

मैं इस बारे में भी उलझन में था, और मैंने 1996 के डिकैसिस्को और एफ्रॉन पेपर बूटस्ट्रैप कॉन्फिडेंस इंटरवल पर बहुत समय बिताया , इसके लिए दिखाने के लिए बहुत कुछ नहीं।

यह वास्तव में मुझे एक सामान्य उद्देश्य विधि के रूप में बूटस्ट्रैप से कम सोचने के लिए प्रेरित करता था। मैं इसे कुछ ऐसा समझता था जो आपको जाम से बाहर निकाल देगा जब आप वास्तव में फंस गए थे। लेकिन मैंने इसके गंदे छोटे रहस्य सीखे हैं: बूटस्ट्रैप विश्वास अंतराल सभी किसी न किसी तरह से सामान्यता पर आधारित होते हैं। मुझे समझाने की अनुमति दें।

xN(μ,σ2)
σ
z=xμσN(0,1)
μPr(1.96xμσ1.96)=0.95

जब आप इस बारे में सोचते हैं कि आत्मविश्वास वितरण से संबंधित सामान्य वितरण का प्रतिशत क्या है, यह पूरी तरह से इस सुविधाजनक महत्वपूर्ण मात्रा पर आधारित है। एक मनमाना वितरण के लिए, नमूना वितरण और विश्वास अंतराल के प्रतिशत के बीच कोई सैद्धांतिक लिंक नहीं है , और बूटस्ट्रैप नमूना वितरण के कच्चे अनुपात में कटौती नहीं करता है।

तो एफ्रॉन के बीसीए (बायस करेक्टेड) ​​अंतराल लगभग सामान्यता और बूटस्ट्रैप-टी तरीकों को प्राप्त करने के लिए परिवर्तनों का उपयोग करते हैं, जिसके परिणामस्वरूप टी-आँकड़े लगभग निर्णायक होते हैं। अब बूटस्ट्रैप क्षणों के बाहर नरक का अनुमान लगा सकता है, और आप हमेशा सामान्यता मान सकते हैं और मानक +/- 2 * एसई का उपयोग कर सकते हैं। लेकिन बूटस्ट्रैप के साथ गैर-पैरामीट्रिक में जाने वाले सभी कार्यों को देखते हुए, यह काफी उचित नहीं लगता है, क्या यह है?


2
यह संभव है कि मुझे कुछ याद आया, लेकिन यह तथ्य कि बूटस्ट्रैपिंग पिवटल्स से जुड़ी हुई है या पिवटल मात्रा के पास है, इसका सामान्य रूप से कोई संबंध नहीं है। विशेष परिस्थितियों में महत्वपूर्ण मात्रा में वितरण के सभी तरीके हो सकते हैं। मैं यह भी नहीं देखता कि आपके दूसरे अंतिम पैराग्राफ में इटैलिकाइज्ड वाक्य किस प्रकार है।
Glen_b -Reinstate Monica

1
फिर सामान्यता से संबंधित दावे का पालन कैसे होता है?
Glen_b -Reinstate Monica

1
FΦ1[F(X)]

2
F

2
@Glen_b में जोड़ने के लिए: एक सामान्य वितरण में परिवर्तन केवल विधि को सही साबित करने के लिए मौजूद होना चाहिए। आपको विधि का उपयोग करने के लिए इसे खोजने की आवश्यकता नहीं है। इसके अतिरिक्त, यदि आपको सामान्य वितरण पसंद नहीं है, तो आप कुछ अन्य सममित, निरंतर वितरण के साथ पूरे प्रमाण को फिर से लिख सकते हैं। सामान्य वितरण का उपयोग तकनीकी रूप से उपयोगी है, लेकिन सख्ती से आवश्यक नहीं है, यह डेटा के स्रोत, या नमूना माध्य के बारे में कुछ नहीं कहता है।
पीटर

0

द अमेरिकन स्टेटिस्टिशियन में http://www.timhesterberg.net/bootstrap#TOC-What-Teachers-Souldould -Know-about-the-Bootstrap:-amampling-in-the-Under स्नातक-Statistics-Curriculum पर अमेरिकी लेख के बारे में देखें

अनिवार्य रूप से, बूटस्ट्रैप सेंटीवल अंतराल में तिरछे डेटा के लिए मजबूत कवरेज संभावना नहीं है जब तक कि एन बड़ा नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.