第2章SAS与股票市场分析.docx
- 文档编号:24781697
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:58
- 大小:207.86KB
第2章SAS与股票市场分析.docx
《第2章SAS与股票市场分析.docx》由会员分享,可在线阅读,更多相关《第2章SAS与股票市场分析.docx(58页珍藏版)》请在冰豆网上搜索。
第2章SAS与股票市场分析
第2章:
SAS与股票市场分析
马柯维茨的均值-方差决策理论表明,在股票市场上,收益与风险是理性投资者在决策时所考虑的两个重要因素,这是因为理性投资者追求的最优投资组合是:
在收益一定的条件下风险最小的投资组合,在风险一定的条件下收益最大的投资组合。
收益与风险的这个关系,不仅决定了投资者的最优组合,而且决定了包括股票在内的风险资产的定价模型——资本资产定价模型(CAPM)。
因此,对股票市场进行分析,首先需要对股票市场的收益与风险进行分析。
本章介绍在SAS中如何进行股票市场的收益风险分析,如何进行单只股票的CAPM拟合与检验。
通过本章学习读者将会了解:
股票收益的定义及收益计算的SAS实现;
不同假设条件下期望收益计算的SAS实现;
股市风险的度量方法及SAS实现;
如何利用SAS对单只股票进行CAPM拟合与检验;
本章有关的SAS基础知识。
2.1股票市场的收益与风险
2.1.1股票市场的收益率与期望收益率
2.1.1.1股票的收益率
1.单期收益率
度量单个时期的股票收益率,需要考虑两个部分:
从股息(红利)中得到的收入、以及从股票的买卖价差中得到的资本收入或损失。
如果直接采用红利分配复权后的股票价格数据,一只股票在时刻t的价格为
,则该股票的百分比收益率和对数收益率的定义为:
单期的百分比收益率
。
单期的对数收益率,又称为单期的连续复利收益率
。
根据泰劳展开式
,
因此当
很小时有
,即当
很小时单期的对数收益率约等于单期的百分比收益率,然而当
较大时,两者之间差异也会较大。
2.K个时期的收益率
k个时期的收益率是指,连续持有股票k个时期,按照复利方式计算所得的投资收益率。
k个时期的百分比收益率和对数收益率的定义为:
k个时期的百分比收益率
k个时期的对数收益率
从k个时期的对数收益率的定义可以看到,对数收益率具有一个优良性质:
高频数据与低频数据之间有着简单的加总关系,即有:
。
对数收益率的另外一个优良性质为:
在有效市场中,通常假设股票的价格服从对数正态分布,那么股票的对数收益率就可以视为服从正态分布。
3.K个时期的平均收益率
k个时期的平均收益率的度量方法有两种:
k个时期的算术平均收益率和k个时期的几何平均收益率。
算术平均收益率(AM)等于k个时期中各个单期收益率之和除以时期数k,AM度量了k个时期内各个单期的平均收益率
。
几何平均收益率(GM)表示一个股票在k个时期内复合的、累计的收益率。
一个股票在k个时期的几何平均收益率用以下公式表示
。
4.财富指数
财富指数(WEALTH)度量投资产生的收益或损失。
如果投资者在期初投资1元,则财富指数就代表期末时投资者的资本值。
如果财富指数大于1,投资者在这个时期获得了正的投资收益,如果财富指数小于1,投资者这个时期只获得了负的投资收益,或者说投资者遭受到了投资损失。
K个时期的财富指数等于投资者最终的资本值
与投资者最初投入的资本值
之比,即有
K个时期的财富指数也可以按照以下公式计算
。
另外,K个时期的几何平均收益率与K个时期的财富指数的关系为
。
2.1.1.2收益率计算的SAS实现
在SAS中,上述定义的各种收益率的计算,可以通过DATA步语句编程来实现。
这里通过一个例子来说明。
【例2-1】Excel数据集sjk2-1给出了1999-2008年期间各个交易日的上证指数数据,其中变量date、close分别表示交易日期与上证指数的收盘价。
试计算1999-2008期间各个年度上证指数的单期收益率,上证指数的10年收益率,10年平均收益率,以及10年的财富指数。
将Excel数据集sjk2-1引入转换为SAS数据集,转换后的SAS数据集命名为sjk2_1。
所需要的各种收益率的计算结果,这里通过以下几个步骤和SAS程序而得到。
创建计算年度收益率的SAS数据集sjk2_1a。
一个年度的单期收益率,就是
取本年度最后一个交易日的收盘价,
取上个年度最后一个交易日的收盘价,计算得到的收益率。
由于数据集sjk2_1中变量close给出的是上证指数的每日收盘价数据,为了计算年度收益率,首先需要创建一个只包含每年最后一个交易日的上证指数收盘价的SAS数据集sjk2_1a。
这个数据集的创建,可以通过以下SAS程序来实现。
(cx2-1a)
dataa;
setsjk2_1;
year=year(date);/*提取每个交易日的年度数据*/
procsortdata=a;
byyear;
run;
datasjk2_1a;
seta;
byyear;/*对所有观测按变量year分组*/
iflast.year;/*如果观测是一个by组的最后一个观测*/
run;
在这个程序中,后面这个子程序也可以写成:
(cx2-1b)
datasjk2_1a;
seta;
byyear;
iflast.year=1;/*如果观测是一个by组的最后一个观测*/
run;
句法说明:
*SETa;BYyear——对数据集a中的所有观测按变量year分组,即同一年度的观测为同一个BY组。
*First.year和Last.year——SAS对每个BY组会创建First.variable和Last.variable两个自动变量,用来识别每个BY组的第一个和最后一个观测。
对一个BY组的第一个观测,First.variable取1,对该组的其余观测,First.variable取0;对一个BY组的最后一个观测,Last.variable取1,对该组的其余观测,Last.variable取0。
这两个自动变量不包含在新产生的数据集中。
在本例中,每个BY组都是同一年度的观测,这样对每年最后一个交易日,Last.year取1,对这年的其余交易日,Last.year取0。
计算各个年度的单期百分比收益率和单期对数收益率,显示所得到的计算结果。
对应的SAS程序如下(cx2-1c)。
程序运行结果见表2-1。
datasjk2_1b;
setsetsjk2_1a;
r_pct=dif(close)/lag(close);/*计算每个年度的百分比收益率*/
r_log=log(close)-log(lag(close));/*计算每个年度的对数收益率*/
run;
datasjk2_1b;
modifysjk2_1b;
if_n_=1thenremove;/*删除数据集中的第一个观测*/
run;
procprintdata=sjk2_1b;
varyearr_pctr_log;
title‘1999-2008各年度上证指数的单期收益率’;
run;
从表2-1中可以看到,在1999-2008年的10个年度中,有5个年度上证指数的单期收益率为正,5个年度上证指数的单期收益率为负。
2006年、2007年由于股市暴涨,上证指数获得了很高的年度收益率;而2008年由于股市暴跌,上证指数的年度损失很大。
另外从表2-1中还可以看到,百分比收益率与对数收益率的差异会随着百分比收益率的绝对值的增加而增大。
一般情况下,当收益率为正时,百分比收益率大于对数收益率;当收益率为负时,百分比收益率的绝对值小于对数收益率的绝对值。
这是因为百分比收益率只是对数收益率的泰劳展开式中的第一项,所以经常会出现这种现象。
表2-1:
SAS程序的输出结果
1999-2008各年度上证指数单期收益率
OBSYEARR_PCTR_LOG
219990.190430.17432
320000.510010.41211
42001-0.21887-0.24701
52002-0.17134-0.18794
620030.105710.10048
72004-0.15228-0.16520
82005-0.08214-0.08571
920061.305730.83540
1020070.961360.67364
112008-0.65375-1.06061
计算上证指数10年的算术平均收益率、几何平均收益率和财富指数。
这项工作可以采用两种不同的编程方法来完成。
程序1:
(cx2-1d)
datasjk2_1c;
setsjk2_1b;
retainam1;/*对每个观测计算am1前保持已经得到的am1值不变*/
if_n_=1thenam1=r_pct;/*第一个am1的计算方法*/
elseam1=am1+r_pct;/*从第二个起am1的计算方法*/
am=am/10;
retaingm1;
if_n_=1thengm1=1+r_pct;
elsegm1=gm1*(1+r_pct);
gm=gm1**(1/10)-1;
wealth=gm1;
run;
procprintdata=sjk2_1c;
varamgmwealth;
run;
这个程序递交系统运行后,系统的输出结果显示,在1999-2008年期间,上证指数各个年度的算术平均收益率为0.17949,几何平均收益率为0.04597,上证指数10年的财富指数为1.5675。
句法说明:
*RETAINam1——运行IFTHEN/ELSE语句对每个观测计算am1时,保持从前一个观测中计算得到的am1不变。
本例中,使用RETAINam1语句,可以使am1的第k个观测值等于r_pct的前k个观测值的累加。
*RETAINgm1——作用与RETAINam1同。
本例中,使用RETAINgm1语句,可以使第k个gm1的观测值,等于前k个(1+r_pct)的观测值的乘积。
程序2:
(cx2-1e)
proctransposedata=sjk2_1bout=sjk2_1c;/*对数据集sjk2_1b进行转置*/
varr_pct;/*sjk2_1c中只包含变量r_pct的转置后数据*/
run;
datasjk2_1d;
setsjk2_1c;
am=sum(ofcol1-col10)/10;/*计算算术平均收益率*/
wealth=(1+col1)*(1+col2)*(1+col3)*(1+col4)*(1+col5)*(1+col6)
*(1+col7)*(1+col8)*(1+col9)*(1+col10)*;/*计算财富指数*/
gm=wealth**(1/10)-1;/*计算几何平均收益率*/
run;
procprintdata=sjk2_1d;
varamgmwealth;
run;
程序2运行后所得到的计算结果,与程序1的计算结果完全相同。
句法说明:
*PROCTRANSPOSE——对指定的数据集进行转置,即将数据集的行变为列、列变为行。
本例中,对PROCTRANSPOSE语句指定了下列选项:
data=指定需要转置的数据集,本例中为sjk2_1b;
out=输出转置后的数据集,并指定这个数据集的名称,本例中为sjk2_1c。
*varr_pct——指定对sjk2_1b中的哪个(哪些)变量进行转置,本例中为r_pct。
在转置后,sjk2_1c中只有一个数据行(一个观测),其中:
第一个变量名为_name_,其观测值为r_pct,从第二个变量起,变量名依次为col1、col2等,其观测值依次为sjk2_1b中变量r_pct的第一个观测、第二个观测等。
*SUM(ofcol1-col10)——求和函数,将col1-col10这10个变量的值相加。
2.1.1.3股票的期望收益率及SAS实现
投资者利用过去的数据来计算股票的收益率,以评价一只股票的历史表现,为衡量该股票的未来收益提供一种参考。
但考虑到股票投资是面向未来的投资,股票的历史表现并不能完全代表其未来表现,甚至有时完全不能代表其未来表现。
因此,在投资决策时,投资者还需要估计股票的未来表现——股票的期望收益率。
股票的期望收益率是面向未来的收益率,而未来通常是不确定的,因此在估计股票的期望收益率时,投资者需要依据经验和判断,对股票的未来表现作出一定的假设。
例如:
假设股票的收益率会保持不变;假设股票的收益会以一定的趋势增长;假设股票的收益率受到几个重要因素的影响,股票的未来收益会随这些因素的变化而变化,等等。
根据不同的假设条件,计算股票期望收益率的方法也不相同。
表2-2给出了几种比较常用的假设条件以及对应的期望收益率的计算方法。
下面介绍以上三种不同假设条件下,股票的期望收益率的具体计算方法,以及如何在SAS中实现这些计算。
表2-2:
计算股票期望收益率的方法
方法
前提假设
使用的SAS方法
使用过去收益率的均值
收益率的分布不变,未来收益率预计与过去的均值相似
Procmeans
计算增长率并预测未来收益率
过去的增长趋势将来会保持下去
Data步
拟合一个回归模型并用于预测收益率
收益率同一个或几个变量相关,并随这些变量的变化而变化
Procreg
2.1.1.3.1使用过去收益率的均值
假设条件:
股票收益率的分布不会随时间的变化而改变,股票过去的表现可以代表其未来的表现。
因此,股票的未来收益率分布应该与股票的历史收益率分布相同。
这样,可以用一只股票的过去各单期收益率的平均值来估计这只股票下一期的期望收益率。
在这种假设条下,期望收益率的计算公式为:
,
其中:
为某只股票的期望收益率,
为该股票最近各期的单期收益率。
在SAS中,这种期望收益率的计算可以通过PROCMEANS过程(均值过程)来实现。
【例2-2】如果假设上证指数收益率的分布不会随时间而变化,利用上证指数1999-2008年期间各个年度的单期百分比收益率,该指数在2009年度的百分比收益率的期望值。
这个计算可以通过以下SAS程序来计算:
(cx2-2)
procmeansdata=sjk2_1b;
outputout=amean(r_pct)=qiwang;
run;
procprintdata=a;
varqiwang;
title‘2009年上证指数的期望收益率’;
run;
句法说明:
*PROCMEANS——调用均值过程。
调用这个过程后,SAS对指定数据集中的指定变量计算均值、标准差、最大值、最小值等。
如缺省指定变量,则系统对指定数据集中的所有变量进行计算。
本例中,指定数据集为sjk2_1b。
*OUTPUT——输出到数据集语句,这个语句告诉SAS系统输出当前的观测到正在创建的数据集。
本例中,这个语句的选项为:
OUT=输出数据集的名字,本例中为a;
Mean(r_pct)=qiwang:
输出数据集中包含哪些变量,给输出变量起什么名字。
本例中,输出数据集中包含的变量为r_pct的均值,这个变量的名字为qiwang。
运行这个程序后,SAS系统的输出结果见表2-3。
表2-3:
SAS程序的输出结果
2009年上证指数的期望收益率
OBSQIWANG
10.17949
2.1.1.3.2计算增长率并预测期望收益率
假设条件:
股票过去的收益有稳定的增长率,预计股票收益的这种稳定增长的趋势在未来将会保持下去。
因此可以利用股票的历史数据来估算这个稳定的增长率,进而计算股票的期望收益率。
在这种假设条件下,要计算股票的期望收益率,先要依据股票收益率的历史数据对股票收益的增长率进行估计。
估计增长率有多种方法,其中两种比较常用的方法为:
一,用最近几期的算术平均收益率AM来代表股票收益的增长率;二,用最近几期的几何平均收益率GM来代表股票收益的增长率。
在得到增长率的估计值后,假设股票下一期的收益率会按照相同的增长率增长,并计算下一期的期望收益率。
一般来说,计算增长率并预测收益率这种方法,比较适用于计算那些具有稳定增长率的股票的下一期的期望收益率,而不适用于那些按不同的增长率增长的股票,也不适用于计算一只股票的未来很久的期望收益率。
【例2-3】数据集sjk2-2给出1970-1989年期间各个年度美国S&P500综合股票指数的数据,其中的变量为:
年份nian、年底指数收盘价close(已经按照红利指数进行了复权)。
某位投资者根据1987-1989年的数据判断,投资S&P500综合股票指数的收益率在过去三年中有比较稳定的增长率,并且他预期这种增长率在1990年仍会继续保持。
如果他分别以过去三年的算术平均收益率和几何平均收益率来计算增长率,那么他估计1990年投资S&P500综合股票指数的百分比收益率的期望值为多少?
将外部数据集sjk2-2引入转化为SAS数据,并命名为sjk2_2后,按两种不同方法计算增长率,进而计算S&P500综合股票指数1990年的百分比收益率的期望值,可以通过以下SAS程序来实现。
(cx2-3)
datasjk2_2a;
setsjk2_2;
r_pct=dif(close)/lag(close);/*计算各个年度的百分比收益率*/
run;
datasjk2_2b;
setsjk2_2a;
ifnian>1986;/*只取1986-1988年的观测数据*/
run;
datasjk2_2c;
setsjk2_2b;
retainam;
if_n_=1thenam=r_pct;
elseam=am+r_pct;
amzc=am/3;/*按照算术平均计算增长率*/
retaingm;
if_n_=1thengm=1+r_pct;
elsegm=gm*(1+r_pct);
gmzc=gm**(1/3)-1;/*按照几何平均计算增长率*/
run;
datasjk2_2d;
setsjk2_2c;
if_n_=3;/*只取序号为2的观测数据*/
qiwang1=r_pct*(1+amzc);/*按照算术平均增长率计算期望值*/
qiwang2=r_pct*(1+gmzc);/*按照几何平均增长率计算期望值*/
run;
procprintdata=sjk2_2d;
varamzcgmzcqiwang1qiwang2;
title“1990年S&P500综合指数的期望收益率”;
run;
运行这个程序后,系统给出的结果见表2-4。
从计算结果看到,按照两种不同方法计算的期望收益率存在着差异,这是因为对增长率的估计方法不同而造成的。
表2-4:
SAS程序的输出结果
1990年S&P综合指数期望收益率
OBSAMZCGMZCQIWANG1QIWANG2
10.137640.133200.304740.30355
2.1.1.3.3拟合一个回归模型并预测期望收益率
假设条件:
股票的期望收益率(或超额收益率)主要受一个或多个因素的影响,股票的期望收益率会随这些因素的变化而变化。
利用回归模型拟合期望收益率与这些因素之间的线性关系,并根据这种关系得到期望收益率的估计值。
如资本资产定价模型表明,股票的超额收益率会受到系统性风险的影响,而且股票的期望收益率与股票的系统性风险之间存在着线性关系。
又如法玛认为,在美国的股票市场上,股票的超额收益率主要受到三个因素的影响:
股票的系统性风险、公司规模、以及公司的账面价值/公司的市场价值。
法玛同时认为,股票的超额收益率与这三个因素之间存在着线性关系,可以利用回归模型来拟合这种关系,并根据这种关系计算股票的期望收益率。
在SAS中,可以通过REG过程(回归过程)来拟合及检验一个回归模型,并根据回归模型来估计股票的期望收益率。
利用REG过程拟合回归模型、并估计股票的期望收益率的方法,将在下一节中介绍。
2.1.2股票市场的风险
马柯维茨认为,股票市场上投资者的决策方式为:
在期望收益既定时,考虑风险最小的资产组合;在投资风险既定时,考虑期望收益最大的资产组合。
因此在股票市场上,仅仅知道一只股票过去的收益率、或未来的期望收益率是不够的,因为投资者在决策时,还要考虑投资风险这个要素。
股票市场的风险可以分为双侧风险(又称为波动)、尾部风险、系统性风险和非系统性风险等多种类型。
之所以要对风险进行这样的分类,是因为在解决不同类型的实际金融问题时,需要度量不同类型的风险,或者需要对不同类型的风险采取不同的管理方法。
例如:
如果要对一种风险资产进行定价,那么就需要度量这种风险资产的双侧风险;如果考虑对持有某种风险资产的保险公司的偿付能力要求、或者考虑对持有风险资产的银行的监管资本要求,则通常只需要考虑这种风险资产的尾部风险。
又例如:
一种风险资产的双侧风险中包含了系统性风险和非系统性风险,其中系统性风险与市场的整体变化有关,投资者不可能通过多样化投资来化解这种风险,而只能通过某种做空方式来对冲或者缓解系统性风险;而对于非系统性风险,投资者则可以通过多样化投资来进行化解。
不同类型的风险有着不同的衡量指标和度量方法,例如:
股票的双侧风险通常采用标准差或方差来度量;尾部风险通常采用VaR(ValueatRisk,在险价值)来度量;股票的系统性风险可以通过资本资产定价模型和回归分析方法来估计;利用回归模型的分析结果,还可以对双侧风险中系统性风险与非系统性风险所占的比重进行度量。
下面分别介绍各种不同风险的度量方法,以及如何在SAS中对各类风险进行计算。
2.1.2.1双侧风险度量的SAS实现
投资股票的收益具有不确定性,实际收益率经常会与期望收益率之间存在一定的差异。
这种差异可能体现为实际收益率高于期望收益率(存在正偏差),也可能体现为实际收益率低于期望收益率(存在负偏差)。
衡量双侧风险时将这两种偏差均视为风险,即双侧风险将股票价格或收益率的波动视为风险,因此采用可以度量这种波动的统计量——标准差或方差来度量这种风险。
标准差的计算公式为:
,其中
。
在SAS中,可以通过PROCMEANS过程、或者利用SAS函数STD()来计算标准差。
这里通过一个例子来说明。
【例2-4】利用SAS数据集sjk2_1,计算上证指数的月收益率在2000-2005年期间的标准差,以及上证指数的日收益率在2006-2008时期的标准差。
2006-2008年期间上证指数日收益率的风险度量(cx2-4a)
datasjk2_1a;
setsjk2_1;
r_log=log(close)-log(lag(close));/*计算每日的对数收益率*/
year=year(date);
run;
datasjk2_1b;
setsjk2_1a;
where2005 run; procmeansdata=sjk2_1b; varr_log; run; 系统运行这个程序后的输出结果见表2-5,计算结果显示,在这个时期,上证指数日收益率的标准差(StdDev)为0.02263。 表2-5: SAS的输出结果 分析变量: R_LOG N均值标准差最小值最大值 7290.0006151260.0226319-0.09260930.0903297 2000-2005年期间上证指数月收益率的风险度量(cx2-4b) datasjk2_1a; setsjk2_1; year=year(date); month=month(date); run; procsortdata=sjk2_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 股票市场 分析