बूटस्ट्रैप, मोंटे कार्लो


12

मैंने होमवर्क के भाग के रूप में निम्नलिखित प्रश्न निर्धारित किए हैं:

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

प्रदर्शन के पहलू जिन्हें आप देखना चाहते हैं वे हैं आत्मविश्वास अंतराल कवरेज (यानी, आत्मविश्वास अंतराल का सही अनुपात किस समय होता है) और मोंटे कार्लो भिन्नता (यानी, सिमुलेशन के बीच ऊपरी और निचले आत्मविश्वास की सीमाएं कितनी भिन्न होती हैं)

क्या किसी को पता है कि इस के मोंटे कार्लो भिन्नता पहलू के बारे में कैसे जाना जाए? मैं एक एल्गोरिथ्म या कुछ भी काम करने के लिए प्रतीत नहीं कर सकते। यह मोंटे कार्लो एकीकरण के साथ क्या करना है? धन्यवाद!

जवाबों:


18

बूटस्ट्रैप प्रक्रियाओं और मोंटे कार्लो प्रक्रियाओं के बीच यह भ्रम आवर्ती बना रहता है, इसलिए शायद यह उतना ही अच्छा स्थान है जितना कि इसे संबोधित करना। ( Rकोड के उदाहरण होमवर्क के साथ भी मदद कर सकते हैं।)

बूटस्ट्रैप के इस कार्यान्वयन पर विचार करें :R

boot <- function(x, t) { # Exact bootstrap of procedure t on data x
    n <- length(x)       # Must lie between 2 and 7 inclusive.
    if (n > 7) {
        stop("Sample size exceeds 7; use an approximate method instead.")
    }
    p <- c(n, 1:(n-1))
    a <- rep(x, n^(n-1))
    dim(a) <- rep(n, n)
    y <- as.vector(a)
    while (n > 1) {
        n <- n-1
        a <- aperm(a, p)
        y <- cbind(as.vector(a), y)
    }
    apply(y, 1, t)
}

