【Python计量】DID模型构建


此文章首发于公众号:Python for Finance
链接:https://mp.weixin.qq.com/s/0hSVVJWaM1ueHQClVpEKbA

DID仅适用于面板数据,DID仅适用于面板数据,DID仅适用于面板数据。DID的本质就是面板数据固定效应估计。

一、DID(Differences-in-Differences)模型

双重差分法,其主要被用于社会学中的政策效果评估。这种方法需要两个「差异」数据。一个是干预前后的「差异」,这个是自身实验前后的差异。另外一个是处理组与控制组的「差异」。DID利用这两个「差异」的差异来推算干预的效果。因此,顾名思义叫做双重差分法。

DID模型形式

y i t = α + β ( G i ∗ D t ) + γ G i + c D t + ε i t y_{it}=\alpha+\beta(G_i*D_t)+\gamma G_i+cD_t+\varepsilon_{it} yit=α+β(GiDt)+γGi+cDt+εit

其中, G i G_i Gi为分组虚拟变量(处理组=1,控制组=0), D t D_t Dt为分期虚拟变量(政策实施后=1,政策实施前=0),交互项 G i ∗ D t G_i*D_t GiDt表示处理组在政策实施后的效应,其系数即为双重差分模型重点考察的处理效应。

一个重要假定——共同趋势假定:在政策发生前,处理组与对照组的研究对象呈现出共同的变化趋势。

模型系数如下表所示:

干预前干预后差异
处理组 α + γ \alpha+\gamma α+γ α + β + γ + c \alpha+\beta+\gamma+c α+β+γ+c β + c \beta+c β+c
控制组 α \alpha α α + c \alpha+c α+c c c c

处理组实验前为 α + γ \alpha+\gamma α+γ,实验后为 α + β + γ + c \alpha+\beta+\gamma+c α+β+γ+c。控制组实验前为 α \alpha α,实验后为 α + c \alpha+c α+c。对于处理组实验前后差异为 β + c \beta+c β+c,对于控制组实验后为 c c c。两者之差 β \beta β即为DID结果,处理效应。

preview

加入个体固定效应 a i a_i ai、时间固定效应 π t \pi_t πt,以及其它控制变量 X i t X_{it} Xit的双重差分模型设定的一般形式:
y i t = α + β ( G i ∗ D t ) + β 1 X i t + a i + π t + ε i t y_{it}=\alpha+\beta(G_i*D_t)+\beta_1X_{it}+a_i+\pi_t+\varepsilon_{it} yit=α+β(GiDt)+β1Xit+ai+πt+εit

二、DID案例:垃圾焚化炉的区位对住房价格的影响

来源:伍德里奇《计量经济学导论》13.2利用混合横截面政策分析:垃圾焚烧厂的区位对住房价格的影响
r p r i c e = β 0 + δ 0 y 81 + β 1 n e a r i n c + δ 1 y 81 ∗ n e a r i n c + u rprice=\beta_0+\delta_0y81+\beta_1nearinc+\delta_1y81*nearinc+u rprice=β0+δ0y81+β1nearinc+δ1y81nearinc+u
参数:

rprice:真实住房价格

y81:时间虚拟变量,1981年取1,否则取0

nearinc:住房是否靠近焚化炉,靠近取1,否则取0

模型系数如下表所示:

之前(y81=0)之后(y81=1)之后-之前
处理组(nearinc=1) β 0 + β 1 \beta_0+\beta_1 β0+β1 β 0 + δ 0 + β 1 + δ 1 \beta_0+\delta_0+\beta_1+\delta_1 β0+δ0+β1+δ1 δ 0 + δ 1 \delta_0+\delta_1 δ0+δ1
控制组(nearinc=0) β 0 \beta_0 β0 β 0 + δ 0 \beta_0+\delta_0 β0+δ0 δ 0 \delta_0 δ0
处理组-控制组 β 1 \beta_1 β1 β 1 + δ 1 \beta_1+\delta_1 β1+δ1 δ 1 \delta_1 δ1

