上一篇揭秘消费分期利率的文章得到了很多朋友的好评,我只是把真实情况向读者反映一下,至于值与不值每个人心里都有一把秤。

长点心吧年轻人,利率不是这么算的!我用Python告诉你亏了多少!

很多朋友留言说不知道房贷是不是也有一样的套路,表示很疑惑。我的第一反应时因为房贷很高,大家看到消费分期的套路自然而然就想到了房贷,很正常的事。毕竟消费分期只是小部分支付,而房贷是一个持久的,甚至一辈子的支出,多一点都可能就要人命。因此本篇给大家解读一下房贷利率的故事,希望能够帮助正在或者即将买房的朋友们。

可能很多买过房、贷过款的朋友大概都知道怎么回事,但是我相信大部分人也没细研究过,而绝大部分人买房时更是任由房屋中介摆布,因为给了中介费相信他们可以算的明明白白,自己也就不过多深究了。但我觉得买房不是小事,真的有必要花些时间弄明白,尤其是贷款利率。

要说算利率,很简单。网上有很多现成的计算工具可以直接用,不过就像学机器学习一样,我不甘心只做个调包侠,所以对于利率的底层算法我还是想和大家分享一下,最后通过手撸Python完成计算,让大家彻底明白房贷到底是怎么回事。

房贷利率

我们买房贷款时银行通常会提供两种还款方式:等额本息等额本金。我们就以在商业贷款的背景下,分别介绍这两种还款方式,然后再进行对比和验证。

等额本金


等额本金指每个月还的本金都是一样的,但是利息是动态变化的,随着我们每期归还本金而不断递减。


比如我要在北京买一套房,商业贷款200万不过分吧!假设贷款年利率为6%,期限30年,那么等额本金情况下每个月需还款200万/360月,即约0.55万/月。刚才说了,利息是动态变化的,也就是说银行每月会在剩余应还本金的基础上去计算利率,是一个动态的过程。公式如下:

有的朋友说了觉得这样说也不是很直观,那我直接来撸一段代码以表我的respect。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use("fivethirtyeight")
sns.set_style({'font.sans-serif':['simhei','Arial']})
%matplotlib inlineloan = 2000000 # 贷款金额
annualRate = 0.06 # 贷款年利率
monthRate = annualRate/12 # 贷款月利率
period = 30 # 贷款期限30年# 每月应还本金
monthPrincipalPayment = [loan/(period*12)]*period*12
# 每月应还利息
monthInterestPayment = [(loan - loan*n/(period*12))*monthRate+loan/(period*12) for n in range(1,period*12+1)]
# 还款期数
month = [n for n in range(1,period*12+1)]f,ax=plt.subplots(figsize=(20,8))
l1 = plt.bar(month,monthInterestPayment,color='b',width=0.4)
l2 = plt.bar(month,monthPrincipalPayment,color='r',width=0.4)
plt.xlabel(u'还款期数(月)', size=20)
# 设置y轴标签
plt.ylabel('还款金额(元)', size=20)
# 设置标题
plt.title(u'等额本金', size=20)
#刻度字体大小20
plt.tick_params(labelsize=20)
# 设置注解狂
plt.legend(handles = [l1, l2,], labels = ['利息', '本金'], loc = 'best',fontsize=20)
plt.show()

等额本金方式下的利息总和为 1795000元。以下是运行出来的结果,蓝色代表利息,红色代表本金。每月应还本金不变,应还利息逐渐较少。

等额本息

等额本息是指还款总额(本金+利息)均等地分摊到每个月,即每个月的本息还款额都是一样的。

那么分摊的每月还款额是怎么计算的呢?计算稍微有点复杂,但也不难,就是把均摊还款额作为一个未知参数,然后通过公式推导法推导出它的表达式,如下:

这种方式下,每个月的剩余还款额都是在上个月剩余应还本息和的基础上计算当月产生的本息和,再减掉每月应还等额款X而完成的。用Python计算结果如下:

# 首月应还利息
firstMonthInterest = loan*monthRate
# 每月应还本息
monthPayment = (loan*monthRate*(1+monthRate)**360)/((1+monthRate)**360-1)print("等额本息每月应还{}".format(round(monthPayment,2)))

根据上面公式可以计算出等额本息下每月应还本息金额(X):11991.01元

这11991.01元当中包括了本金和利息,那么我想知道利息到底是怎么收的,每月都是多少?该怎么算?

很简单,迭代肯定是有一个初始值的,因此我们就以第一个月的应付利率为基准计算并往后迭代就可以了,这样之后每月的本金和利息都可以迎刃而解。

第一个月应还利息为:2000000 x 0.06 / 12 = 10000元,因此第一个月应还本金为11991.01-10000 = 1991.01元

第二个月应还利息为:(2000000-11991.01)x0.06/12=9940.04元,因此第二个月应还本金为11991.01-9940.04=2050.97元。后面循环迭代即可。

找到了这个规律,我们同样用Python计算,代码如下:

