큰 정수 알파, 베타에 대한 베타 분포 값을 계산하는 수치 적으로 안정적인 방법이 있습니까 (예 : alpha, beta> 1000000)?
실제로, 어떻게 든 문제를 쉽게 만들 수 있다면 모드 주위에 99 % 신뢰 구간 만 있으면됩니다.
추가 : 죄송합니다. 제 질문은 생각했던대로 명확하게 언급되지 않았습니다. 내가하고 싶은 것은 이것입니다 : 컨베이어 벨트에서 제품을 검사하는 기계가 있습니다. 이 제품의 일부는 기계에 의해 거부됩니다. 기계 작업자가 일부 검사 설정을 변경하면 추정 거부율과 현재 추정치의 신뢰성에 대한 힌트를 보여 드리고자합니다.
따라서 실제 거부율을 임의의 변수 X로 취급하고 거부 된 개체 N과 허용 된 개체 M의 수를 기반으로 해당 임의 변수의 확률 분포를 계산한다고 생각했습니다. N과 M에 따른 베타 분포입니다.이 분포를 사용자에게 직접 표시하거나 구간 [l, r]을 찾아 실제 거부율이 p> = 0.99 (shabbychef의 용어 사용) 인이 구간에 있도록 표시 할 수 있습니다. 간격. 작은 M, N의 경우 (즉, 모수 변경 직후) 분포를 직접 계산하고 구간 [l, r]에 근접 할 수 있습니다. 그러나 큰 M, N의 경우,이 순진한 접근 방식은 x ^ N * (1-x) ^ M이 작기 때문에 배정 밀도 부동 소수점으로 표시되므로 언더 플로 오류가 발생합니다.
내 최선의 방법은 작은 M, N에 대해 순진한 베타 분포를 사용하고 M, N이 임계 값을 초과하자마자 동일한 평균 및 분산을 갖는 정규 분포로 전환하는 것입니다. 말이 돼?
답변
정규 근사는 특히 꼬리에서 매우 잘 작동합니다 . 평균 및 분산 . 예를 들어, 다음과 같은 (사행이 관심사가 될 수도 있음) 힘든 상황에서 테일 확률 절대 상대 오차 주위 피크 및 미만이다 가있을 때 평균에서 1 SD 이상. (이것은 베타가 너무 크기 때문 이 아닙니다 . 이면 절대 상대 오류는 로 제한됩니다.
따라서이 근사치는 99 % 간격을 포함하는 모든 목적에 우수합니다.
질문에 대한 편집에 비추어, 실제로 정수를 통합하여 베타 적분을 계산하지는 않습니다. 물론 언더 플로우가 발생할 수 있습니다 (물론 적분에 크게 기여하지 않기 때문에 실제로 중요하지는 않지만) . Johnson & Kotz (통계 분포)에 설명 된대로 적분을 계산하거나 근사값을 계산하는 방법에는 여러 가지가 있습니다. 온라인 계산기는 http://www.danielsoper.com/statcalc/calc37.aspx에 있습니다. 실제로이 적분의 역수가 필요합니다. 역을 계산하는 일부 방법은 Mathematica 사이트 ( http://functions.wolfram.com/GammaBetaErf/InverseBetaRegularized/) 에 문서화되어 있습니다.. 코드는 Numerical Recipes (www.nr.com)에서 제공됩니다. 정말 멋진 온라인 계산기는 Wolfram Alpha 사이트 (www.wolframalpha.com)입니다. inverse beta regularized (.005, 1000000, 1000001)
왼쪽 끝점과 inverse beta regularized (.995, 1000000, 1000001)
오른쪽 끝점 ( , 99 % 간격)에 입력하십시오.
답변
빠른 그래픽 실험에 따르면 알파와 베타가 모두 매우 큰 경우 베타 분포는 정규 분포와 매우 유사합니다. 인터넷 검색 “베타 배포 제한 정상”으로 나는 http://nrich.maths.org/discus/messages/117730/143065.html?1200700623을 찾았습니다 .
베타 분포의 위키 백과 페이지는 평균, 모드 (큰 알파 및 베타의 경우 평균에 가까운 v) 및 분산을 제공하므로 평균과 분산이 동일한 정규 분포를 사용하여 근사값을 얻을 수 있습니다. 목적에 맞는 근사치인지 여부는 목적에 따라 다릅니다.
답변
베타 RV에서 임의의 추첨이 확률 0.99의 구간에 있고 과 에 대한 보너스 포인트 가 모드 주위에서 대칭 이되도록 구간 을 원한다고 추론하겠습니다 . 으로 가우스 ‘불평등 또는 Vysochanskii-Petunin 불평등, 당신은 간격을 포함 간격을 구성 할 수 있습니다 , 그리고 꽤 괜찮은 근사치가 될 것입니다. 충분히 큰 경우 과 을 별개의 숫자로 표시 하는데도 수류 부족 문제가 발생 하므로이 경로가 충분할 수 있습니다.
답변
경우 베타 분포 변수이고, 그 때의 로그 확률이고 (즉 : . 대략 정규 분포 이것도만큼 따라 매우 기울어 베타 분포 마찬가지이다P의 L은 O g ( P / ( 1 – p는 ) ) 해요 I N ( α , β ) > 100
예를 들어
f <- function(n, a, b) {
p <- rbeta(n, a, b)
lor <- log(p/(1-p))
ks.test(lor, 'pnorm', mean(lor), sd(lor))$p.value
}
summary(replicate(50, f(10000, 100, 1000000)))
일반적으로 다음과 같은 출력을 생성합니다
요약 (복제 (50, f (10000, 100, 1000000))) Min. 1 분기 중간 평균 3 쿼터 최대 0.01205 0.10870 0.18680 0.24810 0.36170 0.68730
즉 전형적인 p- 값은 약 0.2입니다.
따라서 10000 개의 샘플이 있더라도 Kolmogorov-Smirnov 테스트는 으로 고도로 치우친 베타 분포 변수의 로그 승산 비 변환을 구별 할 수있는 능력이 없습니다 .
그러나 자체 의 분포에 대한 유사한 테스트
f2 <- function(n, a, b) {
p <- rbeta(n, a, b)
ks.test(p, 'pnorm', mean(p), sd(p))$p.value
}
summary(replicate(50, f2(10000, 100, 1000000)))
다음과 같은 것을 생성합니다
summary(replicate(50, f2(10000, 100, 1000000)))
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.462e-05 3.156e-03 7.614e-03 1.780e-02 1.699e-02 2.280e-01
0.01 정도의 전형적인 p- 값
R qqnorm
함수는 또한 유용한 시각화를 제공하여, 대략적인 정규성을 나타내는 log-odds 분포에 대한 매우 직선적 인 플롯을 생성합니다. 베타 dsitribute 변수의 분포는 비정규를 나타내는 독특한 곡선을 생성합니다
따라서 둘 다 100을 초과 하는 한 고도로 치우친 값에 대해서도 로그 홀드 공간에서 가우스 근사를 사용하는 것이 합리적 입니다.