एक त्वरित नज़र यह पुष्टि करेगा कि यह एक नियतात्मक गणना है: कोई यादृच्छिक मान उत्पन्न या उपयोग नहीं किया जाता है। (मैं रुचि रखने वाले पाठकों के लिए अपने भीतर के कामकाज का विवरण छोड़ दूंगा।

तर्कों को bootसरणी में संख्यात्मक डेटा का एक बैच हैं xऔर एक संदर्भ tएक समारोह (है कि वास्तव में की तरह सरणियों के लिए लागू किया जा सकता करने के लिए x) एक एकल अंकीय मान वापस जाने के लिए; दूसरे शब्दों में, tएक आँकड़ा है । यह सभी संभावित नमूनों को प्रतिस्थापन से उत्पन्न करता है xऔर tउनमें से प्रत्येक पर लागू होता है, जिससे इस तरह के प्रत्येक नमूने के लिए एक नंबर का उत्पादन होता है: यह बूटस्ट्रैप संक्षेप में है। वापसी मूल्य एक सरणी है जो नमूने के लिए सटीक बूटस्ट्रैप वितरण का प्रतिनिधित्व करता है ।tx

एक छोटे से उदाहरण के रूप में , के एक नमूने के लिए मतलब bootstrap जाने x= c(1,3):

> boot(c(1,3), mean)
> [1] 1 2 2 3

से प्रतिस्थापन के साथ आकार वास्तव में चार संभावित नमूने हैं ; अर्थात्, , , , और । उन सभी को उत्पन्न करता है (केवल सूचीबद्ध क्रम में) और उनमें से प्रत्येक पर लागू होता है। इस मामले में माध्य की गणना की जाती है और वे क्रमशः , , और निकलते हैं, जैसा कि आउटपुट में दिखाया गया है।2(1,3)(1,1)(1,3)(3,1)(3,3)boottt1223

आप यहां से जाते हैं, इस बात पर निर्भर करता है कि आप बूटस्ट्रैप का उपयोग कैसे करना चाहते हैं। पूर्ण बूटस्ट्रैप के बारे में जानकारी इस उत्पादन सरणी में स्थित है, इसलिए यह आम तौर पर एक अच्छा विचार यह प्रदर्शित करने के लिए है। यहाँ एक उदाहरण है जहाँ मानक विचलन नमूना से बूटस्ट्रैप किया गया है :(1,3,3,4,7)

hist(boot(c(1,3,3,4,7), sd))

एसडी का हिस्टोग्राम

अब हम मोंटे कार्लो सिमुलेशन के बारे में बात करने के लिए तैयार हैं मान लीजिए, कहते हैं, हम अपने बूटस्ट्रैप वितरण के ऊपरी 95 वें प्रतिशतक का उपयोग करके नमूने से एसडी पर 95% ऊपरी विश्वास सीमा को बूटस्ट्रैप करने जा रहे थे । इस प्रक्रिया के क्या गुण होंगे? यह पता लगाने का एक तरीका है कि नमूना एक समान वितरण से यादृच्छिक रूप से प्राप्त किया गया था। (एप्लिकेशन अक्सर इंगित करेगा कि एक उचित वितरण अनुमान क्या हो सकता है? यहां, मैंने मनमाने ढंग से एक को चुना है जो गणना के लिए सरल है, लेकिन विश्लेषणात्मक रूप से निपटने के लिए आसान नहीं है।) हम इस तरह के एक नमूना लेने और यूसीएल की गणना करके क्या अनुकरण कर सकते हैं।5

> set.seed(17)
> quantile(boot(runif(5, min=0, max=10), sd), .95)[1]
     95% 
3.835870 

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

> boot.sd <- replicate(100, quantile(boot(runif(5, min=0, max=10), sd), .95)[1])
> hist(boot.sd)

सिमुलेशन का हिस्टोग्राम

क्या हम सिमुलेशन का एक और सेट करने के लिए थे, यादृच्छिक ड्रॉ अलग-अलग निकलेंगे, जो एक (थोड़ा) अलग हिस्टोग्राम बना रहा है - लेकिन इस से बहुत अलग नहीं है। हम यह समझने के लिए कुछ विश्वास के साथ उपयोग कर सकते हैं कि SD का बूटस्ट्रैप UCL कैसे काम कर रहा है। संदर्भ के लिए, ध्यान दें कि एक समान वितरण का मानक विचलन ( यहां निर्दिष्ट के रूप में से तक की सीमा ) बराबर है । जैसा कि कोई भी यूसीएल अपने नमक के लायक होने की उम्मीद करता है, हिस्टोग्राम में मूल्यों का बहुमत (तीन-चौथाई या 0.75) इससे अधिक है:01010/122.887

> length(boot.sd[boot.sd >= 10/sqrt(12)]) / length(boot.sd)
[1] 0.75

लेकिन वह नाममात्र 95% के पास है जो हमने निर्दिष्ट किया था (और उम्मीद कर रहे थे)! यह अनुकरण का एक मूल्य है: यह हमारी आशाओं की तुलना करता है कि वास्तव में क्या चल रहा है। (विसंगति क्यों? मेरा मानना ​​है कि यह इसलिए है क्योंकि बूटस्ट्रैपिंग एक एसडी वास्तव में छोटे नमूनों के साथ अच्छी तरह से काम नहीं करता है)।

समीक्षा

  • बूटस्ट्रैप आँकड़े वैचारिक रूप से किसी भी अन्य सांख्यिकीय जैसे माध्य या मानक विचलन के समान हैं; वे बस गणना करने के लिए एक लंबा समय लेते हैं। ( bootकोड में चेतावनी संदेश देखें !)

  • मोंटे-कार्लो सिमुलेशन यह अध्ययन करने के लिए उपयोगी हो सकता है कि नमूने प्राप्त करने में यादृच्छिकता के कारण बूटस्ट्रैप स्टेटिस्टिक कैसे बदलता है। इस तरह के सिमुलेशन में भिन्नता नमूनों में भिन्नता के कारण है, बूटस्ट्रैप में भिन्नता नहीं

  • (यहाँ सचित्र नहीं) क्योंकि बूटस्ट्रैप आँकड़ों में बहुत अधिक गणना हो सकती है (जाहिर है, आकार नमूनों के लिए गणना तक ), यह बूटस्ट्रैप वितरण को अनुमानित करने के लिए सुविधाजनक है । यह आमतौर पर "ब्लैक बॉक्स" प्रोग्राम बनाकर किया जाता है ताकि सच्चे बूटस्ट्रैप वितरण से यादृच्छिक पर एक मूल्य प्राप्त किया जा सके और उस प्रोग्राम को बार-बार कॉल किया जा सके। सामूहिक उत्पादन सटीक वितरण का अनुमान लगाता है। ब्लैक बॉक्स में यादृच्छिकता के कारण सन्निकटन भिन्न हो सकता है - लेकिन यह भिन्नता सन्निकटन प्रक्रिया की एक कलाकृति है। यह (अवधारणात्मक) बूटस्ट्रैप प्रक्रिया में निहित नहीं है।nnn


+1 यह बहुत अच्छा है। मुझे नहीं लगता कि मैं इसे बेहतर कर सकता था! मैं सिर्फ यह जोड़ना चाहूंगा कि मेरे पास त्रुटि दर के अनुमान में बूटस्ट्रैप के प्रदर्शन पर कुछ कागजात हैं और वेरिएशन का आकलन करते समय आत्मविश्वास अंतराल के लिए। ये परिणाम मेरे बूटस्ट्रैप तरीकों की किताब के दूसरे संस्करण और आर के लिए आवेदन के साथ बूटस्ट्रैपिंग पर मेरी किताब में पाया जा सकता है
माइकल आर। चेर्निक

अमेजन पर किताबों के लिंक यहां हैं: amazon.com/… amazon.com/Introduction-Bootstrap-Methods-Applications/dp/…
माइकल आर। चेर्निक

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

5

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

कवरेज एक ही काल्पनिक नमूना वितरण से विभिन्न डेटा सेटों पर परिणामों की भिन्नता को संदर्भित करता है।


धन्यवाद, मुझे लगता है कि यह सिर्फ कोड के साथ आने का मतलब है यह देखने के लिए कि क्या विश्वास सीमाएं सिमुलेशन के बीच भिन्न होती हैं!
सारा

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

1

मुझे यकीन नहीं है कि " मोंटे कार्लो भिन्नता" से वास्तव में क्या मतलब है , या तो। निश्चित रूप से यह देखना संभव है कि ऊपरी (या निचले) सीमा के मूल्य, उदाहरण के लिए (संकेत) जैसी चीजों में पुनरावृत्तियों में कितना भिन्नता है। शायद वे केवल मोंटे कार्लो के लिए ऐसा करना चाहते हैं, और बूटस्ट्रैप नहीं? यह एक आवश्यकता नहीं है, हालांकि मैं एक अभ्यास के लिए होगा। यह पूछने के लिए सबसे अच्छा हो सकता है कि उस वाक्यांश का क्या मतलब है।


आपकी सहायताके लिए धन्यवाद! शायद मैं अभी के लिए ऊपरी और निचली सीमाओं के बीच भिन्नता को देखूंगा और बाद में मोंटे कार्लो के बारे में पूछूंगा। अब सिर्फ यह जानने के लिए कि मैं उसके बारे में कैसे काम करता हूँ ..
सारा

यहां कई संभावनाएं हैं। एक ऊपरी-निचला (यानी, अंतर) है। प्रश्न में फंतासिंग की मेरी व्याख्या ऊपरी में भिन्नता है, और निम्न में भिन्नता है (अर्थात, 2 भिन्न भिन्नताएं), लेकिन मुझे लगता है कि मुझे यकीन नहीं हो रहा है। एक अलग नोट पर, आपके सवाल का हिस्सा है कि आर में एमसी सिमुलेशन का संचालन कैसे करें?
गूँज - मोनिका

मैं इस नतीजे पर पहुंचा कि वह 2 अलग-अलग रूपों की तलाश कर रहा था, इसलिए मुझे लगता है कि मैं कोशिश करूँगा!
सारा

1
काफी हद तक, जो मैं सोच रहा हूं कि क्या आप इस बिंदु पर जाने के लिए अच्छे हैं, या क्या आपको इस बात के बारे में अतिरिक्त संकेत की आवश्यकता है कि हमने जो पूछा है उससे कैसे संपर्क करें?
गूँग - मोनिका

1
तो, प्रत्येक पुनरावृत्ति पर, क्या आप ऊपरी और निचली सीमाएं (संकेत) संग्रहीत कर रहे हैं?
गूँग - मोनिका

1

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

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

n=10


3
एक चीज जो मैंने सटीक बूटस्ट्रैप के साथ काम करने से सीखी है, वह यह है कि मानक सामान्य-सिद्धांत CI अक्सर छोटे नमूनों के साथ बेहतर काम करेंगे, भले ही वे तिरछे हों। बूटस्ट्रैप बड़े नमूनों के साथ अपने आप में आता है: सिद्धांत एक विषम है, एक सटीक नहीं है।
whuber

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