Как сделать выборку из дискретного распределения по неотрицательным целым числам?


10

У меня есть следующее дискретное распределение, где - известные константы:α,β

p(x;α,β)=Beta(α+1,β+x)Beta(α,β)for x=0,1,2,

Каковы некоторые подходы для эффективной выборки из этого распределения?

Ответы:


9

Это бета-отрицательное биномиальное распределение с параметром r=1 в вашем случае с использованием записи Википедии. Он также называется бета-Паскаль распределения, когда r является целым числом. Как вы отметили в комментарии, это прогнозное распределение в байесовской отрицательной биномиальной модели с сопряженной бета-оценкой до вероятности успеха.

Таким образом, вы можете сэмплировать его, выбрав переменную u и затем выбрав отрицательную биномиальную переменную NB ( r , u )r = 1 в вашем случае, то есть с геометрическим распределением).Beta(α,β)uNB(r,u)r=1

Это распределение осуществляется в пакете R brr. У сэмплера есть имя rbeta_nbinom, у pmf есть имя dbeta_nbinomи т. Д. Обозначения , c = α , d = β . Проверьте:a=rc=αd=β

> Alpha <- 2; Beta <- 3
> a <- 1
> all.equal(brr::dbeta_nbinom(0:10, a, Alpha, Beta), beta(Alpha+a, Beta+0:10)/beta(Alpha,Beta))
[1] TRUE

Глядя на код, можно увидеть, что он на самом деле вызывает ghyper(обобщенно гипергеометрическое) семейство распределений SuppDistsпакета:

brr::rbeta_nbinom
function(n, a, c, d){
  rghyper(n, -d, -a, c-1)
}

В самом деле, распределение BNB известно как обобщенное гипергеометрическое распределение типа IV . Смотрите помощь ghyperв SuppDistsпакете. Я полагаю, что это также можно найти в книге Джонсона и др. Univariate Discrete Distribution .


Этот ответ хорош, но было бы еще лучше, если бы вы доказали, что опубликованная ОП плотности равна отрицательной биномиальной плотности.
Sycorax говорит восстановить Monica

1
@ user777 Я думаю, что автор ОП доказал это сам, учитывая его комментарий к ответу Сианя (апостериорное предиктивное распределение в отрицательной биномиальной модели с сопряженной бета-версией).
Стефан Лоран

10

Учитывая, что уменьшается с ростомx, я предлагаю сгенерировать равномерную переменнуюuU(0,1)и вычислить накопленные суммыSk=k x=0Beta(α+1,β+x)

Бета(α+1,β+Икс)Бета(α,β)знак равноαα+β+Иксβ+Икс-1α+β+Икс-1βα+β
ИксU~U(0,1) покаSk>u.Тогда реализация будет равна соответствующемуk. Поскольку R x = бета ( α + 1 , β + x )
SКзнак равноΣИксзнак равно0КБета(α+1,β+Икс)Бета(α,β)
SК>U
КиSk=Sk-1+Rkв вычислениях можно полностью избежать использования гамма-функций.
рИксзнак равноБета(α+1,β+Икс)Бета(α,β)знак равноαα+β+Иксβ+Икс-1α+β+Икс-1βα+βзнак равноα+β+Икс-1α+β+Иксβ+Икс-1α+β+Икс-1рИкс-1знак равноβ+Икс-1α+β+ИксрИкс-1
SКзнак равноSК-1+рК

1
SКзнак равно1-Γ(a+б)Γ(б+К+1)Γ(б)Γ(a+б+К+1)

1
КUαβUΓ(б+К+1)Γ(a+б+К+1)αβоба являются целочисленными, то решение является корнем многочлена, но даже в этом случае использование гаммы может быть верным решением.
whuber

1
п
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.