在Stata的实现中,可以使用鲁棒选项,当残差方差不恒定时,可以使用常规线性回归。使用稳健选项不会更改参数估计值,但使用三明治方差估计器计算标准误差(SE)。在这篇文章中,我将简要介绍使用稳健的区间回归的基本原理,并强调如果残差方差不是常数,与常规线性回归不同,则区间回归估计是有偏差的。
用于常规线性回归的稳健SE
在常规线性回归中,如果残差方差不是常数,则回归参数估计值仍然是无偏的,但SE则不然。处理SE中偏差的一种途径是使用Huber / White三明治SE。为了说明这一点,我们生成了一些简单的(X,Y)数据,其中Y遵循给定X的线性回归,但是残差方差是X的函数,因此违反了常数方差假设:
clear
set seed 1234
set obs 100000
gen x = 3 * runiform()
gen res_sd = exp(x)
gen y = x + res_sd * rnormal()
如果我们然后运行线性回归,首先没有robust选项,然后使用,我们获得:
. reg y x
Source | SS df MS Number of obs = 100000
-------------+------------------------------ F( 1, 99998) = 1188.55
Model | 78897.8401 1 78897.8401 Prob > F = 0.0000
Residual | 6638041.59 99998 66.3817435 R-squared = 0.0117
-------------+------------------------------ Adj R-squared = 0.0117
Total | 6716939.43 99999 67.170066 Root MSE = 8.1475
------------------------------------------------------------------------------
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x | 1.027518 .0298045 34.48 0.000 .9691014 1.085934
_cons | -.0177612 .0514732 -0.35 0.730 -.1186481 .0831258
------------------------------------------------------------------------------
. reg y x, robust
Linear regression Number of obs = 100000
F( 1, 99998) = 713.39
Prob > F = 0.0000
R-squared = 0.0117
Root MSE = 8.1475
------------------------------------------------------------------------------
| Robust
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x | 1.027518 .0384705 26.71 0.000 .9521162 1.102919
_cons | -.0177612 .0359651 -0.49 0.621 -.0882524 .0527301
------------------------------------------------------------------------------
用于生成数据的Y和X之间的真实回归系数是1,并且我们看到out估计是无偏的(接近1),尽管非恒定的残差方差。基于模型和鲁棒SE之间的差异是由于鲁棒SE松弛恒定方差假设的事实,该假设违反了这个(大)数据集。
区间回归
如上所述,区间回归允许我们处理这样的情况:对于某些记录,结果的值未被精确观察,但受到间隔,左或右删失的影响。区间回归通过计算结果值位于已知范围内的相应概率来包括来自删失记录的似然贡献来适应这一点。例如,如果我们只知道特定记录/个体的结果值大于2,则Stata计算对应的可能性贡献。
Stata的intreg命令还允许使用鲁棒选项,这为我们提供了参数估计的抽样方差的有效估计。有人可能会合理地认为,即使错误具有非恒定方差,这样做也可以让我们获得有效的推论。然而,与常规线性回归的情况不同,事实证明,当误差具有非恒定方差时,参数估计通常是有偏差的。这是因为在似然计算中对删失观察的处理依赖于正态性的分布假设和残差的恒定方差。为了凭经验证明这一点,我们可以采用我们的模拟数据集,审查一些结果值,并使用intreg来拟合回归模型:
. replace =2 if y>2
(38110 real changes made)
. gen depvar2=y
(38110 real changes made, 38110 to missing)
.
Fitting constant-only model:
Iteration 0: log likelihood = -247972.92
Iteration 1: log likelihood = -236859.06
Iteration 2: log likelihood = -236635.97
Iteration 3: log likelihood = -236635.67
Iteration 4: log likelihood = -236635.67
Fitting full model:
Iteration 0: log likelihood = -248343.77
Iteration 1: log likelihood = -236509.35
Iteration 2: log likelihood = -236241.11
Iteration 3: log likelihood = -236240.65
Iteration 4: log likelihood = -236240.65
Interval regression Number of obs = 100000
LR chi2(1) = 790.03
Log likelihood = -236240.65 Prob > chi2 = 0.0000
------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x | -.7679952 .0268782 -28.57 0.000 -.8206754 -.715315
_cons | 2.222817 .0452328 49.14 0.000 2.134162 2.311471
-------------+----------------------------------------------------------------
/lnsigma | 1.929401 .0030675 628.97 0.000 1.923389 1.935414
-------------+----------------------------------------------------------------
sigma | 6.885387 .0211212 6.844114 6.926908
------------------------------------------------------------------------------
Observation summary: 0 left-censored observations
61890 uncensored observations
38110 right-censored observations
0 interval observations
X的截距和系数现在分别从它们的真实值0和1偏差(估计值为2.22和-0.77) – 这是非常数残差方差的结果。因此,对于标准线性回归,非常数残差方差不会偏差估计,对于区间回归则不然。我们现在可以继续使用强大的标准错误:
Fitting constant-only model:
Iteration 0: log pseudolikelihood = -247972.92
Iteration 1: log pseudolikelihood = -236859.06
Iteration 2: log pseudolikelihood = -236635.97
Iteration 3: log pseudolikelihood = -236635.67
Iteration 4: log pseudolikelihood = -236635.67
Fitting full model:
Iteration 0: log pseudolikelihood = -248343.77
Iteration 1: log pseudolikelihood = -236509.35
Iteration 2: log pseudolikelihood = -236241.11
Iteration 3: log pseudolikelihood = -236240.65
Iteration 4: log pseudolikelihood = -236240.65
Interval regression Number of obs = 100000
Wald chi2(1) = 751.14
Log pseudolikelihood = -236240.65 Prob > chi2 = 0.0000
------------------------------------------------------------------------------
| Robust
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x | -.7679952 .028022 -27.41 0.000 -.8229173 -.7130731
_cons | 2.222817 .03622 61.37 0.000 2.151827 2.293807
-------------+----------------------------------------------------------------
/lnsigma | 1.929401 .0062859 306.94 0.000 1.917081 1.941722
-------------+----------------------------------------------------------------
sigma | 6.885387 .0432812 6.801078 6.970741
------------------------------------------------------------------------------
Observation summary: 0 left-censored observations
61890 uncensored observations
38110 right-censored observations
0 interval observations
在这里使用鲁棒确实在某种程度上改变了截距/常数的SE,但问题是使用鲁棒不会影响仍然存在偏差的参数估计。
结论
我们基于区间回归的估计(假设正态分布的常数方差误差)通常会有偏差。这不是区间回归本身的缺陷,而仅仅是处理审查的反映,对错误的分布假设比标准线性回归更重要。
非常感谢您阅读本文,有任何问题请在下面留言!
1
1
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。