विधि बहुत सरल है, इसलिए मैं इसे सरल शब्दों में वर्णन करूंगा। सबसे पहले, कुछ वितरण का संचयी वितरण फ़ंक्शन FX , जिससे आप नमूना लेना चाहते हैं। समारोह इनपुट के रूप में कुछ मूल्य लेता x और आपको बताता है प्राप्त करने की संभावना है क्या X≤x । इसलिए
FX(x)=Pr(X≤x)=p
ऐसे फ़ंक्शन फ़ंक्शन का उलटा , इनपुट के रूप में लेगा और लौटाएगा । सूचना है कि के समान रूप से वितरित कर रहे हैं - यह किसी से नमूने के लिए इस्तेमाल किया जा सकता यदि आप जानते हैं । विधि को प्रतिलोम ट्रांसफॉर्मिंग सैंपलिंग कहा जाता है । विचार बहुत सरल है: यह से समान रूप से नमूना मूल्यों के लिए आसान है , इसलिए यदि आप कुछ से नमूना करना चाहते , बस मान ले और पारित के माध्यम से प्राप्त करने के लिए कीF−1XpxpFXF−1XU(0,1)FXu∼U(0,1)uF−1Xx
F−1X(u)=x
या आर में (सामान्य वितरण के लिए)
U <- runif(1e6)
X <- qnorm(U)
यह देखने के लिए कि सीडीएफ को नीचे देखें, आम तौर पर, हम -axis से मूल्यों की संभावनाओं के लिए -axis को देखने के संदर्भ में वितरण के बारे में सोचते हैं । इस नमूने पद्धति के साथ हम विपरीत करते हैं और "संभावनाओं" से शुरू करते हैं और उनका उपयोग उन मूल्यों को चुनने के लिए करते हैं जो उनसे संबंधित हैं। असतत वितरण के साथ आप को से तक की रेखा के रूप में मानते हैं और मान देते हैं कि इस बिंदु पर कुछ बिंदु कहां स्थित है (उदाहरण यदि या यदि नमूना लेने के लिए )।yxU01u00≤u<0.510.5≤u≤1Bernoulli(0.5)
दुर्भाग्य से, यह हमेशा संभव नहीं होता है क्योंकि प्रत्येक फ़ंक्शन का उलटा नहीं होता है, उदाहरण के लिए आप इस विधि का उपयोग द्विभाजित वितरण के साथ नहीं कर सकते हैं। यह भी सभी स्थितियों में सबसे कुशल तरीका नहीं है, कई मामलों में बेहतर एल्गोरिदम मौजूद हैं।
आप यह भी पूछते हैं कि का वितरण क्या है । चूंकि का , तो और , इसलिए हां, मानों का उपयोग करके प्राप्त किया जाता है इस पद्धति का के समान वितरण है । आप एक साधारण सिमुलेशन द्वारा इसकी जांच कर सकते हैंF−1X(u)F−1XFXFX(F−1X(u))=uF−1X(FX(x))=xX
U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)