第三种内生性:衡量偏误(测量误差)如何检验-dgmtest?

发布时间:2020-10-06 阅读 131

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

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

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

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

作者: 陈贤孟 (厦门大学)
邮箱: cxminjnu@163.com

[编者按]: 本文介绍的内容来自如下论文,特此致谢!

[Source]: Lee, Y. J., & Wilhelm, D. (2020). Testing for the presence of measurement error in Stata. The Stata Journal, 20(2), 382-404. -Link-


目录


1. 引言

测量误差」 (Measurement Error,也称为「衡量偏误」) 是内生性的主要来源之一。相对于另外两种文献中经常提及的内生性来源——「遗漏变量」、「互为因果」,大家对「测量误差」的关注非常有限。在实证研究过程中,若解释变量存在测量误差,往往会使得研究者无法一致地估计解释变量的系数。那们如何判断解释变量是否存在测量误差?

Lee and Wilhelm (2020) 系统介绍如何运用 Stata 检验解释变量的测量误差。

  • 首先,构建如下检验假设:

  其中,X 表示解释变量的观测值,X 表示解释变量的真实值。

  • 然后,他们又分别通过「参数方法」和「非参数方法」对上述假设进行检验。

接下来,我们将对上述两种检验方法进行详细介绍。

2. 检验测量误差的参数方法

2.1 基本原理

首先,考虑以下的一元线性回归模型:

通常,我们无法直接观测到真实值 X,故会使用观测值 X 作为真实值 X 的度量。为检验 X 是否存在测量误差,我们需要找到一个合适的工具变量 Z (满足外生性条件和相关性条件)。

Hausman (1978) 指出,若不存在测量误差,OLS 估计量和 IV 估计量均是一致的,反之,则仅有 IV 估计量是一致的。因此,我们可以将 OLS 估计量和 IV 估计量进行对比,若 IV 估计量和 OLS 估计量存在显著差异,则解释变量存在测量误差。

在实践中,一种常见的等价做法是,对如下方程进行回归,并检验工具变量 Z 的系数 γ¯ 是否显著为 0,以判断解释变量是否存在测量误差,具体如下:

Lee and Wilhelm (2020) 指出,当式 (2) 成立时,拒绝假设 (4) 等价于拒绝假设 (1),表明解释变量存在测量误差问题。反之,则不成立,即无法拒绝假设 (4) 并不意味着解释变量不存在测量误差。为了让上述两个假设完全等价,需进一步作出如下限定:

  • 记 X=X+ηX,其中 ηX 表示 X 的测量误差,并且 ηX 满足 E(XηX)=0 和 E(εηX)=0。这里的 ηX 又被称为「经典测量误差」。

2.2 简单示例

接下来,我们将通过一个模拟的例子来说明如何用参数方法检验解释变量的测量误差。

*-设定样本量为200,同时设置随机数种子
  clear all
  set obs 200
  set seed 982

*-用随机数生成变量x、y、z和扰动项u和e
  generate double z = rnormal(0,1)
  generate double u = rnormal(0,0.5)
  generate double e = rnormal(0,0.5)
  generate xs = 0.5*z + u
  generate x = xs   //没有测量误差的清形
  generate y = xs + e

*-将y回归在x和z上
  regress y x z
  est store m1

*-引入测量误差eta
  generate double eta = rnormal(0,0.5)
  drop x

*-生成新的x,此时x与真实值xs之间存在测量误差
  generate x = xs + eta

*-重新将y回归在x和z上
  regress y x z
  est store m2

*-输出结果
  esttab m1 m2, b(%6.3f) ar2 nogap star(* 0.1 ** 0.05 *** 0.01) ///
         mtitles("no error" "error")
--------------------------------------------
                      (1)             (2)
                 no error           error
--------------------------------------------
x                   1.062***        0.514***
                  (14.02)          (8.15)
z                  -0.031           0.196***
                  (-0.63)          (3.71)
_cons              -0.028          -0.033
                  (-0.77)         (-0.75)
--------------------------------------------
N                     200             200
adj. R-sq           0.633           0.452
--------------------------------------------
t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01

