R数据分析:工具变量回归的做法和解释,实例解析

什么是工具变量,以及什么是孟德尔随机化,以及孟德尔随机化怎么实现都给大家写了(大家去翻翻之前的文章呀),因为孟德尔随机化的工具变量是基因变量,所以我们会用专门的R包去做,普通的工具变量研究,我们要用的方法又不一样了。
我们做工具变量回归的时候用的方法叫做两阶段最小二乘估计--two-stage least squares (TSLS),本文会给大家介绍该方法的原理和实际操作方法,希望能对大家有帮助。
两阶段最小二乘估计的基本原理
以下一步步给大家捋捋哈,假设我现在对学历和收入这两个变量有兴趣,我想知道学历在多大程度上影响了我们的收入,于是我把收入作为因变量,学历作为自变量做个回归:
y = α + βx + ε
弄个β出来,这个β能代表学历对收入的影响嘛?不行。
因为你根本就没考虑其它可能和x有关同时又影响y的因素,比如学历高的人通常家境好,社会资源好,敢创新,肯钻研等等,这些优秀的品质都有可能影响收入。但是我提到的这些变量你都没有收集,或者就算你收集了你其实也是没法控制的。
此时,我去找一个学历的工具变量(这个工具变量和x强相关,但和之前提到的各种混杂无关,也绝不会影响y)。然后有学者就找了吸烟这个工具变量,具体参考下面的文献:
Dickson, M. (2013). The causal effect of education on wages revisited. Oxford Bulletin of Economics and Statistics75(4), 477-498.
其中的基本思想就是通过工具变量切断自变量和残差的关系,解决内生性问题和反向因果,得到更加准确的自变量系数估计(大家要明白完美的工具变量是很难找得到的)。
到这儿,为啥要用,用啥两个问题解决了,我们接下来看怎么用工具变量,或者说怎么做工具变量回归(两阶段最小二乘估计):
两阶段最小二乘估计分为两个阶段,第一阶段是将自变量的变异分解,分解成只有工具变量解释的部分和与残差相关的部分,在我们的例子中就是将学历的变异分解成吸烟解释的部分和相应的残差,如下:
  • 学历 = c + d*(吸烟) + v
这个方程是明确工具变量对自变量的作用(在之前孟德尔随机化的文章中一直用的是“暴露”这个词,一个意思哈),这儿要求我们的系数d一定需要显著(否则吸烟就不算是一个合格的工具变量),然后我们会将工具变量对自变量的预测值,作为第二阶段的自变量。
第二阶段就是用工具变量对自变量的预测值来估计回归系数:
  • 收入α + β*学历预测值 + ε(此处应该是学历“拔”哈,工具变量预测的学历。)
这一阶段估计出来的系数β就是我们需要的啦,这个例子中,我们是只有一个内生变量---学历和一个工具变量----吸烟的,这种情况叫做just identified,我们还可以多找几个工具变量使得工具变量的数量大于内生变量的数量,此时就叫做 over-identified
实例操练
做两阶段最小二乘估计我们需要用到的函数是ivreg(),这个函数需要设置两个部分的参数,基本形式是:y ~ x1 + x2 | x1 + z1 + z2
其中x1和 x2是外生和内生解释变量,然后是一个竖杠,竖杠的右边就放的是解释变量,这儿需要注意的是在我们的解释变量x1也是需要放在右边一个的,如果外生变量很多的话,可以再写一个竖杠,形成外生|内生|工具变量的公式形式。
比如,我现在想要研究学历和收入的关系,我的数据如下图:
既有学历education还有收入wage,当然还有很多的协变量。
要研究学历如何影响了收入,普通来讲我就做个回归,把协变量加一加,甚至说加个二次项拟合得更好一点:
m_ols <- lm(log(wage) ~ education + poly(experience, 2) + ethnicity + smsa + south,
data =data)
summary(m_ols)
看输出:
哦,似乎是学历或者教育可以提升收入0.074个单位的log收入哦,这个对吗?
并不对的,因为还有很多影响收入的变量你始终难以完全考虑或者说我这个数据中根本就没有,还有你的自变量的内生性问题,反向因果造成的问题等等都会影响我们的系数,这个时候我就找了个工具变量nearcollege想做工具变量回归,于是我就可以写出如下的代码:
m_iv <- ivreg(log(wage) ~ education + poly(experience, 2) + ethnicity + smsa + south |
nearcollege + poly(age, 2) + ethnicity + smsa + south,
data = SchoolingReturns)
或者如下的代码:
m_iv <- ivreg(log(wage) ~ ethnicity + smsa + south | education + poly(experience, 2) |
nearcollege + poly(age, 2), data = data)
在上面的代码中第一种写法是将外生和内生解释变量写一起然后再写工具变量,第二种写法是先写外生再写内生再写工具变量,两个写法的输出都是一样的,注意虽然是两阶段最小二乘回归,但是在实际操作中都是在ivreg这一个函数中就可以完成的,结果见下图:
从结果中就可以看得出来,我们用两阶段最小二乘估计得到的系数是要大一点点的。
另外我们的结果中还有输出模型的诊断信息:
诊断信息中包含3个检验一个是weak instruments,一个是Wu–Hausman test,还有一个Sargan test,一个一个给大家写写是什么意思:
  • weak instruments:这个是检验我们的工具变量是不是一个好的工具变量,原假设是weak,所以我们希望这个统计量越大越好,p越小越好。

  • Wu–Hausman test:这个是检验内生性的,就是检验我们的自变量是不是和残差有关。无关的话你直接做回归就行。

  • Sargan test:这个检验只有在工具变量的个数超过内生变量的个数的时候才有,如果这个检验显著的话就说明至少有一个工具变量是不行的。

