关于numpy.irr函数使用月度数据计算IRR的疑问
关于numpy.irr处理月度现金流的IRR计算问题
你的理解其实有偏差哦,numpy.irr函数并没有默认按年度数据返回IRR结果——它的计算逻辑完全基于你输入的现金流序列的时间间隔单位,返回的是单个间隔期的内部收益率。
核心逻辑说明
numpy.irr本质是求解净现值(NPV)为0时的收益率,对应的公式是:
这里的CF₀ + CF₁/(1+irr) + CF₂/(1+irr)² + ... + CFₙ/(1+irr)ⁿ = 0n代表现金流的间隔次数,不管这个间隔是1个月、1个季度还是1年,函数都只会计算对应这个间隔期的IRR。- 举个直白的例子:如果你的现金流是月度数据,那
numpy.irr返回的就是月度IRR;如果是年度数据,返回的才是年度IRR。
如何转换为年度IRR
如果你的目标是得到年度化的内部收益率,只需要对月度IRR做复利转换即可,公式如下:
年度IRR = (1 + 月度IRR)¹² - 1
比如,假设numpy.irr返回的月度IRR是0.008(即0.8%),那么年度IRR就是(1+0.008)^12 -1 ≈ 0.1003,也就是约10.03%。
简单验证示例
假设你初始投入1200元,之后每个月收到110元,连续12个月。构造现金流数组:
import numpy as np cashflows = [-1200] + [110]*12 monthly_irr = np.irr(cashflows) # 输出大概是0.0076(即0.76%月度IRR) annual_irr = (1 + monthly_irr)**12 - 1 # 计算后年度IRR约为9.5%
这个结果和你把现金流折算为年度数据(初始投入1200,年度回款1320)计算的IRR逻辑完全匹配。
内容的提问来源于stack exchange,提问作者diogenes
相关产品推荐
相关产品推荐

