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

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

但是落脚到很小的例子之上,假如项目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交出了一份自己的答卷。

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

左手IRR,右手NPV,掌握发家致富道路密码的更多相关文章

  1. 左手Mongodb右手Redis 通过python连接mongodb

    首先需要安装第三方包pymongo pip install pymongodb """ 通过python连接mongodb数据库 首先需要初始化数据库连接 "& ...

  2. 左手Mongodb右手Redis redis操作

    set key value  设置key的值 get key 取得key的值 decr key 值会减一 incr key 值会加一 decrby key value ,会让key的值减少value. ...

  3. 左手Mongodb右手Redis 第三章mongdb操作

    mongodb查询操作 1.查询操作 db.getCollection('example_data_1').find({})  查询所有的信息,相当于mysql中的select * from tabl ...

  4. 左手Mongodb右手Redis

    第二章,了解Mongodb保存数据 Mongodb对于每次插入的数据没有要求,字段可以随便变动,字段类型可以随意变动. Mongodb可以并发插入上万条文档,这是传统关系型数据库不能望其项背的. 1. ...

  5. 左手Mongodb右手Redis 第一章,进入Mongodb和Redis的世界

    ---恢复内容开始--- 1,为什么要使用非关系型数据库,关系型数据库咋滴,不能用嘛? 存在即合理,非关系型数据库的出现,那说明关系型数据库不适用了. 非关系型数据库(NOSQL)-->Not ...

  6. 利用Numpy求解投资内部收益率IRR

    一. 内部收益率和净现值 内部收益率(Internal Rate of Return, IRR)其实要和净现值(Net Present Value, NPV)结合起来讲.净现值指的是某个投资项目给公司 ...

  7. 千万别把WIFI玩坏了!关于WIFI的新鲜玩法和商业模式探讨

    使用WIFI作为无线上网接入,也许大家都比较习以为常的.但是你们知道吗,其实WIFI还有很多种玩法:基于WIFI的身份识别,WIFI感知,WIFI Direct等等.今天我们会着重介绍一种WIFI的有 ...

  8. 做个体面有尊严的IT人【转自界面】

    向老罗致敬,好人终有好报: 转自网站:界面-http://www.jiemian.com/article/231843.html [华盛顿] 史蒂夫·马奎斯隐居在华盛顿郊外的一栋小木屋里,没有电视.没 ...

  9. Bible

    001 Love your neighbor as yourself.         要爱人如己.--<旧·利>19:18      002 Resentment kills a foo ...

  10. 【Noip2012】解题报告【字符】【贪心】【高精度】【倍增】【set】

    目录:1:vigenere密码[字符]2:国王游戏[贪心][高精度]3:开车旅行[倍增][set] 题目: VJ P1778   vigenere密码 Accepted 标签:NOIP提高组2012 ...

随机推荐

  1. QT无标题窗口在任务栏显示关闭(增加系统菜单)

    在对话框中使用了如下代码: setWindowFlags(Qt::FramelessWindowHint); 在任务栏上右键点击程序,不会弹出菜单,解决办法,使用下面代码: setWindowFlag ...

  2. effective c++ 条款13 use object to manage resources.

    请求的系统资源需要最终还回系统,为了避免遗忘返还这个动作,可以利用析构函数在object销毁时自动调用的特点来实现. 简单说就是用object来管理资源. 以内存资源为例 class Investme ...

  3. CodeForces666E Forensic Examination

    题目描述 给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[pl​..pr​]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数. 如有多解输出最靠前的那一个. 题解 ...

  4. cocos creator

    动画效果: 如图在场景中创建一个空节点,点击添加Animatiion 选中要改变的属性.(以spriteFrame为例) 将选中的图片拖动到所示位置,此时点击播放按钮即可预览. 保存之后将层级管理器中 ...

  5. 【JavaScript从入门到精通】第一课 初探JavaScript魅力-01

    第一课 初探JavaScript魅力-01 JavaScript是什么 如今我们打开一个大型的网站,都会有很多JS效果的功能和应用.对于学过CSS+HTML的同学,即使是像淘宝那样的网站,用一两天时间 ...

  6. 关于vue-cli创建项目(小白)

    vue-cli,都说是vue脚手架,一般cli是命令行的意思,一看就知道与node有关,其实脚手架是建筑工用的工具,给工人踩在上面干活的,这里借用它的意思,我觉得应该叫vue平台工具大家更容易懂,毕竟 ...

  7. 【转载】常用 Java 静态代码分析工具的分析与比较

    摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...

  8. PLSQ创建用户L

    1.首先使用dba权限角色登陆PLSQL 2.选择File-New-User   输入需要创建的账户及密码,选择表空间 3.一定要分配的权限:Role privileges 角色权限,至少分配conn ...

  9. iOS开发之加载、滑动翻阅大量图片优化解决方案

    本文转载至 http://mobile.51cto.com/iphone-413267.htm 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制.我要详 ...

  10. ftrace 详解

    http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace/ http://www.ibm.com/developerworks/cn/linux/l ...