Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:曹昊煜(兰州大学) 邮箱:caohy19@lzu.edu.cn
编者按:本文内容主要翻译自下文,特此致谢!
deHaan, E. 2021. Using and Interpreting Fixed Effects Models. Working Paper. -PDF- -SUMHDFE-
固定效应是面板数据模型中的一般处理方法,一般用于高频分组 (企业) 或多分组数据 (企业和时间),本文主要介绍固定效应模型如何消除遗漏变量偏误以及对标准误的影响,最后说明一些固定效应在应用中的陷阱。除此之外,还涉及变异较小的群组对系数的影响和消除这一负面作用的方式。通过以上内容可以更好地设定和解释固定效应模型。
对于一般的双向固定效应模型,估计方法仍然是普通最小二乘法,基本形式是:
其中
固定效应模型可以通过 LSDV 方法或组内去均值的方式实现,因此也经常表述为 "将分析的变异限制在企业内部",而经过上述变换,不随时间改变的因素就可以被消去。对于标准误而言,使用固定效应通常会牺牲估计效率,并且当遗漏的变量对
在一些情形下,
因此,要仔细考察有变异的分组和无变异的分组之间是否存在系统性差异,如果大量企业都不存在组内的变异,则需要仔细考察 FE 的设定。
即使多数分组中都存在组内变异,但相对于混同数据,FE 的变异更小。此时会导致一些问题:
固定效应模型可以控制特定的遗漏变量。考虑一个简单的 OLS 模型:
被解释变量和解释变量都随着个体和时间变动。
如果
其中
考虑如下的公司非平衡面板数据,被解释变量
+----------------------------+
| Firm Year Y X Z |
|----------------------------|
1. | 1 1 1 1 .1 |
2. | 1 2 2 1 .1 |
3. | 2 1 8 1 .3 |
4. | 2 2 13 2 .3 |
5. | 3 1 55 10 .5 |
6. | 3 2 65 12 .5 |
7. | 4 1 71 13 .6 |
+----------------------------+
所谓的个体固定效应模型本质上是通过加入一系列虚拟变量,每个虚拟变量唯一对应一个样本中的个体。假设
其数据形式为:
--------------------------------------------------------
Firm Year Y X Z Firm1 Firm2 Firm3 Firm4
--------------------------------------------------------
1 1 1 1 .1 1 0 0 0
1 2 2 1 .1 1 0 0 0
2 1 8 1 .3 0 1 0 0
2 2 13 2 .3 0 1 0 0
3 1 55 10 .5 0 0 1 0
3 2 65 12 .5 0 0 1 0
4 1 71 13 .6 0 0 0 1
--------------------------------------------------------
由于 OLS 要求每个变量不能作为其他变量的线性组合,而
因此,是否在模型中直接加入
. reg Y X Z Firm1 Firm2 Firm3 Firm4
note: Z omitted because of collinearity
note: Firm4 omitted because of collinearity
Source | SS df MS Number of obs = 7
---------+---------------------------------- F(4, 2) = 5924.93
Model | 5924.92857 4 1481.23214 Prob > F = 0.0002
Residual | .5 2 .25 R-squared = 0.9999
---------+---------------------------------- Adj R-squared = 0.9997
Total | 5925.42857 6 987.571429 Root MSE = .5
--------------------------------------------------------------------------
Y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+----------------------------------------------------------------
X | 5 .3162278 15.81 0.004 3.639382 6.360618
Z | 0 (omitted)
Firm1 | -9.5 3.843826 -2.47 0.132 -26.03865 7.038649
Firm2 | -3 3.687818 -0.81 0.501 -18.8674 12.8674
Firm3 | -1 .8803408 -1.14 0.374 -4.787801 2.787801
Firm4 | 0 (omitted)
_cons | 6 4.141256 1.45 0.284 -11.81839 23.81839
--------------------------------------------------------------------------
事实上,FE 并非仅仅剔除了 Firm4
同样被 Stata 自动删除,其原因在于虚拟变量陷阱,因此,我们实际上只需要纳入
在实践中,如果个体有很多,那么使用虚拟变量的方法会生成很多的解释变量,因此一般选择另一种便于计算的方法。不可观测的变量
另一种方式是通过转换,使得数据表示相对于组内其他观测的偏离程度,简单地讲就是去除组内均值(de-mean)。
. foreach v of varlist Y X Z{
2. bys Firm: egen `v'_m = mean(`v')
3. gen `v'_dm = `v' - `v'_m
4. drop `v'_m
5. }
+-------------------------------------------------+
| Firm Year Y X Z Y_dm X_dm Z_dm |
|-------------------------------------------------|
1. | 1 1 1 1 .1 -.5 0 0 |
2. | 1 2 2 1 .1 .5 0 0 |
3. | 2 1 8 1 .3 -2.5 -.5 0 |
4. | 2 2 13 2 .3 2.5 .5 0 |
5. | 3 1 55 10 .5 -5 -1 0 |
6. | 3 2 65 12 .5 5 1 0 |
7. | 4 1 71 13 .6 0 0 0 |
+-------------------------------------------------+
. reg Y_dm X_dm Z_dm
note: Z_dm omitted because of collinearity
Source | SS df MS Number of obs = 7
---------+---------------------------- F(1, 5) = 625.00
Model | 62.5 1 62.5 Prob > F = 0.0000
Residual | .5 5 .1 R-squared = 0.9921
---------+---------------------------- Adj R-squared = 0.9905
Total | 63 6 10.5 Root MSE = .31623
--------------------------------------------------------------------
Y_dm | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+----------------------------------------------------------
X_dm | 5 .2 25.00 0.000 4.485884 5.514116
Z_dm | 0 (omitted)
_cons | 0 .1195229 0.00 1.000 -.3072433 .3072433
--------------------------------------------------------------------
使用 OLS 估计去均值后的方程:
可见即使我们观测到了
在现有的研究中,加入多个组别的固定效应是标准的做法,例如同时加入个体和时间效应。使用多组固定效应的原因与单一组别的固定效应相同,都是为了剔除相关的遗漏变量,例如:
如果
在加入多组固定效应时,需要注意的是不能存在某一分组是另一分组的子集。例如使用日度数据时,由于日期是年份的子集,因此不能同时加入年度效应和日度效应。
除了单独加入不同组别的固定效应外,还可以通过细分或组合不同分组构造更为合理的固定效应。例如如果每个个体每一年拥有多个观测值,那么可以加入 "个体-时间" 固定效应,该方法为每一类 "个体-时间" 分组生成一个虚拟变量。例如,在一个 10 个个体,2 年的数据中,可以生成 20 个代表 "个体-时间" 效应的变量。
使用面板模型构建的 DID 模型基本形式为:
其中
该模型称为 广义双重差分 模型,当存在多个处理组和处理时间时,广义双重差分模型可以进行统一地处理。
有时候我们想要研究
但如果
实践中,如果个体是高频的,那么可能放大标准误。此时可以退而求其次选择低频的 FE,例如企业数据中,可以控制
当存在相关的遗漏变量
参数的标准误形式为:
其中:
考虑使用 FE 替换不可观测的
因此,FE 估计中标准误的分子和分母同时下降,其总体会出现显著的提升。由此产生了一个难题,如果确信方程中存在不可观测的
如果遗漏
在第一种情形中,分子和分母的第一项不会受到 FE 的影响,而
但是这两类诊断方式反过来并不适用,即使 FE 对
在第二种情形中,加入 FE 同样会导致很高的
在第三种情形中,FE 能够降低发生第二类错误的风险。如果
对于多维固定效应,当加入控制变量或多个分组的固定效应时,会加剧标准误的负面影响。
在实践中,通常会施加回归残差相互独立的假设,FE 并不必然校正残差相关时的标准误,反而可能使本身独立的数据出现相关性。当固定效应分类很多时,去除组内均值可能导致独立数据出现相关性。因此,在固定效应模型中使用聚类稳健标准误非常必要,但需要注意的是 FE 必须嵌套在聚类分组中,例如企业层面嵌套在行业层面内。
在会计和金融领域,
在本文的范例数据中,Firm4 称为单点数据(singleton),当我们进行去均值计算时,单点数据的所有变量均为 0,因此对参数估计没有任何作用。
--------------------------------------------------------
Firm Year Y X Z Firm1 Firm2 Firm3 Firm4
--------------------------------------------------------
1 1 1 1 .1 1 0 0 0
1 2 2 1 .1 1 0 0 0
2 1 8 1 .3 0 1 0 0
2 2 13 2 .3 0 1 0 0
3 1 55 10 .5 0 0 1 0
3 2 65 12 .5 0 0 1 0
4 1 71 13 .6 0 0 0 1
--------------------------------------------------------
单点数据会导致标准误发生偏误,因此删去单点数据是必要的。如果数据中存在大量的单点数据,那么说明现有的 FE 对于数据而言过于严格,此时需要考虑是否要使用当前的 FE。例如,如果企业数据中存在大量的单点数据,可以考虑使用行业固定效应。
更为复杂的情形是数据本身具有多期观测,但是组内确实不存在变异,例如范例数据中的 Firm1,此时这部分样本对
从计算的角度来讲,没有变异的样本对
如果无组内变异的个体在控制变量或其他固定效应的维度中存在变异,那么可能会通过
如果
如果
由于不存在组内变异的样本对参数估计不起作用,因此将所有样本混合在一起得到的参数估计为 5,我们会说对所有企业而言平均处理效应为 5。但实际上这种解释存在问题,因为真实的平均处理效应是 5 和 0 的均值 2.5。
当控制变量的效应存在差异而
仅使用有组内变异的样本能够获得一致估计,但如果将所有样本混合在一起,则控制变量的估计会出现偏误,得到 5 到 20 之间的估计结果,此时
下面使用模拟数据来说明这一点,首先生成一份 10 个个体的 10 年数据,在后十个个体中,将
clear all
set obs 100
set seed 101010
egen id = seq(), from(1) to(10) block(10)
bys id: gen year = 2000 + _n
xtset id year
tempvar X1 X2 X3 X4
gen `X1' = rnormal(50,5) in 1/50
gen `X3' = rnormal(50,5)
bys id: egen `X4' = mean(`X3')
gen `X2' = `X4' if `X1' == .
gen X = `X1' in 1/50
replace X = `X2' if X == .
gen Z = rnormal(60,5)
gen e = rnormal(0,1)
tab id, gen(Firm)
local fe "0.1*Firm1+0.2*Firm2+0.3*Firm3+0.4*Firm4+0.5*Firm5+0.6*Firm6+0.7*Firm7+0.8*Firm8+0.9*Firm9+0.2*Firm10"
gen Y = 5*X + 5*Z + `fe' + e
gen Y1 = 5*X + 5*Z + `fe' + e in 1/50
replace Y1 = 5*Z + `fe' + e if Y1 == .
gen Y2 = 5*X + 5*Z + `fe' + e in 1/50
replace Y2 = 5*X + 20*Z + `fe' + e if Y2 == .
reghdfe Y X Z,absorb(id year)
est store m1
reghdfe Y1 X Z,absorb(id year)
est store m2
reghdfe Y2 X Z,absorb(id year)
est store m3
local model "m1 m2 m3"
esttab `model' `out',replace nogap compress star(* 0.1 ** 0.05 *** 0.01) ///
s(N F r2) b(%6.3f) t(%6.2f) mtitle()
-------------------------------------------------
(1) (2) (3)
Y Y1 Y2
-------------------------------------------------
X 5.026*** 5.026*** 6.719***
(197.60) (197.60) (5.85)
Z 5.027*** 5.027*** 12.557***
(257.76) (257.76) (14.26)
_cons -2.415 -127.382*** -85.461
(-1.30) (-68.57) (-1.02)
-------------------------------------------------
N 100.000 100.000 100.000
F 4.6e+04 4.6e+04 107.882
r2 0.999 1.000 0.994
-------------------------------------------------
根据模拟结果,当两类企业的数据生成过程相同时,得到的估计是无偏的。而当
我们通常认为在低频的固定效应中无组内变异的个体很少,但实际上在类似年份固定效应的低频分组中,无组内变异的样本同样很多。在 Dodd-Frank 的一项研究中,使用一份 2005-2014 的季度数据,生成一个虚拟变量,当时间在 2010 年 7 月 1 日之后取值为1。方程为:
如果使用了年份固定效应,那么除了 2010 年,其他年份的样本均不存在组内变异,这意味着低频的 FE 同样可能导致大范围的无组内变异情形。大约 90% 的样本通过控制变量和
DID 是一个使用无组内变异个体来获得无偏估计的特例。考虑一个基本的广义 DID 模型:
当限定
如果我们只对存在组内变异的样本进行回归,
检查有多少企业不存在组内变异是必要的,其基本方式是计算每个个体的标准差,看看有多少个体的标准差为 0。当存在多维固定效应时,需要对每一类分组进行检查。如果存在很多无组内变异的个体,那么需要谨慎地考虑企业之间是否是相似的。
如果
总而言之,如果我们认为具有组内变异和不具有组内变异的个体之间确实存在差异,一个选择是挑选一些相似的个体进行分析,例如进行匹配。传统的方式是删去这些组内无变异的样本,但可能导致检验势下降或参数无法估计(例如 DID 模型)。无论使用哪种方式,一旦存在大量的无组内变异情形,就需要仔细对比是否包含这些样本的结果。
即使多数个体都存在组内变异,但组内变异总是小于全部样本的变异。因此检查有多少组内变异用于估计,并对比组内和总体变异是很重要的。计算方式是使用
回归后计算残差,其标准差即为组内变异。使用残差的标准差除以全部样本的标准差,即可得到组内变异的份额。在进行 FE 估计之前,详细地描述有关 FE 的信息非常必要。
当使用 FE 剔除了大部分
另一个问题是较小的组内变异可能放大度量误差的后果。如果实际的
第三个问题是少部分个体具有远高于其他个体的组内变异,这些个体对参数的影响也会非常大。换句话说,这些样本可能是离群值,此时
在解释经济含义时,使用一单位变化来解释参数的含义可能会涉及单位问题,因此有时候使用一标准差或两个分位点处的变化来计算经济含义。因此,对于
固定效应是金融和会计中研究中的重要方法,能够在很大程度上缓解特定遗漏变量带来的内生性问题。原文作者在文中提供了一份使用固定效应模型的注意事项,结合 sumhdfe
命令能够轻松搞定固定效应的注意事项。
sumhdfe
命令,具体可以参考 Stata:固定效应分析新命令-sumhdfe
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh