运用SAS对股票市场风险指标计算.docx
《运用SAS对股票市场风险指标计算.docx》由会员分享,可在线阅读,更多相关《运用SAS对股票市场风险指标计算.docx(9页珍藏版)》请在冰豆网上搜索。
上海师范大学标准试卷
2015~2016学年第1学期考试日期2016年1月8日
科目统计分析与软件应用(学期论文)
概率论与数理统计专业研究生15年级1班姓名李晓学号152200647
我承诺,遵守《上海师范大学考场规则》,诚信考试。
签名:
________
总分
评价项目
评价标准
分值
得分
编号
内容
1
格式规范
论文封面、题目、摘要、关键词、正文、参考文献等符合
编辑规范,正文篇幅符合规定。
20
2
知识运用
能运用所学课程知识阐述问题;论文内容有适当的深度、广度和难度。
30
3
撰写情况
观点鲜明,论据确凿,文章材料详实可靠,有说服力;论文结构严谨,文理通顺;层次清晰,文笔流畅;图表正确、
清晰、规范。
30
4
编程能力
SAS编程能力,要求程序具有规范性与可读性,能解决实际问题
20
评定成绩为:
任课教师签字:
年月日
运用SAS对股票市场风险指标计算
摘要:
理论在现实市场中的有效性值得进一步探讨,资本资产定价模型是用来确定证券均衡价格的一种预测模型,模型以其简洁的形式和理论的浅显易懂使它在整个经济学领域得到了广泛的应用,本文运用SAS软件实现CAPM模型在股市中的应用。
关键词:
CAPM模型风险指标SAS软件
一.计算指标与环境
1)理论模型
风险是投资者未来收益的一种不确定性。
通常证券市场上由资产价格波动导致的投资者收益的不确定性被人们称为纯市场风险,进行市场风险分析的基本模型一资本资产定价模型CAPM为基础。
模型:
其中,为股票j的超额收益;为市场超额收益;和为参数,且假定和不相关。
将方差作为风险的度量,根据上述假设得到股票j的总风险为:
即股票j的风险分为两部分,和。
前者由市场引起的股票j风险的度量,后者是与市场风险无关的股票j的非系统风险。
根据传统的投资理论,系统风险不能用优化投资组合来消除,而非系统风险则是可以通过分散化投资组合来消除。
选定时期,根据经验数据可以得到模型的最小二乘估计,以及相应估计量,和。
于是,系统风险占该股票总风险的比例估计值为:
有
这实际上就是模型测定系数的估计值。
即为非系统风险所占总风险比例的估计。
2)计算指标
计算1999年至2005年,沪深两地股票市场系统风险指数,个股总风险和系统分风险占总风险比例三个风险指标。
即具体计算:
系统风险系数估计值;
个股总风险估计值;
系统风险占总风险比值;
全市股票上述三种指标的概况统计量。
3)计算环境
计算数据集;
银行存款利率BankIr;
基准利率BchmkIr;
个股日收益DretM;
市场日收益DretM;
时期:
2005
样本:
沪深两市场满足条件的2006年前上市的所有股票日百分比收益。
剔除1年内交易小于50天的股票。
二计算程序
运用SAS软件对数据进行录入和做相应的处理。
1)算法实现
第一步:
创建无风险利率数据集RF;2005年市场日收益数据;
第二步:
创建宏文本Stk2006.txt;
第三步:
计算2005年沪深两市场A股个体风险指标;
第四步:
沪深两市场个股与市场风险关系统计分析;
2)计算程序
创建无风险利率数据集:
/*1998年7月1日后使用回购利率两周指数加权平均为基准利率*/
dataa;
setresdet.bahnmir;
ifcode="B2W"anddate>='1jun1998'd;
renameir=rf;
keepirdate;run;
/*1998年7月1日前用1年期银行存款利率加10%为基准利率*/
datab;
setresdat.bankir;
ifcode="dly";
run;
datac;
setb;
formatdateyymmdd10;
ifenddt=.thenenddt=date();
dodate=begdttoenddt;
output;
end;
run;
datad;
setc;
ifdate<'1jun1998'd;
keepdaterf;
rf=ir*1.1;/*在1年期存款利率的基础上再增加10%*/
run;
/*合并得到基准利率表rfyr*/
datarfyr;
setda;
ifdate<='31dec2005'd;
run;
/*得到日基利率表rf*/
datarf;
setrfyr;
rf=rf/365;
run;
dataDretM2005;
setresdat.DretM;
ifyear(date)=2005andExchflg='0'andMktflg='AB';
keepdateDretmc;
run;
创建宏文本:
Stk2006.txt
利用选择的样本股票收益数据集Dret创建宏。
如果要计算全部股票的风险指标,可以直接利用lstkinfo创建宏。
dataa;
setresdat.dret;
ifdif(stkcd)=0thendelete;
datanull;
seta;
a='%a(';
b=',';
c=');";
file"stk2006.txt";
puta$stkcd$b$lstknm$c$;
run;
计算2005年沪深两市场个股风险指标:
模型r_s=a+beta*r_m+e
/*2005年无风险利率数据集rf2005*/
datarf2005;
setrf;
ifyear(date)=2005;
run;
/*2005市场超额收益数据集*/
datapdretm2005rf2005;
mergedretm2005rf2005;
bydate;
rm=dretmc-rf;
keepdaterm;
run;
datapdretm2005;
setpdretm2005;
retainr_m;
ifrm^=.thenr_m=rm;
droprm;
run;
datadret;
setresdat.dret;
whereyear(date)=2005;
run;
procsql;
createtablepdret2005as
select*fromdretleftjoinrf
ondret.date=rf.date;
run;
procsortdata=pdret2005;
bystkcddate;
run;
datapdret2005;
setpdret2005;
r_s=dret-rf;
keepstkcdllstknmdater_s;
run;
procsql;
createablecapm2005as
select*frompdret2005leftjoinpdretm2005
onpdret2005.date=pdretm2005.date;
run;
procsortdata=capm2005;
bystkcd;
run;
/*计算个股风险指标;数据集capm2005*/
procregdata=capm2005outset=dcpnoprint;
modelr_s=r_m;
bystkcd;
run;
datad;
setd;
if(_edf_+_p_)<50thendelete;
datariiskl2005(keep=snobs_rms_r_m_rsq_stkcdlabel="2005年个股与市场风险指标");
setd;
sn=_n_;
obs=(_edf_+_p_);
labelsn='个股序号';
labelobs='观测个数';
label_rmse_='个股风险度';
labelr_m='系统风险估计值beta';
label_rsq_='系统风险占总风险比例';
run;
2005年股票市场个股风险指标的概括统计量计算:
procunivariatedata=riskl2005nopprint;
varr_m_rmse__rsq_;
outputout=outn=n_r_mn_rmse_n_rsq_;
mean=mean_r_mmean_rmse_mean_rsq_
median=median_r_mmedian_rmse_median_rsq_
min=min_r_mmin_rmse_min_rsq_
max=max_r_mmax_rmse_max_rsq_
q1=q1_r_mq1_rmse_q1_rsq_
q3=q3_r_mq3_rmse_q3_rsq_
range=range_r_mrange_rmse_range_rsq_;
dataout;
setout;
q3_q1_r_m=q3_r_m-q1_r_m;
q3_q1_rmse_=q3_rmse_-q1_rmse_;
q3_q1_rsq_=q3_rsq_-q1_rsq_;
format_n
参考文献:
[1]朱世武.编程技术教程.清华大学出版社.2007
[2]朱世武.金融计算与建模.清华大学出版社.2007