이차 제약 조건이 적용되는 다변량 정규 분포에서 표본 추출


답변:


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) 주어진 ϱ 이다
f(θ|ϱ)exp12{(x(θ,ϱ)μ)TΣ1(x(θ,ϱ)μ)}i=1d2sin(θi)d1i

결론 : 이 밀도는 자 코비안 (Jacobian) 때문에 노말 밀도를 단위 구의 점에 단순히 적용하는 것과 다릅니다.

두 번째 단계는 목표 밀도를 고려하는 것입니다

f(θ|ϱ=1)exp12{(x(θ,1)μ)TΣ1(x(θ,1)μ)}i=1d2sin(θi)d1i
매개 변수 공간을 탐색하기 위해 Markov 체인 Monte Carlo 알고리즘을 설계 [0,π]d2×[0,2π]. 나의 첫 번째 시도는 Gibbs 샘플러에서 이루어졌으며 가장 가까운 구체의 지점에서 초기화되었습니다.μ, 그건, μ/||μ||및 대도시 내 방식으로 한 번에 한 각도 씩 진행 :
  1. 일으키다 θ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. 일으키다 θ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. 일으키다 θ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, , δd1 이상적인 목표를 향해 단계의 수용 률에 따라 조정될 수 있습니다. 50%.

위의 내용을 설명하는 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 이후 엄격하게 가능하지 않습니다 x(연속) 랜덤 변수입니다. 1의 분산을 원한다면, 즉E[(xμ)2]=~1n(xμ)2=1n||xn||22=1n (물결표는 우리가 분산을 추정한다는 것을 의미합니다) 그렇다면 분산이 다음과 같아야합니다. 1n. 그러나이 수요는Σ. 즉,이 분산으로 표본을 구하려면 대각선이 필요합니다.Σ 동등하다 1n.

이 분포를 일반적으로 표본 추출하기 위해 iid 표준 법선을 생성 한 다음 Σ0.5, 제곱근 Σ그런 다음 수단을 추가하십시오. μ.


답변 주셔서 감사합니다. 내가 생각할 수있는 한 가지 방법은 내가 원하지만 (비효율적 인) 생산을 거부하는 것 입니다. 거부 샘플링 입니다. 따라서 그렇게하는 것은 불가능하지 않습니다. 그러나 나는 그것을하는 효율적인 방법을 찾고 있습니다.
Sobi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.