我们关注的系数是交互项 y 81 ∗ n e a r i n c y81*nearinc y81nearinc的系数 δ 1 \delta_1 δ1:度量了房价因新建焚化炉而下跌的幅度。

代码如下:

import wooldridge as woo
import pandas as pd
import statsmodels.formula.api as smf

kielmc = woo.dataWoo('kielmc')
import wooldridge as woo
import pandas as pd
import statsmodels.formula.api as smf

kielmc = woo.dataWoo('kielmc')

# DID模型
reg_did = smf.ols(formula='rprice ~ nearinc * C(year)', data=kielmc)
results_did = reg_did.fit()
print(results_did.summary())

# DiD模型:加入控制变量
reg_didC = smf.ols(formula='rprice ~ nearinc * C(year) + age +I(age**2)',data=kielmc)
results_didC = reg_didC.fit()
print(results_didC.summary())

三、DID案例:实证论文《我国推出融资融券交易促进了标的股票的定价效率吗?》

以下内容节选自:许红伟等,2012:我国推出融资融券交易促进了标的股票的定价效率吗?——基于双重差分模型的实证研究,管理世界,第5期。

Imbens和Wooldridge(2007)指出,在自然实验中,由于处理组(TreatmentGroup,指受到政策影响的样本组合)和控制组(ControlGroup,指未受到政策影响的样本组合)均来自受到某项具体政策影响与否的特定群体而非随机,DID模型可以较好地控制处理组和控制组之间的系统性差异,来研究处理组在某项政策实施前后所发生的变化。

本文研究采用的基本模型设定为:
y i t = β 0 + β 1 D t + β 2 D g + γ D t ∗ D g + ∑ X i t + ε i y_{it} =\beta_0+\beta_1D_t+\beta_2D_g+\gamma D_t*D_g+\sum X_{it}+\varepsilon_i yit=β0+β1Dt+β2Dg+γDtDg+Xit+εi
其中, y i t y_{it} yit为第i个股票在第t期的指标值; D t D_t Dt为时间虚拟变量,当融资融券推出后 D t = 1 D_t=1 Dt=1,反之推出前 D t = 0 D_t=0 Dt=0 D g D_g Dg为组间虚拟变量,当 D g = 1 D_g=1 Dg=1时为融资融券标的股票,即处理组, D g = 0 D_g=0 Dg=0为沪深300成分股中的非融资融券标的股票,即控制组; ∑ X i t \sum X_{it} Xit为一组相关的控制变量,包括是否含有H股的虚拟变量、流通市值、换手率、市盈率、市净率和沪深300行业虚拟变量等; ε i ε_i εi为随机干扰项。

四、DID案例:实证论文《我国推出融资融券交易促进了标的股票的定价效率吗?》

以下内容节选自:肖浩等,2014:融资融券对股价特质性波动的影响机理研究:基于双重差分模型的检验,管理世界,第8期。

我们使用当期被允许进行融资融券交易的股票作为实验组,将扩容之后新添的标的股票作为控制组。作为控制组的样本后来也被选作融资融券标的证券,说明不是政策之外的因素导致其不能作为标的证券。基本的双重差分模型如下:
P I E i t = α + β 1 T r e a t e d i + β 2 P o s t i + β 3 T r e a t e d i ∗ P o s t i + T i m e f i x e d − e f f e c t + F i r m f i x e d − e f f e c t + ε i t PIE_{it}=\alpha+\beta_1Treated_i+\beta_2Post_i+\beta_3Treated_i*Post_i+Time_{fixed-effect}+Firm_{fixed-effect}+\varepsilon_{it} PIEit=α+β1Treatedi+β2Posti+β3TreatediPosti+Timefixedeffect+Firmfixedeffect+εit
其中, P I E i t PIE_{it} PIEit为公司i在t期的股价特质性波动; T r e a t e d i Treated_i Treatedi为实验组虚拟变量,实验组,取值为1,其他为0; P o s t i Post_i Posti为实验期识别变量,处于实验期,取值为1,否则为0。β3刻画了融资融券交易对股价特质性波动的影响,是本文主要关注的对象。

  • 6
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值