IV-控制函数法-内生性和 Hausman 检验的原理解读
2024-01-08
雷诺
9122

连享会   主页 || 推文 || 知乎 || B 站 || 在线课堂

New! 搜推文,找资料,用 lianxh 命令:
安装: ssc install lianxh, replace
使用: lianxh 合成控制
       lianxh DID + 多期, w


作者: 雷诺 (新加坡国立大学)
邮箱: leinuo@u.nus.edu

Source:

  • Stack Overflow, 2023, IV regression, endogeniety and Wu-hausman question, -Link-
  • Stack Overflow, 2020, Endogenous interaction term in a triangular system using control function (CF) approach, -Link-

1. 控制函数法介绍

与传统的 2SLS 和 IV 等估计方法一样,控制函数法(Control Function approach, CF approach)多用于处理内生性问题,其工具变量也需要满足外生性(与误差项不相关)和相关性(与内生解释变量有强相关性)。然而,控制函数法的不同之处在于,它不是简单地用第一阶段回归的预测值来替换内生变量,而是将第一阶段回归产生的残差作为一个新的控制变量引入到原模型中。以此控制可能与内生变量相关的未观测因素,从而纠正它们对估计结果的带来潜在偏误。

虽然在设定较为简单的模型中,控制函数法和 2SLS、IV 得到的估计结果是相同的,但是控制函数法具有以下两大优势:

  • Hausman 检验的简便性

    控制函数方法提供了一个简单的 Hausman 检验(1978年),即通过比较 OLS 和 2SLS 检验模型是否存在内生性问题。此检验的优势在于其对模型中可能存在的异方差性和群集相关性(包括面板数据结构中的序列相关性)保持稳健,即便这些特性的具体形态未知。

  • 处理复杂模型的简约性

    控制函数法能简化非线性内生变量的处理,从而允许以较简单的方式分析复杂模型。

本文将围绕控制函数法中 Hausman 检验如何检测内生性问题展开讨论。此外,对于不同模型设定下控制函数法的计算和 Stata 实现可以参考一下推文:

2. 内生性和 Hausman 检验的原理

2.1 引例:工具变量的选择

2.1.1 问题的提出

假设我们有如下模型,其中 wagewage 可能存在内生性问题:

hours=β1+β2ln(wage)+β3educ+β4age+β5kidsl6+β6kidsl618+β7nwifeinc+ϵhours=\beta_1+\beta_2 \ln (wage)+\beta_3 educ+\beta_4 age \\ +\beta_5 kidsl6+\beta_6 kidsl618 +\beta_7 nwifeinc + \epsilon

