昨晚学习SAS,本已精神萎靡身体空虚就差红牛士力架为继了,恰巧遇见一个有趣的实践案例,瞬间给自己打了一记强心针。不禁感慨,越是接触SAS,越是体会到它的强大,也愈发敬佩SAS公司造物的能力,我们真的是站在了巨人的肩膀上。
辗转反侧间,决心学习SAS之余写写文章,一方面当做是自己的学习笔记,另一方面能通过数据分析给大家带去一些新奇的视角就在好不过了。以后打算借AI机器思维公号的一方天地开个“品玩SAS”的专栏,内容每周一篇,我会尽量挑选一些贴近生活又有趣的小案例来写,希望大家常来做客。
本期“品玩SAS”的主题是大家熟知并且极有可能经历的房贷(全款土豪请上座)。2019年1月全国首套房贷款平均利率为5.66%,还款方式主要是等额本金和等额本息两种,下面我打算买一套一室一厅总价60万的房子,奈何囊中羞涩只能贷款5年40万,又担心银行为刀俎,我为鱼肉(虽然是这样),于是决定用SAS来算一算两种方式的还款情况。
第一种:等额本金(利用函数方式)
月还款额计算公式:月还款金额=(贷款本金/还款月数) (本金-已还本金累计额)*月利率。
SAS程序如下:
%let p=400000; /*贷款额*/
%let m_rate=0.004717; /*月利率*/
data hke;
m=trim('month'); /*月间隔*/
loans_dt='09mar2019'd;
/*贷款日期*/
end_dt='09mar2024'd;
/*结束日期*/
month=intck(m,loans_dt,end_dt);
/*intck函数计算间隔月数*/
m_repay=0;
/*每月还款额初值为0*/
cumpu_repay=0;
/*本金还款额初值为0*/
leiji_repay=0; /*总还款额初值为0*/
lixi_reapy=0; /*总利息初值为0*/
n_month=month; /*剩余还款月数初值*/
format loans_dt yymmdd10. end_dt yymmdd10. ;
do i=1 to month;
m_repay=(&p/month) (&p-cumpu_repay)*&m_rate; /*每月还款金额计算公式*/
put month=n_month;
n_month=n_month-1;
/*剩余还款月数递减*/
cumpu_repay=i*(&p/month);
/*本金还款额累加*/
leiji_repay=leiji_repay m_repay;
/*总还款额累加*/
lixi_reapy=leiji_repay-cumpu_repay;
/*总利息累加*/
output;
end;
label loans_dt="起始日期" end_dt="结束日期"
month="总还款月数" m_repay="月还款额"
eiji_repay="总还款额" lixi_reapy="总利息"
n_month="剩余还款月数"
i="期数";
drop m cumpu_repay;
proc print label;
run;
运行结果显示一共要偿还60个月,也就是60期,总偿还金额为457547.4元,总利息为57547.4元,第一个月偿还8553.47元,往后逐月递减,头几个月鸭梨山大!
图1前10个月还款信息
图2 最后10个月还款信息
第二种:等额本息(利用贷款过程方式)
月还款额计算公式:月还款金额=〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕
SAS程序如下:
proc loan start=2019:03;
/*调用贷款过程,指定贷款开始日期*/
fixed amount=400000
/*贷款本金40万元*/
rate=5.66
/*年利率5.66%*/
life=60
/*分60期偿还贷款本金和利息*/
interval=month;
/*贷款偿还频率为每月一次*/
run;
图3 等额本息还款信息
运行结果如图3所示,这种方式每个月还款一样,都是7670.04元,前29个月还款金额比等额本金方式少,随后等额本金方式还款金额更低,但最后合计的总利息为60202.45元,比等额本金方式高出2655.05元。从利息角度而言,等额本金方式更占优势。然而综合考量自生收支情况(就是穷!),最终我还是选择了第二种,毕竟在月还款额很低的月份到来之前,我已经被压垮了!
看等额本金的还款方式就像那满溢热恋的高昂到七年之痒的低寒,啊~是金钱的铜臭味!诸位我们下期见~