簡體   English   中英

來自 tvm package 的 XIRR function 提供的結果與來自 Excel 的 XIRR 不同

[英]XIRR function from tvm package delivers different outcome than XIRR from Excel

我正在嘗試從以下現金流量計算 IRR,並使用 tvm::xirr 與 Excel 的 XIRR 相比得到略有不同的結果。

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,但我更願意使用這個 function,因為我有一個龐大的數據庫,每天的現金流量不規律。

謝謝

我閱讀了 TVM 和 Excel XIRR 的文檔。 如果你使用相同的arguments,你會發現相同的結果(你可以選擇精度級別)。

我在 R 中復制 excel 的代碼是:

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使用名為uniroot的算法來查找 IRR。 因此,您可以包括 arguments,例如找到結果的最大迭代次數 (maxiter) 和所需的精度/收斂公差 (tol)。

Excel也使用了交互技術。 XIRR 循環計算,直到結果准確度在 0.000001% 以內(相當於 tol=0.00000001)並且有 100 次迭代的限制(相當於 maxiter=100)。

在您的示例中,兩種技術的結果都是 -0.00423772。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM