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

学术   2024-10-30 10:03   北京  

🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春;张宏亮
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)

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

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

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 引言

  • 2. 固定效应使用建议

  • 3. Stata 实际操作演示

    • 3.1 命令安装

    • 3.2 命令使用

    • 3.3 输出结果

    • 3.4 绘制图形

  • 4. 相关推文



1. 引言

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

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

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

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

2. 固定效应使用建议

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

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

    其中,(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 为固定效应组内无任何变化的统计结果。变量 在排除 singletons 后的观测值数为 585 (623-38),并且在剩余观测值中有 58 组为常数,涉及的观测值数量为 217。同时,变量 有 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 为变量被固定效应吸收的变化。在混合样本中, 的标准差为 79.7,与 Panel A 中的结果保持一致。但是在固定效应中, 的标准差为 22.7,大约占混合样本中 标准差的 28.4%。其中,控制固定效应后变量 标准差的计算方法为, 对固定效应 (firm 和 year) 回归,提取残差并计算标准差,详见下文代码。与此同时,公司固定效应能够解释 变化的 87%,年度固定效应能够解释 变化的 13%,联合固定效应解释 变化的 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)

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

    . 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

    • 专题:回归分析
      • 控制变量!控制变量!
      • 不用太关心控制变量,真的!
      • 加入控制变量后结果悲催了!
    • 专题:面板数据
      • xtheckmanfe:面板Heckman模型的固定效应估计
      • regife:面板交互固定效应模型-Interactive Fixed Effect
      • 引力模型-高维固定效应面板泊松模型
      • ocmt:高维固定效应模型的变量筛选问题
      • Stata新命令:ppmlhdfe-面板计数模型-多维固定效应泊松估计
      • Stata:非对称固定效应模型
      • reghdfe:多维面板固定效应估计
    • 专题:内生性-因果推断
      • 用FE-固定效应模型能做因果推断吗?
    • 专题:Probit-Logit
      • feologit:固定效应有序Logit模型

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


    君泉计量
    交流学习经验,探讨论文写作
     最新文章