第2章:SAS与股票市场分析
马柯维茨的均值-方差决策理论表明,在股票市场上,收益与风险是理性投资者在决策时所考虑的两个重要因素,这是因为理性投资者追求的最优投资组合是:在收益一定的条件下风险最小的投资组合,在风险一定的条件下收益最大的投资组合。收益与风险的这个关系,不仅决定了投资者的最优组合,而且决定了包括股票在内的风险资产的定价模型——资本资产定价模型(CAPM)。因此,对股票市场进行分析,首先需要对股票市场的收益与风险进行分析。
本章介绍在SAS中如何进行股票市场的收益风险分析,如何进行单只股票的CAPM拟合与检验。通过本章学习读者将会了解:①股票收益的定义及收益计算的SAS实现;②不同假设条件下期望收益计算的SAS实现;③股市风险的度量方法及SAS实现;④如何利用SAS对单只股票进行CAPM拟合与检验;⑤本章有关的SAS基础知识。
2.1 股票市场的收益与风险
2.1.1 股票市场的收益率与期望收益率 2.1.1.1 股票的收益率 1.单期收益率
度量单个时期的股票收益率,需要考虑两个部分:从股息(红利)中得到的收入、以及从股票的买卖价差中得到的资本收入或损失。如果直接采用红利分配复权后的股票价格数据,一只股票在时刻t的价格为Pt,则该股票的百分比收益率和对数收益率的定义为:
单期的百分比收益率
Rt?Pt?Pt?1P?t?1。 Pt?1Pt?1Pt)?ln(Pt)?ln(Pt?1)。 Pt?1单期的对数收益率,又称为单期的连续复利收益率
rt?ln(1?Rt)?ln(根据泰劳展开式
12131Rt?Rt???(?1)n?1Rtn??, 2!3!n!因此当Rt很小时有rt?Rt,即当Rt很小时单期的对数收益率约等于单期的百分比收益率,然而当Rt较大时,两者之间差异也会较大。
2.K个时期的收益率
k个时期的收益率是指,连续持有股票k个时期,按照复利方式计算所得的投资收益率。k个时期的百分比收益率和对数收益率的定义为:
k个时期的百分比收益率
ln(1?Rt)?Rt? 1
Rt(k)?(1?Rt)?(1?Rt?1)???(1?Rt?k?1)?1 ?k个时期的对数收益率
PtPt?1PP????t?k?1?1?t?1Pt?1Pt?2Pt?kPt?k
rt(k)?ln[1?Rt(k)] ?ln[(1?Rt)?(1?Rt?1)???(1?Rt?k?1)] ?rt?rt?1???rt?k?1从k个时期的对数收益率的定义可以看到,对数收益率具有一个优良性质:
高频数据与低频数据之间有着简单的加总关系,即有:
rt(k)?lnPtPP?lnt???lnt?k?1?rt???rt?k?1。 Pt?kPt?1Pt?k对数收益率的另外一个优良性质为:在有效市场中,通常假设股票的价格服
从对数正态分布,那么股票的对数收益率就可以视为服从正态分布。
3.K个时期的平均收益率
k个时期的平均收益率的度量方法有两种:k个时期的算术平均收益率和k个时期的几何平均收益率。算术平均收益率(AM)等于k个时期中各个单期收益率之和除以时期数k,AM度量了k个时期内各个单期的平均收益率
1kAM??Rt。
kt?1几何平均收益率(GM)表示一个股票在k个时期内复合的、累计的收益率。一个股票在k个时期的几何平均收益率用以下公式表示
GM?[(1?R1)?(1?R2)???(1?Rk)]1/k?1。
4.财富指数
财富指数(WEALTH)度量投资产生的收益或损失。如果投资者在期初投资1元,则财富指数就代表期末时投资者的资本值。如果财富指数大于1,投资者在这个时期获得了正的投资收益,如果财富指数小于1,投资者这个时期只获得了负的投资收益,或者说投资者遭受到了投资损失。
K个时期的财富指数等于投资者最终的资本值Wk与投资者最初投入的资本值W0之比,即有
WEALTH?Wk W0K个时期的财富指数也可以按照以下公式计算
WEALTH?(1?R1)?(1?R2)???(1?Rk)。
另外,K个时期的几何平均收益率与K个时期的财富指数的关系为
GM?(WEALTH)1/K?1。
2
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。
一个年度的单期收益率,就是pt取本年度最后一个交易日的收盘价,pt?1取上个年度最后一个交易日的收盘价,计算得到的收益率。由于数据集sjk2_1中变量close给出的是上证指数的每日收盘价数据,为了计算年度收益率,首先需要创建一个只包含每年最后一个交易日的上证指数收盘价的SAS数据集sjk2_1a。这个数据集的创建,可以通过以下SAS程序来实现。(cx2-1a)
data a;
set sjk2_1;
year=year(date); /*提取每个交易日的年度数据*/ proc sort data=a; by year; run;
data sjk2_1a; set a;
by year; /*对所有观测按变量year分组*/
if last.year; /*如果观测是一个by组的最后一个观测*/ run;
在这个程序中,后面这个子程序也可以写成:(cx2-1b) data sjk2_1a; set a; by year;
if last.year=1; /*如果观测是一个by组的最后一个观测*/ run;
句法说明:
* SET a;BY year——对数据集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。这两个自动变量不包含在新产生的数据集中。
3
相关推荐: