当前位置: 首页 > news >正文

样本选择偏差:为什么按结果变量筛选样本会让 OLS 有偏?

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

作者:孙晓艺 (厦门大学)
邮箱:sunnalzu202107@163.com

  • 分类:因果推断
  • Title: 样本选择偏差:为什么按结果变量筛选样本会让 OLS 有偏?
  • Keywords: Heckman模型, 样本选择偏误, 逆米尔斯比率, IMR, Mills Ratio, selection bias, sample selection bias
  • 提要:本文通过蒙特卡洛模拟表明,样本选择偏差不是简单由「删掉一部分观测」造成的,而是由样本进入规则是否改变误差项与解释变量的关系决定。文章提供 Stata 复现代码,并进一步介绍 Heckman 两步法、逆 Mills 比率和 mroz.dta 实例。

Source:本文参考 Ben Davies 的博客文章 Understanding selection bias 改写,并补充 Stata 复现代码。特此致谢。

1. 问题:删样本为什么可能让回归有偏?

实证研究中,删样本很常见。我们可能只保留有工资收入的个体来估计教育回报,只保留上市公司来研究企业绩效,也可能只分析销售额、利润或出口额为正的企业。很多时候,研究者会担心这种样本筛选会带来「样本选择偏差」(sample selection bias)。

但需要说明的是,删样本本身并不必然导致 OLS 有偏。真正关键的是:进入样本的规则是否与回归方程中的不可观测误差项有关。

本文用一个最小模拟例子说明这个问题。假设真实模型为:

yi=βxi+uiyi​=βxi​+ui​

其中,β=1β=1,xixi​ 与 uiui​ 相互独立。现在比较两种样本限制:

  • 只保留 xi≥0xi​≥0 的观测;
  • 只保留 yi≥0yi​≥0 的观测。

结果会看到,第一种限制基本不会破坏 OLS 的无偏性,而第二种限制会使 OLS 估计值明显低于真实参数。这个差异揭示了样本选择偏差的核心机制:样本进入规则是否把误差项 uiui​ 带进了选择过程

2. 一个最小模拟例子

设数据生成过程为:

yi=βxi+ui,β=1yi​=βxi​+ui​,β=1

其中,xixi​ 和 uiui​ 均服从标准正态分布,且二者相互独立:

xi∼N(0,1),ui∼N(0,1),xi⊥uixi​∼N(0,1),ui​∼N(0,1),xi​⊥ui​

在这个设定下,OLS 估计量可以写为:

β^=Cov⁡(x,y)Var⁡(x)β^​=Var(x)Cov(x,y)​

由于真实模型为 yi=xi+uiyi​=xi​+ui​,且 xixi​ 与 uiui​ 独立,因此在完整样本中:

Cov⁡(x,y)=Cov⁡(x,x+u)=Var⁡(x)+Cov⁡(x,u)=Var⁡(x)Cov(x,y)=Cov(x,x+u)=Var(x)+Cov(x,u)=Var(x)

所以总体意义上有:

β=Cov⁡(x,y)Var⁡(x)=1β=Var(x)Cov(x,y)​=1

需要区分的是,β=1β=1 是真实参数;在一次有限样本模拟中得到的 β^β^​ 可能不等于 1。例如,原文使用 n=100n=100 的随机模拟得到:

β^=1.138795β^​=1.138795

这个数不是新的真实参数,而只是一次模拟中的样本估计值。若重复模拟很多次,β^β^​ 的平均值会接近真实参数 1。

3. 只保留 xi≥0xi​≥0:为什么 OLS 仍然近似无偏?

先看第一种样本限制:只保留 xi≥0xi​≥0 的观测。定义选择变量:

Six=1{xi≥0}Six​=1{xi​≥0}

此时,进入样本的条件只取决于解释变量 xixi​。由于在原始数据生成过程中 xixi​ 与 uiui​ 独立,即使只保留 xi≥0xi​≥0 的观测,也不会改变误差项相对于 xixi​ 的条件均值:

E(ui∣xi,Six=1)=E(ui∣xi)=0E(ui​∣xi​,Six​=1)=E(ui​∣xi​)=0

这意味着,在这个特定设定下,选择 xi≥0xi​≥0 的样本不会破坏 OLS 的关键外生性条件。直观地说,虽然样本变小了,xixi​ 的分布也变了,但误差项 uiui​ 并没有因为这个选择规则而系统性地变大或变小。因此,用这个子样本估计 yiyi​ 对 xixi​ 的回归,仍然可以得到接近真实值的斜率估计。

原文模拟结果显示,在只保留 xi≥0xi​≥0 的样本中,OLS 估计值约为:

β^=1.02β^​=1.02

它与真实参数 β=1β=1 非常接近。

4. 只保留 yi≥0yi​≥0:为什么 OLS 明显有偏?

再看第二种样本限制:只保留 yi≥0yi​≥0 的观测。定义选择变量:

Siy=1{yi≥0}Siy​=1{yi​≥0}

由于 yi=xi+uiyi​=xi​+ui​,所以上式等价于:

Siy=1{xi+ui≥0}Siy​=1{xi​+ui​≥0}

这时,选择规则不再只取决于解释变量 xixi​,而是同时取决于误差项 uiui​。这正是问题所在。

如果 xixi​ 很低,一个观测要进入 yi≥0yi​≥0 的样本,就必须有较高的 uiui​ 来抵消较低的 xixi​;如果 xixi​ 很高,那么即使 uiui​ 较低,该观测也可能进入样本。因此,在被选择出来的样本中,xixi​ 与 uiui​ 会被选择机制诱导出负相关关系。

