आपके पास कई चीजें मिश्रित हैं। सिद्धांत पूर्व वितरण और संभावना को गुणा करने के बारे में बात करता है, पूर्व वितरण से नमूने नहीं। इसके अलावा यह स्पष्ट नहीं है कि आपके पास क्या है, क्या यह किसी चीज के माध्यम से पूर्व है? या कुछ और?
फिर आपके पास संभावना में उलट चीजें हैं, आपकी टिप्पणियों को एक्स या तो ड्रॉ या ज्ञात स्थिरांक के साथ माध्य और मानक विचलन के रूप में x होना चाहिए। और तब भी यह वास्तव में x और समान माध्य और मानक विचलन के रूप में आपकी प्रत्येक टिप्पणियों के साथ 4 कॉल का उत्पाद होगा।
वास्तव में कोई स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं। क्या पूछते हैं? आप किन मापदंडों में रुचि रखते हैं? उन मापदंडों पर आपके पास क्या है? क्या अन्य पैरामीटर हैं? क्या आपके पास उनके लिए पुजारी या निश्चित मूल्य हैं?
चीजों के बारे में जाने की कोशिश करना जिस तरह से आप वर्तमान में कर रहे हैं वह केवल आपको और अधिक भ्रमित करेगा जब तक आप ठीक से काम नहीं करते हैं कि आपका सवाल क्या है और वहां से काम करें।
मूल प्रश्न के संपादन के बाद नीचे जोड़ा गया है।
आप अभी भी कुछ टुकड़ों को याद कर रहे हैं, और शायद सब कुछ समझ में नहीं आ रहा है, लेकिन हम उस जगह से शुरू कर सकते हैं जहां आप हैं।
मुझे लगता है कि आप कुछ अवधारणाओं को भ्रमित कर रहे हैं। ऐसी संभावना है कि डेटा और मापदंडों के बीच के संबंध को दर्शाता है, आप सामान्य का उपयोग कर रहे हैं जिसमें 2 पैरामीटर हैं, मतलब और मानक विचलन (या विचरण, या सटीक)। फिर मापदंडों पर पूर्व वितरण होता है, आपने माध्य 0 और एसडी 1 के साथ एक सामान्य पूर्व निर्दिष्ट किया है, लेकिन यह मतलब और मानक विचलन पूरी तरह से माध्य और मानक विचलन से अलग है। पूर्ण होने के लिए आपको या तो संभावना जानने की आवश्यकता है SD या संभावना पर एक पूर्व लगाएं SD, सादगी के लिए (लेकिन कम वास्तविक) मुझे लगता है कि हम संभावना को जानते हैं SD is (इसके अलावा कोई अच्छा कारण काम नहीं करता है और इससे अलग है) 1)।12
तो हम आपके द्वारा किए गए समान काम शुरू कर सकते हैं और पूर्व से उत्पन्न कर सकते हैं:
> obs <- c(0.4, 0.5, 0.8, 0.1)
> pri <- rnorm(10000, 0, 1)
अब हमें संभावना की गणना करने की आवश्यकता है, यह माध्य के पूर्ववर्ती ड्रा, डेटा के साथ संभावना और एसडी के ज्ञात मूल्य पर आधारित है। Dnorm फ़ंक्शन हमें किसी एक बिंदु की संभावना देगा, लेकिन हमें प्रत्येक अवलोकन के लिए मूल्यों को एक साथ गुणा करने की आवश्यकता है, यहां ऐसा करने के लिए एक फ़ंक्शन है:
> likfun <- function(theta) {
+ sapply( theta, function(t) prod( dnorm(obs, t, 0.5) ) )
+ }
अब हम माध्य के लिए पूर्व से प्रत्येक ड्रा के लिए संभावना की गणना कर सकते हैं
> tmp <- likfun(pri)
अब पीछे आने के लिए हमें एक नए प्रकार का ड्रॉ करने की जरूरत है, एक तरीका जो रिजेक्शन सैंपलिंग के समान है, वह है प्रत्येक पूर्व ड्रॉ की संभावना के लिए आनुपातिक रूप से ड्रॉ के लिए। बारे में पूछना):
> post <- sample( pri, 100000, replace=TRUE, prob=tmp )
अब हम पश्चवर्ती ड्रा के परिणामों को देख सकते हैं:
> mean(post)
[1] 0.4205842
> sd(post)
[1] 0.2421079
>
> hist(post)
> abline(v=mean(post), col='green')
और उपर्युक्त परिणामों की तुलना सिद्धांत से बंद प्रपत्र मानों से करें
> (1/1^2*mean(pri) + length(obs)/0.5^2 * mean(obs))/( 1/1^2 + length(obs)/0.5^2 )
[1] 0.4233263
> sqrt(1/(1+4*4))
[1] 0.2425356
एक बुरा सन्निकटन नहीं है, लेकिन यह संभव है कि पीछे से खींचने के लिए एक अंतर्निहित मैकएमसी उपकरण का उपयोग करना बेहतर होगा। इनमें से अधिकांश उपकरण एक समय में एक बिंदु को ऊपर की तरह बैचों में नहीं करते हैं।
अधिक वास्तविक रूप से हम संभावना के एसडी को नहीं जानते होंगे और इसके लिए पूर्व की आवश्यकता होगी (अक्सर विचरण पर पूर्व एक या गामा है), लेकिन तब गणना करना अधिक जटिल होता है (McMC काम आता है) ) और तुलना करने के लिए कोई बंद रूप नहीं है।χ2
सामान्य समाधान McMC गणना जैसे WinBugs या OpenBugs (R में R और Bugs के बीच एक इंटरफ़ेस देता है) या संकुल जैसे LearnBayes को करने के लिए मौजूदा उपकरणों का उपयोग करना है।