事件分析是分析市场对于某事件态度的重要又简单的方法,有一套标准的套路去操作。主要分为以下几个步骤:
- 确定事件时点
- 确定估计窗口和事件窗口
- 使用market/CAPM/FF3/FF5/模型估计事件窗口期的AR
- 计算CAAR,进行检验,图像展示后续走势
- 计算CAR,进行对比或与相关变量进行回归分析
- 事件时点可分为两类,一类是不变的时点,如法律的颁布,对所有公司都是同一天;一类是随样本变化的时点,如高管离职,时间不一且可能发生多次。第一类的情况较为简单,第二类要注意多次发生的事件之间时间区间重叠的影响,有的人只讨论第一次事件发生时的影响。
- 估计窗口一般设置为200/150/120天,视情况而定,最后一个交易日一般设置在t-30;常见的事件窗口有[-1,1]、[-3,3]、[-5,5]、[0,30]等等,考虑事件发生后短期、中期、长期的影响。估计窗口和事件窗口之间要有间隔。
- market模型即市场调整模型,ARit=Rit-Rmt
CAPM即ARit=Rit-(ai+βiRmt),ai和βi要用估计窗口数据进行线性回归估计
FF3和FF5要先根据估计窗口确定因子,然后对估计事件窗口的收益率
Rm,Rf,3因子,5因子都可以从锐思数据库或央财发布的数据获取,也可以自己尝试估计,可以参考FF的论文和CRSP上的code - AARt=1/n * ARit, CAAR=∑AARt. n表示组合中样本公司个数,可以是所有样本,看市场整体的平均反应。算完后进行t test, 绘制事后CAAR走势图。
- CARit=∑ARit。可结合其他变量进行回归。
*计算贝塔和因子载荷
drop if trddt<date("2019-04-22","YMD")
drop if trddt>date("2019-11-29","YMD") //[-170,-21] 估计窗口
bys stkcd: gen fdays=_N
drop if fdays<150 //去掉估计区间不足150天的
drop fdays
bys stkcd : asreg dretwd mkt//CAPM
rename (_b_mkt _b_cons) (beta alpha)
drop _Nobs _R2 _adjR2
gen ri_rf=dretwd-rf
bys stkcd : asreg ri_rf mkt_rf smb hml//FF3
drop _Nobs _R2 _adjR2
rename (_b_mkt_rf _b_smb _b_hml _b_cons) (f3mk f3smb f3hml f3alpha)
bys stkcd : asreg ri_rf mkt_rf smb hml rmw cma//FF5
drop _Nobs _R2 _adjR2
rename (_b_mkt_rf _b_smb _b_hml _b_rmw _b_cma _b_cons) (f5mk f5smb f5hml f5rmw f5cma f5alpha)
duplicates drop stkcd,force
drop trddt dretwd mkt mkt_rf smb hml umd rmw cma rf smb_equal hml_equal umd_equal rmw_equal cma_equal indstry ri_rf
*计算AR
merge 1:m stkcd using "......dta"//还是之前的数据
keep if _m==3
drop _m
drop if trddt<date("2019-12-16","YMD")
drop if trddt>date("2020-01-20","YMD") //[-10,15] 最大事件窗口
gen AR1=dretwd-mkt
label var AR1 "市场调整模型"
gen AR2=dretwd-alpha-beta*mkt
label var AR2 "CAPM市场模型"
gen AR3=dretwd-rf-(f3mk*mkt_rf+f3smb*smb+f3hml*hml+f3alpha)
label var AR3 "三因子模型"
gen AR4=dretwd-rf-(f5mk*mkt_rf+f5smb*smb+f5hml*hml+f5rmw*rmw+f5cma*cma+f5alpha)
label var AR4 "五因子模型"