事件研究法SAS程序

更新时间:2023-12-19 22:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

libname my 'c:\\teaching\\renda';

options nodate nocenter nonumber ps=max ls=72 fullstimer; title ' ';

/* Dataset temp1 has each event's firm id and date */ /* Dataset temp2 has firm level stock returns */ /* Dataset temp3 has market indices returns */

proc sort nodupkey data=my.temp1 ;by Stkcd Trddt;

proc sort data=my.temp2;by Stkcd Trddt;

data temp3;set my.temp3;if Markettype=1;

proc sort data=temp3;by Trddt;run;

/* ------------------------------------------------- */ /* Merge the firm return data with event data */ /* ------------------------------------------------- */

data temp;

merge my.temp1 my.temp2;by Stkcd Trddt;

proc sort data=temp;by Trddt;

/* ------------------------------------------------- */ /* Merge with market indicies file */ /* ------------------------------------------------- */

data temp; merge temp temp3; by Trddt; if stkcd=. then delete; run;

proc sort data=temp; by Stkcd Trddt;

/* -------------------------------------------------- */

/* create variable time that is zero the event day, negative before */ /* before the event day (for example ten days before the event day */ /* time = -10), and positive after the event day. */ /* ---------------------------------------------------------- */

data temp; set temp; by Stkcd; if first.Stkcd then count=0; count+1;

data event; set temp;

if eventdate=1; ecount=count; keep Stkcd ecount capchgdt;

data event; set event; by Stkcd; if first.Stkcd then eventnumber=0; eventnumber+1;

data event;set event; if eventnumber=2;

proc sort data=event; by Stkcd;

proc sort data=temp; by Stkcd;

data temp; merge temp event; by Stkcd;

proc sort data=temp; by Stkcd Trddt;

/* ---------------------------------------------- ------ */

/* Create variable fret and mret--firm return and market return */ /* -------------------------------------------------------------- */

data final; set temp; fret=Dretwd; mret=Dretwdos;

run;

proc sort; by Stkcd;

/* ----------------------------------------------------------------- */ /* Run regressions and calculate abnormal returns in the event window */ /* Estimatin window is -120 to -10, event window is -5 to 5 */ /* ------------------------------------------------------------- */

proc reg noprint data=final outest=mfinal; model fret=mret;

where count-ecount >= -120 and count-ecount < -10; by Stkcd;

data mfinal; set mfinal; alpha=intercept; beta =mret;

keep Stkcd alpha beta;

data final; merge final mfinal; by Stkcd;

if count-ecount >= -5 and count-ecount <= 5; aret = fret - alpha - beta*mret;

proc summary data=final; var aret; by Stkcd;

output out=sfinal sum=car stderr=stdcar;

/* ----------------------------------------------------------- */ /* This section calculates */

/* mean cumulative average (sum over firms), and calculates a t-test */ /* Null Hypothesis is mean cumulative average abnormal return= zero */ /* --------------------------------------------------------------- */

proc summary data=sfinal; var car;

output out=scars mean=meancar stderr =stdcar;

data scars; set scars; J1=meancar/stdcar;

keep meancar stdcar J1;

/* ------------------------------------------------------------- */ /* Print Results */

/* -------------------------------------------------------------- */

proc print;

title \; run;

本文来源:https://www.bwwdw.com/article/ldo5.html

Top