我一直在做随机现金流建模。在其中一些情况下,内部收益率为负(随着时间的推移,现金流出超过现金流流入)。R似乎讨厌这一点。我得到一个单根错误。我使用了FinCal包irr函数,甚至尝试编写自己的单根IRR公式。重要的是,任何公式都要解决正IRR和负IRR两种情况。
有什么建议或想法吗?有没有一个R包来处理这个问题,或者一个简单的单根公式?
谢谢!
发布于 2016-09-26 02:59:25
我最终编写了自己的代码(基于来自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)}https://stackoverflow.com/questions/38572173
复制相似问题