다음 분포에서 어떻게 효율적으로 샘플링해야합니까?
경우 너무 크지도 않고 다음 거부 샘플링은 가장 좋은 방법이 될 수 있지만, 나는 확실하지 때 진행 방법입니다 크다. 아마도 적용 할 수있는 점근 적 근사가 있습니까?k
다음 분포에서 어떻게 효율적으로 샘플링해야합니까?
경우 너무 크지도 않고 다음 거부 샘플링은 가장 좋은 방법이 될 수 있지만, 나는 확실하지 때 진행 방법입니다 크다. 아마도 적용 할 수있는 점근 적 근사가 있습니까?k
답변:
적용되는 간단한 방법이며, 가장 일반적인 방법은, 임의의 (또한 양측에 절단에 일반화 될 수있다) 절단 분포는 사용하는 샘플링 역변환 . 가 누적 누적 관심 분포 인 경우 p 0 = F ( k )를 설정 하고
여기서 는 k 에서 왼쪽 잘린 F 의 샘플입니다 . Quantile 함수 F - 1 은 확률을 F의 샘플에 매핑 합니다. 절단되지 않은 영역의 베타 분포 값과 일치하는 "영역"에서만 U 값을 가져 오므로 해당 값만 샘플링합니다.
이 방법은 아래 이미지에서 잘린 영역이 회색 사각형으로 표시되고 빨간색 점이 분포 에서 그려진 다음 B ( 2 , 8 ) 샘플 로 변환되는 이미지에 설명되어 있습니다.
qbeta
는 R의 Quantile 함수를위한 것입니다.)
@Tim의 답변 은 역변환 샘플링이 잘린 분포에 맞게 조정되어 임계 값 에 대한 런타임 의존성을 완화하는 방법을 보여줍니다 . 베타 양자 함수의 값 비싼 수치 평가를 피하고 역변환 샘플링을 거부 샘플링의 일부로 사용함으로써 추가적인 효율성을 얻을 수 있습니다.
형상 패러미터와 베타 분포 밀도 함수 및 β는 절두 이중에서 k는 1 <는 K 2 (좀더 일반성)입니다
& x U 사이의 밀도에서 단조롭게 증가하는 부분을 취하십시오 : α , β > 1 의 경우 로그 오목하므로, 임의의 지점에 접선으로 지수 함수를 사용하여 포괄 할 수 있습니다 :
로그 밀도의 그래디언트를 동일하게 설정하여 를 찾으십시오.
&c=f(x)에서 밀도를 충족시키기 위해 지수 밀도를 스케일링해야하는 양을 계산하여 c찾기
이 방법의 장점은 모든 노력이 준비되어 있다는 것입니다. 엔벌 로프 함수가 정의되면 잘린 베타 밀도에 대한 정규화 상수가 남은 것은 균일 한 무작위 변이를 생성하고 간단한 산술 연산, 로그 및 검정 및 비교를 수행하는 것입니다. 수평선 또는 더 많은 지수 곡선으로 엔벨로프 기능을 강화하면 거부 횟수를 줄일 수 있습니다.