全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9602 8
2009-09-09
请教:

我现在在做一个event study,对于每一个公司,我有一个day 0,现在我想对于每一个公司,从它的day0往前数,往后数天数,直到数到下一个公司为止。
那位高人知道这个code大概应该怎么写,先多谢了!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-9-9 18:52:38
..................................
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-28 18:07:43
where is your program
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-28 22:13:59
这个很好写,你贴个数据上来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-28 22:48:55
1# mike315
程序如下:
*************************************************;
*** Program for basic event study             ***;
*************************************************;
* Read data on event dates and returns from text file;
data returns;
    INFILE 'd:\xiamen\lecture3\events.txt';
    INPUT firm $ @10 DATE yymmdd6. @17 evntdate yymmdd6. evntdum $ ret mrktret;
    format date evntdate yymmdd6.;
    before = date < evntdate;
    if evntdum = '1' then evntdum = 'NEG';
    if evntdum = '2' then evntdum = 'POS';
    * Delete problem firms that do not have clean data or are subject to other issues;
    IF firm in ('74586710','77938210','03741110','03522910','67459910') THEN DELETE;
    IF firm in ('42786610','03251110','92916010','19121610')
        or (firm = '90783410' and evntdate = mdy(7,15,97)) THEN DELETE;
run;
proc sort data=myh.returns out=temp nodupkey;
    by firm evntdate;
run;
proc print data=temp(obs=100);
    title 'unique events';
run;
proc contents data=temp; run;
* Sort and determine number of days with data before event day;
proc sort data=returns;
    by firm evntdate date;
run;
proc means data=returns noprint;
    by firm evntdate;
    output out=nreturns(drop=_type_ _freq_) sum(before)= bef_sum;
run;
* Compute event day counter and split data into estimation and event periods;
DATA estper evntper;
    merge returns(drop=before) nreturns;
    by firm evntdate;
    if first.evntdate then relday= - bef_sum - 1;
    relday + 1;
    if relday < -10 then output estper;
    if -1 <= relday <= 0 then output evntper;
run;
* Compute market model parameters in estimation period;
PROC REG DATA=estper OUTEST=mmparam ( keep=firm evntdate intercept mrktret
                      rename=(INTERCEPT=alpha mrktret=beta) ) NOPRINT;
    BY firm evntdate;
    MODEL ret = mrktret;
run;
proc print data=mmparam (obs=100);
    title 'market model parameters';
run;
* Compute abnormal returns in event period;
DATA ar;
    MERGE evntper mmparam;
    BY firm evntdate;
    AR  = RET - ALPHA - BETA * mrktret;
run;
* Compute cumulative abnormal returns;
PROC MEANS DATA=ar NOPRINT;
    BY firm evntdate;
    id evntdum;
    OUTPUT OUT = car SUM(ar)=CAR;
run;
proc print data=car(obs=100);
    title 'cumulative abnormal returns';
run;
* Calculating the abnormal returns of portfolios and test
  the statistical significance of the results;
PROC SORT DATA=car;
    BY evntdum;
run;
proc means data=car n mean t prt;
    title "Overall results";
    var car;
run;
proc means data=car n mean t prt;
    title "Results by direction of earnings surprise";
    var car;
    by evntdum;
run;
PROC TTEST data=car;
    title "Test of equal AR for positive and negative earnings surprises";
    VAR car;
    CLASS evntdum;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-3-5 19:41:25
Thanks a lot
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群