请SAS高手帮忙读下程序语句!感谢!-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 考研考博>>

考研

>>

请SAS高手帮忙读下程序语句!感谢!

请SAS高手帮忙读下程序语句!感谢!

发布:路人章 | 分类:考研

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

大家好,麻烦大家帮忙解决一下下面这个问题。就是前半部分是stata的程序语句,前面都还好,就是最后一个forv循环,需要用到d3和d2_1这两个文件,但数据里面并没有给出来,只能是从后面的SAS程序生成。但我不懂SAS软件 ...
免费学术公开课,扫码加入


大家好,麻烦大家帮忙解决一下下面这个问题。就是前半部分是stata的程序语句,前面都还好,就是最后一个forv循环,需要用到d3和d2_1这两个文件,但数据里面并没有给出来,只能是从后面的SAS程序生成。但我不懂SAS软件,各位大侠能不能帮忙读一下后面的SAS程序,具体是什么意思?怎么生成d3和d2_1这两个文件?谢谢!


第一次弄这个悬赏,并不知道多少合适,先谢谢大家了。


STATA 程式語法

/* 假設在電腦中已經有儲存資料集的 STATA 格式 */

. cd h:\ch3

. use mkt_ret

. sort date

. use ret_m, clear

. merge m:1 date using mkt_ret

Result #of obs.

-----------------------------------------

not matched 0

matched 71,873(_merge==3)

-----------------------------------------

/* 合併iclink 與 CRSP */

. drop _merge

. merge m:1 permno using iclink

Result #of obs.

-----------------------------------------

not matched 50,425

from master 50,425(_merge==1)

from using 0(_merge==2)

matched 21,448(_merge==3)

-----------------------------------------

/* 保留非缺失資料 */

. keep if _merge==3

(50425 observations deleted)

.drop _merge

/* 先將前述合併完檔案暫存為d2 */

save d2

. use ibes_sp, clear

. sort ticker

. by ticker: gen eventcount=_n

/* 以 forv 方式產生 anndates1~anndates11 */

. forv k=1(1)11 {

2.use d3, clear

3.keep if eventcount==`k'

4.save eventcount, replace

5.use d2_1, clear

6.sort ticker

7.merge m:1 ticker using eventcount

8.rename anndats anndates`k'

9.drop _merge

10.save d2_1, replace


11.}


----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

SAS程序语句:


**設定永久資料集路徑 Ch 3;

libname Ch3 'd:\Ch3_Rev\Data\';

/*----------------實例演練--------------------------*/

**合併個股與市場月報酬率資料集;

proc sql;

create table d1 as select distinct

a.*,b.vwretd as ret_mkt

fromch3.ret_m as a left join ch3.mkt_ret as bona.date=b.date

orderby a.permno, a.date;

quit;

* 合併iclink 與 CRSP;

proc sql;

create table d2 as select

*, year(a.date) as cyear

from d1 as a, ch3.iclink as b

where a.permno=b.permno

order by a.permno, a.date;

quit;

proc sort data=d2 nodupkey; by ticker date;run;

**輸出個股盈餘宣告日前估計期月報酬率資料;

**(1) 產生 ticker*cyear 的資料集序號;

proc sort data=ch3.ibes_sp nodupkey; byticker cyear; run;(proc sort 排序)

data d4; set d3;

group=_n_;(

run;

(2) 將資料集序號與d3 資料集合併;

proc sql;

create table d5 as select distinct

a.*,b.group, b.anndats

fromd2 as a left join d4 as b

ona.ticker=b.ticker and a.cyear=b.cyear

orderby a.ticker, b.anndats;

quit;

(3)執行巨集程式, 產生估計期 (盈餘宣告日前1個月至60個)所需的個股及大盤月報酬率資料;

%macro subdata(finish, z=);

%Let gg=&z;

%Do %while (&gg<&finish);

data a&gg; set d4;

if group=&gg then output;

run;

proc sql;

create table d6_g&gg as select

a.permno,a.ret, a.date, a.ret_mkt, a.ticker, b.group, b.anndats

fromd2 as a,a&gg as b

wherea.ticker=b.ticker and intnx('month', b.anndats, -61, 'E') <= intnx('month',a.date, 0, 'E') < intnx('month', b.anndats, -1, 'E')

orderby a.date;

quit;

data d6_g&gg; setd6_g&gg;

ifret=. then delete;

ifret='.C' then delete;

run;

%Let gg=%eval(&gg+1);

%end;

%mend subdata;

***因為節省運算時間, 本例自此開始只選擇前100個成分股;

%subdata(858, z=1);

***CAPM巨集程式***;

%macro CAPM(finish, z=);

%Let group=&z;

%Do %while (&group<&finish);

proc reg data= d6_g&groupoutest=est_d&group edf noprint;

model ret=ret_mkt;

run;

quit;

data est_d&group; set est_d&group;

g=&group;

run;

%Let group=%eval(&group+1);

%end;

%mend CAPM;

%CAPM(858, z=1);

**資料集合併巨集;

%macro combine;

data d7;

set

%do i=1 %to 857;

est_d&i

%end;

;

run;

%mend;

%combine;

***合併以盈餘宣告日為事件日之 (-5, 5)期間的個股與市場日報酬率資料;

proc sql;

create table d8as select

a.*, b.ret_mkt as dret_mkt, year(a.anndats) as year

from ch3.ret_d as a left join ch3.retmkt_d as b

on (a.permno = b.permno) and a.date=b.date

orderby a.permno, a.date;

quit;

**合併 ICLINK 與日報酬資料檔, 產生 ticker 識別碼;

proc sql;

create table d9 as select

a.*,b.ticker

fromd8 as a, ch3.iclink as b

wherea.permno=b.permno

orderby b.ticker, a.date;

quit;

proc sql;

create table d10 as select distinct

a.ret_mktas beta, a.intercept as alpha, b.group, b.cyear, b.ticker

fromd7 as a left join d4 as b

ona.g=b.group

orderby b.ticker, b.cyear;

quit;

**計算 (-5, 5) 期間的未預期報酬;

proc sql;

create table d11 as select distinct

a.*, (b.alpha+b.beta*a.dret_mkt) as expret,

(a.ret-b.alpha-b.beta*a.dret_mkt)as ar

fromd9 as a left join d10 as b

ona.ticker=b.ticker and a.year=b.cyear

orderby a.ticker, a.anndats, a.date;

quit;

data d12; set d11;

if ar=. then delete;

run;

**計算好消息與壞消息兩子樣本的 (-5, 5) 期間平均未預期報酬;

data d13; set d12;

diff=date-anndats;

run;

**計算未預期盈餘=(實際盈餘-分析師預測盈餘);

proc sql;

create table d14 as select distinct

a.ar, a.permno, a.year, a.anndats, a.date, a.diff, b.fpedats,

b.feps_med, b.feps_mean, b.eps, (b.eps-b.feps_med) as ue1,

(b.eps-b.feps_mean) as ue2, b.ticker

from d13 as a left join ch3.ibes_sp as b

ona.ticker=b.ticker and a.anndats=b.anndats

order by a.ticker, a.anndats, a.diff;

quit;

**未預期盈餘>=0 為好消息樣本組, 否則為壞消息樣本組;

data d15; set d14;

if ue1 >=0 then d_ue1=1;

elsed_ue1=0;

if ue2 >=0 then d_ue2=1;

elsed_ue2=0;

ifar>=0 then d_ar=1;

elsed_ar=0;

run;

**分別計算好壞消息樣本公司之平均未預期報酬;

proc sql;

create table d16 as select

diff,d_ue2, mean(ar) as mar_mean

fromd15

groupby d_ue2, diff;

quit;

proc sql;

create table d17 as select

diff,mean(ar) as mar_mean

fromd15

groupbydiff;

quit;

/*

ods rtf file='d:\Sas Example\Sas Output\Ch3\AR.rtf';

proc print data=d16; run;

proc print data=d17; run;

ods rtf close;

*/


「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-4468672-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
经管之家 人大经济论坛 大学 专业 手机版