acreg:允许干扰项随意相关的稳健性标准误

发布时间:2021-06-06 阅读 3715

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

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

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

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

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

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者: 袁煜玲 (厦门大学)
邮箱: 384860359@qq.com


目录


acreg 适用于 OLS 和 2SLS 两种线性回归模型。其主要优势是允许模型的残差项存在任意形式的聚类相关性。为对该命令有详细的了解,本文将从标准误估计不准确的后果、相关文献、以及实际应用等方面进行介绍。

1. 回归系数的标准误

1.1 标准误的估计

在默认情况下,我们会假设随机扰动项 ui 的方差 Var(εiX) 为常数,即同方差假定。然而,这一假设在大多数时候都不成立。

图 1:异方差的例子
图 1:异方差的例子

不过,即使 Var(εiX) 不满足同方差假定,OLS 估计量依然无偏、一致且渐近正态,因为在推导这些性质时并不需要同方差假定。但是,由于 Var(εX)σ2I,此时 t 检验和 F 检验失效。换句话说,扰动项的异方差性,不会影响回归估计系数的一致性,只会影响系数标准误的大小和检验统计量的效度。

例如,β 的 95% 的置信区间估计为 β^±1.96×se。考虑异方差后,估计的 se 增大,则 β 的置信区间有可能包含 0,从而使得统计结果不显著;反之,如果未考虑异方差,即使 β 显著,结论也不一定可靠。

如果在回归时没有考虑到组内扰动项相关性,那么就可能会得到偏小的标准误 (Cameron 和 Miller,2015),进而导致不准确的置信区间、t 统计量和 p 值。因此,在进行统计推断时,系数标准误 se 的准确估计也很重要。

1.2 稳健标准误的重要性

Bertrand 等 (2004) 指出,当时的许多 DID 研究,未能考虑聚类稳健的标准误,或者经常在错误的水平上聚类。针对上述现象,Cameron 和 Miller (2015) 举了如下例子:

这是一个州—年面板数据的 DID 模型。因变量是工资水平,自变量 dts 是外生政策变量,该变量随着州和时间而变化。当 dts =1 时,表示政策生效,反之则未生效。然而,变量 dts 通常是序列相关的。例如,在那些从未实施政策的州,在永久实施该政策以后,dts 将从一系列的 0,变成一系列的 1。此时,如果模型系统性地高估 (或低估) 了工资水平,那么误差项 uts 在同一个州内部在时间维度上是正相关的。那么,默认的标准误就可能产生向下偏误。

直观地理解,在模型估计时,如果系统性地高估了一个州的工资预测,即同一个州每年的工资预测都被高估,那么 uts 就都是负的,从而州内部的误差项正相关;反之,若是系统性低估,模型中这个州每年的误差项就都是正的,从而误差项也是正相关。

Cameron 和 Miller (2015) 指出,在 DID 面板数据回归模型中,聚类稳健的标准误可能比默认标准误大许多。主要原因是,自变量和误差项在类别 (州) 内部都是高度相关,而且即使考虑了固定效应,以上问题仍可能存在。当然,该问题不仅存在于 DID 模型中,也存在于所有面板数据模型中 (Cameron 和 Miller,2015)。

1.3 稳健标准误的 Stata 实现

在进行 OLS 或 2SLS 回归时:

  • 如果在回归命令后面加上 robust 选项,表明使用著名的 White (1980) 异方差稳健标准误;
  • 如果在回归命令后面加上 cluster() 选项,表明使用聚类稳健标准误。如果在聚类时,根据观测个体聚类,即 cluster(id),则等同于在回归命令后面加上 robust

2. 空间与网络的相关性

2.1 背景介绍

现如今,空间数据或网络数据的分析非常常见。然而,数据中难以观测的异质性可能在相邻单元之间存在关联,给统计推断带来挑战。针对上述问题,Conley (1999b) 和 Hsiang (2010) 认为可以使用坐标来缓解空间相关问题。在此基础上,Colella 等 (2019) 基于 White (1980),提出了一种 “任意聚类方法”。该方法能够允许 OLS 和 2SLS 回归中的方差—协方差矩阵存在任意形式的相关性,包括空间结构、网络结构、以及时间维度等。并且,Colella 等 (2020) 编写了 acreg 命令来实现上述过程。

在基于美国大都市的地理空间分布所设定的蒙特卡罗模拟中,Colella 等 (2019) 发现 acreg 能够渐进准确地拒绝原假设,而传统的统计推断方法 (基于行政单元的聚类或非聚类的方法) 则倾向于过度拒绝原假设。

