Stata:固定效应分析新命令-sumhdfe

发布时间:2021-10-04 阅读 13650

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:秦利宾 (厦门大学)
邮箱qlb150@163.com

编者按:本文主要摘译自下文,特此致谢!
Source:deHaan, E. 2021. Using and Interpreting Fixed Effects Models. Working Paper. -PDF- -SUMHDFE-


目录


1. 引言

在金融经济学研究中,固定效应的应用非常普遍,但是仍有许多研究者对固定效应的理解有限。deHaan (2021) 主要解释了以下问题:

  • 固定效应如何消除遗漏变量偏误和影响标准误差;
  • 固定效应回归中常见的陷阱。

特别地,deHaan (2021) 主要关注于那些 X 具有非常小或没有变动的固定效应组 (例如,公司) 对系数估计和解释的混淆,并提供一些关于如何识别和避免上述混淆的指导。需要强调的是,固定效应在提高模型识别精度的同时,也可能引入一些重要的问题。对于上述问题的理解,可以帮助研究者更合理地设计固定效应模型,和进行随后的结果解释。

关于 deHaan (2021) 的具体内容,本文不做详细介绍,有兴趣的读者可以自行阅读原文。本文主要介绍 deHaan (2021) 附录 A 中关于 Good Practices when Using Fixed Effects 的内容,以及 Sergio Correia (reghdfe 命令的作者)、Ed deHaan、Ties de Kok 等三位作者为此编写的 Stata 包 SUMHDFE。

2. 固定效应使用建议

以下是使用固定效应时的一些注意事项:

  1. 注意固定效应将分析限定在组内 X 的变动上;
  2. 认真思考你是否需要固定效应:
    • 如果不可观测变量 Z 被认为与 X 和 Y 都相关,并且在组内是常数,则 FE 是需要的。控制 FE 可以降低犯第一类错误的概率;
    • 如果不可观测变量 Z 与 Y 不相关,则 FE 是不需要的。控制 FE 会增加犯第二类错误的概率,特别是当 Z 与 X 相关时;
    • 如果不可观测变量 Z 仅与 Y 相关,则 FE 是需要的。控制 FE 可以提高模型拟合度,并降低犯第二类错误的概率。
  3. 报告组内只有单个观测值 (singletons) 的数量:
    • 数据中存在大量的单个观测值 (singletons) 表明 FE 结构过于狭窄 (narrow);
    • 考虑在样本构造过程中,删掉组内只有单个观测值的样本;
    • 每次运行回归时,都要删除组内只有单个观测值的样本。
  4. 报告组内 X 没有变化的观测值数量:
    • 大量的无组内变化的观测值,引起了大家对组内 X 有变化与无变化是否相似的思考;
    • 评估组内 X 具有和不具有变化的样本相似度。如果不具有相似性,则需要考虑通过匹配或重新设定样本来提高相似度;
    • 如果可能的话,评估有和没有组内无变化观测值的回归结果。
  5. 对于连续变量,报告 X 和其他关键变量的混合标准差 (pooled standard deviations)、组内标准差、以及由 FE 引起标准差的减少程度:
    • 如果只保留了较少的标准差,则需要重新考虑 FE 结构是否合适。
  6. 当使用 X 标准差来解释回归系数的经济影响大小时,请使用组内标准差。

研究者在使用固定效应模型时,应当考虑以下信息:

其中,(i) 到 (iv) 为混合样本的统计结果;(v) 为同时考虑 FE 所有分组时,变量组内只有一个观测值的数量;(vi) 到 (vii) 为变量在 FE 组内没有变动的观测值数量;(viii) 为同时考虑 FE 所有分组时,变量组内标准差;(ix) 为变量组内标准差除以混合样本标准差,用以度量 FE 导致的标准差减少程度。

3. Stata 实际操作演示

3.1 命令安装

sumhdfe 命令是 reghdfe 命令的扩展,因此需要事先安装 6+ 以上版本的 reghdfe 命令和 ftools 命令。同时为了输出表格文件,我们也需要安装 rtfutil 命令。需要再次强调的是,sumhdfe 命令在第 5 版本的 reghdfe 命令上是不能正常运行的,即通过 ssc install reghdfe, replace 语句安装 reghdfe 命令是不可行的。

作者给出的安装语句如下,但是有时候也可能安装不成功。为此,我们有提供了两种备用安装方式,一种是将相关文件下载到本地,通过 net install pkgname, replace from(directory) 语句安装;另一种是通过连享会命令 lxhget pkgname, replace install 方式安装。

*作者提供的安装方式
*Uninstall any old versions of ftools, reghdfe, sumhdfe
cap ado uninstall ftools     
cap ado uninstall reghdfe     
cap ado uninstall sumhdfe

*Install the most recent version of ftools, reghdfe, and sumhdfe
net install ftools, from("https://raw.githubusercontent.com/sergiocorreia/ftools/master/src/")
net install reghdfe, from("https://raw.githubusercontent.com/sergiocorreia/reghdfe/master/src/")
net install sumhdfe, from("https://raw.githubusercontent.com/ed-dehaan/sumhdfe/master/src/")

