簡體   English   中英

R和MS Excel之間的IRR計算結果不同

[英]Different results for IRR computation between R and MS Excel

內部收益率(IRR)或經濟收益率(ERR)是資本預算中用來衡量和比較投資收益率的收益率。

我寫了一些R代碼來計算內部收益率(IRR),如下所示:

cal_irr <- function(amount,fee,duration) {
    cash<-c(amount,rep(-1*(amount*fee+amount/duration),duration))
    NPV<-function(r){sum(cash /((1 + r) ^ (seq(along.with = cash)-1)))}
    return(uniroot(NPV, c(0, 1))$root)
}

cal_irr可以計算分期付款,但令人討厭的是,我的結果與MS Excel中的財務功能IRR不同。

例如,您從銀行借了3600,管理費是0.006*3600 ,等於24個月的本金,所以每個月您都必須支付3600*0.006+3600/24=171.6

您產生的成本是cal_irr(3600,0.006,240) = 0.01104071 ,但是在Excel中,我得到了1.1054657% 我的R代碼有什么問題?

在此處輸入圖片說明

您無所不能地找到了小數目,這可能會引起容忍度的問題。 嘗試:

cal_irr <- function(amount,fee,duration) {
  cash<-c(amount,rep(-1*(amount*fee+amount/duration),duration))
  NPV<-function(r){sum(cash /((1 + r) ^ (seq(along.with = cash)-1)))}
  return(uniroot(NPV, c(0, 1), tol=.0000001)$root)}
cal_irr(3600,0.006,24)
# [1] 0.01105466

如果您的CF看起來像這樣:

> cal_cash <- function(amount,fee,duration) c(amount,rep(-1*(amount*fee+amount/duration),duration))
> cal_cash(3600,0.006,24)
 [1] 3600.0 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6 -171.6
[20] -171.6 -171.6 -171.6 -171.6 -171.6 -171.6

然后,很容易使用financial軟件包來計算IRR:

> require(financial)
> cf(cal_cash(3600,0.006,24))$irr
[1] -185.755352    1.105466

暫無
暫無

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

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