急!!!capm模型检验对β进行分组
发布:少年时代balala | 分类:会计库
关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
经管之家新媒体交易平台
提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】
论文
- 毕业论文 | 写毕业论文
- 毕业论文 | 为毕业论文找思路
- 毕业论文 | 可以有时间好好写 ...
- 毕业论文 | 毕业论文如何选较 ...
- 毕业论文 | 毕业论文选题通过 ...
- 毕业论文 | 还有三人的毕业论 ...
- 毕业论文 | 毕业论文答辩过程 ...
- 毕业论文 | 本科毕业论文,wi ...
考研考博
- 考博 | 南大考博经济类资 ...
- 考博 | 考博英语10000词汇 ...
- 考博 | 如果复旦、南大这 ...
- 考博 | 有谁知道春招秋季 ...
- 考博 | 工作与考博?到底 ...
- 考博 | 考博应该如何选择 ...
- 考博 | 考博失败了
- 考博 | 考博考研英语作文 ...
留学
- 日本留学 | 在日本留学心得
- 日本留学 | 日本留学生活必需 ...
- 日本留学 | 【留学日本】2015 ...
- 日本留学 | 日本海外留学8年来 ...
- 日本留学 | 日本留学费用_日本 ...
- 日本留学 | 求在日本留学的师 ...
- 日本留学 | 日本留学的有没有 ...
- 日本留学 | 日本留学
TOP热门关键词
扫码加入统计交流群 |
我的数据是从2002年1月——2007年6月,rolling的长度为36个月(eg.2002年1月——20014年12月回归得到的β作为2005年1月的β)
我现在要用rolling得到的30个β作为分组标准,对公司进行分组。
eg.我rolling得到的β最小值为0.2,最大值为2.6,那么我将β等分为5组:0.2~0.7,0.7~1.2,1.2~1.7,1.7~2.1,2.1~2.6.然后把每个公司2005年1月——2007年6月的β值(其实也是rolling得到的)丢入对应的分组中,那么每一个月都有5个组合对应于β的五组。每个组合的每一个月中的公司数目都可能不一样。
!!因为我之后需要用其他的数据rolling得到作为分组标准的β,所以希望大神用分步的做法,让作为分组标准的β是可以替换的。
我之前在书上看到的方法如下,但是太粗暴了,是对公、司、数、进行等分的,而不是将β等分!!
程序和数据都在附件中,感激不尽~~
libname CAPM 'f:\fe';
/* input close price*/
/*导入原始数据——收益率*/
datacapm.riraw;
infile 'f:\fe\Chap3-2-1 BJS.csv' delimiter =','MISSOVER DSD lrecl=5000;
input date r1-r25 rf rm;
run;
data capm.rida;
infile 'f:\fe\Chap3-2-1 date.csv' delimiter =','MISSOVER DSD lrecl=5000;
input date date1;
run;
/*从capm.riraw中读取dateri rf rm code,其中code取1-25,用来提取r1-r25分别放入不同的数据集中*/
%macro mac;
%do i=1 %to 25;
data capm.ri&i.;
set capm.riraw;
code=&i.;
ri=r&i.;
keep date ri rf rm code;
run;
%End;
%MEND mac;
%mac;
/*3 set 50dataset*/
/*把这25个数据集中的数据全部读入capm.ri中*/
data capm.ri;
set capm.ri1 capm.ri2 capm.ri3 capm.ri4capm.ri5 capm.ri6 capm.ri7 capm.ri8 capm.ri9 capm.ri10
capm.ri11capm.ri12 capm.ri13 capm.ri14 capm.ri15 capm.ri16 capm.ri17 capm.ri18 capm.ri19capm.ri20
capm.ri21capm.ri22 capm.ri23 capm.ri24 capm.ri25;
run;
proc sort data=capm.ri; by date; run;
proc sort data=capm.rida; by date;run;
/*merge,并且求出风险溢价*/
/*capm.rida中的date1被合并进入capm.riraw1中,date1的作用目前未知*/
data capm.riraw1;
merge capm.ri capm.rida; by date;
rif=ri-rf;rmf=rm-rf;
run;
/*按code排序(也就是先按公司ri排序),再按date排序*/
proc sort data=capm.riraw1; by code;run;
/*rolling的分组,每组时间间隔为3年,36个月*/
%macro mac;
%do i=1 %to 30;
datacapm.t&i.;
setcapm.riraw1;
ifdate1>=&i. and date1<=35+&i.;
rif=ri-rf;rmf=rm-rf;
run;
%End;
%MEND mac;
%mac;
%macro mac;
%do i=1 %to 30;
datacapm.t&i.;
setcapm.riraw1;
ifdate1>=&i. and date1<=35+&i.;
rif=ri-rf;rmf=rm-rf;
run;
/*分别对Ti中的数据按照code进行回归,并把结果记入beta_i数据集中,一共rolling30次,每个公司股票得到30的beta值*/
proc regdata=capm.t&i. noprint;
outest=capm.beta_&i.; /*输出结果为capm.beta&i*/
by code;
model rif=rmf;
run;/*25 obs*/
/*例如,对T1中的code=1的数据进行回归,得到的结果记入beta_1中第一行,即code=1的结果
其中intercept是截距项α,rmf是斜率β*/
proc rankdata=capm.beta_&i.
out=capm.beta&i. groups=5;/*分为5组,注意!!这里的分组是把公司数目进行等分,而不是对β进行等分*/
ranks p;/*排名记为p,即β的大小赋给了p,“就是变量rmf的秩”*/
var rmf;/*按照rmf的大小进行排序,即按照β大小排序*/
run;
%End;
%MEND mac;
%mac;
/*令date1=&i.+36,保留codedate1和p(beta的排名)*/
%macro mac;
%do i=1 %to 30;
datacapm.beta&i.;
setcapm.beta&i.;
date1=&i.+36;/*把前面rolling得到的beta值赋给了36个月之后的那个月*/
keep codedate1 p;
run;
%End;
%MEND mac;
%mac;
/*把所有capm.beta中的数据集中到capm.cop中*/
data capm.cop;
set capm.beta1;
run;
%macro mac;
%do i=1 %to 30;
data capm.cop;
merge capm.copcapm.beta&i.;
by code date1;
run;
%End;
%MEND mac;
%mac;
/*复制capm.cop中date1在37-66之间的数据,以及capm.riraw1中date1在37-66的数据*/
data capm.cop1;
set capm.cop;
if date1>=37and date1<=66;
run;
data capm.riraw2;
set capm.riraw1;
if date1>=37and date1<=66;
run;
/*排序,两次排序的结果应该是先按照date1排序,再按照code排序*/
proc sort data=capm.riraw2;
by code;run;
proc sort data=capm.riraw2;
by date1;run;
proc sort data=capm.cop1;
by code;run;
proc sort data=capm.cop1;
by date1;run;
/*merge*/
data capm.cop2;
merge capm.cop1 capm.riraw2;
by date1 code;
keep code date1 ri rm rf p;
run;
/*sort by pdate1*/
proc sort data=capm.cop2;
by date1;run;
proc sort data=capm.cop2;
by p;run;
proc univariate data=capm.cop2/*指明到底对那一个资料文件进行分析*/
noprint;/*noprint 就不在输出窗口打印,可以节省时间*/
var ri rm rf;/*列举需要进行描述性统计分析的数值变量名称*/
by p date1;/*依据此指令所列举的变量将观测进行分组*/
/*对每个组,也就是对每个p和date,对rirf 和 rm求平均值,此时求的是算术平均。如果加权平均,则要加一行:weight size*/
output out=capm.rip/*存储要输出的关键统计的表名*/
mean=meanri mean=meanrmmean=meanrf;/*分别给rirf rm的均值命名*/
run;
data capm.rip1;
set capm.rip;
meanrif=meanri-meanrf;
meanrmf=meanrm-meanrf;
run;
proc sort data=capm.rip1 ;
by p;run;
proc reg data=capm.rip1
outest=capm.beta;
model meanrif=meanrmf;
by p;
run;
/*风险与收益的检验*/
proc univariate data=capm.rip1;
var meanri meanrmf;
by p;
output out=capm.rip2
mean=meanrip mean=meanrmf;
run;
data capm.beta0;
merge capm.beta capm.rip2;
by p;
run;
proc reg data=capm.beta0;
model meanrip=meanrmf;
run;
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
本站推荐的文章
- 哲学名言 | 【独家发布】经典哲学名言
- 哲学书籍 | 求推荐一本讲人生目标的哲学书籍 ...
- 哲学书籍 | 20部必读的哲学书籍
- 哲学书籍 | 经济人,开拓你逻辑思维的哲学书 ...
- 哲学书籍 | 哲学书籍
- 哲学书籍 | 哲学书籍
- 哲学书籍 | 哲学书籍
- 哲学书籍 | 经典的哲学书籍
人气文章
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。