Параметризации отрицательных биномиальных плотностей (днбином) в R - PullRequest
3 голосов
/ 17 января 2011

Я надеюсь, что это принадлежит здесь, а не математическому форуму.

Я пытаюсь вычислить в R плотность отрицательного бинома.Мои параметры в настоящее время имеют вид mu (среднее число ожидаемых отказов) и параметр избыточной дисперсии k.Так как я вызываю dnbinom в скомпилированном коде C, мне нужно преобразовать эти параметры в параметризацию по умолчанию dnbinom, которая ожидает вероятность успеха за пробу p и количество успехов n до окончания подсчета,Я использовал следующие уравнения для решения для p и n в терминах mu и k:

n = mu*p/(1-p)
mu + mu^2/k = n(1-p)/p^2

После небольшой алгебры я получаю

p = k/mu + 1
n = -(mu^2+k*mu)/k

Проверка этих уравнений с различными параметризациями dnbinom в R выявляет проблему:

<code>> k = 1.2
> mu = 15
> p = k/mu+1
> n = -(mu*k+mu^2)/k
> dnbinom(10,size=n,prob=p)
[1] NaN
Warning message:
In dnbinom(x, size, prob, log) : NaNs produced
> dnbinom(10,mu=mu,size=k)
[1] 0.03560668

Как насчет параметризации R, которую я пропускаю?Я почти уверен, что моя алгебра верна.Кроме того, есть ли способ придерживаться исходной параметризации (в терминах mu и k) при вызове dnbinom из C?

1 Ответ

6 голосов
/ 17 января 2011

Как говорит ?dnbinom: размер " Должен быть строго положительным , не обязательно должен быть целым числом"

В вашем примере

 n = -(mu*k+mu^2)/k
 n
 [1] -202.5

Итак, dnbinom терпит неудачу.

Я думаю, что n должно быть mu*p/(1-p) после вычисления p (как вы написали также выше), таким образом:

k = 1.2
mu = 15
p = k/(k+mu)
n = mu*p/(1-p)
dnbinom(10,size=n,prob=p)
    [1] 0.03560668
dnbinom(10,mu=mu,size=k)
    [1] 0.03560668

Что выглядит хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...