Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:苏湘晗 (中山大学)
邮箱:945294986@qq.com
编者按:本文主要摘译自下文,特此致谢!
Source:Michler J D, Josephson A. Recent Developments in Inference: Practicalities for Applied Economics[J]. arXiv preprint arXiv:2107.09736, 2021. -PDF-
目录
近年来,应用经济学领域在校正标准误方面取得了许多新进展。本文将综合这些进展,并结合相应的 Stata 命令来解决传统 OLS 回归中出现的问题,如异方差、聚类与序列相关性,以及检验多重假设。除此之外,还涉及数值方法的改进,如自举法以及随机化推理。
关于计算正确的标准误和检验统计量,我们提出三项具体建议:
传统假设检验的一个基本假设是,误差是同方差的,即:
这个默认的假设被嵌入 Stata 计算的标准误中。然而,在大多数实际应用中,同方差性的假设不太可能成立,残差将随着
在大样本中,我们可以依赖于 Eicker-Huber-White (EHW) 方差估计,它是渐近一致的。为了得到 EHW 稳健标准误,我们只需将 OLS 方差估计为:
其中,
在这里,HC 代表异方差是一致的 (heteroskedasticity-consistent)。但是,如果残差确实是同方差的,那么 EHW 标准误实际上将比传统标准误有更大的偏差。即使使用了适当的标准误差,传统的标准误差和 EHW 标准误差都可能会渐近偏置,导致
MacKinnon 和 White (1985) 为 EHW 标准误中的偏差提供了三种可能的修正:
第一种修正是根据样本量 (N) 和自由度 (k) 简单调整自由度:
以 nlsw88.dta 数据集为例,我们用 vce(robust)
修正,具体命令如下:
. sysuse nlsw88.dta, clear
. global x "hours ttl_exp tenure south collgrad married"
. reg wage $x, vce(robust)
Linear regression Number of obs = 2,227
F(6, 2220) = 75.34
Prob > F = 0.0000
R-squared = 0.1517
Root MSE = 5.3183
-----------------------------------------------------------------
| Robust
wage | Coefficient std. err. t P>|t| [95% CI]
---------+-------------------------------------------------------
hours | 0.053 0.011 4.78 0.000 0.031 0.075
ttl_exp | 0.252 0.030 8.48 0.000 0.193 0.310
tenure | 0.022 0.025 0.89 0.372 -0.026 0.070
south | -1.528 0.226 -6.75 0.000 -1.973 -1.084
collgrad | 3.167 0.300 10.56 0.000 2.579 3.755
married | -0.200 0.248 -0.80 0.422 -0.687 0.288
_cons | 2.546 0.455 5.59 0.000 1.653 3.439
-----------------------------------------------------------------
. est store m1
第二种修正是根据
如果数据中的所有
我们用 vce(hc2)
修正,具体命令如下:
. reg wage $x, vce(hc2)
Linear regression Number of obs = 2,227
F(6, 2220) = 75.27
Prob > F = 0.0000
R-squared = 0.1517
Root MSE = 5.3183
-------------------------------------------------------------
| Robust HC2
wage | beta std. err. t P>|t| [95% CI]
---------+---------------------------------------------------
hours | 0.053 0.011 4.77 0.000 0.031 0.075
ttl_exp | 0.252 0.030 8.48 0.000 0.193 0.310
tenure | 0.022 0.025 0.89 0.372 -0.026 0.070
south | -1.528 0.226 -6.75 0.000 -1.973 -1.084
collgrad | 3.167 0.300 10.56 0.000 2.579 3.755
married | -0.200 0.248 -0.80 0.422 -0.687 0.288
_cons | 2.546 0.456 5.59 0.000 1.653 3.440
-------------------------------------------------------------
. est store m2
第三种修正是在第二种修正的基础上将分母平方:
当残差确实是异方差时,这个修正比其他修正表现得更好;但如果残差是同方差时,这个估计将会有偏差。Angrist 和 Pischke (2009) 表明,
我们用 vce(hc3)
修正,具体命令如下:
. reg wage $x, vce(hc3)
Linear regression Number of obs = 2,227
F(6, 2220) = 74.97
Prob > F = 0.0000
R-squared = 0.1517
Root MSE = 5.3183
-------------------------------------------------------------
| Robust HC3
wage | beta std. err. t P>|t| [95% CI]
---------+---------------------------------------------------
hours | 0.053 0.011 4.76 0.000 0.031 0.075
ttl_exp | 0.252 0.030 8.46 0.000 0.193 0.310
tenure | 0.022 0.025 0.89 0.373 -0.026 0.070
south | -1.528 0.227 -6.74 0.000 -1.973 -1.084
collgrad | 3.167 0.301 10.54 0.000 2.578 3.757
married | -0.200 0.249 -0.80 0.422 -0.688 0.288
_cons | 2.546 0.457 5.58 0.000 1.651 3.442
-------------------------------------------------------------
. est store m3
三种修正的回归结果如下所示。根据对比结果可以发现,回归的系数大小不变,但 SE 小幅度变大。
. esttab m1 m2 m3, mtitle(vce(robust) vce(hc2) vce(hc3)) nogap se(%6.4f) ///
> star(* 0.1 ** 0.05 *** 0.01)
------------------------------------------------------------
(1) (2) (3)
vce(robust) vce(hc2) vce(hc3)
------------------------------------------------------------
hours 0.0531*** 0.0531*** 0.0531***
(0.0111) (0.0111) (0.0112)
ttl_exp 0.252*** 0.252*** 0.252***
(0.0297) (0.0297) (0.0297)
tenure 0.0219 0.0219 0.0219
(0.0246) (0.0246) (0.0246)
south -1.528*** -1.528*** -1.528***
(0.2265) (0.2265) (0.2269)
collgrad 3.167*** 3.167*** 3.167***
(0.2999) (0.3000) (0.3006)
married -0.200 -0.200 -0.200
(0.2485) (0.2485) (0.2489)
_cons 2.546*** 2.546*** 2.546***
(0.4553) (0.4556) (0.4566)
------------------------------------------------------------
N 2227 2227 2227
------------------------------------------------------------
Standard errors in parentheses
* p<0.1, ** p<0.05, *** p<0.01
第四种对 EHW 标准误的修正是 Bell 和 McCaffffrey (2002) 提出的 BM 校正。BM 校正不使用正态分布或自由度调整后的 reg_sandwich
,可以对小样本数据进行聚类稳健标准误纠偏处理的线性回归命令,它提供了聚类稳健标准误估计回归模型。
* 命令安装
ssc install reg_sandwich, replace
* 命令语法
reg_sandwich depvar indepvars, cluster(varname)
其中,depvar
为因变量,indepvars
为自变量和控制变量,cluster(varname)
是指用于聚类纠偏的变量。首先,使用官方命令对行业 industry 进行聚类标准误纠偏,但未作小样本纠偏处理,具体命令如下:
. reg wage $x, cluster(industry)
Linear regression Number of obs = 2,213
F(6, 11) = 81.70
Prob > F = 0.0000
R-squared = 0.1499
Root MSE = 5.3317
(Std. err. adjusted for 12 clusters in industry)
------------------------------------------------------------------------------
| Robust
wage | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.018 2.98 0.012 0.014 0.092
ttl_exp | 0.252 0.040 6.30 0.000 0.164 0.339
tenure | 0.020 0.027 0.75 0.471 -0.040 0.081
south | -1.522 0.239 -6.37 0.000 -2.047 -0.996
collgrad | 3.175 0.390 8.15 0.000 2.317 4.032
married | -0.202 0.268 -0.75 0.466 -0.792 0.387
_cons | 2.574 0.924 2.78 0.018 0.540 4.609
------------------------------------------------------------------------------
. est store m4
其次,对小样本进行纠偏处理,回归命令如下:
. reg_sandwich wage $x, cluster(industry)
Robust Small Sample Corrected standard error estimation using OLS
Number of obs = 2227
R-squared = 0.1499
Adj R-squared = 0.1476
Root MSE = 5.3317
(Std. Err. adjusted for 12 clusters in industry)
------------------------------------------------------------------------------
| Robust
wage | Coef. Std. Err. dfs p-value [95%Conf. Interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.02 3.54 0.0611 -0.0042 0.1097
ttl_exp | 0.252 0.04 4.70 0.0020 0.1445 0.3586
tenure | 0.020 0.03 4.28 0.5206 -0.0585 0.0993
south | -1.522 0.24 4.22 0.0028 -2.1828 -0.8604
collgrad | 3.175 0.50 2.69 0.0110 1.4636 4.8860
married | -0.202 0.30 4.58 0.5363 -1.0026 0.5980
_cons | 2.574 1.04 3.92 0.0705 -0.3475 5.4964
------------------------------------------------------------------------------
. est store m5
可以使用以下命令对比分析纠偏前后的回归结果:
. esttab m4 m5, mtitle(reg reg_sandwich) nogap se(%6.4f) ///
> star(* 0.1 ** 0.05 *** 0.01)
--------------------------------------------
(1) (2)
reg reg_sandwich
--------------------------------------------
hours 0.0528** 0.0528***
(0.0177) (0.0195)
ttl_exp 0.252*** 0.252***
(0.0399) (0.0409)
tenure 0.0204 0.0204
(0.0273) (0.0292)
south -1.522*** -1.522***
(0.2387) (0.2431)
collgrad 3.175*** 3.175***
(0.3895) (0.5037)
married -0.202 -0.202
(0.2679) (0.3027)
_cons 2.574** 2.574**
(0.9245) (1.0443)
--------------------------------------------
N 2213 2227
--------------------------------------------
Standard errors in parentheses
* p<0.1, ** p<0.05, *** p<0.01
根据纠偏前后的结果对比可以发现,纠偏前的 SE 通常偏小,导致
第五种修正是由 Young (2016b) 提出的有效自由度 (effective degrees of freedom,简称 EDOF) 校正,以消除偏差并调整
* 命令安装
ssc install edfreg, replace
* 命令语法
edfreg depvar indepvars, cluster(varname)
. edfreg wage $x, cluster(industry)
Linear regression Number of obs = 2,213
F(6, 11) = 81.70
Prob > F = 0.0000
R-squared = 0.1499
Root MSE = 5.3317
(Std. err. adjusted for 12 clusters in industry)
------------------------------------------------------------------------------
| Robust
wage | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.018 2.98 0.012 0.014 0.092
ttl_exp | 0.252 0.040 6.30 0.000 0.164 0.339
tenure | 0.020 0.027 0.75 0.471 -0.040 0.081
south | -1.522 0.239 -6.37 0.000 -2.047 -0.996
collgrad | 3.175 0.390 8.15 0.000 2.317 4.032
married | -0.202 0.268 -0.75 0.466 -0.792 0.387
_cons | 2.574 0.924 2.78 0.018 0.540 4.609
------------------------------------------------------------------------------
Nominal degrees of freedom == 11
| Bias Effective
| Adjusted Degrees
Variable | Coef. Std. Err. of Freedom t P>|t| [95% Conf. Interval]
-------------+-----------------------------------------------------------------
hours | .05277815 .01952374 4.5 2.70 0.048 .00079738 .10475892
ttl_exp | .25153637 .04236519 5.3 5.94 0.002 .14441144 .35866131
tenure | .02038819 .02928611 5.0 0.70 0.517 -.0548942 .09567057
south | -1.5216007 .25593342 5.0 -5.95 0.002 -2.1804233 -.86277802
collgrad | 3.1747799 .47055587 4.3 6.75 0.002 1.9085245 4.4410352
married | -.20226289 .28530694 5.2 -0.71 0.509 -.9272895 .52276373
_cons | 2.5744341 1.0081355 4.7 2.55 0.054 -.06791532 5.2167836
. est store m6
根据纠偏前后的结果对比可以发现,纠偏后的
除了同方差的假设之外,在应用经济学研究中,传统的假设是每个观察结果都是从某些群体中随机抽取的。这种独立性假设意味着回归中的残差将彼此不相关。然而,无论是从抽样方法还是实验的研究设计,大多数微观数据都是聚类、分组或分层的。随着时间的推移,从同一单位进行的重复采样会产生序列相关性,这意味着单位内的残差将是相关的。
组内相关的标准校正是由 Liang 和 Zeger (1986) 提出的,随后 LZ 将 White (1980) 的稳健协方差矩阵推广到分组数据中。这种修正让标准误对于未指定形式的聚类内部相关性是稳健的。为了得到 LZ 类稳健标准误差,只需估计 OLS 方差为:
其中,
用 vce(cluster industry)
修正,对行业 industry 进行聚类标准误纠偏,具体命令如下:
. reg wage $x, vce(cluster industry)
Linear regression Number of obs = 2,213
F(6, 11) = 81.70
Prob > F = 0.0000
R-squared = 0.1499
Root MSE = 5.3317
(Std. err. adjusted for 12 clusters in industry)
------------------------------------------------------------------------------
| Robust
wage | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.018 2.98 0.012 0.014 0.092
ttl_exp | 0.252 0.040 6.30 0.000 0.164 0.339
tenure | 0.020 0.027 0.75 0.471 -0.040 0.081
south | -1.522 0.239 -6.37 0.000 -2.047 -0.996
collgrad | 3.175 0.390 8.15 0.000 2.317 4.032
married | -0.202 0.268 -0.75 0.466 -0.792 0.387
_cons | 2.574 0.924 2.78 0.018 0.540 4.609
------------------------------------------------------------------------------
在大样本、横截面数据中,聚类校正是直接的。然而,如果我们的分组很少,或者随着时间的推移对数据进行分组,这种方法就会失效。“太少” 组的问题类似于异方差的小样本问题。从根本上说,LZ 修正依赖于渐近理论,要求簇的数量趋于无穷大的一致性。
clusteff
使用自变量向量、聚类变量检查集群大小和杠杆的异质性程度,然后计算有效的集群数量。
* 命令安装
net install st0531.pkg, replace
* 命令语法
clusteff varlist, cluster(varname)
计算 industry 集群的有效数量,使用命令及结果如下:
. clusteff $x, cluster(industry)
Warning: no variable specified for the test option.
Calculating G* under the null hypothesis: b1 = 0.
Number of clusters: 12
Estimated effective number of clusters: 2.0841147
Warning: G* estimated to be below 50.
Cameron 和 Miller (2015) 提出了一个更好的解决方案,即实现多路聚类,有效地考虑了回归 (分组数据) 中的聚类内相关性,以及残差中的聚类内相关性 (串行相关性)。多路聚类可以使用 ivreg2
实现。
ivreg2
先在第一级 (组) 计算聚类稳健方差-协方差矩阵;接着在第二级 (时间) 计算矩阵,然后在两个级别的交点 (组×时间) 计算矩阵;最后,将前两个矩阵相加后减去第三个矩阵。虽然这种方法允许沿着两个维度进行集群,但它需要在两个级别中拥有 “足够多” 的集群。
* 命令安装
ssc install ivreg2, replace
* 命令语法
ivreg2 depvar [varlist1] (varlist2=varlist_iv) [if] [in] [weight]
[, gmm gmm2s cluster(varname) partial(varlist)]
在这里我们使用 griliches76.dta 数据集,并以 year 为集群,进行面板 2-step GMM 估计。
. use http://fmwww.bc.edu/ec-p/data/hayashi/griliches76.dta, clear
. xi i.year
. ivreg2 lw s expr tenure rns _I* (iq=kww age), cluster(year) partial(_I*) gmm2s
2-Step GMM estimation
---------------------
Number of clusters (year) = 7 Number of obs = 758
F( 5, 6) = 115.34
Prob > F = 0.0000
Total (centered) SS = 104.5637468 Centered R2 = 0.2126
Total (uncentered) SS = 104.5637468 Uncentered R2 = 0.2126
Residual SS = 82.33325095 Root MSE = .3296
------------------------------------------------------------------------------
| Robust
lw | Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
iq | 0.003 0.004 0.67 0.502 -0.006 0.012
s | 0.072 0.017 4.17 0.000 0.038 0.106
expr | 0.038 0.011 3.29 0.001 0.015 0.060
tenure | 0.047 0.005 8.74 0.000 0.036 0.057
rns | -0.107 0.041 -2.63 0.009 -0.187 -0.027
------------------------------------------------------------------------------
Underidentification test (Kleibergen-Paap rk LM statistic): 5.653
Chi-sq(2) P-val = 0.0592
------------------------------------------------------------------------------
Weak identification test (Cragg-Donald Wald F statistic): 26.253
(Kleibergen-Paap rk Wald F statistic): 43.005
Stock-Yogo weak ID test critical values: 10% maximal IV size 19.93
15% maximal IV size 11.59
20% maximal IV size 8.75
25% maximal IV size 7.25
Source: Stock-Yogo (2005). Reproduced by permission.
NB: Critical values are for Cragg-Donald F statistic and i.i.d. errors.
------------------------------------------------------------------------------
Hansen J statistic (overidentification test of all instruments): 5.251
Chi-sq(1) P-val = 0.0219
------------------------------------------------------------------------------
Instrumented: iq
Included instruments: s expr tenure rns
Excluded instruments: kww age
Partialled-out: _Iyear_67 _Iyear_68 _Iyear_69 _Iyear_70 _Iyear_71
_Iyear_73 _cons
nb: total SS, model F and R2s are after partialling-out;
any small-sample adjustments include partialled-out
variables in regressor count K
------------------------------------------------------------------------------
假设人们想要测试一项政策在减少食物损失和浪费方面是否有统计学上的显著效果,有两种不同的方式来衡量。其中一个是执行两个独立的测试,当
多重假设可能会导致多重比较谬误 (family-wise error rate,简称 FWER) 或错误发现率 (false discovery rate,简称 FDR)。FWER 是指在一系列检验中至少有一次发现不显著的概率,FDR 是指在已经完成的检验中至少有一个发现不显著的概率。以下校正以及 Stata 命令能帮助人们更好地解决多重假设问题:
Westfall 和 Young (1993) 提出了一种降重方法,它允许
* 命令安装
ssc install wyoung, replace
* 命令语法
wyoung varlist, cmd(model) familyp(varlist) bootstraps(#)
[seed(#) strata(varlist) cluster(varlist) force
subgroup(varname) singlestep detail noresampling familypexp replace]
这里我们以 auto.dta 数据集为例,具体命令如下:
. sysuse auto.dta, clear
. wyoung mpg headroom turn, cmd(regress OUTCOMEVAR displacement length, ///
> cluster(rep78)) cluster(rep78) familyp(displacement) ///
> bootstraps(100) seed(20)
familyp: displacement
regress mpg displacement length, cluster(rep78)
regress headroom displacement length, cluster(rep78)
regress turn displacement length, cluster(rep78)
+--------------------------------------------------------------------------+
1. | k | model | outcome | familyp | coef | stderr |
| 1 | regress mpg~ | mpg | displacement | -.01239323 | .00449325 |
|--------------------------------------------------------------------------|
| p | pwyoung | pbonf | psidak |
| .05094428 | .45 | .15283285 | .14517911 |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+
2. | k | model | outcome | familyp | coef | stderr |
| 2 | regress headroom~ | headroom | displacement | .00087747 | .0007628 |
|--------------------------------------------------------------------------|
| p | pwyoun | pbonf | psidak |
| .31410222 | .53 | .31410222 | .31410222 |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+
3. | k | model | outcome | familyp | coef | stderr |
| 3 | regress turn~ | turn | displacement | .01268401 | .00635871 |
|--------------------------------------------------------------------------|
| p | pwyoung | pbonf | psidak |
| .11681525 | .53 | .2336305 | .2199847 |
+--------------------------------------------------------------------------+
Romano 和 Wolf (2005a,2005b) 提出了对 Westfall-Young 修正的推广。和 Westfall-Young (1993) 一样,Romano-Wolf 校正使用了一个自举重采样程序,利用了 rwolf
在 Stata 中实现 (Clarke,2016)。
* 命令安装
ssc install rwolf, replace
* 命令语法
rwolf depvars [if] [in] [weight], [options]
. sysuse auto.dta, clear
. rwolf headroom turn price rep78, indepvar(weight) controls(trunk mpg) reps(250)
Independent variable: weight
Outcome variables: headroom turn price rep78
Number of resamples: 250
------------------------------------------------------------------------------
Outcome Variable | Model p-value Resample p-value Romano-Wolf p-value
--------------------+---------------------------------------------------------
headroom | 0.6719 0.6494 0.6494
turn | 0.0000 0.0040 0.0040
price | 0.0075 0.0398 0.0598
rep78 | 0.0998 0.1155 0.1673
------------------------------------------------------------------------------
List 等人 (2019) 开发了一个依赖于类似的自举重采样程序的 FWER 校正,提出了一个额外的假设,即检验过程是在个体水平上,通过简单的随机抽样完成的。Seidel 和 Xu (2016) 提供了 mhtexp
命令来实现 List-Shaikh-Xu 校正。
但是,该命令不允许在不同的回归中使用不同的控件。所以 Steinmayr (2020) 提供了一个更通用的 mhtexp
命令版本,称为 mhtreg
,它允许在不同的回归中包含不同的控制,以及集群随机化。
* 命令安装
ssc install mhtreg, replace
* 命令语法
mhtreg (depvar indepvars [if]) (depvar indepvars [if]) [(depvar indepvars if) ] ... [, options]
. sysuse auto, clear
. mhtreg (price length trunk) (mpg length trunk)
| hyp coef p pthm3_1 pbonf pholm
-------------+------------------------------------------------------------------
r1 | 1 57.08706 .0036667 .0036667 .0073333 .0036667
r2 | 2 -.205419 .0003333 .0003333 .0006667 .0006667
随着计算成本的降低,基于数值方法的渐近改进变得越来越普遍 (Mackinnon,2006)。其中最主要的是自举法,这是由 Efron (1979,1982) 创造的一个术语。这个词来源于成语 “通过自己的引导自己”,意思是使用现有的资源来改善自己的处境。通过从现有数据中重新采样,以模拟底层数据,自举程序可以提供对人口统计数据的细化。
自举提供了一种替代传统推理的方法,它依赖于渐近公式,在许多情况下,自举改进了未知精确有限样本分布的渐近近似 (Horowitz,2019)。一个自举样本是从自己的数据中提取的,其中原始样本被视为它作为总体处理,再重复抽取一个新的随机样本,即自举样本。我们期望从数据中提取并构建的自举分布能提供一个很好的近似抽样分布。
经典的自举法 (Classic Bootstrapping) 对函数形式的分布不做任何假设。从
然后,计算我们感兴趣的系数的平均值和方差,以及其他的检验统计量,并保存它们。然后反复重复此过程,以构建复制统计信息的自举分布。
自举标准误被计算为:
其中
经典的自举法对于使用 Stata 进行估计相对简单,具体如下:
生成自举标准误的最简单方法是使用 vce(bootstrap)
,它会自动处理集群和其他模型细节。我们使用 nlsw88.dta 数据集,用 vce(bootstrap)
自举,相关命令如下:
. sysuse "nlsw88.dta", clear
. global x "hours ttl_exp tenure south collgrad married"
. reg wage $x, vce(bootstrap)
Linear regression Number of obs = 2,227
Replications = 50
Wald chi2(6) = 506.92
Prob > chi2 = 0.0000
R-squared = 0.1517
Adj R-squared = 0.1494
Root MSE = 5.3183
------------------------------------------------------------------------------
| Observed Bootstrap Normal-based
wage | coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.011 4.73 0.000 0.031 0.075
ttl_exp | 0.252 0.025 10.13 0.000 0.203 0.300
tenure | 0.022 0.020 1.10 0.272 -0.017 0.061
south | -1.528 0.232 -6.60 0.000 -1.982 -1.075
collgrad | 3.167 0.292 10.84 0.000 2.595 3.739
married | -0.200 0.282 -0.71 0.478 -0.752 0.352
_cons | 2.546 0.459 5.55 0.000 1.646 3.446
------------------------------------------------------------------------------
bsample
从数据集替换和自举出新样本,其语法格式如下:
* 命令语法
bsample [exp] [if] [in] [, options]
其中,[exp]
指定了样本的大小,使用命令如下:
bsample 200
在残差自举 (Residual Bootstrapping) 中,协变量值是固定的,并从残差分布中抽取样本,根据每个观测值的预测值和残差提取生成因变量的新估计值。与经典自举一样,重复这个过程以建立一个残差的自举分布。该方法模拟了一个具有非随机误差的样本,并确保了协变量和回归残差的同等分布。
而原始自举 (Wild Bootstrapping) 是一种放宽独立性假设以允许异方差性的方法,适用于残差序列相关或存在簇内相关时使用。原始自举可以在有限的矩下有效地匹配未知的精确有限样本分布,使推理更加可靠。
boottest
首先去掉样本中每个观测值的平均值,从而使中心分布的平均值为零。接下来,从这个中心分布中选取一个替换的样本,对于每个随机样本,计算一个
* 命令安装
ssc install boottest, replace
. sysuse nlsw88.dta, clear
. regress wage tenure ttl_exp collgrad, cluster(industry)
Linear regression Number of obs = 2,217
F(3, 11) = 56.79
Prob > F = 0.0000
R-squared = 0.1255
Root MSE = 5.402
(Std. err. adjusted for 12 clusters in industry)
------------------------------------------------------------------------------
| Robust
wage | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
tenure | 0.030 0.028 1.08 0.304 -0.032 0.093
ttl_exp | 0.273 0.047 5.81 0.000 0.170 0.376
collgrad | 3.255 0.397 8.21 0.000 2.382 4.129
_cons | 3.420 0.285 11.98 0.000 2.792 4.048
------------------------------------------------------------------------------
. boottest tenure, svmat
Wild bootstrap-t, null imposed, 999 replications, Wald test,
bootstrap clustering by industry, Rademacher weights:
tenure
t(11) = 1.0772
Prob>|t| = 0.3053
95% confidence set for null hypothesis expression: [-.04135, .1302]
随机推断 (Randomization Inference) 被认为是分析随机实验数据的一种较好的方法。尤其在样本量较少、具有聚类随机性、以及高杠杆点 (潜在离群值) 等情形下,其优势更加明显。
它的基本步骤是:(1) 保留样本的原始实验分配;(2) 根据原始实验组分配方式,重新随机分配实验组;(3) 用 “假的”,或者说 “安慰剂” 实验组作为一个附加项,重新估计原始回归方程;(4) 重复以上 (2)-(3) 过程;(5) 随机推断
* 命令安装
ssc install ritest, replace
* 命令语法
ritest resampvar exp_list [, options] : command
该语句随机排列 resampvar
exp_list
中变量的实现值。options
中有分层 strata()
和聚类 cluster()
,不设置分层即假设所有观测值在同一个单一分层中,不设置聚类即假设每个观测值为单一聚类。
. sysuse nlsw88.dta, clear
. reg wage $x
Source | SS df MS Number of obs = 2,227
-------------+---------------------------------- F(6, 2220) = 66.17
Model | 11229.3132 6 1871.5522 Prob > F = 0.0000
Residual | 62791.4974 2,220 28.2844583 R-squared = 0.1517
-------------+---------------------------------- Adj R-squared = 0.1494
Total | 74020.8106 2,226 33.2528349 Root MSE = 5.3183
------------------------------------------------------------------------------
wage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.011 4.73 0.000 0.031 0.075
ttl_exp | 0.252 0.030 8.26 0.000 0.192 0.311
tenure | 0.022 0.025 0.88 0.381 -0.027 0.071
south | -1.528 0.229 -6.66 0.000 -1.978 -1.079
collgrad | 3.167 0.267 11.86 0.000 2.643 3.691
married | -0.200 0.238 -0.84 0.401 -0.666 0.267
_cons | 2.546 0.530 4.80 0.000 1.506 3.586
------------------------------------------------------------------------------
. ritest tenure _b[tenure]: reg wage $x
Source | SS df MS Number of obs = 2,227
-------------+---------------------------------- F(6, 2220) = 66.17
Model | 11229.3132 6 1871.5522 Prob > F = 0.0000
Residual | 62791.4974 2,220 28.2844583 R-squared = 0.1517
-------------+---------------------------------- Adj R-squared = 0.1494
Total | 74020.8106 2,226 33.2528349 Root MSE = 5.3183
------------------------------------------------------------------------------
wage | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
hours | 0.053 0.011 4.73 0.000 0.031 0.075
ttl_exp | 0.252 0.030 8.26 0.000 0.192 0.311
tenure | 0.022 0.025 0.88 0.381 -0.027 0.071
south | -1.528 0.229 -6.66 0.000 -1.978 -1.079
collgrad | 3.167 0.267 11.86 0.000 2.643 3.691
married | -0.200 0.238 -0.84 0.401 -0.666 0.267
_cons | 2.546 0.530 4.80 0.000 1.506 3.586
------------------------------------------------------------------------------
Command: regress wage hours ttl_exp tenure south collgrad married
_pm_1: _b[tenure]
res. var(s): tenure
Resampling: Permuting tenure
Clust. var(s): __000001
Clusters: 2246
Strata var(s): none
Strata: 1
------------------------------------------------------------------------------
T | T(obs) c n p=c/n SE(p) [95% Conf. Interval]
-------------+----------------------------------------------------------------
_pm_1 | .0219466 27 100 0.2700 0.0444 .1860664 .3680163
------------------------------------------------------------------------------
Note: Confidence interval is with respect to p=c/n.
Note: c = #{|T| >= |T(obs)|}
Note:产生如下推文列表的 Stata 命令为:
lianxh 标准误 随机推断, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh