Metropolis-Hastings 통합-왜 전략이 작동하지 않습니까?


16

통합하려는 함수 가 있다고 가정하자. g ( x ) d x . 물론 g ( x ) 가 끝점에서 0으로 가정하고 폭발이 없으며 멋진 기능을 가정합니다. 내가 다루었던 한 가지 방법은 Metropolis-Hastings 알고리즘을 사용 하여 g ( x )에 비례 하는 분포에서 샘플 x 1 , x 2 , , x n 목록을 생성하는 것입니다g(x)

g(x)dx.
g(x)x1,x2,,xng(x)정규화 상수를 누락되는 되는 I는 호출 P ( X를 ) 하고 일부 통계치 계산 F ( X ) 다음에 X 의 : (1)
N=g(x)dx
p(x)f(x)x
1ni=0nf(xi)f(x)p(x)dx.

이후 , 난에 대체 할 수있는 F ( X ) = U ( X ) / g ( X ) 취소 g을 형태의 표현의 결과로부터 적분 p(x)=g(x)/Nf(x)=U(x)/g(x)g 따라서U(x)가해당 지역을 따라1에통합되면 결과1/N을 얻어야하며 원하는 답을 얻기 위해 역수를 취할 수 있습니다. 그러므로 나는 내 샘플의 범위 (대부분 효과적으로 포인트를 사용) 걸릴 수R=X최대-X및하자U(X)=1/R을내가 그려 한 각 샘플에 대해. 그렇게U

1NU(x)g(x)g(x)dx=1NU(x)dx.
U(x)11/Nr=xmaxxminU(x)=1/r 는 내 샘플이 아닌 지역 외부에서 0으로 평가되지만해당 지역의 1 에통합됩니다. 이제 예상 값을 가져 오면 E [ U ( x )U(x)1
E[U(x)g(x)]=1N1ni=0nU(x)g(x).

g(x)=ex2rnorm

1n(xmaxxmin)i=0n1exi2.
1/π
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896

CliffAB 편집

1[,]

U(x)={1xmaxxminxmax>x>xmin0otherwise.
U(x)1
P(x)=1πex2.
1ni=0nP(x)g(x)=1ni=0nexi2/πexi2=1ni=0n1π=1π.

1


이 문제를 빠르게 살펴보면 range (x)를 사용하기로 결정한 이유가 확실하지 않습니다. 조건부로 유효하기 때문에 매우 비효율적입니다! 해당 크기의 표본 범위는 통계가 취할 수있는 가장 불안정한 통계입니다.
Cliff AB

@CliffAB 내 포인트가있는 구간에 균일 한 분포를 정의하는 것 외에도 범위를 사용하는 것에 대해 특별히 특별한 것은 없습니다. 편집 내용을 참조하십시오.
Mike Flynn

1
n(x)1nrange(x)

@CliffAB 당신이 옳았을 수도 있지만, 그 이유는 적분의 경계가 고정되지 않았기 때문에 추정기의 분산이 결코 수렴하지 않을 것이라고 생각합니다.
Mike Flynn

답변:


13

ggg

Xg(x)dx
p(x)g(x)α(x)U(x)
{x;α(x)>0}{x;g(x)>0}
Xα(x)g(x)p(x)dx=Xα(x)Ndx=1N
p1/N
η^=1ni=1nα(xi)g(xi)xiiidp(x)
η^αα=π
α(x)g(x)=1(x)
(x)g(x)=π(x)(x)
N^=ni=1n1/(xi)

(min(xi),max(xi))exp{x2}

α(q.25(xi),q.75(xi))g

이 새로운 밀도에 코드를 적용 할 때 근사값은 훨씬 가깝습니다.1/π

ys = rnorm(1e6, 0, 1/sqrt(2))
r = quantile(ys,.75) - quantile(ys,.25)
yc=ys[(ys>quantile(ys,.25))&(ys<quantile(ys,.75))]
sum(sapply(yc, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.5649015. 1/sqrt(pi) = 0.5641896

우리는이 개 논문에서 세부 사항에이 방법을 논의 대런 레이스와장 미셸 마린을 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.