आइए हम पहले यह मान लें कि आप किस चीज का नमूना लेना चाहते हैं
x + y + z = 1
0 ≤ x ≤ 1
0 ≤ y ≤ 1
0 ≤ z ≤ 1
यह काफी अंतर नहीं करता है, क्योंकि नमूना बिंदु अभी भी उच्च संभावना के साथ आपके अनुरोधित क्षेत्र में झूठ होगा।
अब आप एक सिंप्लेक्स से एक बिंदु का नमूना लेने से बचे हैं । 3 डी उदाहरण में आपको 3 डी में एक 2d सिम्प्लेक्स (त्रिकोण) का एहसास होता है।
इस ब्लॉग पोस्ट में यादृच्छिक रूप से एक बिंदु को समान रूप से कैसे चुना जाए (टिप्पणियों को देखें)।
आपकी समस्या के लिए इसका मतलब होगा कि आप अंतराल ( 0 , 1 ) से यादृच्छिक संख्या लेते हैं , फिर आप n + 1 संख्याओं की सूची प्राप्त करने के लिए एक 0 और 1 जोड़ते हैं । आप सूची को सॉर्ट करते हैं और फिर आप लगातार दो तत्वों के बीच अंतर रिकॉर्ड करते हैं। यह आपको n संख्या की एक सूची देता है जो 1 तक की राशि देगा । इसके अलावा यह नमूना एक समान है। यह विचार डोनाल्ड बी। रुबिन, द बायेसियन बूटस्ट्रैप एन में पाया जा सकता है । सांख्यिकीविद। 9, 1981, 130-134।n−1(0,1)01n+1n1
उदाहरण के लिए ( ) आपके पास तीन यादृच्छिक संख्याएँ हैं फिर आप क्रमबद्ध अनुक्रम प्राप्त करते हैं और यह अंतर देता है , और निर्माण द्वारा इन चार संख्याओं का योग 1 तक होता है।n=40.4 0.2 0.1
0 0.1 0.2 0.4 1
0.1 0.1 0.2 0.6
एक अन्य दृष्टिकोण निम्नलिखित है: हाइपरक्यूब से पहला नमूना (कि आप के बारे में भूल जाते हैं x+y+z=1
) और फिर नमूना बिंदु को सामान्य करें। सामान्यीकरण, हाइपरक्यूब से d - 1 -simplex का प्रक्षेपण है। यह सहज रूप से स्पष्ट होना चाहिए कि सिंप्लेक्स के केंद्र के बिंदुओं में बाहर की तुलना में अधिक "पूर्व-छवि-बिंदु" हैंdd−1। इसलिए, यदि आप हाइपरक्यूब से समान रूप से नमूना लेते हैं, तो यह आपको सिम्पलेक्स में एक समान नमूना नहीं देगा। हालांकि, यदि आप हाइपरक्यूब से एक उचित घातांक वितरण के साथ नमूना लेते हैं, तो इस प्रभाव से रद्द हो जाता है। चित्रा आपको एक विचार देता है कि दोनों तरीके कैसे नमूना लेंगे। हालांकि, मैं इसके सरल रूप के कारण "छंटाई" विधि पसंद करता हूं। इसे लागू करना भी आसान है।