V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GrapeCityChina
V2EX  ›  推广

左手 IRR,右手 NPV,掌握发家致富道路密码

  •  
  •   GrapeCityChina · 2021-10-13 10:58:50 +08:00 · 1569 次点击
    这是一个创建于 1141 天前的主题,其中的信息可能已经有所发展或是发生改变。

    智能手机的普及让世界成为了我们指尖下的方寸之地。

    在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近。投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容。

    但是落脚到很小的例子之上,假如项目 A 和项目 B 都可以投资 25W,而现在的贴现率是 15%(贴现率:指将来的钱折算到现在后,少掉 /多出的那部分钱与将来的钱的比值),我们投哪个项目更加划算呢?

    对金融知识知之甚少的你,看到这里可能会有点慌了。

    而这个问题在数据分析中,有一种专门的计算方式,用来处理这种数据,从而选择出利益最大化的数值,它的名字叫——IRR,与之相关的另一个数据概念,NPV 。

    接下来我们为大家简单介绍这两个概念。

    IRR 与 NPV

    NPV:Net Present Value,净现值。将未来会获得的金额转化成为现在获得的金额,和利息是分相似,但是反向计算利息的过程。

    假设明天你获得 15 块钱,贴现率 10%,换算成现就是 15/1.1=13.63 (元),累加之后再减去投资成本得到累计净现值。累计净现值越大越好,从理论上说净现>0,这个投资的内容就是可以获利的。

    用一张表说明这个数据内容:当 A 、B 项目都为 10w 元时,贴现率为 10%,两个项目时长都是 5 年。

    (图片来自网路)

    最后计算是虽然前几年两项目最后获得总金额之和都是 18.52w ,但是在这个过程中,以 B 获得更多回报的时间更为提前。NPV 的计算结果去是除掉货币的贬值的部分,结果是 B=3.96 > A=3.02 ,显然 B 项目更值得投资。

    IRR:Internal Rate of Return,内部报酬率。这个数值指累计净现值为 0 的时候的贴现率。这个数值表示了项目能承受的最大货币贬值比率(赢利空间,抗风险能力)。想要得到这个数值需要不断使用不同的折现率进行计算,找到 NPV 等于零的或者是接近零的时候。

    它是一项投资渴望达到的报酬率,该指标越大越好。

    还是用刚那个例子来看看:

    (图片来自网路)

    这张图中 A 项目的 NPV 为零,此时使用的贴现率为 18.45%,我们就说此时的 IRR 为 18.45%

    这个数值越大,我们的选择抗风险的能力就会越强。在如今,股票、基金、黄金、房产、期货等投资方式已为众多理财者所熟悉。但是投入的效果如何,我们通常的判断仅仅局限在了收益的数量之上,缺少更加科学的判断依据。这时候内部收益率(IRR)指标就是一个很有效果且直观的判断工具。

    IRR 的计算

    科学计算 IRR

    实际使用中,我们如果想要获取 IRR 数值,需要进行一定计算。

    在了解相关内容之前,我以为是这样的计算过程:

    但其实在这个计算过程中使用到了牛顿迭代公式进行计算。

    令高阶未知数 IRR 最终值为 x,令 t = 1/(1+x),我们还需要了解(xn )'= nxn-1 ,n≠0 。按照牛顿迭代公式 x n+1 = xn - f(xn)/f‘(xn)

    然后带入:t n+1 = tn – [a(tn +tn2 +tn3 +tn4)+b tn5 – c]/ [a(1 +2tn +3tn2 +4tn3)+b*5tn4]

    最后得到的 x 的数值,就是 IRR 。

    电子表格中“千表千值”的 IRR

    由于这一计算过程很复杂,所以在许多数据处理工具中都可以通过公式的使用直接得到 IRR 的计算结果。比如 Excel 中可以直接实现 IRR 的计算,GoogleSheet 等电子表格也都支持这个内容的计算。

    但是由于 IRR 是迭代计算的结果,在电子表格中的计算结果是多值,通过设置收益率估值,来选择接近回报率。但是不同的迭代算法和迭代次数计算的 IRR 结果是不同的,即使收益率估值相同,不同的算法也会算出不同的值,同时迭代次数也会使计算的结果精度不同,这些值都不会完全相同。

    作为一名技术顾问,总需要处理客户各种各样的问题。而在某次技术支持时,就遇到了客户反映 SpreadJS 的 IRR 计算数值和 Excel 不同。

    客户尝试分析了一下 SpreadJS 计算 IRR 的逻辑,发现 NPV 由负到正的场景是正常的,但是 NPV 由正到负就会有问题,下面是客户分析的思路。

    对于用户提到的这个问题,让我们一起使用用户提供的数据进行计算:

    (客户使用的数据内容:IRR 不同 GUESS 值IRR 计算 大家有兴趣可以一起来试试)

    在这个表中我们会发现-8.34%, 0.98%, 289%三个结果都是正确的。

    这个问题的原因其实因为 IRR 本身的计算需要很多迭代,不同的算法和取值会导致最终计算结果的不同;另一个原因是因为 Excel 中的算法、策略都是未知的,目前没有任何资料文档说明 Excel 的策略。SpreadJS 现阶段只能根据经验推测 Excel 的策略,但是仍有很多场景不能理解。

    比如,A1 设置-100,A2:A239 设置 0,A240 设置 100,这意味着 240 个周期赚了 200 。用 Excel 计算 IRR(A1:A240)结果是 DIV/0 ;还有上图中计算结果 1%应该是更加合理的结果,即使在给定预估值给定 0.1 的情况下 Excel 依旧返回 298%,但是很明显这个数值过于乐观。

    这些问题现在业界内并没有完全统一的结果,在测试过程中,我们还使用过 GoogleSheet,计算结果如下:

    相比较而言我们的计算结果已经是目前大家使用中与 Excel 计算最为接近的。而后续我们的研发也在不断探索,力图能为这个问题提供一个更优的解答。

    总结来说,IRR 本身作为预估值,就有不确定性,而且没有标准确定那种算法是正确的算法,对于和 Excel 结果的不一致,我们也会在保证结果合理的前提下尽量和 Excel 保持一致。同时,在某些场景下,我们会保留自己的计算结果。

    总结

    看到这里你可能想说 IRR 的标准在电子表格中也并没有统一的定论,但是面对这个问题 SpreadJS 交出了一份自己的答卷。

    在后续我们也会为大家带来更多关于前端电子表格揭秘的相关内容,觉得不错点个赞吧~

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

    3 条回复    2021-10-13 18:53:25 +08:00
    wfy0327
        1
    wfy0327  
       2021-10-13 17:39:26 +08:00 via Android
    复习公司金融到头大的进来一脸懵逼...
    snw
        2
    snw  
       2021-10-13 17:48:11 +08:00 via Android
    IRR 多个实根的情况出现在现金流有多于一次的正负交替的情况,例如核电站前期建设时现金流出,运营时现金流入,寿命到期时有大额处置费用也是现金流出。
    按照英文维基页面,要找出最相关的结果可以参考 Hartman, J. C., and Schafrick, I. C., "The relevant internal rate of return," The Engineering Economist 49(2), 2004, 139–158.

    另外,你举的那个 240 个周期的例子写错了吧?如果是 A1=-100, A2:A239=0, A240=100,这是完全没赚钱,IRR 显然是 0 啊。
    要是 A1=100, A2:A239=0, A240=100,这叫无本万利,IRR 是无穷大啊,Excel 算出#DIV/0!是对的。
    Gouzhi
        3
    Gouzhi  
       2021-10-13 18:53:25 +08:00
    差点以为进了会计视野论坛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:00 · PVG 04:00 · LAX 12:00 · JFK 15:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.