loanPI = [loan*(1+monthRate)-monthPayment]
# 每期应还利息
loanInterest = [loan*monthRate]
for n in range(1, period*12):loanPI.append((loanPI[n-1]*(1+monthRate)-monthPayment))loanInterest.append(round(loanPI[n-1]*monthRate,2))# 每期应还本金
loanPrincipal = [monthPayment-loanInterest[n] for n in range(0,len(loanInterest))]f,ax=plt.subplots(figsize=(20,8))
l1 = plt.bar(month,monthPaymentList,color='b',width=0.4)
l2 = plt.bar(month,loanPrincipal,color='r',width=0.4)
plt.xlabel(u'还款期数(月)', size=20)
# 设置y轴标签
plt.ylabel('还款金额(元)', size=20)
# 设置标题
plt.title(u'等额本息', size=20)
#刻度字体大小20
plt.tick_params(labelsize=20)
# 设置注解狂
plt.legend(handles = [l1, l2,], labels = ['利息', '本金'], loc = 'best',fontsize=20)
plt.show()

等额本息方式下的利息总和为 2316763.73元以下是运行出来的结果,蓝色代表利息,红色代表本金。每月应还本息和是不变的,应还利息逐渐较少,应还本金逐渐增多。

两种还款方式对比和验证

以下是两种计算方式的还款金额对比,可以看到在我们选择的参数条件下等额本金比等额本息少了52万。

为啥差这么多?

因为等额本金就好比急着给银行还款,前期还的较多,利息就相对少了很多。下面是通过计算器得出的结果,和我们用Python计算的一致。

哪种贷款方式更优呢?

看到上面的结果,大家肯定想我肯定选择等额本金,少了52万!52万!52万!

然而现实情况是大多数人还是选择等额本息,为什么呢?我们对比看一下每月还款的趋势图,蓝色为等额本金,红色为等额本息。

看完以后知道了吧,等额本金总还款虽少,但开始每月还款很多,大概要到第130个月,也就是10年后的时候两种方式才会达到相等。

为什么很多人明知道等额本金利息少还要选择等额本息呢?

因为等额本金需要忍受前10年的高额月供啊!当然不缺钱的除外,不过不缺钱也就用不着贷款了,说明资金还是不够的。我仔细想了想,假如一个月税后工资15000,算上公积金3000的话,一个月什么都不干,工资净流出12000,就只剩3000了。加上另一半的工资一共还能有多少,在一线城市真的很难受,所以大家宁愿想过得舒服点,哪怕多还点钱也忍了。

有人说了自己会挣得越来越多,不是我悲观,前段时间的cy大家都知道的,未来的风险我们还是有必须要考虑一下的,拖家带口的不能孤注一掷。可别小看了高出的这几千元,那可是净流出啊,压死骆驼的最后一根稻草,当你工资不足以支撑的时候,估计500元你都得想半天。

哪种更优还是要结合自己的实际情况来看的,也不能一概而论,不过一般资金不是很充裕的情况下还是建议选择等额本息。

房贷利率有没有套路?


通过上面分析就显而易见了,房贷利率没有什么套路,无论是等额本息还是等额本金都是一样的,它们会每月动态计算利息,而不像分期一样每月所还利息按照初期本金计算不随本金较少而变化。下面是两种方式的每月应还利息变化。

两种方式每月利息都是随着本金变化而动态减少,所以说房贷的年化利率是多少就是多少,没什么套路一说,只不过是贷款时间长,利息高,给人一种不安全的感觉罢了。

推荐阅读:

Python秒算24点,行还是不行?


今日赠送书籍

本书简介
《Python 3.x基础教程》以零基础讲解为宗旨,旨在帮助读者掌握 Python 语言的基础知识,以及如何使用Python 语言实现编程,了解其开发技巧,并通过实战案例熟悉开发过程及问题的解决方法。 
本书专为没有任何 Python基础的初学者和爱好者打造,无论你是否从事计算机相关专业,是否有过 Python 项目经验,或是否想要转行从事计算机相关专业,均可通过本书快速掌握Python 的基本知识和开发技巧。

?扫描上方二维码购买


恭喜 瑞恩·加尔 读者深得我心,赠送书籍一本。

请 瑞恩·加尔 同学联系小胖:moonhmily1

今日留言主题

陆金所也换方向了,所以p2p是碰不得了

那你们理财方面都做了些啥操作?

