एक बहुभिन्नरूपी सामान्य वितरण से नमूनों को द्विघात बाधाओं के अधीन करना


जवाबों:


12

इस समस्या के औपचारिक समाधान के लिए सबसे पहले एक उचित परिभाषा की आवश्यकता है

" Nd(μ,Σ) बाधा को वितरण के विषय है कि ||x||2=1 "

प्राकृतिक तरीका X∼Nd(μ,Σ) स्थिति को ||X||=ϱ । X || = \ varrho और इस सशर्त को केस \ varrho = 1 पर लागू करने के लिए ϱ=1। यदि हम ध्रुवीय निर्देशांक ,

x1=ϱcos⁡(θ1)θ1∈[0,π]x2=ϱsin⁡(θ1)cos⁡(θ2)θ2∈[0,π]⋮xd−1=ϱ(∏i=1d−2sin⁡(θi))cos⁡(θd−1)θd−1∈[0,2π]xd=ϱ∏i=1d−1sin⁡(θi)
परिवर्तन का
ϱd−1∏i=1d−2sin⁡(θi)d−1−i
इसलिए के वितरण की सशर्त घनत्वθ=(θ1,…,θd−1) दिया ϱ है
f(θ|ϱ)∝exp⁡−12{(x(θ,ϱ)−μ)TΣ−1(x(θ,ϱ)−μ)}∏i=1d−2sin⁡(θi)d−1−i

निष्कर्ष: यह घनत्व सामान्य घनत्व को इकाई के एक बिंदु पर रखने से भिन्न होता है क्योंकि जैकबियन की वजह से यह इकाई क्षेत्र पर होता है।

दूसरा चरण लक्ष्य घनत्व और पैरामीटर स्थान पता लगाने के लिए एक मार्कोव चेन मोंटे कार्लो एल्गोरिदम डिज़ाइन करें । मेरा पहला प्रयास गिब्स नमूना पर होगा, जो इस बिंदु पर आरंभिक रूप से , यानी सबसे निकट होगा। , और महानगर के भीतर-गिब्स तरीके से एक समय में एक कोण आगे बढ़ना:

f(θ|ϱ=1)∝exp⁡−12{(x(θ,1)−μ)TΣ−1(x(θ,1)−μ)}∏i=1d−2sin⁡(θi)d−1−i
[0,π]d−2×[0,2π]μμ/||μ||
  1. Generate (जहां रकम की गणना की जाती है modulo ) और प्रायिकता साथ इस नए मान को स्वीकार करें औरθ1(t+1)∼U([θ1(t)−δ1,θ1(t)+δ1])π
    f(θ1(t+1),θ2(t),...|ϱ=1)f(θ1(t),θ2(t),...|ϱ=1)∧1
    θ1(t+1)=θ1(t)
  2. Generate (जहाँ रकम की गणना की जाती है modulo ) और इस नए मान को प्रायिकता औरθ2(t+1)∼U([θ2(t)−δ2,θ2(t)+δ2])π
    f(θ1(t+1),θ2(t+1),θ3(t),...|ϱ=1)f(θ1(t+1),θ2(t),θ3(t),...|ϱ=1)∧1
    θ2(t+1)=θ2(t)
  3. …
  4. Generate (जहाँ रकम की गणना modulo ) और प्रायिकता ) के साथ इस नए मान को स्वीकार करें औरθd−1(t+1)∼U([θd−1(t)−δd−1,θd−1(t)+δd−1])2π
    f(θ1(t+1),θ2(t+1),...,θd−1(t+1)|ϱ=1)f(θ1(t+1),θ2(t+1),...,θd−1(t)|ϱ=1)∧1
    θd−1(t+1)=θd−1(t)

स्केल , , , को एक आदर्श लक्ष्य की ओर, चरणों की स्वीकृति दरों के विरुद्ध बढ़ाया जा सकता है ।δ1δ2…δd−150%

यहाँ और लिए डिफ़ॉल्ट मान के साथ, ऊपर चित्रण करने के लिए एक आर कोड है :μΣ

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}
   }
}

-3

||x||22=1 कड़ाई से संभव नहीं है क्योंकि एक (निरंतर) यादृच्छिक चर है। यदि आप इसे 1, अर्थात (जहां टिल्ड का मतलब है कि हम विचरण का अनुमान लगाते हैं), तो आपको इसके विचरण की आवश्यकता होगी । हालाँकि, यह मांग साथ संघर्ष कर सकती है । अर्थात्, इस विचरण के साथ नमूने प्राप्त करने के लिए आपको बराबर होने के लिए के विकर्ण की आवश्यकता होती है ।xE[(x−μ)2]=~1n∑(x−μ)2=1n||x−n||22=1n1nΣΣ1n

सामान्य रूप से इस वितरण को नमूना करने के लिए, आप iid मानक मानदंड बना सकते हैं, और उसके बाद , वर्गमूल से गुणा कर सकते हैं , और उसके बाद साधन जोड़ सकते हैं ।Σ0.5Σμ


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