其中,列 (1) 不存在测量误差,列 (2) 存在测量误差。上述例子表明,在没有测量误差的情况下,同时将工具变量 Z 和 X 放入回归时, Z 的系数不显著;而在存在测量误差情况下,工具变量 Z 的系数在 1% 统计水平上显著,表明解释变量存在测量误差。

3. 检验测量误差的非参数方法

3.1 基本原理

运用参数方法检验解释变量的测量误差时,要求 Y 和 X 之间的关系是线性的,同时也要求测量误差为「经典测量误差」。然而,经济数据中的测量误差很少是经典测量误差 (Bound et al, 2001),Y 和 X 之间的关系也并非总是线性的。

非参数方法并不需要上述假定,一定程度上克服了参数方法的缺陷,其基本原理如下:

  • 排他性约束性质,使得工具变量需要通过解释变量的真实值 X 才能对被解释变量 Y 产生影响。同时,作为 X 的度量,X 也需要通过 X 来影响 Y。因此,当加入解释变量的真实值 X 后,X 和 Z 将不会显著影响 Y。此时,有如下假设:
  • 在 H0 的情况下,即 X=X 时,上述假设可以等价地表示为:

Wilhelm (2018) 证明,当假设 (5) 与下述两个假设 (假设 a 和 b) 成立时,假设 (1) 与假设 (6) 等价,即可以通过检验假设 (6) 来判断解释变量是否存在测量误差。

  • 假设 a:Z 与 X 具有较强的相关性。这一假设表明,对于不同 Z 的取值,X 的条件概率质量函数 (e.g. XZ=z1 与 XZ=z2) 至多相交一次;

  • 假设 b:条件均值函数 xE(YX=x) 是单调的。

若工具变量 Z 通过 X 和其他控制变量 W 对被解释变量 Y 产生影响,假设 (5) 可表示为:

  • 在 H0 的情况下,即 X=X 时,假设 (7) 可以等价地表示为:
  • 在应用过程中,通常会将控制变量分为两类:一类为与被解释变量有非线性关系的控制变量 W1,而另一类为与被解释变量呈线性关系的控制变量 W2。即有如下表达式:

当上述假设满足时,通过运用非参数的方法检验假设 (6) 或 (8),则可以判断解释变量是否存在测量误差,这一过程可以通过 dgmtest 命令实现。

3.2 dgmtest 命令介绍

dgmtest 命令是对 Delgado and González Manteiga (2001) 提出的检验条件均值独立性方法在 Stata 中的实现,检验测量误差只是该命令的应用之一。

命令安装

*-dgmtest命令安装
  net sj 20-2
  net install st0600
* findit dgmtest //或者通过该命令安装

语法结构

dgmtest depvar expvars [if] [in] [, options]

