首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IRR与numpy.irr和Excel函数的不同结果

IRR与numpy.irr和Excel函数的不同结果
EN

Stack Overflow用户
提问于 2018-10-12 03:22:58
回答 1查看 1K关注 0票数 1

我有以下年度现金流量:

代码语言:javascript
复制
w=np.array([   -56501, -14918073,  -1745198, -20887403,  -9960686, -31076934,
               0,         0,  11367846,  26736802,  -2341940,  20853917,
        22166416,  19214094,  23056582, -11227178,  18867100,  24947517,
        28733869,  24707603, -17030396,   7753089,  27526723,  31534327,
        26726270, -24607953,  11532035,  29444013,  24350595,  30140678,
       -33262793,   5640172,  32846900,  38165710,  31655489, -74343373,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,         0,         0,         0,         0,         0,
               0,  -8727068])

我使用np.irr计算IRR

代码语言:javascript
复制
np.irr(w)
Out[141]: -0.05393588064654964

当我在Excel中对相同的现金流使用IRR函数时,我得到12%的现金流量。这两个函数通常产生相同的结果。有人知道为什么在这种情况下结果会如此不同吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 04:20:55

对于给定的现金流,IRR并不是唯一的,请参见多重IRRr的numpy和Excel值都满足NPV(r) = 0,其中净现值是净现值。

以下是w中数据的NPV(r)图。红星标记IRR值(其中NPV(r)为0)。

下面是生成情节的脚本:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt


w = np.array([   -56501, -14918073,  -1745198, -20887403,  -9960686, -31076934,
                      0,         0,  11367846,  26736802,  -2341940,  20853917,
               22166416,  19214094,  23056582, -11227178,  18867100,  24947517,
               28733869,  24707603, -17030396,   7753089,  27526723,  31534327,
               26726270, -24607953,  11532035,  29444013,  24350595,  30140678,
              -33262793,   5640172,  32846900,  38165710,  31655489, -74343373,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,         0,         0,         0,         0,         0,
                      0,  -8727068])

r_excel = 0.1200963665

r_numpy = np.irr(w)

rr = np.linspace(-0.055, 0.16, 500)
npvals = np.array([np.npv(r, w) for r in rr])

plt.plot(rr, npvals/1e6, alpha=0.8)
plt.plot(r_numpy, 0, 'r*')
plt.plot(r_excel, 0, 'r*')

plt.grid(True)
plt.xlabel('r')
plt.ylabel('NPV(r) [millions]')

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

https://stackoverflow.com/questions/52771770

复制
相关文章

相似问题

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