当使用 经验(experexperexper2exper2兄弟姐妹数量(siblingssiblings 作为工具变量时,Hausman 检验指出模型 存在内生性。但是,当改用 母亲教育程度(mothereducmothereduc父亲教育程度(fathereducfathereduc个人受教育程度(heducheduc 作为工具变量时,检验结果表明 没有内生性问题。这一结果引发疑问,因为从理论上讲,模型的内生性是固定不变的,不应受所选工具变量影响。那么,出现这种情况的原因是什么呢?

1. IV:经验和兄弟姐妹数量

1.1 IV:经验 (exper,exper2exper, exper2)

// OLS
. reg hours lwage $x2list, vce(robust) 
. estimate store REG

// 2SLS, IV: 经验(exper, exper2)
. ivregress 2sls hours (lwage = exper exper2) $x2list, ///
            vce(robust) first 
. estimate store REGIV

//比较 OLS 和 IV 的回归结果
. esttab REG REGIV , se(%12.4f) b(%12.5f)  ///
         star(* 0.10 ** 0.05 *** 0.01)     ///
         mtitles("OLS" "IV")               ///
         title("Model test") nogap compress

下面,我们来进行 内生性检验

//Hausman检验:检验内生性
. estat endogenous 

  Tests of endogeneity
  Ho: variables are exogenous

  Robust score chi2(1)       =  22.2071  (p = 0.0000)
  Robust regression F(1,420) =   26.355  (p = 0.0000) 
//拒绝变量外生的原假设,接受模型存在内生性问题的备择假设

内生性的检验结果表明在 1% 的显著性水平上可以拒绝原假设,表明在 1% 的显著性水平上,lwagelwage 变量是内生的。

过度识别约束检验 是对 工具变量的外生性 进行检验。在 恰足识别 情况下,我们无法对工具变量的外生性进行直接检验, 但是在过度识别情况下,我们就可以检验多余的工具变量是否与干扰项不相关。

下面,我们用 过度识别检验 检验工具变量的外生性:

//检验过度识别检验
. estat overid 

  Test of overidentifying restrictions:
  Score chi2(1)          =  1.23424  (p = 0.2666) 
//不能拒绝过度识别限制下的原假设,即所有的工具变量可能都是外生的

由于 p = 0.2666,当时用经验(experexper, exper2exper2)作为工具变量时,我们不能拒绝过度识别限制下的原假设,所有的工具变量(experexperexper2exper2)可能都是外生的。

1.2 IV:兄弟姐妹数量 (siblings)

// IV: 兄弟姐妹数量 (siblings)
ivregress 2sls hours (lwage = siblings) $x2list,///
          vce(robust) first 

 estimate store IVREGsib

//比较 OLS 和 IVsibling 的回归结果
  esttab REG IVREGsib , se(%12.4f) b(%12.5f)///
         star(* 0.10 ** 0.05 *** 0.01)///
         mtitles("ols" "IVsibling")///
         title("Model test") nogap compress

//Hausman检验:检验内生性
 estat endogenous 

  Tests of endogeneity
  Ho: variables are exogenous

  Robust score chi2(1)            =  4.30171  (p = 0.0381)
  Robust regression F(1,420)      =   4.2976  (p = 0.0388) 
  //拒绝变量外生的原假设,接受模型存在内生性问题的备择假设

内生性的检验结果表明在 5% 的显著性水平上可以拒绝变量是外生的原假设,即在 5% 的显著性水平上 lwagelwage 变量是内生的。

此时由于内生变量和工具变量的数量相同,即 恰足识别 ,我们无法对工具变量的外生性进行直接检验。

2. IV:父母和个人教育程度

当分别使用母亲教育程度(mothereducmothereduc)、父亲教育程度(fathereducfathereduc)和个人受教育程度(heducheduc)作为工具变量时,Hausman 检验指出模型 不存在内生性问题。结果展示如下:

2.1 IV:母亲教育程度 (mothereducmothereduc)

// IV:母亲教育程度(mothereduc)
. ivregress 2sls hours (lwage = mothereduc) $x2list,  ///
          vce(robust) first 
. estimate store IVREGmother

//比较 OLS 和 IVmother 的回归结果
. esttab REG IVREGmother , se(%12.4f) b(%12.5f) ///
         star(* 0.10 ** 0.05 *** 0.01)          ///
         mtitles("ols" "IVmother")              ///
         nogap compress

//Hausman检验:检验内生性
. estat endogenous 

  Tests of endogeneity
  Ho: variables are exogenous

  Robust score chi2(1)            =  .023462  (p = 0.8783)
  Robust regression F(1,420)      =  .023051  (p = 0.8794) 
//不能拒绝变量外生的原假设,即模型不存在内生性

2.2 IV:父亲教育程度 (fathereducfathereduc)

// IV:父亲教育程度(fathereduc)
. ivregress 2sls hours (lwage = fathereduc) $x2list, ///
            vce(robust) first 

. estimate store IVREGfather

//比较 OLS 和 IVfather 的回归结果
. esttab REG IVREGfather , se(%12.4f) b(%12.5f) ///
         star(* 0.10 ** 0.05 *** 0.01)          ///
         mtitles("ols" "IVfather") nogap compress              
         
//Hausman检验:检验内生性
. estat endogenous 

  Tests of endogeneity
  Ho: variables are exogenous

  Robust score chi2(1)            =  .763741  (p = 0.3822)
  Robust regression F(1,420)      =  .756369  (p = 0.3850) 
//不能拒绝变量外生的原假设,即模型不存在内生性

2.3 IV:配偶教育程度 (heducheduc)

// IV:配偶教育程度 (heduc)
. ivregress 2sls hours (lwage = heduc) $x2list, vce(robust) first

. estimate store IVREGhusband

//比较 OLS 和 IVheduc 的回归结果
. esttab REG IVREGhusband , se(%12.4f) b(%12.5f) ///
         star(* 0.10 ** 0.05 *** 0.01)          ///
         mtitles("ols" "IVhusband") nogap compress 

//Hausman检验:检验内生性
. estat endogenous

  Tests of endogeneity
  Ho: variables are exogenous

  Robust score chi2(1)            =  .646754  (p = 0.4213)
  Robust regression F(1,420)      =  .641961  (p = 0.4235)
//不能拒绝变量外生的原假设,即模型不存在内生性

内生性的检验结果表明,当用父母教育程度和配偶教育程度做工具变量时,p 值均大于 0.1,即我们不能拒绝变量外生的原假设。

比较 OLS, IV, IVsibling, IVmother, IVfather 和 IVhusband 的回归结果

// 比较 OLS, IV, IVsibling, IVmother, IVfather 和 IVhusband 的回归结果
esttab REG REGIV IVREGsib IVREGmother IVREGfather IVREGhusband ,///
       se(%12.4f) b(%12.5f) star(* 0.10 ** 0.05 *** 0.01) ///
       mtitles("ols" "IV" "IVsibling" "IVmother" "IVfather" "IVhusband")///
       title("Model test") nogap compress 

Model Test
-------------------------------------------------------------------------------------------
                 (1)           (2)           (3)           (4)           (5)           (6)   
                 OLS            IV     IVsibling     IVmother      IVfather     IVhusband   
-------------------------------------------------------------------------------------------
lwage       -17.408    1544.819***    2896.553      -106.410        599.808       652.999   
             (81.38)      (598.80)    (3672.99)      (590.13)       (775.64)      (905.99)   
educ        -14.445     -177.449***  -318.490         -5.158        -78.846       -84.396   
             (18.21)       (66.85)    (381.47)        (64.91)        (84.45)       (97.88)   
age          -7.730      -10.784      -13.427         -7.556         -8.937        -9.041   
              (5.85)       (10.58)     (17.77)         (5.98)         (6.77)        (7.20)   
kidsl6     -342.505***  -210.834       -96.904      -350.006***    -290.483*     -286.000*   
            (131.77)    (203.91)      (471.77)       (135.60)       (159.97)      (173.23)   
kids618    -115.021***   -47.557        10.816     -118.864***     -88.367*      -86.070*   
             (29.51)     (56.48)      (187.38)       (37.42)        (46.33)       (51.86)   
nwifeinc     -0.004      -0.009*       -0.014         -0.004         -0.006        -0.006   
              (0.003)     (0.005)      (0.014)        (0.004)        (0.004)       (0.005)   
_cons      2114.697***  2432.198***   2706.919**   2096.609***    2240.138***   2250.948*** 
            (350.32)    (611.22)     (1153.15)      (382.82)       (416.83)      (447.98)   
-------------------------------------------------------------------------------------------
N                428         428          428          428           428           428   
-------------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.10, ** p<0.05, *** p<0.01

2.1.2 内生性和 Hausman 检验的原理

为了理解这个问题,首先我们需要理解内生性检验是如何工作的。

假设 yy 作为被解释变量,而解释变量 xx 存在内生性,即:

yi=α+βxi+ϵi(1)corr\begin{aligned} & y_i=\alpha+\beta x_i+\epsilon_i \hspace{2cm} (1) \\ & \hspace{1.5cm}\nwarrow \hspace{0.1cm}\nearrow \\ & \hspace{1.7cm} corr \end{aligned}

接下来,我们用工具变量 zz 检验 xx 是否是内生的。

在对内生变量进行工具变量回归分析时,变量 xx 的变动可被划分为两个部分:可解释部分(该部分被视为外生,因为工具变量 zz 被假设为外生)和不可解释部分

xi=a+πzi 可解释部分 +ηi 不可解释部分 (2)x_i=\underbrace{a+\pi z_i}_{\text { 可解释部分 }}+\underbrace{\eta_i}_{\text { 不可解释部分 }} \hspace{2cm}(2)

注意,有效的工具变量需要满足以下两个假设:

  1. 工具必须影响内生变量,corr(xi,zi)0\text{corr}(x_i, z_i) \neq 0
  2. 工具不能与结构性误差相关,corr(zi,ϵi)=0\text{corr}(z_i, \epsilon_i) = 0

如果任一假设不被满足,我们则无法有效地利用所选工具变量来提取变量 xx 的外生变异部分,因为该工具变量可能是弱相关的,或者它自身并非真正外生。

接下来的内生性检验我们会用到控制函数法,即:

  • Stage1:对(2)式中内生变量的残差项 η^\hat{\eta} 进行估计。
  • Stage2:对假设 H0:δ=0H_0: \delta = 0 进行检验:

yi=α+βxi+δη^i+ϵi(3)y_i=\alpha+\beta x_i+\delta \hat{\eta}_i+\epsilon_i \hspace{2cm} (3)

如果我们拒绝这个零假设,则意味着变量 xx 的变异中的“坏”部分(即我们之前分离出的残差 η^\hat{\eta})对结果有显著的影响,表明可能存在内生性问题。

现在,我们会发现为什么检验工具选择很重要了。在先前的例子中,有些工具变量没有满足条件一,即它们与内生变量的相关度不够强。比如,母亲的教育、父亲的教育和配偶的教育这几个工具变量的第一阶段 F 统计量(对应于单个工具情况下的 t 统计量的平方)分别只有 2.99、2.5 和 2.43。通常情况下,我们会对 F 统计量小于 10 的工具变量表示怀疑,因此这三个工具变量不太可能是好的工具变量,基于它们进行的任何内生性检验也就缺乏可信度。

2.2 应用:内生交乘项的处理

接下来,我们将按照 2.1.2 小节中介绍的 Hausman 检验原理来处理交乘项潜在的内生性问题。现在,考虑以下模型:

y1=β0+β1×w+β2×y2+β3×wy2+β4×x1+β5×x2+u1y_1=\beta_0+\beta_1 \times w+\beta_2 \times y_2 \\ + \beta_3 \times w * y_2 +\beta_4 \times x_1+\beta_5 \times x_2+u_1

这里我们感兴趣的是交乘项 wy2w * y_2,同时 ww 是外生变量, x1x_1x2x_2 是控制变量。此外,我们有理论上的理由认为 y2y_2wy2w * y_2 是内生变量,且 y2y_2 受到 ww 的影响:

y2=γ0+γ1×w+γ2×z+γ3×x1+γ4×x2+u2y_2=\gamma_0+\gamma_1 \times w+\gamma_2 \times z \\+\gamma_3 \times x_1+\gamma_4 \times x_2+u_2

其中,zz 是一个标量或一组额外的外生变量。

根据 Hausman 检验原理,估计此模型我们需要:

  • Stage1.1:用 wwzzwzw * z 以及控制变量 xx's 对 y2y_2 进行回归,得到残差 u^2\hat{u}_2
  • Stage1.2:用 wwzzwzw * z 以及控制变量 xx's 对 wy2w * y_2 进行回归,得到残差 u^3\hat{u}_3
  • Stage2:用 wwy2y_2wy2w * y_2xx's、u^2\hat{u}_2u^3\hat{u}_3y1y_1 进行回归。

通过 Hausman 检验,我们可以确定是否需要使用 Stage1.1 和 Stage1.2 中的残差 u^2\hat{u}_2u^3\hat{u}_3 来控制 y1y_1 的内生性问题。如果检验指出内生性确实存在,则在 Stage2 回归中加入这些残差可以帮助修正内生性偏误。

此外,与在 Stage1.1 和 Stage1.2 中得到 残差 的方法不同,我们可以通过 2SLS 得到相同的估计值。具体来说,就是在 Stage1.1 和 Stage1.2 中得到内生变量 y2y_2拟合值 y^2\hat{y}_2,以及交互项 w×y2w \times y_2拟合值 w×y2^\widehat{w \times y_2},然后在 Stage2 中使用这些拟合值和外生控制变量 xsx'sy1y_1 进行回归。

3. Stata 实现

最后,我们用模拟数据比较当模型具有内生性问题时,控制函数法、2SLS 和 OLS 的估计结果。假设 ww 是内生变量,zz 是工具变量,x1x_1x2x_2 是控制变量:

set seed 1234 // 设置随机数种子以确保结果的可重复性

clear
set obs 100 // 创建模拟数据集

gen z = rnormal() // 生成工具变量 z
gen x1 = rnormal() // 生成控制变量 x1
gen x2 = rnormal() // 生成控制变量 x2
gen v = rnormal() // 生成与 y 相关的变量 v,引入内生性
gen w = 1 + z + 0.5*v + rnormal() // 生成内生解释变量 w
gen y = 2 + 3*w + 4*x1 + 5*x2 + v + rnormal() // 生成因变量 y

采用码生成模拟数据以后,我们开始分别展示基于 OLS、控制函数和 2SLS 的估计结果,并进行相关的检验和对比。

* OLS
reg y w x1 x2 
estimates store OLS

* CF
// stage1 用 z 估计 w 的第一阶段回归
reg w z x1 x2 
// 预测残差项 u2,其中应包含与 y 相关的内生性信息
predict u2, residual  

// stage2 将内生的残差项 u2 加入原始模型回归
reg y w x1 x2 u2
estimates store CF

// 检验残差项 u2 的显著性
test u2 

 ( 1)  u2 = 0

       F(  1,    95) =    7.00
            Prob > F =    0.0095 
// 残差项 u2 在 1% 的显著性水平上显著,
// 根据 2.1.2 小节中 Hausman 检验的原理,
// 在 1% 的显著性水平上拒绝变量是外生的原假设,
// 接受至少有一个变量是内生的备择假设。

* 2SLS
// 将 z 作为内生变量 w 的工具变量
ivregress 2sls y (w = z) x1 x2
estimates store TSLS

// 使用 estout 列出结果
estout OLS CF TSLS, ///
cells(b(star fmt(%9.3f)) se(par fmt(%9.2f))) ///
stats(N, fmt(%9.0g) labels("Observations"))

------------------------------------------------------------
                      OLS              CF            TSLS   
                     b/se            b/se            b/se   
------------------------------------------------------------
w                   3.409***        3.105***        3.105***
                   (0.10)          (0.15)          (0.16)   
x1                  4.120***        4.073***        4.073***
                   (0.14)          (0.13)          (0.14)   
x2                  5.144***        5.086***        5.086***
                   (0.13)          (0.12)          (0.13)   
u2                                  0.501**                 
                                   (0.19)                   
_cons               1.552***        1.878***        1.878***
                   (0.17)          (0.21)          (0.22)   
------------------------------------------------------------
Observations          100             100             100   
------------------------------------------------------------

系数比较

  1. OLS模型 的估计系数可能受到内生性偏误的影响,因为它没有纠正可能存在的内生变量 ww 的偏误。这通常会导致估计系数偏大或偏小,取决于内生性问题的性质和方向。
  2. CF模型 中,ww 的估计系数较 OLS 模型有所降低,这可能表明控制了一部分内生性偏差。在 CF 模型中,u2u_2 的系数显著不为零,(根据 2.1.1 小节中的讨论)说明 ww 存在内生性,并且这种方法可能已经纠正了部分内生性偏差。
  3. 2SLS模型 提供了与 CF 模型相同的估计结果,这通常意味着用作工具变量的 zzww 之间的关系足够强,使得 2SLS 能有效地作为一种工具变量估计方法来纠正内生性。
estat endogenous

  Tests of endogeneity
  H0: Variables are exogenous

  Durbin (score) chi2(1)          =  6.86219  (p = 0.0088)
  Wu-Hausman F(1,95)              =  6.99939  (p = 0.0095) 
// 在 1% 的显著性水平上拒绝变量是外生的原假设,
// 接受至少有一个变量是内生的备择假设。

内生性问题

Durbin(score)检验Wu-Hausman F 检验都拒绝了变量是外生的原假设(p 值分别为 0.0088 和 0.0095),这表明至少有一个解释变量是内生的,这进一步验证了 CF 和 2SLS 模型的必要性。

4. 总结

  1. 控制函数法
    • 通过将第一阶段的 残差项 加入第二阶段解决内生性问题。
    • 如果 残差项 在第二阶段显著,则表明解释变量存在内生性问题。
  2. 2SLS 和 IV 方法
    • 通过 工具变量 解决内生性问题。
    • 通过比较 2SLS 或 IV 与 OLS 的差异检验内生性。
    • 内生性检验 显著,则表明解释变量存在内生性问题。
  3. 总结
    • 控制函数法和 2SLS/IV 都是处理内生性的方法。
    • Hausman 检验可以帮助我们确定使用这些策略的必要性。

5. 参考资料

6. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 控制函数法 内生性 Hausman

安装最新版 lianxh 命令:
ssc install lianxh, replace

[(https://www.lianxh.cn/details/1543.html)

资源共享


尊敬的老师 / 亲爱的同学们:
连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。
请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。
我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。more……
  • 扫码加入连享会微信群,提问交流更方便