绘制因果关系解读

Machine LearningMachine LearningBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验表明,机器学习模型非常适合用于衡量统计关联,但如果不对数据做出强有力的假设,就无法推断因果效应。我们将模拟一种情况,尝试回答教育经济学中最重要的问题之一:获得大学学位对时薪的因果效应是什么?尽管这个问题的答案对政策制定者至关重要,但遗漏变量偏差使我们无法确定这种因果效应。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问Jupyter Notebook进行练习。

有时,你可能需要等待几秒钟让Jupyter Notebook完成加载。由于Jupyter Notebook的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向Labby提问。课程结束后提供反馈,我们会立即为你解决问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49076{{"绘制因果关系解读"}} end

生成数据集

我们生成了一个关于时薪、工作经验、能力、父母时薪和大学学位的模拟数据集。工作年限和能力指标是从正态分布中抽取的。父母一方的时薪是从贝塔分布中抽取的。我们创建了一个大学学位指标,它受到能力和父母时薪的正向影响。最后,我们将时薪建模为所有先前变量和一个随机成分的线性函数。

使用完全观测变量训练预测模型

我们假设真实生成模型所使用的所有变量都可用,在此基础上训练一个预测模型——线性回归模型。我们使用工作经验、父母时薪、大学学位和能力等特征来预测时薪。我们还绘制了模型系数,以表明我们准确地恢复了真实生成模型的值。

使用部分观测值训练预测模型

我们再次训练一个预测模型,但这次我们省略了能力特征,因为该特征无法观测到,或者只能从也无意中衡量了教育程度的代理变量(例如通过智商测试)中进行估计。我们再次使用工作经验、父母时薪和大学学位等特征来预测时薪。然后我们检查模型的系数是否与真实生成模型不同。为了补偿遗漏的变量,模型会夸大大学学位特征的系数。因此,将这个系数值解释为真实生成模型的因果效应是不正确的。

经验教训

机器学习模型并非为估计因果效应而设计。虽然我们用线性模型展示了这一点,但遗漏变量偏差(OVB)可能会影响任何类型的模型。每当解释一个系数或因某个特征的变化而导致的预测变化时,务必牢记可能存在的未观测变量,这些变量可能与所讨论的特征和目标变量都相关。此类变量被称为混杂变量。为了在存在混杂因素的情况下仍能估计因果效应,研究人员通常会进行实验,在实验中对处理变量(例如大学学位)进行随机化处理。当实验成本过高或不符合伦理道德时,研究人员有时可以使用其他因果推断技术,如工具变量(IV)估计。

总结

本实验表明,机器学习模型并非为估计因果效应而设计。遗漏变量偏差使我们无法确定一个特征对目标变量的真正因果效应。每当解释一个系数或预测的变化时,务必牢记可能存在的未观测变量,这些变量可能与所讨论的特征和目标变量都相关。