首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自tvm包的XIRR函数提供的结果与Excel中的XIRR不同

来自tvm包的XIRR函数提供的结果与Excel中的XIRR不同
EN

Stack Overflow用户
提问于 2022-04-25 00:30:46
回答 1查看 94关注 0票数 1

我试图从以下现金流中计算IRR,并使用tvm::xirr获得与Excel中的XIRR略有不同的结果。

代码语言:javascript
运行
复制
Dates= c("2020-12-31", "2021-12-31")

CF = c(-18965299.53, 18884929.89)

library(tvm)
xirr(CF, Dates, comp_freq = Inf)

= -0.004270912

与使用Excel的-0.00423772相比(即使我修改了comp_freq,结果也不匹配)。

这是一个简化的例子,但在其他情况下,差异变得更大。

有人知道如何调整公式,使其与Excel的结果相同吗?

我知道我可以构建自己的代码来计算IRR,但是我更喜欢使用这个函数,因为我有一个庞大的数据库,每天的现金流都是不规则的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 14:13:37

我阅读了TVM和Excel的文档。如果使用相同的参数,则会发现相同的结果(可以选择精度级别)。

我在R中复制excel的代码是:

代码语言:javascript
运行
复制
library(tvm)
Dates= c("2020-12-31", "2021-12-31")
DatesReal= as.Date(Dates)
CF = c(-18965299.53, 18884929.89)
xirr(CF, DatesReal, comp_freq = 1, maxiter=100, tol=0.00000001)

TVM利用一种名为单根的算法来查找IRR。因此,您可以包含参数,例如查找结果的最大迭代次数(maxiter)和所需的精度/收敛容限(tol)。

Excel也使用一种交互技术。XIRR循环通过计算,直到结果在0.000001 %以内(等效于tol=0.00000001)并有100次迭代(等效于maxiter=100)。

在您的示例中,这两种技术的结果是-0.00423772。

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

https://stackoverflow.com/questions/71993387

复制
相关文章

相似问题

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