SAS在金融中的应用二

作业1
某人需贷款300万元,银行固定利率贷款的名义年利率为4.4%,复利时间单位为月,如果每月最多还款12500元,那么贷款期限应多长?

proc loan start=2015;
	fixed amount=3000000 rate=4.4 payment=12500;
run;
贷款期限应为48年4个月(580个月)

2.某人申请30年期的固定利率贷款,贷款的名义年利率为5.6%,复利时间单位为月,如果每月最多还款7500元,那么他可以申请的最大贷款数量是多少?

proc loan start=2016;
	fixed rate=5.6 payment=7500 life=360;
run;
他可以申请的最大贷款数量是1306440.45

3.某人申请12万元的固定利率贷款,贷款期限15年,如果他需要在今后15年中每月还款1050元,那么这笔贷款的实际年利率为多少,15年内除偿还本金外,他总共支付了多少利息?以上问题完成之后,把程序修改为宏程序形式,要求在日志中直接输出问题答案。

proc loan start=2016;/*第三小题*/      /*复利时间为月*/
	fixed amount=12000 payment=1050 life=180;
run;
若复利时间为月,则这笔贷款的实际年利率为173.6220%,总共支付了189000.00元利息。
proc loan start=2016;/*第三小题*/      /*复利时间为年*/
	fixed  amount=12000 payment=1050 life=180 compound=year;
run;
若复利时间为年,则这笔贷款的实际年利率为173.6220%,总共支付了189000.00元利息。

宏程序改写:

%macro loan(a,p,r,n);
%if &a.=. %then %do;
/*可计算贷款本金*/
proc loan noprint outsum=a;/*由贷款的信息生成数据集a*/
	fixed payment=&p. r=&r. life=&n.;
run;
/*在日志中输出结果*/
data amo;set a;
put amount;
run;
%end;
%if &n.=. %then %do;
/*可计算贷款年限*/
proc loan noprint outsum=b;
	fixed  amount=&a. payment=&p. r=&r. ;
data lif;set b;
put life;
run;
%end;
%if &r.=. %then %do;
/*可计算贷款实际利率*/
proc loan noprint outsum=c;
	fixed amount=&a. payment=&p. life=&n.;
data rat;set c;
put effrate INTEREST;
run;
%end;
%mend;
%loan(3000000,12500,4.4,.);/*计算第一小题*/
%loan(.,7500,5.6,360);/*计算第二小题*/
%loan(12000,1050,.,180);/*计算第三小题*/

作业二
一笔按月等额还款的固定利率贷款的本金为10万元,贷款期限为15年,贷款的名义年利率为8%,贷款复利按月计算。借款人在第3年年末和第四年年末能够还款各1万,其余则每月等额本息还款。试通过SAS程序计算这笔贷款的总利息和贷款的实际年利率,并输出前两个还款年度每月还款的明细信息。

proc loan start=2015;
balloon amount=100000 rate=8 life=180
balloonpayment=(36=10000 48=10000)
schedule=2;
run;

作业三
一笔可调利率贷款的本金为50万元,贷款期限8年,贷款需要每年偿还一次,初始贷款利率为8%,双方约定从第三年起贷款利率可以每年调整一次,每次调整的幅度不超过1%,在整个贷款期间,利率调整的总幅度不超过3%,试分别计算在利率调整的乐观方案和利率调整的悲观方案下(注意从第三年起利率才允许进行调整),借贷者每年需要的还款数量。

方法一
/*由题意可知该笔贷款相当于第一年年为固定利率贷款,从第二年开始为普通可调利率贷款*/
proc loan start=2015;
fixed amount=500000 rate =8 life=8 schedule=yearly interval=year;
run;/*从表中结果可知第一年末未偿还余额452992.62*/
proc loan start=2016;  
arm amount=452992.62 rate=8 life=7 bestcase caps=(1,3)  inteval=year schedule=yealy adjustfreq=1;
run;
proc loan start=2016;  
arm amount=452992.62 rate=8 life=7 worstcase caps=(1,3) interval=year schedule=yearly adjustfreq=1;
run;
方法二
proc  loan start=2015;/*悲观方案*/
	arm amount=500000 life=8  rate=8 estimatedcase=(3=9 4=10 5=11) schedule=yearly  interval=year  adjustfreq=1;
run;
proc  loan start=2015;/*乐观方案*/
	arm amount=500000 life=8  rate=8 estimatedcase=(3=7 4=6 5=5) schedule=yearly  interval=year adjustfreq=1 ;
run;



作业四
某人的个人所得税率为20%,他希望贷款100万购买一份投资房产,按照税法,投资房产的利率支付可以在税前列支。现在有两笔贷款可以供选择:30年期固定利率贷款,贷款名义年利率10%,贷款需要每月等额还款,复利按月计算;30年期可调利率贷款,贷款需要每月还款,复利按月计算,初始贷款利率8%,从第5年、第10年和第20年起,贷款利率分别调整为9.5%、11%和11.5%。如果他希望在前20年中贷款的税后实际利率最小,应该选择哪种贷款?如果他希望在整个贷款期间贷款的税后实际利率最小,应该选择哪种贷款?

proc loan start=2015amount=1000000 life=360;
fixed rate=10 label='固定利率贷款';
arm rate=8 estimatedcase=(61=9.5 121=11 241=11.5) label='可调贷款利率';
compare taxrate=20 at=(240 360);
run;
如果他希望在前20年中贷款的税后实际利率最小,应该选择可调利率贷款。如果他希望在整个贷款期间贷款的税后实际利率最小,应该选择可调利率贷款。

作业五
某人在在购买第二套房子的时候,银行向他提出了两种贷款方案:
1.先还清第一套房子的住房贷款,那么第二套房子可以按照第一套房子进行贷款:购房贷款可贷7成,利率可以打95折。
2.第一套房子的住房贷款不还清,那么第二套房子按照银行规定:贷款可贷5成,利率上浮10%。
已知某人第一套房子贷款剩余期限为20年,未偿还本金600000,利率为基准利率的7折。第二套房子总价3000000万,打算借贷30年。假设当前中长期贷款的基准利率为5%。如果某人希望整个贷款周期中利息支付额度最小,应该选择哪种贷款?

/*方案一*/
proc loan start=2015 noprint outsum=c;
fixed amount=2100000 rate=4.75 life=360;
run;
data d;set c;/*把方案一所需的利息写到d中*/
keep INTEREST;
label INTEREST="方案一所需利息总额";
run;
/*方案二*/
/*第一套未偿贷款利息*/
proc loan start=2015 noprint outsum=a;
fixed amount=600000  rate=3.5 life=240;
run;
data b;set a;/*把方案二所需的第一部分利息写到b中*/
keep INTEREST;
rename INTEREST=INTEREST1;
label INTEREST1='第一套房子利息';
run;
/*第二套利息*/
proc loan start=2015 noprint outsum=e;
fixed amount=1500000 rate=5.5 life=360;
run;
data f;set e;/*把方案二所需的第二部分利息写到f中*/
keep INTEREST;
rename INTEREST=INTEREST2;
label INTEREST2='第二套房子利息';
run;
data h;
merge b f;
interst3=INTEREST1+INTEREST2;
label interst3="方案二所需支付利息总额";
run;
data f1;set h;
keep interst3;
run;
data fz;/*把两个方案的利息费用写入fz*/
merge d f1 ;
proc print data=fz  ;
var  INTEREST interst3;
label INTEREST='方案一所需利息总额'x  interst3='方案二所需利息总额'x;
run;
如果某人希望整个贷款周期中利息支付额度最小,应该选择方案二的贷款。

文章内容仅供参考

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值