小结
(0)

相关推荐

  • 互助问答第533期:普通OLS与2SLS的估计结果可比吗?

    普通OLS与2SLS的估计结果可比吗? 原始回归自变量是01变量,原始ols系数含义是自变量由0到1对因变量造成的影响.在使用两阶段最小二乘时,第二阶段自变量是第一阶段的线性预测结果,第二阶段系数含义 ...

  • 博导讲堂|实证论文写作的四个阶段

    作者简介: 刘西川  华中农业大学经济管理学院教授.博士生导师,中国合作经济管理学会理事,国家自然科学基金项目通讯评议人,<经济研究><管理世界><金融研究>< ...

  • 互助问答第394期 关于工具变量的问题

    关于工具变量的问题 如果发现所选择的工具变量并不好,可能通过出内生变量之外的其他路径影响Y,那么是否可以通过将这些路径控制起来,解决这个问题? 技术上是可以实现的.但是你要确认,你控制的这些变量本身是 ...

  • R数据分析:工具变量回归与孟德尔随机化,实例解析

    原谅我又拖更好久,没办法,欸,就是懒,但是所有的单子都是保质保量完成的哈. ,今天给大家写工具变量和孟德尔随机化,文章略微有些长,请大家准备好清醒的头脑,和半个小时到1个小时的阅读时间哈. 啥是工具变 ...

  • R数据分析:一般线性回归的做法和解释

    发现大家做分析做的最多的还是线性回归,很多人咨询的都是线性回归的问题,今天专门出一个线性回归的文章. 在R语言中我们可以非常方便地用基础包中的lm方法做出线性回归.参数的书写也和数学方程一样一样的Y~ ...

  • R数据分析:生存分析的做法和结果解释

    今天给大家写写生存分析: Survival analysis corresponds to a set of statistical approaches used to investigate th ...

  • R数据分析:结构方程模型的分组比较,实例解析

    做结构方程的时候分组比较用的比较多,咨询的同学也多,之前写过mplus的做法,今天就再给大家写个用R的,不论你是做中介还是做验证性因子分析,等等,反正用结构方程能做的都可以套这个方法,而且在R语言的l ...

  • R数据分析:广义估计方程式GEE的做法和解释

    好久没有更新文章了,因为同学们咨询的问题有点多,另一个原因就是自己实在太懒.... 今天继续给大家写广义估计方程式GEE. In statistics, a generalized estimatin ...

  • R数据分析:潜增长模型LGM的做法和解释,及其与混合模型对比

    今天收到了北京大学老师打来的电话,问我如果没有被数据科学方向的导师录取,愿不愿意去读生物统计的博士. 我婉拒了,些许遗憾,但不后悔,原因全是个人选择,读博挺好的,但是我决定换一种环境,去工作了. 从去 ...

  • R数据分析:如何做数据的非线性关系,多项式回归的做法和解释

    线性关系其实是最常见也是最有效,同时还是最好解释的,不过变量间复杂的关系我们用多项式回归做出来可能会更加的准确.刚好有位粉丝的数据需要用到多项式回归,今天就给大家写写. 要理解非线性关系,首先我们看看 ...

  • R数据分析:竞争风险模型的做法和解释二

    找了好久,中文的竞争风险模型的学习资料好少哦,再加上帮粉丝做了一个竞争模型的分析,今天顺带就给大家写一个竞争风险回归的例子.也是接着上一篇文章的续R数据分析:竞争风险模型的做法和解释 实例描述 我们有 ...

  • R数据分析:竞争风险模型的做法和解释

    今天有粉丝找我做一个竞争风险模型,顺便给大家写一个简易的教程,有问题大家直接私信,根据您的需求,一直做到您满意. 竞争风险模型这个东西还是临床医生用的多: 很直观的情景就是:研究治疗方案A和白血病复发 ...