2.2 acreg 介绍

*命令安装
ssc install acreg, replace
*基本语法
acreg depvar [varlist1] [(varlist2 = varlist_iv) [if] [in]] [fweight pweight] 

其中,depvar 为因变量,[varlist1] 是一系列外生变量,varlist2 是一系列内生变量,varlist_ivvarlist2 的工具变量。

*时间维度语法
acreg depvar varlist1 (varlist2 = varlist iv), id(idvar) time(timevar) lag(#)

其中,idvar 是横截面维度上的唯一标识符,timevar 是时间维度上的唯一标识符,lag(#) 指定同一个个体的时间滞后截断。

*空间语法1
acreg depvar varlist1 (varlist2 = varlist iv), spatial 
      latitude(latitudevar) longitude(longitudevar) dist(#)

其中,spatial 指定空间环境;latitudevar 是包含纬度的变量,精确到小数点后一位,且取值在 [-180.0, 180.0] 之间;类似地,longitudevar 是包含经度的变量;dist(#) 指定两个样本点在多少距离以外就没有相关性,以千米为单位。

*空间语法2
acreg depvar varlist1 (varlist2 = varlist iv), spatial 
      dist mat(varlist_distances) dist(#)

其中,varlist_distances 是在样本点之间包含双边空间距离的 N 个变量,这种距离以有意义的单位度量;dist(#) 指定两个样本点在多少距离以外就没有相关性,所用单位与 varlist_distances 的距离单位相同。

*网络语法
acreg depvar varlist1 (varlist2 = varlist_iv), network
      inks mat(varlist_links) dist(#)

其中,network指定网络环境;varlist_links 是指定两个样本点之间联系的 N 个双边变量,例如邻接矩阵中两个节点之间最短距离的边的数量,这种联系可随时间变化;dist(#) 指定一个距离,超出这个距离的两个点被假定误差不相关,如果设定的值大于 1,acreg 会计算两个网络节点之间的双边距离。

*多维聚类语法
acreg depvar varlist1 (varlist2 = varlist_iv), cluster(varlist_cluster)

其中,varlist_cluster 是一系列不同的聚类类别变量,每个变量指定一个聚类维度。

*任意聚类语法
acreg depvar varlist1 (varlist2 = varlist_iv), weights(varlist_weights)

其中,varlist_weights 是 N (截面) 或者 N×T (面板) 个包含 S 矩阵权重的变量。

此外,上述语法具有的共同选项如下:

  • 相关关系结构hac 报告了异方差序列相关 (HAC) 稳健标准误;bartlett 在用于计算方差—协方差矩阵的权重矩阵中,在样本点之间,在截断距离之内对权重矩阵施加了距离的线性递减;nbclust(#) 是用于计算 Kleibergen-Paap 统计量的聚类类别数量,用于任意聚类相关,默认值为 100。
  • 高维固定效应fe1var 指定第一个需要控制高维固定效应的变量 ;fe2var 指定第二个需要控制高维固定效应的变量;dropsingletonspfe1 (and pfe2) 被指定的前提下,删除单独的组。
  • 储存选项storeweights 选项仅在 spatialnetworkvarlist_cluster 三个选项被指定的情况下才能使用。storeweights 选项会将用于调整方差—协方差矩阵的允许任意聚类相关的权重矩阵储存在名为 weightsmat 的变量中。weightsmat 所储存的矩阵可以用于前文介绍的 varlist_weights 选项的输入。

3. acreg 命令的应用

3.1 收入与自杀率

在估计以下方程时,需要估计空间相关的标准误:

其中,i 是美国东南部的某个县,每个县有 4 年观测。Xit 包括人口对数和平均年龄等控制变量。假设采用失业率作为收入的工具变量,则第一阶段模型如下:

需要说明的是,Colella 等 (2020) 在这个例子中仅为演示 acreg 的用法,因此并不会探究这个工具变量的合理性。

3.1.1 截面数据

. *采用 1990 年的横截面数据
. use "http://www.stata-press.com/data/r15/homicide1990.dta", clear
(S.Messner et al.(2000), U.S southern county homicide rates in 1990)

. *假设样本的误差之间没有相关性
. acreg hrate ln_population age (ln_income=unemployment)
HETEROSKEDASTICITY ROBUST STANDARD ERRORS
No HAC Correction
No Absorbed FEs
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic: 990.487
                                                      Number of obs =     1412
Total (centered) SS     =  69908.59003                Centered R2   =   0.1079
Total (uncentered) SS   =  198667.4579                Uncentered R2 =   0.6861
Residual SS             =  62363.84851

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |     -8.822      1.355    -6.51   0.000      -11.478      -6.167
ln_population |      1.404      0.277     5.07   0.000        0.862       1.947
          age |     -0.282      0.051    -5.55   0.000       -0.381      -0.182
        _cons |     94.460     12.429     7.60   0.000       70.101     118.820
-------------------------------------------------------------------------------

. *等价于 ivreg2 的结果
. ivreg2 hrate ln_population age (ln_income=unemployment), robust

                                                      Number of obs =     1412
                                                      F(  3,  1408) =    24.04
                                                      Prob > F      =   0.0000
Total (centered) SS     =  69908.59003                Centered R2   =   0.1079
Total (uncentered) SS   =  198667.4579                Uncentered R2 =   0.6861
Residual SS             =  62363.84851                Root MSE      =    6.646

-------------------------------------------------------------------------------
              |               Robust
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |     -8.822      1.355    -6.51   0.000      -11.478      -6.167
ln_population |      1.404      0.277     5.07   0.000        0.862       1.947
          age |     -0.282      0.051    -5.55   0.000       -0.381      -0.182
        _cons |     94.460     12.429     7.60   0.000       70.101     118.820
-------------------------------------------------------------------------------
. *估计州层面的聚类稳健标准误
. acreg hrate ln_population age (ln_income=unemployment), cluster(sfips)
MULTIWAY CLUSTERING CORRECTION
Cluster variable(s): sfips
No HAC Correction
No Absorbed FEs
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic: 143.959
                                                      Number of obs =     1412
Total (centered) SS     =  69908.59003                Centered R2   =   0.1079
Total (uncentered) SS   =  198667.4579                Uncentered R2 =   0.6861
Residual SS             =  62363.84851

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |     -8.822      1.802    -4.90   0.000      -12.353      -5.291
ln_population |      1.404      0.309     4.54   0.000        0.799       2.010
          age |     -0.282      0.130    -2.16   0.031       -0.537      -0.026
        _cons |     94.460     17.890     5.28   0.000       59.396     129.525
-------------------------------------------------------------------------------

现在,使用 Conley (1999) 提出的空间相关估计,阈值选择为 100 公里,因此每个县的误差项假设与所有位于 100 公里范围内的其他县具有相关性 (本例中,平均而言有 89 个县相互关联)。

. acreg hrate ln_population age (ln_income=unemployment), ///
        spatial latitude(_CX) longitude(_CY) dist(100)
SPATIAL CORRECTION
DistCutoff: 100
LagCutoff:  0
No HAC Correction
No Absorbed FEs
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic: 112.917
                                                      Number of obs =     1412
Total (centered) SS     =  69908.59003                Centered R2   =   0.1079
Total (uncentered) SS   =  198667.4579                Uncentered R2 =   0.6861
Residual SS             =  62363.84851

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |     -8.822      2.358    -3.74   0.000      -13.443      -4.201
ln_population |      1.404      0.469     3.00   0.003        0.485       2.323
          age |     -0.282      0.109    -2.58   0.010       -0.495      -0.068
        _cons |     94.460     21.863     4.32   0.000       51.609     137.312
-------------------------------------------------------------------------------

在以上例子中,用于计算方差-协方差矩阵 (VCV) 的权重矩阵是二元的,即对于 100 公里范围内的两个县市 (县市对),取值为 1;相距超过 100 公里的两个县市 (县市对),取值为 0。acreg 还允许这个二元矩阵的权重随着两个县之间距离的增加而线性递减,也就是不再简单地用 0 或 1 来构造这个矩阵,此时可用 bartlett 选项。这里我们可通过 dist(200) 将相关距离的阈值从 100 公里改为 200 公里。

. acreg hrate ln_population age (ln_income=unemployment), ///
        spatial latitude(_CX) longitude(_CY) dist(200) bartlett
SPATIAL CORRECTION
DistCutoff: 200
LagCutoff:  0
No HAC Correction
No Absorbed FEs
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic: 132.260
                                                      Number of obs =     1412
Total (centered) SS     =  69908.59003                Centered R2   =   0.1079
Total (uncentered) SS   =  198667.4579                Uncentered R2 =   0.6861
Residual SS             =  62363.84851

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |     -8.822      2.313    -3.81   0.000      -13.356      -4.289
ln_population |      1.404      0.439     3.20   0.001        0.544       2.265
          age |     -0.282      0.102    -2.77   0.006       -0.481      -0.083
        _cons |     94.460     21.235     4.45   0.000       52.841     136.080
-------------------------------------------------------------------------------

acreg 允许控制高维固定效应,但为提高效率,将这些固定效应 “partial out”,降低由于控制很多虚拟变量对模型估计速度的影响。该命令最多仅允许控制两个固定效应变量,在 pfe1()pfe2() 两个选项的括号中,可填入要控制固定效应的变量。对上例回归控制州的固定效应:

. acreg hrate ln_population age (ln_income=unemployment), ///
        spatial latitude(_CX) longitude(_CY) dist(100) pfe1(sfips)
SPATIAL CORRECTION
DistCutoff: 100
LagCutoff:  0
No HAC Correction
Absorbed FE: sfips 
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic: 307.097
                                                      Number of obs =     1412
Total (centered) SS     =  58943.23761                Centered R2   =   0.1002
Total (uncentered) SS   =  58943.23761                Uncentered R2 =   0.1002
Residual SS             =  53037.54212

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |    -13.882      1.835    -7.56   0.000      -17.479     -10.285
ln_population |      1.650      0.400     4.12   0.000        0.866       2.434
          age |     -0.179      0.096    -1.86   0.063       -0.367       0.009
        _cons |      0.000      0.241     0.00   1.000       -0.473       0.473
-------------------------------------------------------------------------------
nb: total SS, model and R2s are after partialling out.
To get the corrected ones use the option correctr2

注意到,以上回归结果中,除了最后控制固定效应的回归结果之外,其他结果的估计系数不变,因为 acreg 调整的是估计系数的标准误。

3.1.2 面板数据

. use "http://www.stata-press.com/data/r15/homicide_1960_1990.dta", clear
(S.Messner et al.(2000), U.S southern county homicide rate in 1960-1990)
. *不考虑误差相关进行回归,以下两条命令的结果等价
. acreg hrate ln_population age (ln_income=unemployment)
. ivreg2 hrate ln_population age (ln_income=unemployment), robust

. *允许州内各县存在相关性,以下两行命令等价
. acreg hrate ln_population age (ln_income=unemployment), id(_ID) ///
        time(year) lagcut(30)
. ivreg2 hrate ln_population age (ln_income=unemployment), cluster(_ID)
. *考虑时间和空间的相关性
. acreg hrate ln_population age (ln_income=unemployment), ///
        id(_ID) time(year) lagcut(30)  spatial            ///
        latitude(_CX) longitude(_CY) dist(100)
SPATIAL CORRECTION
DistCutoff: 100
LagCutoff:  30
No HAC Correction
No Absorbed FEs
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic:  24.838
                                                      Number of obs =     5648
Total (centered) SS     =  286387.1082                Centered R2   =  -0.0447
Total (uncentered) SS   =  781008.6785                Uncentered R2 =   0.6169
Residual SS             =  299188.6495

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |      3.839      1.811     2.12   0.034        0.289       7.388
ln_population |     -0.441      0.387    -1.14   0.254       -1.200       0.318
          age |     -0.463      0.143    -3.25   0.001       -0.742      -0.183
        _cons |     -7.265      9.814    -0.74   0.459      -26.500      11.970
-------------------------------------------------------------------------------

其中,id() 填写县市的 id,time() 填写年份变量;dist(100) 假设空间相关性在 100 km 之外就会消失;lag(30) 即假设在 30 个时期之后,同一个体在时间上的相关性就会消失。但是,这份数据的时间维度最多为 4 年,因此 lag() 中填写的数字如果超过 4,那么估计的系数标准误就不会再改变了。例如,这里填写lag(30) 与填写 lag(300) 的结果是一样的。

. *考虑了时间和空间上的相关性,进一步控制县的固定效应
. acreg hrate ln_population age (ln_income=unemployment),   ///
        id(_ID) time(year) lagcut(30) spatial latitude(_CX) ///
        longitude(_CY) dist(100) pfe1(_ID)
SPATIAL CORRECTION
DistCutoff: 100
LagCutoff:  30
No HAC Correction
Absorbed FE: _ID 
Included instruments: ln_population age
Instrumented: ln_income
Excluded instruments: unemployment
Kleibergen-Paap rk Wald F statistic:  49.605
                                                      Number of obs =     5648
Total (centered) SS     =  144755.2058                Centered R2   =   0.0175
Total (uncentered) SS   =  144755.2058                Uncentered R2 =   0.0175
Residual SS             =  142223.0274

-------------------------------------------------------------------------------
        hrate |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
    ln_income |      0.259      1.150     0.23   0.822       -1.995       2.512
ln_population |     -1.631      1.741    -0.94   0.349       -5.043       1.781
          age |      0.147      0.201     0.73   0.465       -0.247       0.540
        _cons |     -0.000      0.174    -0.00   1.000       -0.342       0.342
-------------------------------------------------------------------------------
nb: total SS, model and R2s are after partialling out.
To get the corrected ones use the option correctr2

其中,pfe1(_ID) 控制 (partial out) 了县的固定效应。注意到,这里回归系数发生了很大的变化,这是因为控制固定效应,即先组内去均值而后回归,通常会影响模型估计的系数,而不只是影响系数标准误。

. *再考虑时间固定效应,加上选项 pfe2(year) 即可
. acreg hrate ln_population age (ln_income=unemployment),   ///
        id(_ID) time(year) lagcut(30) spatial latitude(_CX) ///
        longitude(_CY) dist(100) pfe1(_ID) pfe2(year)

如果要计算 Newey 和 West (1987) 的异方差序列相关一致稳健标准误 (HAC),只需在以上命令最后加上选项 hac 即可。

3.2 网络模型

这里使用 Grund 和 Densley (2012,2015) 提供的伦敦年轻帮派网络数据。如果两个人共同犯案,那么这两个节点中间建立联系,即节点的边。这些联系构成了 54 个变量 (_net2_1 - _net2_54)。模型如下:

其中,i 是个体,arresti 是个体被逮捕的次数,rankingi 是个体在帮派中的位置,Xit 包括年龄、居住地、和出生地。

图 2:逮捕与帮派网络结构
图 2:逮捕与帮派网络结构

3.2.1 截面数据

. webnwuse gang //下载数据
. nwload gang   //下载网络
. forvalues j = 1(1)54 { 
  2.   qui replace _net2_`j'=1 in `j'
  3. } //将邻接矩阵对角线换成 1
  
. *假设每个观测的误差项不相关,估计模型
. acreg Arrest Ranking Age Residence i.Birthplace
HETEROSKEDASTICITY ROBUST STANDARD ERRORS
No HAC Correction
No Absorbed FEs
Included instruments: Ranking Age Residence 1b.Birthplace 2.Birthplace 
3.Birthplace 4.Birthplace
                                                      Number of obs =       54
Total (centered) SS     =  2196.537037                Centered R2   =   0.2442
Total (uncentered) SS   =         7497                Uncentered R2 =   0.7786
Residual SS             =  1660.198039
------------------------------------------------------------------------------
     Arrests |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     Ranking |     -2.168      0.821    -2.64   0.008       -3.777      -0.560
         Age |      0.767      0.309     2.48   0.013        0.160       1.373
   Residence |     -1.535      1.562    -0.98   0.326       -4.595       1.526
  Birthplace |
  Caribbean  |      0.000  (empty)
East Africa  |     -0.252      2.870    -0.09   0.930       -5.876       5.372
         UK  |      0.701      2.228     0.31   0.753       -3.666       5.069
West Africa  |      0.817      2.013     0.41   0.685       -3.127       4.762
       _cons |      2.317      7.507     0.31   0.758      -12.396      17.030
------------------------------------------------------------------------------

接着,采用 Colella 等 (2019) 的稳健标准误,即假设每个个体与其相连的其他个体存在相关。links_mat(_net2_*) 声明网络结构由 _net2_1_net2_54 所定义;dist(1) 声明在第一个连接之后节点的相关性就会消失,也就是只考虑直接相连的两点的相关性,不考虑间接相连。如果设为 dist(2),则是认为通过一个中间点间接相连的两个点也具有相关性,即两点之间最短距离在 2 步以内的情况。

. acreg Arrest Ranking Age Residence i.Birthplace , ///
        network links_mat(_net2_*) dist(1)
NETWORK CORRECTION
DistCutoff: 1
LagCutoff:  0
No HAC Correction
No Absorbed FEs
Included instruments: Ranking Age Residence 1b.Birthplace 2.Birthplace 
3.Birthplace 4.Birthplace
                                                      Number of obs =       54
Total (centered) SS     =  2196.537037                Centered R2   =   0.2442
Total (uncentered) SS   =         7497                Uncentered R2 =   0.7786
Residual SS             =  1660.198039
------------------------------------------------------------------------------
     Arrests |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     Ranking |     -2.168      0.713    -3.04   0.002       -3.566      -0.771
         Age |      0.767      0.373     2.05   0.040        0.035       1.498
   Residence |     -1.535      1.619    -0.95   0.343       -4.708       1.638
  Birthplace |
  Caribbean  |      0.000  (empty)
East Africa  |     -0.252      2.259    -0.11   0.911       -4.679       4.175
         UK  |      0.701      2.985     0.23   0.814       -5.149       6.551
West Africa  |      0.817      2.260     0.36   0.718       -3.613       5.247
       _cons |      2.317      7.826     0.30   0.767      -13.021      17.656
------------------------------------------------------------------------------

如果要将用于计算方差—协方差矩阵的 0-1 权重矩阵,改为权重随着网络距离递减的矩阵,即直接相连取值为 1,间接 2 步相连取值为 0.5,那么选择选项 bartlett

. acreg Arrest Ranking Age Residence i.Birthplace, ///
        network links_mat(_net2_*) dist(2) bartlett
NETWORK CORRECTION
DistCutoff: 2
LagCutoff:  0
No HAC Correction
No Absorbed FEs
Included instruments: Ranking Age Residence 1b.Birthplace 2.Birthplace 
3.Birthplace 4.Birthplace
                                                      Number of obs =       54
Total (centered) SS     =  2196.537037                Centered R2   =   0.2442
Total (uncentered) SS   =         7497                Uncentered R2 =   0.7786
Residual SS             =  1660.198039
------------------------------------------------------------------------------
     Arrests |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     Ranking |     -2.168      0.769    -2.82   0.005       -3.675      -0.662
         Age |      0.767      0.343     2.24   0.025        0.095       1.438
   Residence |     -1.535      1.591    -0.96   0.335       -4.652       1.583
  Birthplace |
  Caribbean  |      0.000  (empty)
East Africa  |     -0.252      2.582    -0.10   0.922       -5.313       4.809
         UK  |      0.701      2.634     0.27   0.790       -4.461       5.863
West Africa  |      0.817      2.140     0.38   0.703       -3.377       5.011
       _cons |      2.317      7.668     0.30   0.762      -12.712      17.346
------------------------------------------------------------------------------

此外,如果要控制出生地固定效应,仅需添加选项 pfe1(Birthplace)

3.2.2 面板数据

这是一份构造的数据,N=100t=10,只有 4 个构造的变量,即 YitX1itZitIVit。其中假定 Zit 是内生解释变量,而 IVit 是工具变量。

. use "https://gitee.com/arlionn/data/raw/master/data01/acregfakedata.dta", clear
. *不存在相关性,也不控制固定效应,以下两条命令等价
. acreg Y_it X1_it (Z_it=IV_it)
. ivreg2 Y_it X1_it (Z_it=IV_it), robust

. *考虑个体时间序列相关性,不考虑个体相关性,以下三条命令等价
. acreg Y_it X1_it (Z_it=IV_it) , id(id) time(time) lag(10)
. ivreg2 Y_it X1_it (Z_it=IV_it) , cluster(id)
. acreg Y_it X1_it (Z_it=IV_it), cluster(id)

现在考虑同一时期,直接相连的节点之间的相关性,但不考虑不同时期,直接相连的节点之间的相关性,添加选项 links_mat(clus*),即clus_1clus_100,共 100 个个体。因此,dist(1) 设为 1,即间接相连的相关性不考虑。

. eststo: acreg Y_it X1_it (Z_it=IV_it),    ///
          id(id) time(time) lag(10) network ///
          links_mat(clus*) dist(1)
NETWORK CORRECTION
DistCutoff: 1
LagCutoff:  10
No HAC Correction
No Absorbed FEs
Included instruments: X1_it
Instrumented: Z_it
Excluded instruments: IV_it
Kleibergen-Paap rk Wald F statistic:  22.720
                                                      Number of obs =     1000
Total (centered) SS     =  2834382.139                Centered R2   =   0.4913
Total (uncentered) SS   =    4195421.4                Uncentered R2 =   0.6563
Residual SS             =  1441795.144

------------------------------------------------------------------------------
        Y_it |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        Z_it |      1.029      0.384     2.68   0.007        0.275       1.782
       X1_it |      1.229      0.450     2.73   0.006        0.348       2.110
       _cons |     11.619      4.743     2.45   0.014        2.322      20.915
------------------------------------------------------------------------------
(est1 stored)

在以上命令中,通过选项 pfe1(id)pfe2(tim)可控制个体和时间固定效应。如果假设同一年存在个体之间的相关性,而同一个体在时间维度上不存在任何相关性,只需把 lag(0) 设定为 0 即可。同理,如果假设同一个体在 3 期以内存在相关性,而超过 3 期则不存在相关性,只需把 lag(3) 设定为 3 即可。

3.3 空间相关性

Colella 等 (2020) 在这一部分是想将其编写的 acreg 与 Hsiang (2010) 的考虑空间相关性的命令 ols_spatial_HAC 进行比较。

*安装命令 ols_spatial_HAC
local u1 "https://gitee.com/arlionn/data/raw/master/data01/ols_spatial_HAC.ado"
local u2 "`c(sysdir_plus)'/o"
copy `u1' "`u2'/ols_spatial_HAC.ado", replace

3.3.1 截面数据

. *不考虑相关性和固定效应,用混合横截面回归
. use "https://gitee.com/arlionn/data/raw/master/data01/acregfakedata.dta", clear
. qui tab time, g(time_d) //生成时间 id
. qui tab id, g(id_d)     //生成个体 id
. gen const = 1           //生成截距项
. gen fakeid = _n         //生成虚假个体 id
. gen faketime = 1        //生成虚假时间

. *ivreg2
. qui ivreg2 Y_it X1_it Z_it, robust
. est store m1
. *acreg
. qui acreg Y_it X1_it Z_it
. est store m2
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const,   ///
      lat(lat) lon(lon) panelvar(fakeid) timevar(time) ///
      distcutoff(0.000001) lagcutoff(0)
. est store m3

. *结果进行对比
. esttab m*, keep(X1_it Z_it) mtitles(ivreg2 acreg ols_spat)
------------------------------------------------------------
                      (1)             (2)             (3)   
                   ivreg2           acreg        ols_spat   
------------------------------------------------------------
X1_it               0.739***        0.739***        0.739***
                   (3.93)          (3.93)          (3.93)   

Z_it                1.453***        1.453***        1.453***
                  (30.63)         (30.63)         (30.63)   
------------------------------------------------------------
N                    1000            1000            1000   
------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

可以看出,在这种设定下,ivreg2acregols_spatial_HAC 三者结果没有区别。

3.3.2 空间相关

假设横截面数据,而非空间数据,但是假设个体在 500 公里范围内存在相关性。同时采用二元权重矩阵 (第 1—2 列) 与随距离递减的权重矩阵(bartlett) (第 3—4 列)。

. *二元权重矩阵
. *acreg
. qui acreg Y_it X1_it Z_it, spatial latitude(lat)    ///
      longitude(lon) dist(500)
. est store m1
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const, lat(lat) ///
      lon(lon) panelvar(fakeid) timevar(faketime)     /// 
      distcutoff(500) lagcutoff(0)
. est store m2

. *计算方差的矩阵的权重随距离递减
. *acreg
. qui acreg Y_it X1_it Z_it, spatial latitude(lat)    ///
      longitude(lon) dist(500) bartlett
. est store m3
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const, lat(lat) ///
      lon(lon) panelvar(fakeid) timevar(faketime)     ///
      distcutoff(500) lagcutoff(0) bartlett
. est store m4

. *列示结果进行对比
. esttab m1 m2 m3 m4, keep( X1_it Z_it) mtitles(acreg ///
         ols_spat acreg_b ols_spat_b 2hdfespat_b)

----------------------------------------------------------------------------
                      (1)             (2)             (3)             (4)   
                    acreg        ols_spat         acreg_b      ols_spat_b   
----------------------------------------------------------------------------
X1_it               0.739***        0.739***        0.739***        0.739***
                   (3.34)          (3.34)          (3.56)          (3.56)   

Z_it                1.453***        1.453***        1.453***        1.453***
                  (29.83)         (29.83)         (29.82)         (29.82)   
----------------------------------------------------------------------------
N                    1000            1000            1000            1000   
----------------------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

3.3.3 空间和时间的相关性

考虑空间和时间的相关性,acreg 需要指定 hac 以考虑异方差—自相关稳健标准误,而另一个变量则默认使用异方差-自相关稳健标准误。

. *binary weighting matrix
. *acreg
. qui acreg Y_it X1_it Z_it, spatial latitude(lat) longitude(lon) ///
      dist(500) id(id) time(time) lag(10) hac
. est store m1
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const, lat(lat) lon(lon)    ///
      panelvar(id) timevar(time) distcutoff(500) lagcutoff(10)
. est store m2

. *linear bartlett window
. *acreg
. qui acreg Y_it X1_it Z_it, spatial latitude(lat) longitude(lon) ///
      dist(500) id(id) time(time) lag(10) hac bartlett
. est store m3
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const, lat(lat) lon(lon)    ///
      panelvar(id) timevar(time) distcutoff(500) lagcutoff(10) bartlett
. est store m4

. *table of results
. esttab m1 m2 m3 m4, keep( X1_it Z_it) mtitles(acreg ///
        ols_spat acreg_b ols_spat_b 2hdfespat_b)

----------------------------------------------------------------------------
                      (1)             (2)             (3)             (4)   
                    acreg        ols_spat         acreg_b      ols_spat_b   
----------------------------------------------------------------------------
X1_it               0.739***        0.739***        0.739***        0.739***
                   (3.54)          (3.54)          (3.78)          (3.78)   

Z_it                1.453***        1.453***        1.453***        1.453***
                  (26.49)         (26.49)         (28.50)         (28.50)   
----------------------------------------------------------------------------
N                    1000            1000            1000            1000   
----------------------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

可以看到,在同时考虑空间和时间相关之后,两个变量估计的标准误出现了细小差别,acreg 估计的标准误更大一点。

3.3.4 固定效应模型

考虑空间和时间相关,以及高维固定效应,这里控制个体和时间固定效应。

. *binary weighting matrix
. *acreg
. qui acreg Y_it X1_it Z_it , pfe2(id) pfe1(time) spatial ///
      latitude(lat) longitude(lon) dist(500) id(id) time(time) lag(10) hac
. est store m1
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const id_d2-id_d100 ///
      time_d2-time_d10, lat(lat) lon(lon) panelvar(id)    ///
                  timevar(time) distcutoff(500) lagcutoff(10)
. est store m2

. *linear bartlett window
. *acreg
. qui acreg Y_it X1_it Z_it , pfe2(id) pfe1(time) spatial ///
      latitude(lat) longitude(lon) dist(500) id(id)       ///
                  time(time) lag(10) hac bartlett
. est store m3
. *ols_spatial_HAC (ols_spat)
. qui ols_spatial_HAC Y_it X1_it Z_it const id_d2-id_d100 ///
      time_d2-time_d10, lat(lat) lon(lon) panelvar(id)    ///
                  timevar(time) distcutoff(500) lagcutoff(10) bartlett
. est store m4

. *table of results
. esttab m1 m2 m3 m4, keep( X1_it Z_it) mtitles(acreg ols_spat ///
         acreg_b ols_spat_b 2hdfespat_b)
----------------------------------------------------------------------------
                      (1)             (2)             (3)             (4)   
                    acreg        ols_spat         acreg_b      ols_spat_b   
----------------------------------------------------------------------------
X1_it               0.740***        0.740***        0.740***        0.740***
                   (3.39)          (3.39)          (3.75)          (3.75)   

Z_it                1.418***        1.418***        1.418***        1.418***
                  (28.84)         (28.84)         (29.06)         (29.06)   
----------------------------------------------------------------------------
N                    1000            1000            1000            1000   
----------------------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

这里控制了两种固定效应后,系数和显著性的差异变化很小,很大可能是因为这是作者构造的模拟数据。但是,这里两个命令估计的系数标准误略有差异,acreg 估计的标准误小一点。

4. 参考文献

  • Baum C F, Schaffer M E, Stillman S. Instrumental variables and GMM: Estimation and testing[J]. The Stata Journal, 2003, 3(1): 1-31. -PDF-
  • Bertrand M, Duflo E, Mullainathan S. How much should we trust differences-in-differences estimates?[J]. The Quarterly journal of economics, 2004, 119(1): 249-275. -PDF-
  • Cameron A C, Miller D L. A practitioner’s guide to cluster-robust inference[J]. Journal of human resources, 2015, 50(2): 317-372. -PDF-
  • Conley T G. GMM estimation with cross sectional dependence[J]. Journal of econometrics, 1999, 92(1): 1-45. -PDF-
  • Colella F, Lalive R, Sakalli S O, et al. Inference with arbitrary clustering[J]. 2019. -PDF-
  • Hsiang S M. Temperatures and cyclones strongly associated with economic production in the Caribbean and Central America[J]. Proceedings of the National Academy of sciences, 2010, 107(35): 15367-15372. -PDF-
  • Messner S F, Anselin L, Baller R D, et al. The spatial patterning of county homicide rates: An application of exploratory spatial data analysis[J]. Journal of Quantitative criminology, 1999, 15(4): 423-450. -PDF-
  • White H. A heteroskedasticity-consistent covariance matrix estimator and a direct test for heteroskedasticity[J]. Econometrica: journal of the Econometric Society, 1980: 817-838. -PDF-
  • 洪永淼, 赵西亮, 吴吉林. 高级计量经济学[M]. 高等教育出版社, 2011.

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 标准误 异方差, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

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

课程主页

课程主页

关于我们

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

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

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

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

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