事件研究法实操教程:从事件窗到 CAR

事件研究法实操教程:从事件窗到 CAR

event-study-how-to.jpg


1. 事件研究法是什么 & 适用场景

目的:衡量一类“事件”(如并购公告、分红、回购、政策冲击、ESG争议、突发监管)对资产价格的短期信息含量。
核心思路:用“实际收益 − 基准收益”得到异常收益(AR),在事件窗累加得到CAR,再进行统计检验。



2. 符号与核心定义

  • Ri,t:标的iii 在ttt 日的实际收益

  • R^i,t\hat{R}_{i,t}R^i,t:基准/期望收益(由模型估计)

  • AR(异常收益):ARi,t=Ri,tR^i,tAR_{i,t}=R_{i,t}-\hat{R}_{i,t}ARi,t=Ri,t−R^i,t

  • CAR(累积异常收益):CARi,[τ1,τ2]=t=τ1τ2ARi,t\displaystyle CAR_{i,[\tau_1,\tau_2]}=\sum_{t=\tau_1}^{\tau_2} AR_{i,t}CARi,[τ1,τ2]=t=τ1∑τ2ARi,t

  • AAR/CAAR:横向平均(对所有样本NNN),AAR 为平均 AR,CAAR 为平均 CAR。



3. 设计步骤一览(SOP)

  • 定义事件与样本:公告日t=0t=0t=0,处理同日多事件/重复事件的去重规则。

  • 设定窗口:

    • 估计窗(模型拟合用):如[120,20][-120,-20][−120,−20]

    • 事件窗(效应检验):如[3,+3][-3,+3][−3,+3]、[1,+1][-1,+1][−1,+1]、[0,+2][0,+2][0,+2]

  • 选择基准模型(三选一或多模型稳健性):

    • 均值调整:R^i,t=Rˉi\hat{R}_{i,t}=\bar{R}_{i}R^i,t=Rˉi(估计窗均值)

    • 市场模型:Ri,t=αi+βiRm,t+εi,tR_{i,t}=\alpha_i+\beta_i R_{m,t}+\varepsilon_{i,t}Ri,t=αi+βiRm,t+εi,t

    • 因子模型(FF3/5、Momentum、Quality 等)

  • 估计R^i,t\hat{R}_{i,t}R^i,t → 计算 AR、CAR

  • 统计检验:t 检验、Patell、BMP、广义符号检验、跨截面回归等

  • 稳健性:改事件窗、换模型、去并发事件、行业/规模分组

  • 报告:表格与图形(AAR/CAAR 走势、直方图、桶图)



4. 窗口如何选?(实战建议)

估计窗:足够长以稳健估计 (\alpha,\beta),又要避开信息泄露期(常见 ([-120,-20]) 或 ([-250,-30]))。

事件窗:根据市场反应速度与公告时点(盘中/收盘后)。常用 ([-1,+1])、([-3,+3])、([0,+2])。

信息泄露与滞后:若行业常有提前泄露或后续澄清,适当延长到 ([-5,+5]) 或 ([-10,+10])。

多事件叠加:若样本有高频公告,建议去重/排除重叠,或采用面板回归/多事件控制。



5. 基准收益模型(从简到严)

5.1 均值调整(Mean-Adjusted)

  • 优点:简单、对小样本友好

  • 缺点:忽略系统性风险与市场波动

5.2 市场模型(Market Model)

  • 用估计窗 OLS 得 α^i,β^i\hat{\alpha}_i,\hat{\beta}_i,再预测事件窗期望收益

  • 优点:控制市场走势;最常用

  • 注意:选择合适的市场指数(本地/行业加权)

5.3 因子模型(FF3/FF5/动量)

  • 优点:控制更多风险维度

  • 缺点:数据需求高;短估计窗稳定性下降

实务建议:主结果用市场模型,附录做因子模型稳健性



6. 显著性检验与标准误

6.1 简单 t 检验(对 AAR/CAAR)

  • 单样本 t:ARˉt/(s(ARt)/N)\bar{AR}_t/\left(s(AR_t)/\sqrt{N}\right);CAR 同理

  • 假设 AR 独立同分布,但现实有异方差/相关性问题


6.2 Patell Z-test(标准化残差)

先在估计窗标准化残差,再事件窗聚合;控制个股波动差异


6.3 BMP(Boehmer-Musumeci-Poulsen)检验

在 Patell 基础上考虑事件窗波动上升(公告期方差增大)


6.4 广义符号检验 / 秩检验

非参数法,不依赖正态,对极端值鲁棒


6.5 跨截面回归(解释 CAR 的差异)

  • 用公司特征、治理、规模、ESG 等解释 CAR

  • 标准误可按行业或事件日期聚类



7. 稳健性与常见坑

稳健性

换事件窗:([-1,+1])、([-2,+2])、([-3,+3])

换基准模型:均值→市场→因子

去并发事件:排除窗口内二次公告;或在回归中加控制变量/虚拟变量