*To generate rtf files you also need to install rtfutil
ssc install rtfutil
*本地安装
*ftools  链接:https://github.com/sergiocorreia/ftools
*reghdfe 链接:https://github.com/sergiocorreia/reghdfe
*sumhdfe 链接:https://github.com/ed-dehaan/sumhdfe

cap ado uninstall ftools     
cap ado uninstall reghdfe     
cap ado uninstall sumhdfe

net install ftools,  from("D:\连享会\ftools-master\src")
net install reghdfe, from("D:\连享会\reghdfe-master\src")
net install sumhdfe, from("D:\连享会\sumhdfe-main\src")
*连享会命令安装
cap ado uninstall ftools     
cap ado uninstall reghdfe     
cap ado uninstall sumhdfe

cnssc install lxhget, replace
lxhget ftools.pkg,  replace install
lxhget reghdfe.pkg, replace install
lxhget sumhdfe.pkg, replace install

3.2 命令使用

sumhdfe 有两种使用方式,一是在 reghdfe 命令后使用;二是单独使用。具体命令语法如下:

*use "https://raw.githubusercontent.com/ed-dehaan/sumhdfe/master/sumhdfe_demo_data.dta", clear
lxhuse sumhdfe_demo_data.dta, clear
reghdfe y x1 x2, a(firm year) 
sumhdfe
*use "https://raw.githubusercontent.com/ed-dehaan/sumhdfe/master/sumhdfe_demo_data.dta", clear
lxhuse sumhdfe_demo_data.dta, clear
sumhdfe y x1 x2, a(firm year)

其中,a(firm year) 表示要吸收的固定效应为 firmyear。详细介绍可参考 help sumhdfe 和连享会推文「reghdfe:多维面板固定效应估计」

3.3 输出结果

在运行上述命令语句之后,Stata 会输出以下四张表:

  • Panel A - summary statistics for the full sample
  • Panel B - summary statistics for the fixed effects
  • Panel C - groups without any within-fixed-effect variation
  • Panel D - variation lost (absorbed) due to fixed effects

具体来看,Panel A 为全样本的描述性统计结果。其中,N 包括组内只有单个观测值 (singleton) 的样本,这与 reghdfe 结果中的 N 不一样。

Panel A: Summary statistics of regression variables (including singleton observations)
---------------------------------------------------
        Variable |         N       mean         sd 
-----------------+---------------------------------
               y |       623   152.4039   502.1975 
              x1 |       623   .6832415   79.73515 
              x2 |       623   4.416166   9.809758 
---------------------------------------------------
. *reghdfe 命令结果
. reghdfe y x1 x2, a(firm year)
(dropped 38 singleton observations)
(MWFE estimator converged in 17 iterations)

HDFE Linear regression                            Number of obs   =        585
Absorbing 2 HDFE groups                           F(   2,    396) =     760.07
                                                  Prob > F        =     0.0000
                                                  R-squared       =     0.9706
                                                  Adj R-squared   =     0.9566
                                                  Within R-sq.    =     0.7933
                                                  Root MSE        =   104.9299

------------------------------------------------------------------------------
           y | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
          x1 |      4.962      0.217    22.89   0.000        4.536       5.388
          x2 |     10.006      0.584    17.13   0.000        8.857      11.154
       _cons |    103.555      5.062    20.46   0.000       93.604     113.507
------------------------------------------------------------------------------

Absorbed degrees of freedom:
-----------------------------------------------------+
 Absorbed FE | Categories  - Redundant  = Num. Coefs |
-------------+---------------------------------------|
        firm |       160           0         160     |
        year |        28           1          27     |
-----------------------------------------------------+

Panel B 为固定效应的统计结果。从公司固定效应 (firm) 中可以看出,这里有 189 个公司,其中 28 个公司只有一个观测值 (singletons)。单个公司观测值数量的范围为 1 到 8 个,均值为 3.30 个。从年度固定效应 (year) 中可以看出,这里有 39 年数据,其中 8 年都只有一个观测值 (singletons)。公司和年度固定效应联合组中,有 2 个只有一个观测值。因此,这里共有 38 个 singletons 会从 reghdfe 的输出结果中删除,正如上表中呈现的结果 (dropped 38 singleton observations)。

Panel B: Summary statistics of fixed effects
--------------------------------------------------------------------------------------------
                 |               Number of ...              |     Observations per group   
    Fixed Effect | Observations     Groups      Singletons  |   Min.       Avg.       Max.  
-----------------+------------------------------------------+-------------------------------
            firm |          623           189            28 |        1        3.30         8
            year |          623            39             8 |        1       15.97        51
-----------------+------------------------------------------+-------------------------------
Joint singletons |            .             .             2 |        .           .         .
Total singletons |            .             .            38 |        .           .         .
--------------------------------------------------------------------------------------------
Note: there are 38 singletons (6.1% of all observations)

