工具变量检验

本文详细介绍了在使用工具变量(IV)进行2阶段最小二乘法(2SLS)回归时的三个关键检验:不可识别检验、弱IV检验和过度识别检验。不可识别检验关注工具变量的数量是否足够;弱IV检验通过多个标准判断工具变量的强度;过度识别检验则评估工具变量的外生性。正确执行这些检验对于确保回归结果的有效性和可靠性至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用IV做2SLS回归时,需要对IV进行三个方面的检验:

一、不可识别检验

即检验工具变量的个数是否少于内生解释变量的个数,使用的统计量是Anderson LM 统计量/Kleibergen-Paap rk LM统计量。

这里p值小于0.01说明在 1%水平上显著拒绝“工具变量识别不足”的原假设,也就是要求p值不能大于0.1。

检验时加robust是Kleibergen-Paap rk LM统计量;不加robust是Anderson LM 统计量。

也就是说在iid情况下看Anderson LM 统计量,在非iid情况下看Kleibergen-Paap rk LM统计量。

二、弱IV检验

弱IV是指IV与内生解释变量的相关性不强,微弱相关,弱IV会导致用IV估计的结果与用OLS,FE估计的结果相差很大,甚至符号完全相反。如果有较多工具变量,可舍弃弱工具变量,因为多余的弱工具变量反而会降低第一阶段回归的 F 统计量。

弱IV的判断有以下四个标准:
(1)偏R2,也就是Shea's partial R2,不过xtivreg2不汇报这个统计量,得用命令

estat firststage, all forcenonrobust,汇报第一阶段的结果。

(2)最小特征统计量,minimum eigenvalue statistic,这是Stock and Yogo (2005)提出来的,stata会在ivreg2中给出临界值。Staiger and Stock (1997)建议只要该值大于10就认为不存在弱IV。这个值用于iid的情况。

(3)Cragg-Donald Wald F统计量,由Cragg and Donald (1993)提出,Stata在回归时会给出临界值。CDW检验一般过15%,10%的临界值就可以,过了5%的临界值更好。

如果假设扰动项为iid,则看CDW检验统计量。如果不对扰动项作iid的假设,则看KP W rk F统计量。所以加r选项时才有KP W rk F统计量,不加则没有。不管加不加r选项,CDW统计量总有。通常建议加上r选项。

(4)Kleibergen-Paap Wald rk F统计量。对于CDW统计量和KP W rk F统计量要从估计偏误和检验水平扭曲两个方面进行判断是否存在弱IV问题。

一般情况下这四个值都会看,基本上几个值都是同向变化的。

三、过度识别检验

过度识别的前提是该模型至少是恰好识别的,也就是有效IV至少与内生解释变量一样多,愿假设是H0:所有IV都是外生的,拒绝愿假设意味着至少有一个IV不是外生的,与扰动项相关

三个统计量:

(1)Sargan统计量。Stata默认给出Sargan统计量。如果内生变量的数目和工具变量的数目完全相同。此时无需执行过度识别检验,因为模型是恰足确认的(equation exactly identified)。这里要求p大于0.1。

(2)Hansen J统计量,加选项robust时汇报Hansen J统计量,不加robust选项时汇报Sargan统计量。也就是说iid时用Sargan统计量,非iid时用Hansen J统计量。

(3)C统计量,加orthog(varlist),varlist为需要检验外生性的变量。与过度识别约束检验有关的另一个检验是对工具变量子集是否符合外生性假定的检验,可通过 difference-in-Sargan 统计量进行; 该统计量由两个 Sargan( 或 Hansen-J) 之差构成,也称为 C 统计量。

xtivreg2 ln_Cash_ratio1 (lnnumber_in_10km=popnum) $control,fe cluster(stkcd) first endog(lnnumber_in_10km)    // 报告检验结果
--- 结果读法 ---
  -- 相关性检验
     1. estat firststage 弱工具变量   ---> 若 F > 10 说明是强工具变量,好!
     
  -- 外生性检验
     2. estat overid 过渡识别检验  ---> 若 P > 0.05 说明工具变量外生,好!
     3. estat endog  Hausman 检验  ---> 若 P > 0.05 说明工具变量外生,好!

### 关于工具变量过度识别检验的相关命令 #### Stata 中的工具变量过度识别检验 在 Stata 中,可以使用 `overid` 或者 `ivreg2` 命令来进行工具变量的过度识别检验。如果模型中有多个工具变量,则可以通过 Hansen J 统计量来测试工具变量的有效性。Hansen J 统计量用于检测工具变量是否与误差项无关[^3]。 ```stata // 使用 ivregress 命令进行两阶段最小二乘法回归 ivregress 2sls y (x1 = z1 z2), vce(robust) // 安装 overid 命令(如果尚未安装) ssc install overid // 执行过度识别检验 overid ``` 上述代码中的 `overid` 是专门用来执行过度识别检验的命令,适用于线性 IV 模型。对于更复杂的模型,推荐使用 `ivreg2` 命令: ```stata // 使用 ivreg2 命令并指定 robust 和 gmm2s 选项 ivreg2 y (x1 = z1 z2), robust gmm2s ``` `ivreg2` 提供了更多的诊断统计量,包括 Sargan 检验和 Hansen J 检验,后者更适合异方差的情况[^1]。 --- #### EViews 中的工具变量过度识别检验 在 EViews 中,虽然没有像 Stata 那样直接提供 `overid` 的功能,但可以通过手动计算 Sargan 检验或者 Hansen J 检验的结果。具体步骤如下: 1. **估计工具变量回归** 在 EViews 中选择 `Equation Specification` 并输入工具变量形式: ``` Y C X1 @ Z1 Z2 ``` 2. **获取残差平方和以及自由度** 记录下工具变量回归后的残差平方和 \(RSS\) 及其对应的自由度。 3. **计算 Sargan 检验统计量** 如果有 \(m\) 个工具变量和 \(k\) 个内生变量,则 Sargan 检验统计量为: \[ S = n \cdot R^2_{\text{residual}} \] 其中 \(n\) 表示样本数量,\(R^2_{\text{residual}}\) 来自辅助回归的拟合优度。 4. **比较临界值** 将得到的 Sargan 检验统计量与卡方分布表上的临界值对比,判断是否存在过度识别问题[^5]。 --- #### Python Statsmodels 中的工具变量过度识别检验 在 Python 的 `statsmodels` 库中,可以利用 `IV2SLS` 类完成工具变量回归,并通过附加模块实现过度识别检验。以下是具体的代码示例: ```python import numpy as np import pandas as pd from linearmodels.iv import IV2SLS # 构造数据集 data = { 'y': [1, 2, 3, 4], 'x1': [2, 3, 4, 5], 'z1': [3, 4, 5, 6], # 工具变量 'z2': [4, 5, 6, 7] # 工具变量 } df = pd.DataFrame(data) # 定义模型 mod = IV2SLS.from_formula('y ~ 1 + [x1 ~ z1 + z2]', data=df) res = mod.fit() # 输出结果 print(res.summary) # 获取过度识别检验结果 j_statistic = res.j_stat.stat p_value = res.j_stat.pval print(f"Hansen's J Statistic: {j_statistic}, P-value: {p_value}") ``` 此代码片段展示了如何使用 `linearmodels` 包中的 `IV2SLS` 方法进行工具变量回归,并提取 Hansen J 检验的统计量及其 p 值。当 p 值较大时,说明无法拒绝原假设,即认为工具变量有效[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值