用Python解读房贷利率,有没有套路?这是我见过最透彻的Python版解读!相关推荐

  1. 房贷利率有没有套路?这是我见过最透彻的Python版解读!

    作者 | xiaoyu,半路转行数据 来源 | Python数据科学(ID:PyDataScience) 可能很多买过房.贷过款的朋友大概都知道怎么回事,但是我相信大部分人也没细研究过,而绝大部分人买 ...

  2. 用Python解读房贷利率,这是我见过最透彻的Python版解读!

    很多朋友留言说不知道房贷是不是也有一样的套路,表示很疑惑.我的第一反应时因为房贷很高,大家看到消费分期的套路自然而然就想到了房贷,很正常的事.毕竟消费分期只是小部分支付,而房贷是一个持久的,甚至一辈子 ...

  3. python等额本息和等额本金_用Python解读房贷利率,要不要看随你

    可能很多买过房.贷过款的朋友大概都知道怎么回事,但是我相信大部分人也没细研究过,而绝大部分人买房时更是任由房屋中介摆布,因为给了中介费相信他们可以算的明明白白,自己也就不过多深究了.但我觉得买房不是小 ...

  4. python装饰器作用和功能_这是我见过最全面的Python装饰器详解!没有学不会这种说法!...

    今天的任务比较繁重,因为我们要一起来学习Python中比较重要比较牛逼比较难的装饰器. 我将会和大家一起通过代码的形式来迷你银行存款取款的功能,然后通过引入装饰器来一步一步优化代码. 废话不多说梦开始 ...

  5. 房贷利率有无套路?Python解读“等额本金与等额本息”的差异所在

    作者 | xiaoyu 来源 | Python数据科学 很多朋友留言说不知道房贷利率的不同归还方式是不是有套路,内心深表疑虑.我的第一反应是因为房贷很高,大家看到消费分期的套路自然而然就想到了房贷,很 ...

  6. 房贷利率一涨再涨,为什么排队买房的越来越多?

    说排队买房的人越来越多,实际上是一种错觉,目前利率上涨是真的,普遍上涨10%-20%,排队等房贷的人很多,这也是真的,但是排队买房只是个别现象. 有时间大家可以去地产中介看看,现在很多房产中介都很冷清 ...

  7. 房贷利率上浮30%利息太高吃不消,如何让利率变成下浮10%?

    想要把房贷利率从上浮30%下降到10%,目前只有2种办法,一种是转按揭,另一种是通过关系降低利率. 先来看下第一种方式.通过关系降低利率 通常情况下,房贷利率上的上浮比例在你签订贷款合同的时候会写得很 ...

  8. 2019年房贷利率会下调吗?

    按照目前的市场发展趋势,2019年房贷利率还是会有一定的下降空间,部分城市的房贷利率甚至会回落到基准利率水平.但不同的城市房贷利率可能会有较大的差异. 从2019年前三个月的表现来看,部分城市房贷利率 ...

  9. 房贷利率不断上涨,贷款买房如何才能节省利息?

    目前放房贷利率普遍上浮,在这个时候买房确实需要很大的勇气. 我们先来看看目前房贷利率水平 我们以四大行为例,下面是目前四大行的房贷利率及首付要求,部分城市利率上浮可能会高于这个水平. 从这个表当中我们 ...

  10. 互联网晚报 | 4月15日 星期五 | 360推出元宇宙产品“N世界”;四川多地下调房贷利率;知情人士:上汽或推动复工复产...

    360推出元宇宙产品"N世界" 4月15日消息,360于近期推出了一款元宇宙产品"N世界".一位接近360的人士表示,360对于这款产品比较重视,目前已经为&q ...

最新文章

  1. 磐创AI - 专注机器学习技术分享
  2. 轻量级语义分割网络:ENet
  3. Digital Imaging Processing 数字图像处理
  4. [Python陷阱]os.system调用shell脚本获取返回值
  5. 简明python教程购买-简明Python3教程 6.基础
  6. 一个超轻量级工作流引擎:Workflow-Core
  7. react(80)--判断值是否udefined
  8. 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序搜索
  9. 【渝粤教育】国家开放大学2018年春季 0508-22T影视特技及后期合成 参考试题
  10. spring源码 第二个后置处理器方法的使用-推断构造函数
  11. 2021 年系统分析师下午真题及答案
  12. C# pdf转jpg文件
  13. 京委本圣经的历史考证
  14. java代码实现kafka消费端consumer的from-beginning功能
  15. hass智能 小米扫地机器人_Siri能控制小米扫地机器人吗_小米智能家居控制系统...
  16. QT开发应用程序(17)-- 读写XLS文件
  17. GBase 8c基础操作
  18. 朱棣文先生在哈佛大学毕业典礼上的演讲
  19. 断点恢复执行时的设置
  20. 绘制cos和sin图表

热门文章

  1. matlab宝典pdf,《MATLAB 宝典(第4版)》---- 优化.pdf
  2. LMDB:轻量级内存映射数据库-----入门使用1
  3. 电视大屏怎么看英语启蒙动画片?跟着这3个应用学,省不少早教钱
  4. rgb24转yuv420P
  5. 张家口地区某一级公路设计--河北建筑工程学院
  6. 5G UPF与MEC
  7. android 开源 音乐播放器,Android 开源在线音乐播放器
  8. linux版征途架设教程,魔兽世界-燃烧的征途端完整架设教程有图有真相
  9. VBA引用管理加载宏
  10. 漏洞挖掘之通达OA2017任意文件上传(漏洞已失效)