当我使用numpy方法irr计算内部 yield (irr)时,我收到nan作为 yield 。

In [45]: numpy.irr([-10, 2, 2, 2, 2])
Out[45]: nan

结果不应该至少是负面的吗?比方说-8%?
当我试图更好地理解实现时,我查看了 master branch of the NumPy repository ,但实现对我来说没有任何意义。

评论和给定的文献无助于理解 nan 在何种条件下发布。当我用另一个程序计算 irr 时,我得到 -8% 的返回。

为什么 NumPy 为上面的数组返回 nan

最佳答案

如果您查看此函数的 implementation,它只会在 (0, 1] 内寻找 IRR 的解。这是因为方程可以有多个解,因此只剩下一个有效的解。这是一个相当 (IMO)糟糕的实现选择,因为 IRR 当然可以在这个范围之外并且仍然是完全有效的。在你的情况下,我建议你编写自己的函数(沿着现有的函数),它可以满足你的需要。

10-04 21:25