बूटस्ट्रैप वितरण की मानक त्रुटि का उपयोग


19

(यदि आवश्यक हो तो R कोड को अनदेखा करें, क्योंकि मेरा मुख्य प्रश्न भाषा-स्वतंत्र है)

अगर मैं एक साधारण सांख्यिकीय की परिवर्तनशीलता को देखना चाहता हूं (उदा: माध्य), मुझे पता है कि मैं इसे सिद्धांत के माध्यम से कर सकता हूं:

x = rnorm(50)

# Estimate standard error from theory
summary(lm(x~1))
# same as...
sd(x) / sqrt(length(x))

या बूटस्ट्रैप जैसे:

library(boot)

# Estimate standard error from bootstrap
(x.bs = boot(x, function(x, inds) mean(x[inds]), 1000))
# which is simply the standard *deviation* of the bootstrap distribution...
sd(x.bs$t)

हालाँकि, मैं जो सोच रहा हूं, क्या यह कुछ स्थितियों में बूटस्ट्रैप वितरण की मानक त्रुटि को देखने के लिए उपयोगी / वैध (?) हो सकता है? जिस स्थिति से मैं निपट रहा हूं, वह अपेक्षाकृत शोर रहित समारोह है, जैसे:

# Simulate dataset
set.seed(12345)
n   = 100
x   = runif(n, 0, 20)
y   = SSasymp(x, 5, 1, -1) + rnorm(n, sd=2)
dat = data.frame(x, y)

यहां मॉडल मूल डेटा सेट का उपयोग करके भी अभिसरण नहीं करता है,

> (fit = nls(y ~ SSasymp(x, Asym, R0, lrc), dat))
Error in numericDeriv(form[[3L]], names(ind), env) : 
  Missing value or an infinity produced when evaluating the model

इसलिए जिन आंकड़ों में मेरी दिलचस्पी है, वे इन nls मापदंडों के अधिक स्थिर अनुमान हैं - शायद बूटस्ट्रैप प्रतिकृति की संख्या में उनके साधन।

# Obtain mean bootstrap nls parameter estimates
fit.bs = boot(dat, function(dat, inds)
              tryCatch(coef(nls(y ~ SSasymp(x, Asym, R0, lrc), dat[inds, ])),
                       error=function(e) c(NA, NA, NA)), 100)
pars = colMeans(fit.bs$t, na.rm=T)

यहाँ ये वास्तव में बॉल पार्क में हैं, जो मैंने मूल डेटा का अनुकरण करने के लिए उपयोग किया था:

> pars
[1]  5.606190  1.859591 -1.390816

एक प्लॉट किए गए संस्करण की तरह दिखता है:

# Plot
with(dat, plot(x, y))

newx = seq(min(x), max(x), len=100)
lines(newx, SSasymp(newx, pars[1], pars[2], pars[3]))

lines(newx, SSasymp(newx, 5, 1, -1), col='red')
legend('bottomright', c('Actual', 'Predicted'), bty='n', lty=1, col=2:1)

यहाँ छवि विवरण दर्ज करें

अब, अगर मुझे इन स्थिर पैरामीटर अनुमानों की परिवर्तनशीलता चाहिए, तो मुझे लगता है कि मैं इस बूटस्ट्रैप वितरण की सामान्यता को मानते हुए, बस उनकी मानक त्रुटियों की गणना कर सकता हूं:

> apply(fit.bs$t, 2, function(x) sd(x, na.rm=T) / sqrt(length(na.omit(x))))
[1] 0.08369921 0.17230957 0.08386824

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

बहुत धन्यवाद, और, वैसे, मैं एक इंजीनियर हूं इसलिए कृपया मुझे इधर-उधर एक रिश्तेदार नौसिखिया होने के लिए माफ कर दें।

जवाबों:


13

इस प्रश्न में कई समस्याएं हैं। सबसे पहले, यह सवाल है कि क्या बूटस्ट्रैप किए गए औसत समझदार अनुमानक होंगे, तब भी जब कुछ व्यक्तिगत बूटस्ट्रैप्ड अनुमानक कम्प्यूटेबल नहीं होते हैं (अभिसरण की कमी, समाधानों की गैर-मौजूदगी)। दूसरा, यह देखते हुए कि बूटस्ट्रैप किए गए अनुमानकर्ता समझदार हैं, इन अनुमानों के लिए आत्मविश्वास अंतराल या शायद सिर्फ मानक त्रुटियों को प्राप्त करने का तरीका है।

बूटस्ट्रैप किए गए अनुमानों के औसत का विचार निकट से संबंधित है, यदि वास्तव में बूटस्ट्रैप एकत्रीकरण, या बैगिंग के समान नहीं है, तो कमजोर भविष्यवक्ताओं के पूर्वानुमान प्रदर्शन को बेहतर बनाने के लिए मशीन सीखने में उपयोग किया जाता है। ईएसएल , धारा 8.7 देखें । कुछ मामलों में मापदंडों का आकलन करने के लिए भी मूल डेटा सेट पर केवल अनुमानक का उपयोग करने की तुलना में बूटस्ट्रैप अनुमानों का औसत परिणामी अनुमानक के विचरण को कम कर सकता है।--

