分期付款的内含收益率

注意:本篇展示的现金流方式叫做“等本等息”,是消费贷款、信用卡分期等常采用的还款方式。其特点是每期还款金额相同,且每期包含的本金、利息金额都不变,固而叫“等本等息”。而在房贷的还款模式中一种常见的方式叫做“等额本息”,特点是每一期还款金额都不变,但每一期还款金额中本金和利息的占比会变化。仅从每期还款金额的角度来看,“等本等息”是“等额本息”的一种特例,但从后文我们可以看到“等本等息”的内含收益率实际上是名义利率的两倍左右,而真正的“等额本息”并不是这样的。

对于一笔分期付款,假设原金额为a,分期数为n,每一期还款金额均为p,整个还款期的区间收益为b(已包含各项杂费),则应有

\[a \times (1 + b) = p \times n \]

那么该笔款项的内含收益率该如何计算呢?这其实相当于在期初将金额a进行投资,并在每期末偿还固定金额p,使得最后一期结束后收支相抵(结余金额0),所要实现的每期的平均收益率。将该平均收益率记为m,则可列出如下的现金流表格:

分期编号 期初金额 期末金额 期末还款后结余
1 \(a\) \(a(1 + m)\) \(a(1 + m) - p\)
2 \(a(1 + m) - p\) \(a(1 + m)^2 - p(1 + m)\) \(a(1 + m)^2 - p(1 + m) - p\)
3 \(a(1 + m)^2 - p(1 + m) - p\) \(a(1 + m)^3 - p(1 + m)^2 - p(1 + m)\) \(a(1 + m)^3 - p(1 + m)^2 - p(1 + m) - p\)
\(\vdots\) \(\vdots\) \(\vdots\) \(\vdots\)
n \(a(1 + m)^{n - 1} - p(1 + m)^{n - 2} - \cdots - p\) \(a(1 + m)^{n} - p(1 + m)^{n - 1} - \cdots - p(1 + m)\) \(a(1 + m)^{n} - p(1 + m)^{n - 1} - \cdots - p(1 + m) - p\)

由于最终收支相抵,意味着最后一期的期末还款后结余应该恰好为0,所以有

\[a(1 + m)^{n} - p(1 + m)^{n - 1} - \cdots - p(1 + m) - p = 0。 \]

由等比数列求和公式可得:

\[a(1 + m) ^ n = p \frac{(1 + m) ^ n - 1}{m}。 \]

\(p = \frac{a(1 + b)}{n}\) 代入可得

\[\frac{(1 + m) ^ n - 1}{m(1 + m)^n} - \frac{n}{1 + b} = 0。 \]

该方程想要求解m的解析解并不容易,但求解数值解是可行的。我们可以使用R中的uniroot函数来实现:

findm <- function(m, n, b){
    ((1 + m) ^ n - 1) / (1 + m) ^ n / m - n / (1 + b)
}

以按月分期12期(n = 12),最终的区间收益10%(b = 0.1)为例,该笔分期的内含月度收益率为

n <- 12
b <- 0.1
(ret <- uniroot(findm, interval = c(0.00001, 1), n = n, b = b)$root)
## [1] 0.01497579

月频收益对应的年化因子为12(ann_factor = 12),所以该笔分期的年化内含收益率可以按如下计算

ann_factor <- 12
(ann_ret <- (1 + ret) ^ ann_factor - 1)
## [1] 0.195276

年化收益大约为19.53%。也就是说,如果未来1年你的投资的年化收益率能够达到并超过这个数,这笔分期对你就是有利的。否则,这笔分期对你而言是一种损失。

NOTE: 不管是内含收益率,还是之后我们计算的对应的年化收益率,都是一个平均值。其特点是每一期的收益率都是 相同 的。但实际的投资收益并不会这样,每一期的收益值总是充满波动。同时,历史收益并不能完全代表未来。这意味着在上文中用年化收益率来判断一笔分期在未来是否对你有利,其结论只能作为参考,并不能保证实际完全正确。

通过上述计算,我们可以发现看似低廉的分期利息,其内含的收益率其实完全不低。在我们的例子中,一年分期12期,整个区间利息为10%,其实对应着要求你自己做到19.53%的年化收益率,几乎翻了一倍。这是因为尽管随着你不断偿还,你所欠的本金和利息都在不断减少,但是定下的还款金额,却是一直以你的满额本金计算的。所以对你的投资收益提出了更高的要求,才能收支平衡。

最后,我们可以将上述代码包装成一个小函数,给定分期的区间收益、分期数目和对应的年化因子,来计算一笔分期付款对应的年化内含收益率:

findm <- function(m, n, b){
    ((1 + m) ^ n - 1) / (1 + m) ^ n / m - n / (1 + b)
}

find_ann_ret <- function(n, b, ann_factor){
    ret <- uniroot(findm, interval = c(10 ^ (-10), 1), n = n, b = b)$root
    ann_ret <- (1 + ret) ^ ann_factor - 1
    return(ann_ret)
}
n <- 12
b <- 0.1
ann_factor <- 12
find_ann_ret(n, b, ann_factor)
## [1] 0.1952759

其实现在有一些支持分期付款的App,在向你进行分期付款金额试算的时候,也会提供内含收益率这个指标,但往往都藏在不起眼的角落里,需要你好好寻找一番才能看到。可能也是害怕如果你知道了一笔分期付款背后暗含的收益率之后,就不愿意选择分期付款了。毕竟,虽然我们上面指出,你自己的投资收益率本身就是不稳定的,不能完全参考我们计算出来的这个年化内含收益率。但对于这些金融机构而言,只要你按期还款,那他们就是稳定获得了内含收益率所对应的收益呢。

Chao Cheng
Chao Cheng
Statistician

My research interests include applied statistics and machine learning.

Related