0

我一直在做随机现金流建模。在其中一些情况下,内部收益率为负(随着时间的推移,现金流出超过现金流入)。R似乎讨厌这个。我收到一个 uniroot 错误。我使用过 FinCal 包的 irr 函数,甚至尝试编写自己的 uniroot IRR 公式。任何公式都可以解决正面和负面的 IRR 情景,这一点很重要。

有什么建议或想法吗?是否有处理此问题的 R 包或简单的 uniroot 公式?

谢谢!

4

1 回答 1

0

我最终编写了自己的代码(基于 FinCal 的 irr),其中忽略了错误。当 uniroot 正在寻找解决方案时,我还更改了范围以包含负数。仅供参考 - 发生错误是因为值超出范围或可能有两种解决方案。使用irr4解决。

    irr3<-function (cf) 
    {  n <- length(cf)
    subcf <- cf[2:n]
    uniroot(function(r) -1 * pv.uneven(r, subcf) + cf[1], lower = -.2, upper =      .2, tol = .000001)$root}

   irr4<-function (x) {
   out<-tryCatch(irr3(x),error= function(e) NULL)
   return(out)}
于 2016-09-25T18:59:25.483 回答