行业/规模/流动性分组;异常值 winsorize


常见坑

把事件窗数据用于估计窗 → 严重上偏

忽略停牌/涨跌停 → 实际成交收益与理论不同

thin trading(小市值/冷门股) → 用对数收益并测试流动性敏感性

幸存者偏差(仅保留仍上市个股) → 预先定义样本框架



8. 报告与可复制表格结构

表 1 事件样本描述:样本量、行业分布、公告时间(盘前/盘后)
表 2 基准模型估计:α^,β^\hat{\alpha},\hat{\beta}α^,β^、R2R^2R2(估计窗)
表 3 AAR/CAAR 与检验统计:不同窗口、不同检验(t/Patell/BMP/符号)
表 4 异质性与跨截面回归:以公司特征/事件特征解释 CAR
图 1 CAAR 随时间演化:[10,+10][-10,+10][−10,+10] 累积曲线
附录:去并发事件规则、数据清洗与对齐、极端值处理


9. 代码上手(教学用最简示例)

9.1 Python(pandas + statsmodels,市场模型)


import pandas as pd

import statsmodels.api as sm


# prices_i: 个股收盘价,mkt: 市场指数(同频),dates 对齐

df = pd.read_csv("panel_prices.csv", parse_dates=["date"])

df = df.sort_values(["tic","date"])

df["ret"] = df.groupby("tic")["price"].pct_change()

df["mkt_ret"] = df.groupby("mkt")["mkt_px"].pct_change()


# 定义窗口

event_day = pd.to_datetime("2024-05-15")

est = (df["date"]>=event_day-pd.Timedelta(days=120)) & (df["date"]<=event_day-pd.Timedelta(days=20))

evt = (df["date"]>=event_day-pd.Timedelta(days=1)) & (df["date"]<=event_day+pd.Timedelta(days=1))


# 单只股票示例

g = df[df["tic"]=="AAPL"]

X = sm.add_constant(g.loc[est, "mkt_ret"].dropna())

y = g.loc[est, "ret"].dropna()

beta = sm.OLS(y, X).fit()

# 预测事件窗期望收益

pred = beta.predict(sm.add_constant(g.loc[evt, "mkt_ret"]))

ar = g.loc[evt, "ret"].iloc[:len(pred)].values - pred.values

car = ar.sum()

print("CAR[-1,+1] =", car)

aff6a860-3004-4b70-bfa3-9dbc5082a0f6.png


9.2 Stata(市场模型 + CAR)


* 数据:tic date ret mkt_ret

tsset tic date, daily

preserve

keep if inrange(date, td(15may2024)-120, td(15may2024)-20)

by tic: reg ret mkt_ret

est store est1

restore


gen window = .

replace window = -1 if inrange(date, td(15may2024)-1, td(15may2024)-1)

replace window = 0  if date==td(15may2024)

replace window = 1  if inrange(date, td(15may2024)+1, td(15may2024)+1)


* 预测期望收益

statsby _b _se, by(tic): reg ret mkt_ret if inrange(date, td(15may2024)-120, td(15may2024)-20)

tempfile coef

save `coef'


merge m:1 tic using `coef'

gen pred = _b_cons + _b_mkt_ret*mkt_ret

gen ar = ret - pred if inrange(window,-1,1)

collapse (sum) CAR=ar, by(tic)

image.png

注:课程作业建议把代码、参数、窗口数据版本信息写入附录,确保可复现。



10. FAQ(面向课程期末与论文)

事件日选盘前还是公告日? 以正式公告披露时点为准;盘后公告通常在次日反应。结果不显著怎么办? 尝试缩短/拉长事件窗、采用 Patell/BMP、换市场/因子模型,或做行业/规模分层。并发事件影响大? 设规则剔除,或在面板回归中加入并发事件虚拟变量。


 

金融学 Finance 论文方法与论文代写服务


选题—识别—数据—回归—稳健性—写作—引用 全流程梳理,产出:1 页任务单 + 方法复现路径 + 图表与排版规范清单

提交后,我们将在 24 小时内回邮(包含题目、数据源、软件栈、DDL 等)。





我们的服务

100%原创无抄袭

严格按照学校要求完成,从审阅资料到论文代写交稿严格把关,100%原创论文,TurnitinUK查重检测,E-convier向您做无抄袭担保!

100%准时交稿(7X24小时客服)

论文导师24小时待命,严格审核订单时间,100%确保在约定时限前交付,专业的客服体系,保证随叫随到,保证及时修改

100%本地导师

E-convier超过1800名英语母语professional writers,其中95%是英国本地导师,并具有Maste或者PhD以上学位

SSL个人信息加密系统

E-convier为了保护您的个人信息和论文安全,所有资料全部通过银行级SSL256数据加密,永远做到让您高枕无忧

E-convier论文代写,2008年创办,10年知名品牌!

论文定制只需三步——随时随地管理您的订单!