换句话说,完整样本中 xixi​ 与 uiui​ 独立,但在 yi≥0yi​≥0 的子样本中,二者不再独立。OLS 所需要的外生性条件被破坏:

E(ui∣xi,Siy=1)≠0E(ui​∣xi​,Siy​=1)=0

这就是样本选择偏差的核心。不是因为样本少了,也不是因为只看了 yiyi​ 为正的观测本身有什么神秘之处,而是因为这个选择条件把误差项 uiui​ 纳入了样本进入机制。

下图用一个白板示意图概括了这三种情形的差异。左图是完整样本,中图只保留 xi≥0xi​≥0,右图只保留 yi≥0yi​≥0。关键区别不在于删掉了多少样本,而在于是否把误差项 uiui​ 带入了样本选择过程

在 yi≥0yi​≥0 的子样本中,可以把 uiui​ 对 xixi​ 做一个线性投影:

ui=ρxi+εiui​=ρxi​+εi​

其中,ρ<0ρ<0 表示在被选择样本中 xixi​ 与 uiui​ 的负相关关系,εiεi​ 是与 xixi​ 不相关的残差项。把这个式子代入原始模型:

yi=βxi+uiyi​=βxi​+ui​

可得:

yi=(β+ρ)xi+εiyi​=(β+ρ)xi​+εi​

因此,在 yi≥0yi​≥0 的样本中,OLS 估计到的不是 ββ,而是 β+ρβ+ρ。由于 ρ<0ρ<0,所以估计值会低于真实参数 ββ。

原文模拟结果显示,在只保留 yi≥0yi​≥0 的样本中:

β^=0.356β^​=0.356

同时,由于这是模拟数据,我们能观察到真实误差项 uiui​,因此可以计算:

ρ^=Cov⁡(u,x)Var⁡(x)≈−0.644ρ^​=Var(x)Cov(u,x)​≈−0.644

于是:

β^−ρ^≈0.356−(−0.644)=1β^​−ρ^​≈0.356−(−0.644)=1

这说明 β^β^​ 偏离真实参数的原因,正是选择机制诱导出的 ρ^ρ^​。不过,在真实实证研究中,研究者通常观测不到 uiui​,因此无法直接估计 ρ^ρ^​ 并把真实参数反推出来。

5. 用 Stata 复现这个例子

下面给出一份可以直接运行的 Stata 代码。代码分为三步:生成模拟数据、比较三类样本的 OLS 斜率、画图展示选择机制。

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

http://www.rkmt.cn/news/1492040.html

相关文章:

  • 乙方验收PPT咋做才能让甲方满意?一份避坑指南
  • LLM生产系统合规落地:分层治理架构与工程实践
  • 5分钟掌握华硕笔记本性能调优神器:G-Helper完全解决方案
  • 【C++初阶】析构函数超详解(误区、语法、调用时机、析构顺序)
  • Python新手必看:用input()和eval()处理用户输入,一个函数搞定五种数学运算
  • Web数据供应链:从爬虫到AI可信数据资产的四层架构
  • AI建站工具全流程攻略:从零开始搭建可商用网站
  • 人文综合素养类赛事解析,文科生的竞赛新赛道
  • 餐饮扫码点餐系统源码:支持外卖+自取、多店独立运营,Java后端+Vue3前端
  • 上市公司空气流通系数(2000-2025)
  • Gemini 3.5逻辑推理与精准度实测:算法题与知识问答场景下的能力边界
  • 企业微信外部群机器人接入 AI:一套能落地的工程方案
  • 2026肇庆市黄金回收铂金回收白银回收彩金回收机构实力:项链+戒指+手镯+吊坠专业鉴定上门服务及联系方式推荐 - 亦辰小黄鸭
  • Bending Spoons 上市声明或揭秘“收购、裁员、然后呢?”策略真相
  • 华为USG6000防火墙升级避坑实录:从V1R1C30到V500R005C20的完整操作指南
  • PHP并发处理与协程入门
  • 成本降87.5%:模具冲头助力3C企业年省28万 - 速递信息
  • OPTICS聚类原理与地理数据实战:破解密度不均聚类难题
  • 无人机管理系统|完整源码交付,支持私有化部署与定制开发
  • 鼻毛剪刀哪个牌子好?鼻毛器哪个牌子最好用?2026鼻毛修剪器第一名
  • 普元EOS平台深度体验:除了快速开发,它的监控治理工具EOS Governor到底有多强?
  • 51单片机控制16×16点阵LED,支持自定义文字滚动显示(含仿真+代码+文档)
  • 逆向工程师的利器:手把手教你将OLLVM-14.x集成到Android NDK(Windows 10环境)
  • 类风湿关节炎 干细胞试验进展怎么样了?
  • 别再只当LCD驱动器了!解锁STM32 FMC的‘隐藏技能’:连接AD7606、OLED等并行总线设备
  • 存量老旧视觉项目智能化升级改造(五):人工全检工位改造 TVA 落地指南|三级报价模板 + 标准工期 + 全维度避坑清单
  • 从GISInternals官网到命令行:一份给Windows用户的GDAL 3.x 最新版避坑配置指南
  • Vue3后台模板:TypeScript + Element Plus 实现多标签页管理界面,零配置开箱即用
  • 小程序毕业设计-基于协同过滤算法的运动场馆服务平台微信小程序基于Springboot+微信小程序的协同过滤算法的运动场馆服务平台设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 别再只会用二极管了!手把手教你用MOSFET搭建一个低压大电流同步整流Buck电路