통합하려는 함수 가 있다고 가정하자. ∫ ∞ − ∞ g ( x ) d x . 물론 g ( x ) 가 끝점에서 0으로 가정하고 폭발이 없으며 멋진 기능을 가정합니다. 내가 다루었던 한 가지 방법은 Metropolis-Hastings 알고리즘을 사용 하여 g ( x )에 비례 하는 분포에서 샘플 x 1 , x 2 , … , x n 목록을 생성하는 것입니다
정규화 상수를 누락되는
되는 I는 호출 P ( X를 ) 하고 일부 통계치 계산 F ( X ) 다음에 X 의 :
(1)
이후 , 난에 대체 할 수있는 F ( X ) = U ( X ) / g ( X ) 취소 g을 형태의 표현의 결과로부터 적분 한 따라서U(x)가해당 지역을 따라1에통합되면 결과1/N을 얻어야하며 원하는 답을 얻기 위해 역수를 취할 수 있습니다. 그러므로 나는 내 샘플의 범위 (대부분 효과적으로 포인트를 사용) 걸릴 수R=X최대-X분및하자U(X)=1/R을내가 그려 한 각 샘플에 대해. 그렇게U
는 내 샘플이 아닌 지역 외부에서 0으로 평가되지만해당 지역의 1 에통합됩니다. 이제 예상 값을 가져 오면
E [ U ( x )
rnorm
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 편집
이 문제를 빠르게 살펴보면 range (x)를 사용하기로 결정한 이유가 확실하지 않습니다. 조건부로 유효하기 때문에 매우 비효율적입니다! 해당 크기의 표본 범위는 통계가 취할 수있는 가장 불안정한 통계입니다.
—
Cliff AB
@CliffAB 내 포인트가있는 구간에 균일 한 분포를 정의하는 것 외에도 범위를 사용하는 것에 대해 특별히 특별한 것은 없습니다. 편집 내용을 참조하십시오.
—
Mike Flynn
@CliffAB 당신이 옳았을 수도 있지만, 그 이유는 적분의 경계가 고정되지 않았기 때문에 추정기의 분산이 결코 수렴하지 않을 것이라고 생각합니다.
—
Mike Flynn