前提假设
- 因为常见的信贷产品还款期数定义都是按照月,假设只借一期的利率(月利率)为r,在此条件下,研究不同还款方式下的APR和IRR计算结果与r、期数n、本金C这几个变量的关系;
- 约束条件:1)月利率为r;2)在第n期期末结束时,还清所有本息;
- IRR:根据净现值等于0时的折现率计算出实际月利率, I R R = 12 r a c t IRR=12r_{act} IRR=12ract;
- APR:年化利率,以一年(12个月)为计息长度时,利息总和占本金的百分比;
一次性还本付息
- 计算现金流:
P i = { − C , i = 0 0 , 0 < i < n C + C r n , i = n P_i= \begin{cases} -C, i=0 \\ 0, 0<i<n \\ C+Crn, i=n \end{cases} Pi=⎩ ⎨ ⎧−C,i=00,0<i<nC+Crn,i=n - 计算IRR: ∑ i = 0 n P i ( 1 + r a c t ) i = 0 \sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0 ∑i=0n(1+ract)iPi=0,求得 I R R = ( ( 1 + r n ) 1 / n − 1 ) ∗ 12 IRR=((1+rn)^{1/n}-1)*12 IRR=((1+rn)1/n−1)∗12;
- 计算APR:利息总和*12/C/n,求得 A P R = 12 r APR=12r APR=12r;
先息后本
- P i = { − C , i = 0 C r , 0 < i < n C + C r , i = n P_i= \begin{cases} -C, i=0 \\ Cr, 0<i<n \\ C+Cr, i=n \end{cases} Pi=⎩ ⎨ ⎧−C,i=0Cr,0<i<nC+Cr,i=n
- 计算IRR: ∑ i = 0 n P i ( 1 + r a c t ) i = 0 \sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0 ∑i=0n(1+ract)iPi=0, − C + C r ( 1 ( 1 + r a c t ) 1 + . . . + 1 ( 1 + r a c t ) n − 1 ) + C + C r ( 1 + r a c t ) n = 0 -C+Cr(\frac{1}{(1+r_{act})^1}+...+\frac{1}{(1+r_{act})^{n-1}})+\frac{C+Cr}{(1+r_{act})^n}=0 −C+Cr((1+ract)11+...+(1+ract)n−11)+(1+ract)nC+Cr=0,简化得 ( r a c t − r ) = ( r a c t − r ) ( 1 + r a c t ) n (r_{act}-r)=(r_{act}-r)(1+r_{act})^n (ract−r)=(ract−r)(1+ract)n,得 I R R = 12 r IRR=12r IRR=12r;
- 计算ARR:利息总和*12/C/n,求得 A P R = 12 r APR=12r APR=12r;
等额本息
- P i = { − C , i = 0 C r ( 1 + r ) n ( 1 + r ) n − 1 , 0 < i < = n P_i= \begin{cases} -C, i=0 \\ C\frac{r(1+r)^n}{(1+r)^n-1}, 0<i<=n \end{cases} Pi={−C,i=0C(1+r)n−1r(1+r)n,0<i<=n
- 本质上等额本息的利息计算就是在考虑复利情况下计算出来的,所以 I R R = 12 r IRR=12r IRR=12r;
- 计算APR:利息总和*12/C/n,求得 A P R = ( r ( 1 + r ) n ( 1 + r ) n − 1 − 1 n ) ∗ 12 APR=(\frac{r(1+r)^n}{(1+r)^n-1}-\frac{1}{n})*12 APR=((1+r)n−1r(1+r)n−n1)∗12;
等额本金
- P i = { − C , i = 0 C n + n + 1 − i n C r = 1 + ( n + 1 − i ) r n C , 0 < i < = n P_i= \begin{cases} -C, i=0 \\ \frac{C}{n}+\frac{n+1-i}{n}Cr=\frac{1+(n+1-i)r}{n}C, 0<i<=n \end{cases} Pi={−C,i=0nC+nn+1−iCr=n1+(n+1−i)rC,0<i<=n
- 计算IRR: ∑ i = 0 n P i ( 1 + r a c t ) i = 0 \sum_{i=0}^{n}\frac{P_i}{(1+r_{act})^i}=0 ∑i=0n(1+ract)iPi=0, − C + C ∑ i = 1 n ( 1 + ( n + 1 − i ) r n ) 1 ( 1 + r a c t ) i = 0 -C+C\sum_{i=1}^{n}(\frac{1+(n+1-i)r}{n})\frac{1}{(1+r_{act})^i}=0 −C+C∑i=1n(n1+(n+1−i)r)(1+ract)i1=0,使用数值方法求解IRR,IRR与C无关,与r和n有关;实际计算可得,近似 I R R = 12 r IRR=12r IRR=12r;
- 计算APR:利息总和*12/C/n,求得 A P R = 6 r ( n + 1 ) n APR=\frac{6r(n+1)}{n} APR=n6r(n+1);
简单二分法求解IRR的程序
输入:现金流list;
输出:IRR;
def cal_irr(cash_flow_list):
r_min, r_max = 0,2
flag = False
cnt = 0
while((flag==False)&(cnt<=100)):
cnt += 1
r = (r_min + r_max) / 2
npv = 0
for ix,i in enumerate(cash_flow_list):
npv += i/(1+r)**ix
if abs(npv)<=0.00001:
flag = True
break
else:
if npv>0:
r_min = r
else:
r_max = r
return r*12
汇总
还款方式 | IRR | APR |
---|---|---|
一次性还本付息 | ( ( 1 + r n ) 1 / n − 1 ) ∗ 12 ((1+rn)^{1/n}-1)*12 ((1+rn)1/n−1)∗12 | 12 r 12r 12r |
先息后本 | 12 r 12r 12r | 12 r 12r 12r |
等额本息 | 12 r 12r 12r | ( r ( 1 + r ) n ( 1 + r ) n − 1 − 1 n ) ∗ 12 (\frac{r(1+r)^n}{(1+r)^n-1}-\frac{1}{n})*12 ((1+r)n−1r(1+r)n−n1)∗12 |
等额本金 | ∑ i = 1 n 1 + ( n + 1 − i ) r n ( 1 + r a c t ) i − 1 = 0 \sum_{i=1}^{n}\frac{1+(n+1-i)r}{n(1+r_{act})^i}-1=0 ∑i=1nn(1+ract)i1+(n+1−i)r−1=0的解 r a c t r_{act} ract乘以12, ≈ 12 r \approx12r ≈12r | 6 r ( n + 1 ) n \frac{6r(n+1)}{n} n6r(n+1) |
实验对比
- 以月利率r(取0.005,0.01,0.03),期数n(取1、6、12、24、240),还款方式为自变量,APR和IRR为因变量,对比结果如如下。
-
IRR计算结果:
-
APR计算结果:
-
r=1%,n=12时,各还款方式下IRR和APR对比:
-
r=1%,等额本金和等额本息还款方式下APR随着期数n的变化:
(1)等额本金,APR随着n的增大单调递减,最终趋近6r;
(2)等额本息,APR随着n的增大先下降再上升,最终趋近12r;
(3)等额本息APR > 等额本息APR。
-
r=1%,本金C=30w,贷款36期(3年),月供流水对比: