임계 베타 분포를 효율적으로 샘플링


10

다음 분포에서 어떻게 효율적으로 샘플링해야합니까?

엑스(α,β), 엑스>케이

경우 너무 크지도 않고 다음 거부 샘플링은 가장 좋은 방법이 될 수 있지만, 나는 확실하지 때 진행 방법입니다 크다. 아마도 적용 할 수있는 점근 적 근사가 있습니까?k케이케이


1
" "로 의도 한 것을 명확하게 알 수는 없습니다 . 잘린 베타 분포 를 의미 합니까 ( 왼쪽 k 에서 잘림 )? 엑스(α,β), 엑스>케이케이
Glen_b-복지 주 모니카

@Glen_b 정확히.
user1502040

5
1보다 큰 두 가지 형상 매개 변수 모두 베타 분포가 로그 오목하므로 지수 엔벌 로프를 사용하여 거부 샘플링을 수행 할 수 있습니다. 잘리지 않는 베타 변이를 생성하려면 이미 잘린 지수 분포 (쉽게 수행)에서 샘플링하는 것이므로이 방법을 쉽게 적용 할 수 있습니다.
Scortchi-복원 모니카

답변:


14

적용되는 간단한 방법이며, 가장 일반적인 방법은, 임의의 (또한 양측에 절단에 일반화 될 수있다) 절단 분포는 사용하는 샘플링 역변환 . 가 누적 누적 관심 분포 인 경우 p 0 = F ( k )를 설정 하고에프0=에프(케이)

(0,1)엑스=에프1()

여기서 k 에서 왼쪽 잘린 F 의 샘플입니다 . Quantile 함수 F - 1 은 확률을 F의 샘플에 매핑 합니다. 절단되지 않은 영역의 베타 분포 값과 일치하는 "영역"에서만 U 값을 가져 오므로 해당 값만 샘플링합니다.엑스에프케이에프1에프

이 방법은 아래 이미지에서 잘린 영역이 회색 사각형으로 표시되고 빨간색 점이 분포 에서 그려진 다음 B ( 2 , 8 ) 샘플 로 변환되는 이미지에 설명되어 있습니다.(0,1)(2,8)

잘린 분포에서 역변환 샘플링


5
(+1) Quantile 함수가 그렇게 쉽게 평가되지 않는다는 점은 주목할 가치가 있습니다.
Scortchi-복원 모니카

1
@Scortchi a 또는 b가 1 이상이거나 정수이면, 나쁘지 않은 형식이 있습니다 ( wikipedia 참조 ). 그리고 파이썬에는 scipy.special.betainc그 반대가 있고 R에는 있습니다 pbeta.
Graipher

3
@Graipher : "일반적으로 저렴하게"말 했어야했는데 가능하다면 Newton-Raphson 또는 다른 반복적 인 솔루션을 피하는 것이 좋습니다. (BTW qbeta는 R의 Quantile 함수를위한 것입니다.)
Scortchi-Reinstate Monica

1
@Scortchi 당신이 맞지만, 대부분의 경우 현대 컴퓨터의 경우 큰 문제가되어서는 안됩니다. 그것은 대부분의 소프트웨어에서 직접 사용할 수 있으며 일반화 될 수 있기 때문에 나는 또한이 방법을 추천 어떤 절단 유통 한 분위수 기능에 액세스 할 수있는 경우에만.
Tim

1
의심 할 여지없이 따라 런타임이 커지지 않는 일반적으로 적용 가능하고 쉽게 구현되는 방법을 사용하는 것이 좋습니다 . & 와이프 형태의 Quantile 함수, 예를 들어 Weibull을 갖는 분포의 경우, 얻을 수있는만큼 우수해야합니다. 그럼에도 불구하고 k 는 대부분의 소프트웨어에서 사용 가능하며 베타 확률 확률 계산에만 의존하는 효율적인 거부 샘플링 알고리즘을 능가하기 전에 베타 배포의 상당 부분을 잘라 내야한다고 생각합니다. 케이케이
Scortchi-모니 티 복원

8

@Tim의 답변 은 역변환 샘플링이 잘린 분포에 맞게 조정되어 임계 값 에 대한 런타임 의존성을 완화하는 방법을 보여줍니다 . 베타 양자 함수의 값 비싼 수치 평가를 피하고 역변환 샘플링을 거부 샘플링의 일부로 사용함으로써 추가적인 효율성을 얻을 수 있습니다.케이

형상 패러미터와 베타 분포 밀도 함수 β는 절두 이중에서 k는 1 <는 K 2 (좀더 일반성)입니다αβ케이1<케이2

에프(엑스)=엑스(α1)(1엑스)(β1)(케이2,α,β)(케이1,α,β)

& x U 사이의 밀도에서 단조롭게 증가하는 부분을 취하십시오 : α , β > 1 의 경우 로그 오목하므로, 임의의 지점에 접선으로 지수 함수를 사용하여 포괄 할 수 있습니다 :엑스엑스α,β>1

(엑스)=λ이자형λ(엑스엑스)

로그 밀도의 그래디언트를 동일하게 설정하여 를 찾으십시오.λ

&c=f(x)에서 밀도를 충족시키기 위해 지수 밀도를 스케일링해야하는 양을 계산하여 c찾기

λ=1엑스11엑스
=에프(엑스)λ이자형λ(엑스엑스)

여기에 이미지 설명을 입력하십시오

=(1이자형λ(엑스엑스))
엑스λ

(엑스)=엑스(1엑스)(+2)엑스+1[특급((1)(엑스엑스)1엑스+엑스(1)엑스(1))특급((1)(엑스엑스)1엑스+엑스(1)엑스(1))]

엑스엑스엑스=0

케이1케이2로그(1)λλ

여기에 이미지 설명을 입력하십시오

이 방법의 장점은 모든 노력이 준비되어 있다는 것입니다. 엔벌 로프 함수가 정의되면 잘린 베타 밀도에 대한 정규화 상수가 남은 것은 균일 한 무작위 변이를 생성하고 간단한 산술 연산, 로그 및 검정 및 비교를 수행하는 것입니다. 수평선 또는 더 많은 지수 곡선으로 엔벨로프 기능을 강화하면 거부 횟수를 줄일 수 있습니다.


1
+1 좋은 생각입니다. 베타는 매개 변수의 중간 정도에서 큰 수치에 대해 거의 정상이므로 서로 얼마나 가까이 있는지에 따라 가우시안 엔벨로프를 사용하는 것이 훨씬 더 효율적일 수 있습니다.
whuber

α<1β<1

1
αβ

@ whuber : (1) 봉투를 구성하기 위해 여기에서 취한 접근법은 밀도가 로그 오목하지 않기 때문에 작동하지 않습니다. (2) (a) 나는 확실히 대수 함수 + 로그 & 파워를 의미했다. 내가 요청 받았을 때 함수, 그리고 아마도 감마 함수-나는 정확한 개념이 없다고 고백합니다. (b) 요점-빠른 기능 평가는 폐쇄 된 형태의 평가에만 국한되지 않습니다.
Scortchi-복원 Monica Monica

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