该命令的常用选项主要有:
qz(#)            指定工具变量的维度,默认为 qz(1)
qw2(#)           指定与被解释变量有线性关系的控制变量的个数,默认为 qw2(0)
teststat(string) 指定检验过程中使用的统计量,默认为 Cramér-von Mises (CvM) 统计量,备选项为 Kolmogorov-Smirnov (KS) 统计量
kernel(string)   指定检验过程中使用的核函数,默认为 kernel(epanechnikov)
bootnum(#)       指定用 bootstrap 方法抽取的样本容量,默认为 bootnum(500)

关于该命令更多详细介绍,可以通过 help dgmtest 查看该命令帮助文档。

3.3 简单示例

接下来,延用第 2 节生成的模拟数据,使用 dgmtest 命令去检验解释变量的测量误差问题。

*-没有测量误差
  set seed 1000  //设定种子值,避免每次结果不一样
  dgmtest y xs z
-----------------------------------------------------
 Delgado and Manteiga test
-----------------------------------------------------

H0: E[Y | X,W1,Z] = E[Y | X,W1]

----- parameter settings -----

Test statistic: CvM (default)
Kernel: epanechnikov (default)
bw = n^(1/3q) (default)
bootstrap multiplier distribution: mammen (default)

 number of observations: 200
 bandwidth: .17099759
 dimension of (X,W1): 1
 dimension of W2: 0
 dimension of Z: 1
 number of bootstrap samples: 500

----- test results -----

 CvM = .00769912
 bootstrap critical value at 1%: .02141564
 bootstrap critical value at 5%: .01695409
 bootstrap critical value at 10%: .01401674
 p(CvM < CvM*) = .366

当使用不含测量误差的 xs 作为解释变量时,检验结果汇报的 p 值为 0.336,即无法拒绝原假设,与数据情况一致。

*-存在测量误差
  set seed 1200
  dgmtest y x z
-----------------------------------------------------
 Delgado and Manteiga test
-----------------------------------------------------

H0: E[Y | X,W1,Z] = E[Y | X,W1]

----- parameter settings -----

Test statistic: CvM (default)
Kernel: epanechnikov (default)
bw = n^(1/3q) (default)
bootstrap multiplier distribution: mammen (default)

 number of observations: 200
 bandwidth: .17099759
 dimension of (X,W1): 1
 dimension of W2: 0
 dimension of Z: 1
 number of bootstrap samples: 500

----- test results -----

 CvM = .02530518
 bootstrap critical value at 1%: .01578302
 bootstrap critical value at 5%: .01002109
 bootstrap critical value at 10%: .00827286
 p(CvM < CvM*) = 0

当使用含有测量误差的 x 作为解释变量时,检验结果汇报的 p 值为 0,拒绝原假设,表明解释变量中存在测量误差,符合数据真实情况。

4. 蒙特卡罗模拟

为检验 dgmtest 命令在不同情形下的检验效果,Lee and Wilhelm (2020) 设计了如下的蒙特卡罗模拟。

4.1 蒙特卡罗模拟设计

考虑如下的一个数据生成过程:

通过下述四种不同的方式引入测量误差:

模型 1:

模型 2:

模型 3:

模型 4:

其中,在模型 1、2、3 中,设定 σε 的取值为 0.5,在模型 4 中,设定 σε 取值为 0.2。X 是一个服从 01 均匀分布的随机变量。D 是一个服从参数为 1λ 的伯努利分布的随机变量,其中 1λ 为 X 中测量误差发生的概率,若 1λ=0 则表明 X 中不存在测量误差。在蒙特卡罗模拟过程中,作者将 1λ 的取值逐渐从 0 增加到 1。σME 表示测量误差的标准误,σME 的取值设定为 0.2、0.5、1。σME 取值越大,也表明测量误差越严重。最后,样本容量的设定为 200 和 500。

在完成上述设定以后,Lee and Wilhelm (2020) 通过 dgmtest 命令,分别使用了 CvM 统计量和 KS 统计量去检验不同情形下的测量误差。

4.2 蒙特卡罗模拟结果呈现

Lee and Wilhelm (2020) 设计的蒙特卡罗模拟的结果如下表所示:

表中的数值为拒绝原假设的概率,例如,在模型 1 中,当 1λ 的取值为 0 时,运用 CvM 统计量拒绝原假设的概率为 0.049,运用 KS 统计量拒绝原假设的概率为 0.054。当测量误差较为严重的情况下 (即 1λ 和 σME 较大时),拒绝原假设的概率也随之上升。

蒙特卡罗模拟的结果表明,dgmtest 命令在检验测量误差时具有较高的准确性。

5. 应用实例

5.1 实例背景介绍

个体收入数据主要来自问卷调查数据 (survey) 和社会保障数据,多数研究者指出,在问卷收集过程中会存在谎报收入的情况,因此,问卷调查中关于个体收入的数据往往存在测量误差。同时,也部分研究者指出,在社会保障数据中,个体收入这一变量同样可能存在测量误差。

Lee and Wilhelm (2020) 展示了如何运用 dgmtest 命令,检验社会保障数据中的个体收入是否存在测量误差。具体如下:

  • 其所使用的数据是 1978 年 3 月美国的当前人口调查数据 (March 1978 Current Population Survey) 和美国的社会保障收入数据 (Social Security Summary Earnings);
  • 被解释变量为人口调查数据中所统计的 1977 年的个体收入 (记为 repearn77),解释变量为社会保障收入数据统计的 1977 年的个体收入 (记为 ssearn77),工具变量为社会保障收入数据统计的 1976 年的个体收入 (记为 ssearn76);
  • 样本范围限定在 25 岁到 60 岁的拥有全职工作的白人单身人士,样本量为 2683。

5.2 检验过程介绍与结果呈现

首先,作者画出了被解释变量和解释变量的密度函数图。具体如图 1 所示:

由图 1 可知,被解释变量和解释变量之间存在着较为明显的相关性。

为了了解不同来源的收入数据之间的差异的大小,作者进一步画出调查数据统计的个体收入与社会保障数据统计的个体收入之间差异的密度函数图。具体如图 2 所示:

由图 2 可知,不同来源的收入数据的差异主要集中在 1000 左右,作者指出,相对于样本中收入的最大值 (16500),这是一个较大的差异。

Wilhelm (2018) 指出,不同的收入数据,测量误差的来源也不同。为了通过检验假设 (6) 来检验是否存在测量误差,作者画出了不同的 Z 的取值下,X 的条件密度函数,以检验前文所述的假设 a 是否成立。具体如图 3 所示:

由图 3 可知,当 Z 取 10 分位数的值和 90 分位数的值时,所得到的关于 X 的条件密度函数仅相交一次,因此得出,假设 a 成立。

在进行正式的统计检验之前,作者画出了三个不同的 x 取值下,E(YX=x,Z=z) 的取值随着 z 的变动的变动情况,具体如图 4 所示:

若假设 (6) 成立,E(YX=x,Z=z) 的取值应不随着 z 的变动而发生变动。 由图 4 可知,随着 z 的变动,E(YX=x,Z=z) 的取值也发生了相应的变动,初步表明解释变量可能存在一定的测量误差。

为了检验解释变量的测量误差在统计上是否显著,作者使用 dgmtest 命令进行了检验。具体命令和结果如下:

*-检验收入数据是否存在测量误差
  set seed 1977
  dgmtest repearn77 ssearn77 ssearn76, bootnum(5000)
-----------------------------------------------------
Delgado and Manteiga test
-----------------------------------------------------
H0: E[Y | X,W1,Z] = E[Y | X,W1]
----- parameter settings -----
Test statistic: CvM (default)
Kernel: epanechnikov (default)
bw = n^(1/3q) (default)
bootstrap multiplier distribution: mammen (default)
number of observations: 2682
bandwidth: .07197479
dimension of (X,W1): 1
dimension of W2: 0
dimension of Z: 1
number of bootstrap samples: 5000
----- test results -----
CvM = .51238949
bootstrap critical value at 1%: .62569854
bootstrap critical value at 5%: .42202155
bootstrap critical value at 10%: .33858164
p(CvM < CvM*) = .0238

检验结果得到的 p 值为 0.0238,在 95% 的显著性水平下拒绝原假设,表明解释变量,即社会保障数据统计的个体收入,存在一定的测量误差。

最后,作者将样本按性别和受教育水平划分为不同的子样本,以检验不同的子样本中测量误差存在与否,具体检验结果如下表所示:

由上表可知,对于受教育水平较低和受教育水平较高的组,仍可以在 90% 的显著性水平下拒绝原假设,而对于受教育水平中间的组,则未发现测量误差方面的证据。此外,对于不同的性别组,同样未发现测量误差方面的证据。

6. 总结

本文主要介绍了 Lee and Wilhelm (2020) 提出的关于运用参数方法和非参数方法检验解释变量的测量误差的原理,并结合实例对 dgmtest 命令的应用过程进行了展示。

参考文献

  • Lee, Y. J., & Wilhelm, D. (2020). Testing for the presence of measurement error in Stata. The Stata Journal, 20(2), 382-404. -Link-
  • Hausman, J. A. (1978). Specification tests in econometrics. Econometrica: Journal of the econometric society, 1251-1271. -Link-
  • Bound, J., Brown, C., & Mathiowetz, N. (2001). Measurement error in survey data. In Handbook of econometrics (Vol. 5, pp. 3705-3843). Elsevier. -Link-
  • Wilhelm, D. (2018). Testing for the presence of measurement error (No. CWP45/18). cemmap working paper. -Link-
  • Delgado, M. A., & Manteiga, W. G. (2001). Significance testing in nonparametric regression based on the bootstrap. The Annals of Statistics, 29(5), 1469-1507. -Link-

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata 数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2 小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata 连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

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

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

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD