二次制約の影響を受ける多変量正規分布からのサンプルの描画


回答:


12

この問題の正式な解決には、まず適切な定義が必要です。

"分布は、という制約を受けます "Nd(μ,Σ)||x||2=1

自然な方法は、条件としての分布を定義すること。そして、この条件をケースに適用します。極座標を使用する場合、 変換のヤコビアンは したがって、分布の条件付き密度XNd(μ,Σ)||X||=ϱϱ=1

x1=ϱcos(θ1)θ1[0,π]x2=ϱsin(θ1)cos(θ2)θ2[0,π]xd1=ϱ(i=1d2sin(θi))cos(θd1)θd1[0,2π]xd=ϱi=1d1sin(θi)
ϱd1i=1d2sin(θi)d1i
θ=(θ1,,θd1)所与 IS ϱ
f(θ|ϱ)exp12{(x(θ,ϱ)μ)TΣ1(x(θ,ϱ)μ)}i=1d2sin(θi)d1i

結論:ヤコビアンのため、この密度は、単位球上の点に単に正規密度を適用することとは異なります。

2番目のステップは、ターゲット密度 とマルコフ連鎖モンテカルロアルゴリズムを設計して、パラメーター空間を探索します。私の最初の試みは、に最も近い球上の点で初期化さギブスサンプラーにてだろう、で、、そしてメトロポリスギブス内の方法で一度に1つの角度を進めます。

f(θ|ϱ=1)exp12{(x(θ,1)μ)TΣ1(x(θ,1)μ)}i=1d2sin(θi)d1i
[0,π]d2×[0,2π]μμ/||μ||
  1. 生成する(合計が計算されます法として)、この新しい値を確率 elseθ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. 生成する(合計が計算されます法として)、この新しい値を確率 elseθ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. 生成(合計は法として計算されます)、この新しい値を確率 elseθd1(t+1)U([θd1(t)δd1,θd1(t)+δd1])2π
    f(θ1(t+1),θ2(t+1),...,θd1(t+1)|ϱ=1)f(θ1(t+1),θ2(t+1),...,θd1(t)|ϱ=1)1
    θd1(t+1)=θd1(t)

スケール、、、は、理想的な目標に向けて、ステップの受け入れ率に対してスケーリングできます。δ1δ2δd150%

以下は、上記を説明するRコードで、およびデフォルト値を示します。μΣ

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||xn||22=1n1nΣΣ1n

この分布を一般的にサンプリングするには、iidの標準法線を生成し、次に平方根である乗算して、平均追加します。Σ0.5Σμ


お返事をありがとうございます。それが私が望むものを生み出すと考えることができる1つの方法ですが(しかし効率的ではありません)、拒否サンプリングです。だから、それを行うことは不可能ではありません。しかし、私はそれを行う効率的な方法を探しています。
ソビ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.