प्रश्न में उद्देश्य, हालांकि, ऐसे मामलों में भी अनुमान लगाने के लिए है जहां अनुमानों की गणना के लिए एल्गोरिथ्म कभी-कभी विफल हो सकता है या जहां अनुमानक कभी-कभी अपरिभाषित होता है। एक सामान्य दृष्टिकोण के रूप में एक समस्या है:

  • बूटस्ट्रैप किए गए अनुमानों का लाभ उठाते हुए, नेत्रहीन रूप से बूटस्ट्रैप किए गए नमूनों को फेंक देते हैं, जिसके लिए अनुमान सामान्य रूप से पक्षपाती परिणाम देने के लिए गणना योग्य नहीं होंगे।

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

प्रश्न के दूसरे भाग के लिए हमें थोड़ी संकेतन की आवश्यकता है। यदि हमारे मूल डेटा सेट को दर्शाता है, तो हमारा अनुमानक हमारे अनुमानक (सादगी के लिए यह वास्तविक मूल्य है और मान NA लेने की अनुमति देता है) जैसे कि मूल डेटा के लिए अनुमान है सेट, और एक बूटस्ट्रैप किए गए नमूने को दर्शाता है फिर बूटस्ट्रैप औसत प्रभावी रूप से अनुमानक जहां गणना कर रहा है , घटना को दर्शाता है के आधार पर , जिस पर । यही है, हम बूटस्ट्रैप किए गए नमूने पर अनुमानक की सशर्त अपेक्षा की गणना करते हैंθ θ ( एक्स ) वाई ~ θ ( एक्स ) = ( θ ( वाई ) | एक्सएक्सθ^θ^(एक्स)Y

θ~(एक्स)=(θ^(Y)|एक्स,(एक्स))
(एक्स)एक्सθ^(Y)NA-मूल नमूना और घटना , पर कंडीशनिंग , कि अनुमानक बूटस्ट्रैप किए गए नमूने के लिए गणना योग्य है। वास्तविक बूटस्ट्रैप अभिकलन का एक नमूना आधारित सन्निकटन है ।एक्स(एक्स)θ~(एक्स)

प्रश्न में सुझाव बूटस्ट्रैप किए गए अनुमानकों के अनुभवजन्य मानक विचलन की गणना करना है, जो कि और पर सशर्त रूप से के मानक विचलन का अनुमान है । वांछित मानक विचलन, मानक त्रुटि, का मानक विचलन है । आप पूर्व से उत्तरार्द्ध प्राप्त नहीं कर सकते। मैं मानक त्रुटि का एक विश्वसनीय अनुमान प्राप्त करने के लिए बूटस्ट्रैपिंग की दूसरी परत का उपयोग करने के अलावा कोई अन्य स्पष्ट और सामान्य तरीका नहीं देखता हूं।θ^(Y)एक्स(एक्स)θ~(एक्स)

मानक त्रुटि के आकलन पर चर्चा स्वतंत्र है कि पर कंडीशनिंग कैसे अनुमानक के पूर्वाग्रह को प्रभावित करती है । यदि प्रभाव गंभीर है, तब भी मानक त्रुटि के सही अनुमानों के साथ, एक आत्मविश्वास अंतराल भ्रामक होगा। ~ θ ( एक्स )(एक्स)θ~(एक्स)

संपादित करें :

एफ्रॉन द्वारा मॉडल चयन के बाद बहुत अच्छा पेपर अनुमान और सटीकता , बूटस्ट्रैपिंग की दूसरी परत का उपयोग किए बिना एक बैग्ड अनुमानक की मानक त्रुटि का अनुमान लगाने के लिए एक सामान्य विधि देता है। कागज अनुमानकर्ताओं के साथ स्पष्ट रूप से व्यवहार नहीं करता है जो कभी-कभी गणना योग्य नहीं होते हैं।


भयानक उत्तर के लिए धन्यवाद। पूर्वाग्रह पर बिंदु विशेष रूप से अच्छी तरह से लिया गया है। आप एक चरम मामले की कल्पना कर सकते हैं जहां बिंदु बादल पूरी तरह से समान है, बहुत दूर तक फिट रहने वाले बिंदुओं के एकल सेट के लिए बचाएं। nlsफिट का विशाल बहुमत विफल हो सकता है, लेकिन, जो कि अभिसरण करते हैं, पूर्वाग्रह बहुत बड़ा होगा और भविष्यवाणी की गई मानक त्रुटियां / सीआई स्वाभाविक रूप से छोटी हैं। nlsBoot50% सफल फिट की एक तदर्थ आवश्यकता का उपयोग करता है, लेकिन मैं आपसे सहमत हूं कि सशर्त वितरण की समानता (डिस) समान रूप से एक चिंता का विषय है।
जॉन Colby

(मैं कोशिश करूंगा कि कल आपको एक बोनस दिया जाए अगर यह साइट मुझे एसओ की तरह अनुमति देती है)
जॉन कॉलबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.