जवाबों:
इस समस्या के औपचारिक समाधान के लिए सबसे पहले एक उचित परिभाषा की आवश्यकता है
" बाधा को वितरण के विषय है कि "
प्राकृतिक तरीका स्थिति को । X || = \ varrho और इस सशर्त को केस \ varrho = 1 पर लागू करने के लिए । यदि हम ध्रुवीय निर्देशांक ,
निष्कर्ष: यह घनत्व सामान्य घनत्व को इकाई के एक बिंदु पर रखने से भिन्न होता है क्योंकि जैकबियन की वजह से यह इकाई क्षेत्र पर होता है।
दूसरा चरण लक्ष्य घनत्व और पैरामीटर स्थान पता लगाने के लिए एक मार्कोव चेन मोंटे कार्लो एल्गोरिदम डिज़ाइन करें । मेरा पहला प्रयास गिब्स नमूना पर होगा, जो इस बिंदु पर आरंभिक रूप से , यानी सबसे निकट होगा। , और महानगर के भीतर-गिब्स तरीके से एक समय में एक कोण आगे बढ़ना:
स्केल , , , को एक आदर्श लक्ष्य की ओर, चरणों की स्वीकृति दरों के विरुद्ध बढ़ाया जा सकता है ।
यहाँ और लिए डिफ़ॉल्ट मान के साथ, ऊपर चित्रण करने के लिए एक आर कोड है :
library(mvtnorm)
d=4
target=function(the,mu=1:d,sigma=diag(1/(1:d))){
carte=cos(the[1])
for (i in 2:(d-1))
carte=c(carte,prod(sin(the[1:(i-1)]))*cos(the[i]))
carte=c(carte,prod(sin(the[1:(d-1)])))
prod(sin(the)^((d-2):0))*dmvnorm(carte,mean=mu,sigma=sigma)}
#Gibbs
T=1e4
#starting point
mu=(1:d)
mup=mu/sqrt(sum(mu^2))
mut=acos(mup[1])
for (i in 2:(d-1))
mut=c(mut,acos(mup[i]/prod(sin(mut))))
thes=matrix(mut,nrow=T,ncol=d-1,byrow=TRUE)
delta=rep(pi/2,d-1) #scale
past=target(thes[1,]) #current target
for (t in 2:T){
thes[t,]=thes[t-1,]
for (j in 1:(d-1)){
prop=thes[t,]
prop[j]=prop[j]+runif(1,-delta[j],delta[j])
prop[j]=prop[j]%%(2*pi-(j<d-1)*pi)
prof=target(prop)
if (runif(1)<prof/past){
past=prof;thes[t,]=prop}
}
}
कड़ाई से संभव नहीं है क्योंकि एक (निरंतर) यादृच्छिक चर है। यदि आप इसे 1, अर्थात (जहां टिल्ड का मतलब है कि हम विचरण का अनुमान लगाते हैं), तो आपको इसके विचरण की आवश्यकता होगी । हालाँकि, यह मांग साथ संघर्ष कर सकती है । अर्थात्, इस विचरण के साथ नमूने प्राप्त करने के लिए आपको बराबर होने के लिए के विकर्ण की आवश्यकता होती है ।
सामान्य रूप से इस वितरण को नमूना करने के लिए, आप iid मानक मानदंड बना सकते हैं, और उसके बाद , वर्गमूल से गुणा कर सकते हैं , और उसके बाद साधन जोड़ सकते हैं ।