【发布时间】:2011-01-17 15:56:47
【问题描述】:
我希望这属于这里而不是数学论坛。
我试图在 R 中计算负二项式的密度。我的参数目前采用mu(预期的平均失败次数)和过度离散参数k 的形式。由于我在编译的 C 代码中调用 dnbinom,因此我需要将这些参数转换为默认参数化 dnbinom,它预计每次试验的成功概率 p 和成功次数 n 在计数停止之前.我使用以下等式根据mu 和k 求解p 和n:
n = mu*p/(1-p)
mu + mu^2/k = n(1-p)/p^2
经过一点代数,我得到了
p = k/mu + 1
n = -(mu^2+k*mu)/k
使用 R 中 dnbinom 的不同参数化检查这些方程会发现一个问题:
> 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 的参数化怎么办?我现在很确定我的代数是正确的。或者,当从 C 调用 dnbinom 时,有没有办法坚持原始参数化(就 mu 和 k 而言)?
【问题讨论】:
-
我不知道你是怎么得到
n = -(mu^2+k*mu)/k的,就像你写的这个公式n = mu*p/(1-p)看起来不错。 -
抱歉。它应该是 p = k/(k+mu),这意味着
n=k。
标签: c r statistics