首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NumPy: financial方法返回'nan‘。为什么?

NumPy: financial方法返回'nan‘。为什么?
EN

Stack Overflow用户
提问于 2013-11-06 23:21:58
回答 2查看 2.9K关注 0票数 7

当我使用numpy方法irr计算内部收益率(irr)时,我接收nan作为返回。

代码语言:javascript
运行
复制
In [45]: numpy.irr([-10, 2, 2, 2, 2])
Out[45]: nan

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

这些评论和文献并不能帮助理解nan是在什么条件下发布的。当我用另一个程序计算irr时,我得到了-8%的返回。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-06 23:33:38

如果您查看此函数的implementation,它只会在(0,1)内查找IRR的解决方案。这是因为方程可以有几个解,所以只剩下一个有效的解。在这里,这是一个相当糟糕的实施选择,因为IRR肯定会超出这一范围,而且仍然是完全有效的。在您的情况下,我建议编写您自己的函数(按照现有函数的思路),这将满足您的需要。

票数 6
EN

Stack Overflow用户

发布于 2014-01-16 00:24:29

只是对前一个答案的一个小小的修正。该实现不将IRR限制为(0,1),而是将1/(1+IRR)限制为(0,1)。这将IRR限制在[0,+Inf]。它仍然是一个不完整的实现,因为它返回的现金流量,其内部收益率小于0(即投资者损失的钱)的NaN。IRR的正确范围是(-1,+Inf)。然而,修正并不是微不足道的,因为净现值(比率)可以有一个以上的零,但是在速率大于零的情况下,不会有超过一个过零。因此,在实现函数时,将范围限制为[0,+inf)意味着在负IRR上失败,但也不必处理返回的多个根。

顺便指出,如果您对NPV( rate )的行为感到好奇,它将接近+Inf或-Inf作为速率趋近-1。它接近无穷远的符号与最终现金流的标志是相同的。在另一端,当利率接近+Inf时,NPV逐渐接近序列中初始现金流量的值(通常为负现金流)。在利率=零时,净现值是现金流量之和。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19824970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档