Panel C 为固定效应组内无任何变化的统计结果。变量 X1 在排除 singletons 后的观测值数为 585 (623-38),并且在剩余观测值中有 58 组为常数,涉及的观测值数量为 217。同时,变量 X1 有 4 年为常数,涉及观测值数量为 28。需要注意的是,当上述观测值数量较多时,会对回归系数产生不可预期的影响,此时我们需要仔细评估。

Panel C: Variables that are constant within a fixed effect group
-------------------------------------------------------------------------------
                 |    Number of ...   |        firm*       |       year*      
        Variable |      Obs     Singl |  #Groups      #Obs |  #Groups      #Obs
-----------------+--------------------+--------------------+-------------------
               y |      623        38 |        0         0 |        0         0
              x1 |      623        38 |       58       217 |        4        28
              x2 |      623        38 |        0         0 |        0         0
-------------------------------------------------------------------------------
Note: columns with * were computed excluding singleton observations

Panel D 为变量被固定效应吸收的变化。在混合样本中,X1 的标准差为 79.7,与 Panel A 中的结果保持一致。但是在固定效应中,X1 的标准差为 22.7,大约占混合样本中 X1 标准差的 28.4%。其中,控制固定效应后变量 X1 标准差的计算方法为,X1 对固定效应 (firm 和 year) 回归,提取残差并计算标准差,详见下文代码。与此同时,公司固定效应能够解释 X1 变化的 87%,年度固定效应能够解释 X1 变化的 13%,联合固定效应解释 X1 变化的 92.4%,详见下文代码。

Panel D: Residual variation after partialling-out
-------------------------------------------------------------------------------------------------
                 |          |            Std. Dev.            |   R2 by fixed effect   |    R2   
        Variable |    N*    |  Pooled     Within*   Ratio (%) |    firm        year    | Overall 
-----------------+----------+---------------------------------+------------------------+---------
               y |      585 |  502.1975   190.0668      37.85 |      0.816       0.113 |    0.866
              x1 |      585 |  79.73515   22.68065      28.44 |      0.871       0.132 |    0.924
              x2 |      585 |  9.809758   8.419488      85.83 |      0.254       0.055 |    0.308
-------------------------------------------------------------------------------------------------
Note: columns with * were computed excluding singleton observations
. *计算固定效应中变量标准差
. egen miss = rowmiss(y x1 x2) // 三个变量存在缺失值个数
. qui: reghdfe x1 if miss == 0, a(firm year) res(x1_res)
. qui: sum x1_res
. dis `r(sd)'

22.680647

. *计算固定效应对变量的解释能力 
. //需要注意的是,这里不能使用 reghdfe 命令,
. //因为该命令会自动删掉 singletons
. qui: reg x1 i.firm if miss == 0 
. est store m1
. qui: reg x1 i.year if miss == 0
. est store m2
. qui: reg x1 i.firm i.year if miss == 0
. est store m3
. esttab m1 m2 m3, r2 indicate("Frim FE = *.firm" "Year FE = *.year") nogaps

------------------------------------------------------------
                      (1)             (2)             (3)   
                       x1              x1              x1   
------------------------------------------------------------
_cons               106.9***        166.3*          51.39   
                   (6.98)          (2.17)          (1.20)   
Frim FE               Yes              No             Yes   
Year FE                No             Yes             Yes   
------------------------------------------------------------
N                     623             623             623   
R-sq                0.871           0.132           0.924   
------------------------------------------------------------

当然上述四张表也可以通过 sumhdfe_export 命令,导出为 .rtf.tex 格式文档。例如,导出 .rtf 格式,具体命令如下。其中,panels(a b c d) 为导出四张表,也可以通过 panels(a b) 只导出 Panel A 和 Panel B。

. sumhdfe y x1 x2, a(firm year) 
. sumhdfe_export using table.rtf, panels(a b c d)
sumhdfe tables saved in table.rtf

3.4 绘制图形

histogram(#) 选项可以绘制组内观测值个数直方图。例如,sumhdfe, histogram(1) 绘制的是固定效应 a(firm year) 中 firm 组中观测值个数直方图,见下图。可以看出,公司固定效应组内观测值个数分布范围为 2 到 8,这与 Panel B 的结果保持一致,并且组内观测值个数为 2 的公司最多。需要注意的是,histogram(1) 括号中 1 可以是 firm,即公司固定效应,当然也可以是 2year,即年份固定效应。

. reghdfe y x1 x2, a(firm year) 
. sumhdfe, histogram(1)

除此之外,我们还可以绘制变量 X1 的混合分布和控制固定效应后的分布,见下图。其中,绿色代表 X1 的混合分布,蓝色则代表 X1 控制固定效应之后的分布。可以明显看出控制固定效应之后,X1 的分布变得更窄,即标准差变小。

. lxhuse sumhdfe_demo_data.dta, clear
. qui: reghdfe y x1 x2, a(firm year)
. qui: reghdfe x1 if e(sample), a(firm year) resid

. twoway (histogram x1, fcolor(green%75) lcolor(none))          ///
>     (histogram _reghdfe_resid, fcolor(navy%70) lcolor(none)), ///
>     legend(on order(1 "x1" 2 "within-FE x1"))

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 固定效应 控制变量, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh