python - NumPy:金融 irr 方法返回 'nan' 。为什么?

标签 python arrays numpy financial irr

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

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

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

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

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

最佳答案

只是对之前答案的一个小修正。该实现并未将 IRR 限制为 (0,1),而是将 1/(1+IRR) 限制为 (0,1)。这将 IRR 限制为 [0,+Inf]。它仍然是一个不完整的实现,因为它返回 NaN对于 IRR 小于 0 的现金流(即投资者赔钱)。IRR 的正确范围是 (-1,+Inf)。然而,修正并非微不足道,因为 NPV(rate) 可以超过一个零,但在利率大于零的情况下不会超过一个零交叉。因此,在实现函数时将范围限制为 [0,+inf) 意味着您在负 IRR 上失败,但也永远不必处理多个根被归还。

作为旁注,如果您对 NPV(利率)的行为感到好奇,它会在利率接近 -1 时接近 +Inf 或 -Inf。它趋近无穷大的符号与最终现金流量的符号相同。在另一端,随着利率接近 +Inf,NPV 逐渐接近序列中初始现金流量的值(通常为负现金流量)。在利率 = 零时,NPV 的值是现金流量的总和。

关于python - NumPy:金融 irr 方法返回 'nan' 。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824970/

相关文章:

python - Google 表格 + GoogleCredentials = "insufficient authentication scopes"

python - 多个 raw_input

python - 为什么我的 Docker 容器在启动后没有将控制权返回给终端?

python pandas np.where 来自另一列的值

python - 矢量化misc.imresize()时出现广播错误

python - 如何处理 2 个小部件事件来控制数据框?

c - 使用临时变量或直接从数组更有效?

ruby - 根据字符串的一部分对 Ruby 数组进行排序

c- 增加数组大小并尝试达到后出现段错误

python - Scipy:Hermite 函数与正交权重的集成