最优投资组合选择SAS实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最优投资组合选择——SAS实现

1、分享一些感觉

当初,在我翻看《金融计算与建模》这本书的时候,我也感觉:哇,会很难懂吧!yes,有这种感觉应该正常,因为书中的有些细节确实不是那么好理解,但这不影响我们有选择性地加以应用。整本书的大部内容都突出了“计算”二字——各种收益率计算、各种指数计算、各种风险价值(价格或指标)计算、VaR计算、利率计算等等。这些计算搞得我很“蒙蔽”,因为,当我在阅读程序语句时总是搞不明白,这些计算对应的是哪个数据集、哪个字段。

现在,用一种轻松的感觉挑选着翻看其中某些章节的内容,顿时发现“山重水复疑无路,柳暗花明又一村”了,原来当初是“不识庐山真面目,只缘生在此山中”啊,好吧,接下来,我就股票/证券领域中的投资组合理论来介绍一下我是如何柳暗花明的。

参看书籍是朱世武的《金融计算与建模》,数据集来自锐思数据库。

2、一句话的阳光

在SAS中进行最优投资组合选择需要:

计算股票期望收益率——μ

计算风险度量指标——σ/β

优化求解组合权重——weight

Yes,就是这三句话。前两句没什么好说的,第三句由于是规划问题,所以就要考虑到优化建模的一系列问题,比如,灵敏度分析、

整型规划、变量限制条件,等等。

投资组合就这些内容吧,分解一下就so easy吧。

3、各个击破

在对上述三个步骤进行各个击破前,让我们来熟悉一下,我们所要使用的数据集,以及数据集中的字段吧————这是一个十分十分重要的觉悟性认识!

需要字段:8只股票包括代码名、1995-2005年A股市场月持有收益率、3只股票月持有收益率。由于这三个字段来自不同方的数据集,所以需要进行整合。为什么选择这8只股票?这就是我们最初选股的问题了,而不是投资组合问题。

数据说明:resdat是自建的存储在SAS系统逻辑库下的库名,类似Work。monret是个股月持有期收益率数据集;monretm是市场持有期收益率数据集。(这里,我门不关心这两个收益率是如何得来的)➢数据准备阶段,程序见下:

⑴创建8只股票的代码收益率

data Stk8;

input stkcd$6.;

cards;

000002

000007

000011

000016

600601

600604

600651

600653

;run;

⑵按8只股票名合并数据,回忆一下merge函数,学习samp变量作

用哟

data return;

merge resdat.monret stk8(in=samp);

by stkcd;

if samp;

year=year(date);

month=month(date);

if 1995<=year<=2005;

keep stkcd date year month monret;

⑶提取1995-2005年A股市场月持有期收益率

data monretm;

set resdat.monretm;

year=year(date);

month=month(date);

If 1995<=year<=2005 and Exchflg='0' and Mktflg='A';

keep date year month Mretmc;

proc sort data=return;

by year month;

⑷合并市场月收益率数据集和8只股票月收益率

data return;

merge return monretm;

by year month;

proc sort data=return;

by stkcd year month;

run;

➢数据计算阶段,程序见下:

⑴计算期望收益,没什么好解释的,复习一下output和where

proc means data=return noprint;

by stkcd;

var monret;

output out=m_out;

data m_out1a;

set m_out;

where _stat_='MEAN';

keep stkcd monret;

run;

⑵计算风险度量指标

常用的风险度量指标有股票收益标准差 i和资本资产定价模型

(CAPM )的β。

①计算σi

注意,_stat_=“大写”(看看m_out 数据集就知道了),SAS 不分函数大小写,但是变量名(有些时候也宽容地认为不分大小写的)和值分大小写。

data m_out1b;

set m_out;

where _stat_='STD';

keep stkcd monret;

rename monret=std;

label monret='月收益率标准差';

run;

②计算β

根据CAPM 模型,资产i 的期望收益和市场收益之间的关系为:)()(E R R M i i i E βα+=,设投资组合权重为X i ,投资组合p 的参数为:

∑==N i i i p X 1αα, ∑==N

i i i p X 1ββ,(在这里要理解一下N 和p 的关系,N 可以理解为股票的个数,p 可以理解为选出的组合,p ≤N ,M 就不难理解了,表示市场总体)定义总风险为收益的标准差,则资产i 收益的方差为:σσβσε2222i i M i

+=,投资组合p 收益的方差为:∑=+=N i i M p i X 122222p σσβσ

ε,σε2i 相当于单个股票的收益方法差, ∑=N i i i X 12

2σε写成这样有一个隐含的假设,即各只股票的收益不相关(独

立),既然这样,当投资组合相当分散时,∑=N i i i

X 122σε会趋近于0,收益方差近似为:σβσ222p M p =。其实,在我们的数据分析中,就是搞

了一个线性回归(由于是时间序列数据,所以做了一个dw 自相关检

相关文档
最新文档