事件研究法

data stk;
set stk;
rename _____Stkcd=stkcd ___Date=date _______Clpr=clpr;
run;
data stk;
set stk;
label stkcd='股票代码' date='日期' clpr='收盘价';
run;

proc sort data=stk;
by stkcd;
run;
data stk;
set stk;
fid=first.stkcd;
by stkcd;
run;
data stk;
set stk;
rstk=log(clpr)-lag(log(clpr));
if fid^=1;
drop fid clpr;
run;


proc sort data=idx;
by date;
run;
proc sort data=stk;
by date;
run;

data new;
merge stk idx;
by date;
if rstk^=.;
run;

proc sort data=new;
by stkcd date;
run;

data new;
set new;
evtdt='15sep2008'd;
format evtdt date9.;
run;

data new;
set new;
evtday=0;
if date<=evtdt then evtday=1;
run;

proc means data=new noprint;
var evtday;
by stkcd;
output out=out1 sum(evtday)=sevt;
run;

data new1;
merge out1 new;
by stkcd;
run;

proc sort data=new1;
by stkcd;
run;
data new1;
set new1;
fid=first.stkcd;
by stkcd;
run;


data new1;
set new1;
retain incr 0;
if fid=1 then incr=0;
incr+1;
run;

data new1;
set new1;
ndate=incr-1-sevt;
run;
data new1;
set new1;
if sevt^=0;
run;

data fdata wdata;
set new1;
if ndate>=0 &ndate<=4 then output wdata;
if ndate >=-100 & ndate<-5 then output fdata;
keep stkcd date ndate rstk idxdret;
run;

proc sort data=fdata;
by stkcd date;
run;

proc reg data=fdata outest=regout noprint;
model rstk=idxdret;
by stkcd;
run;

data regout;
set regout;
rename intercept=a idxdret=b;
keep stkcd intercept idxdret;
run;

proc sort data=regout;
by stkcd;
run;

data wevtdata;
merge wdata regout;
by stkcd;
run;

data nwdata;
set wevtdata;
abret=rstk-a-b*idxdret;
keep stkcd ndate abret;
run;
proc sort data=nwdata;
by ndate;
run;

proc univariate data=nwdata;
var abret;
by ndate;
run;

相关文档
最新文档