> x
[1] 204>
> t.x
[1] 58.571
> T.cal
[1] 58.571
params.pnbd.ori
[1] 0.7267025 44.7482499 0.6511856 6.0002258
> params.pnbd
[1] 0.1053945 5.9858090 2.6068076 1.8394092
> pnbd.PAlive(params.pnbd.ori, x, t.x, T.cal )
[1] NaN
我通过了功能。返回的术语是:
(1 + s/(r + s + x) * (alpha + T.cal)^(r + x) * (beta + T.cal)^s * A0)^(-1)
(alpha + T.cal)^(r + x)
部分存在问题。另外,A0
是0
。它给出Inf
,这会使整个术语被评估为Nan
。
我已经做了一个快速而肮脏的修复,其中如果术语为Nan
,该函数将输出1
。这是正确的方法吗?有更好的解决方法吗?