虚拟变量做因变量,可以直接跑 OLS 吗?——线性概率模型的「三宗罪」与为什么大家还在用
你研究\"什么样的学生会选择考研\"。你的因变量是 kaoyan——考研 = 1,不考研 = 0。你有一堆解释变量:GPA、学校层次、家庭收入、性别……
一、开篇:Y 只有 0 和 1——你顺手就跑了个 reg y x,然后呢?
你研究"什么样的学生会选择考研"。你的因变量是 kaoyan——考研 = 1,不考研 = 0。你有一堆解释变量:GPA、学校层次、家庭收入、性别……
你顺手在 Stata 里敲了:
reg kaoyan gpa school income female系数出来了,R² 也出来了。一切看起来很正常。
然后你瞟了一眼 predict 出来的拟合值——有些人考研的"预测概率"是 −0.15,有些人是 1.38。
−0.15?概率为负?1.38?概率超过 100%?
恭喜你,你刚刚撞上了线性概率模型(Linear Probability Model, LPM)的第一宗罪。但你先别急着删掉 reg 换成 logit——因为即使存在这些问题,LPM 在很多情况下仍然是经济学家们的选择,而且理由相当充分。
核心信息:把 0/1 因变量直接用 OLS 跑——这叫线性概率模型(LPM)。它有三个众所周知的问题:预测值可能超出 [0, 1] 区间、误差项天然异方差、以及线性形式假设了恒定的边际效应。但 LPM 有三个同样重要的优势:系数直接解释为概率变化(无需换算边际效应)、可以无缝使用工具变量和固定效应、以及在样本量足够大且 X 的取值不过于极端时,预测值超出 [0, 1] 的问题并不严重。Logit/Probit 解决了前三宗罪,但也在后三件事上不如 LPM。方法选择没有绝对的对错——取决于你的研究场景和数据特征。
二、LPM 是什么?——就是把 0/1 当普通数字跑 OLS
2.1 模型设定
你假装 Y 是一个连续变量,用 OLS 估计 β₀ 和 β₁。在 OLS 的正统假设中,Y 应该是连续的、可以在 (−∞, +∞) 上任意取值的变量——显然,一个 0/1 变量不满足这个条件。
但因为 OLS 的代数运算不关心 Y 是 0/1 还是连续数,你照样可以跑出系数来。 问题是:跑出来的系数还能用吗?还能解释吗?
2.2 系数的解读——LPM 最大的优点就在这里
在 LPM 中,回归线 的含义十分直观:
β̂₁ = X 每增加一个单位,Y = 1 的预测概率变化多少。
比如 β̂₁ = 0.05 意味着"GPA 每提高 1 分,考研的概率提高 5 个百分点"。这句话不需要任何翻译——它是"概率的变化量",可以直接写在论文的政策建议里。
这是 LPM 相比 Logit/Probit 最大的优势。 Logit 模型的原始系数是"对数几率比(log odds ratio)"的变化——你不能直接说"系数 0.3 意味着概率变化 XX"。你需要做边际效应的后处理(margins, dydx),而且边际效应在 X 的不同取值处不同——不像 LPM 那样有一个单一的、"全局恒定"的数字。
三、LPM 的"三宗罪"——为什么你的老师让你小心
3.1 第一宗罪:预测概率可能超出 [0, 1]
这是 LPM 最显而易见的问题。OLS 回归线是一条直线——它在 X 足够小或足够大时会延伸到 (−∞, +∞) 的任意位置。但概率的定义域是 [0, 1]。
什么时候这是真问题? 当你的数据中 X 的变异范围很大,或者你关心的个体在 X 的极端值处时。比如你用"高考分数"预测"是否考上清华"——高考分数从 200 到 750 分,在 200 分处 LPM 预测的概率可能为 −0.3,在 750 分处可能为 1.5。
什么时候这不是大问题? 当你关心的 X 变化范围不大,且大部分观测的预测概率落在 [0.1, 0.9] 之间时——直线在这个区间内和更合理的 S 形曲线差异不大,超出 [0, 1] 的观测很少,OLS 的主要估计结果不会受到严重影响。
一个实用经验:跑完 LPM 之后,predict p_hat,然后 sum p_hat。如果 min < 0 或 max > 1,记下来——在论文中坦诚报告,并说明这些极端预测的比例很小(如果确实很小的话)。
3.2 第二宗罪:误差项天然异方差——不是因为数据坏,而是因为数学
在 LPM 中,因变量 Y 只能取 0 或 1。给定 Xᵢ,Yᵢ 服从伯努利分布,概率为 pᵢ = P(Yᵢ = 1 | Xᵢ) = β₀ + β₁Xᵢ。伯努利分布的方差是 pᵢ(1 − pᵢ)——这个方差天然依赖于 Xᵢ 的取值。
当 pᵢ ≈ 0.5 时,方差 ≈ 0.25(最大)。当 pᵢ ≈ 0 或 1 时,方差 → 0。这意味着误差的离散度在 X 的不同取值处系统性地不同——这是"构造性异方差",不是你数据的问题,是 0/1 因变量的数学结构中自带的。
后果:OLS 系数仍然无偏(在 Cov(X, ε) = 0 的假设下),但标准误的估计是错误的(通常被低估 → t 值膨胀 → 你更容易错误地拒绝"系数为零"的原假设)。
解决:简单——用稳健标准误。reg y x, robust。在 LPM 中,使用稳健标准误不是一个选项,是必须做的事情。任何不报告稳健标准误的 LPM 都应该被质疑。
Angrist & Pischke(2009)在《Mostly Harmless Econometrics》中有一个经典建议:LPM + 稳健标准误在很多情况下已经足够好了——不一定要上 Logit/Probit。
3.3 第三宗罪:线性形式假设了"恒定的边际效应"
LPM 假设 X 每增加一个单位,Y = 1 的概率变化固定的 β₁ 个百分点——无论 X 的起始值是什么。
这在很多情况下是不合理的。 比如"家庭收入对是否买车的影响":从年收入 1 万到 2 万,买车概率可能上升 5 个百分点。从年收入 99 万到 100 万,买车概率也可能上升 5 个百分点吗?大概率不是——当你已经很富了,再多挣一点对"买不买车"这个决策的影响几乎为零(概率已经接近 1,没什么上升空间了)。
这就是为什么 Logit/Probit 使用 S 形(Sigmoid)曲线——边际效应在 X 的中间最大,在两端趋近于零。 LPM 的直线无法捕捉这种"边际效应递减"的行为模式。
但反过来——如果你的研究场景中,X 的效应确实在样本范围内近似恒定,LPM 不仅没有问题,而且比 Logit 更容易解释。 比如"是否拥有手机"对"是否使用移动支付"的影响——从无手机到有手机,这个跳跃是离散的,不存在"在第 0.3 部手机和第 0.7 部手机处边际效应不同"的问题。
四、既然有三宗罪,为什么经济学家还在用 LPM?
4.1 理由一:交互项和工具变量——LPM 得天独厚
这是 LPM 在经济学实证中最坚挺的理由。
在 Logit/Probit 中,交互项的解读非常复杂——两个变量的"交互效应"在非线性模型中不等于交互项系数的符号或量级(Ai & Norton, 2003)。你需要做额外的计算才能正确判断交互效应的大小和显著性。在 LPM 中,交互项就是交互项——和普通线性回归完全一样,margins 一行搞定。
更重要的是——工具变量(IV)在 LPM 中是标准操作,2SLS 直接可用。 如果你的内生变量是 0/1,你需要一个 IV 策略——LPM + 2SLS 是直截了当的。而在 Logit/Probit 中纳入 IV 需要特殊的估计方法(如 IV Probit 或控制函数法),实现和解读都更复杂。
结论:如果你的研究涉及交互项或工具变量,而且你的主要兴趣在于系数的方向和显著性(而非精确的概率预测),LPM 往往比 Logit/Probit 更简单、更透明。
4.2 理由二:固定效应——Logit 的" incidental parameters problem"
在面板数据中,如果你想控制个体固定效应——即每个人不随时间变化的特质——在 Logit 模型中存在一个著名的"伴随参数问题(Incidental Parameters Problem)":当 T(时间期数)固定而 N(个体数)→∞ 时,固定效应 Logit 的系数估计是不一致的。唯一的例外是条件 Logit(Conditional Logit),但它只能使用"组内 Y 有变化"的观测。
在 LPM 中,固定效应就是加一组个体虚拟变量(或组内去均值)——和连续因变量的面板固定效应模型一模一样。xtreg y x, fe 加稳健标准误,问题解决。
这在政策评估中尤其重要:如果你有面板数据,且你想控制"不随时间变化的个体异质性"(如能力、性格、地理位置),LPM + 个体 FE 是你的最佳选择——Logit/Probit 在这个场景下没有一个同样简单且可靠的替代方案。
4.3 理由三:系数直接可读——沟通成本最低
你的论文不只是写给计量经济学家看的。政策制定者、企业决策者、跨学科的合作者——他们需要的是"这个变量增加一个单位,概率变化多少个百分点",而不是"log odds 变化 0.3,边际效应在均值处为 0.05"。
LPM 的系数不需要任何翻译。 它天生就是边际效应。减少了你和读者之间的沟通障碍——在政策报告、行业分析和跨学科合作中,这是实实在在的优势。
五、LPM vs Logit vs Probit——怎么选?
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 你的核心解释变量是内生变量,需要 IV | LPM + 2SLS | IV 在 LPM 中直接可用,IV Probit 更复杂且解读困难 |
| 你有面板数据,需要控制个体固定效应 | LPM + FE | Logit 有伴随参数问题,LPM 无此问题 |
| 你关心交互效应 | LPM | 非线性模型中的交互项解读极其复杂 |
| 你需要精确的概率预测(而不仅仅是系数的方向和显著性) | Logit/Probit | LPM 的预测值可能不在 [0,1],非线性模型更合适 |
| X 的变异范围很大,很多预测概率接近 0 或 1 | Logit/Probit | LPM 的直线拟合在极端概率处严重失准 |
| 你的读者群体主要关注系数的经济含义和沟通 | LPM | 系数直接是概率变化,无需换算 |
| 项目是学术论文,审稿人可能比较保守 | 两者都报告 | 正文用 Logit/Probit,附录或稳健性中用 LPM 展示核心结论一致 |
一个实证中的常见做法:正文用 Logit/Probit 作为基准模型,但在脚注或附录中报告 LPM 的结果——如果两个模型给出的核心系数的方向和显著性一致,审稿人很难再质疑你的结论对模型选择的敏感性。
六、常见误区
6.1 误区一:R² 太低,所以 LPM 不能用
LPM 的 R² 通常很低(0.05—0.20 之间是常态)。有人一看 R² = 0.08,就觉得模型没救了。
错。 0/1 因变量的 R² 天然就低——因为个体层面的 Y 是 0 或 1,而模型预测的是一个介于 0 和 1 之间的概率。即使模型完全正确(你知道真实的 DGP),Y 的真实值也是 0 或 1,而回归线是一条连续的概率线——你永远不可能用一条线去完美拟合一堆 0 和 1。R² 在这种情况下不再是"模型有多好"的准确度量。在 LPM 中,系数的显著性和经济含义远重要于 R²。
6.2 误区二:因为误差不服从正态分布,所以 LPM 的 t 检验无效
在大样本下,OLS 估计量渐近正态(通过中心极限定理)——即使误差不是正态的。这个渐近性质不依赖于误差的正态性假设。加上稳健标准误,LPM 的推断在大样本下是有效的。
换言之:正态性假设的违反,在 LPM 中是最不需要担心的一个问题。
6.3 误区三:Logit/Probit 一定比 LPM "更正确"
Logit/Probit 假设了 S 形函数形式——这是一个假设,和 LPM 的直线假设一样,也是一个假设。如果真实的概率函数恰好不是 logit 或 probit 的 S 形(比如它在某段是近似线性的),Logit/Probit 也是错的——而且错得不如 LPM 透明。
没有哪个模型是"真模型"。 LPM 和 Logit/Probit 都是对真实条件期望函数的不同近似。选择哪个,取决于你对近似质量的取舍——是要一个纯粹的、易解释的、但不保证在极端值处合理的线性近似,还是要一个处处在 [0,1] 内的、但解读和实现更复杂的非线性近似。
七、总结
LPM 的四条核心知识:
-
LPM 就是把 0/1 因变量当连续变量跑 OLS。 系数直接是"X 每变化一个单位,Y=1 的概率变化多少个百分点"——这是 LPM 胜过 Logit/Probit 的核心优势。
-
三宗罪:预测概率可能超出 [0, 1](在 X 极端时是问题,在 X 集中时不是)、构造性异方差(用稳健标准误解决)、线性形式假设恒定边际效应(在 S 形更合理的场景下是问题)。
-
LPM 不可替代的场景:使用工具变量(IV)、面板固定效应(FE)、以及需要简单解读交互效应时——LPM 比 Logit/Probit 更简单、更透明、更可靠。
-
最佳实践:LPM + 稳健标准误是底线。如果你担心预测值超出 [0, 1] 或非恒定的边际效应,正文用 Logit/Probit,附录用 LPM 做稳健性——让两者的证据指向同一个方向。
一句话收尾:
"LPM 不是一个'错的方法'——它是一个'粗糙但诚实'的方法。它诚实地告诉你:如果我用一条直线去拟合 0 和 1,系数是这样的,标准误已经修正了,预测值在大部分地方落在 [0,1] 里面,在极端值处请谨慎对待。Logit/Probit 更精细——但它们加了一层你需要用 margins 才能剥开翻译的外壳。选哪个,取决于你是更怕'预测概率为负'还是更怕'系数没法直接跟别人解释'。"
八、B站/公众号呈现建议
- B站视频:建议用"把 0/1 强行塞进一条直线"作为视觉开场。画面:纵轴只有两个刻度——0 和 1,散点全部落在这两条水平线上。一根直线(OLS 回归线)从 0 下方穿入,从 1 上方穿出。旁白:"当你的因变量只有 0 和 1——你把一条直线硬塞进去。它在中间拟合得还不错,但在两端——直线的末端穿出了概率的合法领土——跑到了 −0.3 和 1.4。这就是线性概率模型。"然后三幕展开。第一幕"三宗罪":动画逐一揭示——预测值越界(直线穿出 [0, 1] 区域,警报闪烁)、异方差(残差的分散度在 0.5 处最大,越靠近 0/1 越小——一个喇叭形崩塌成两个锥形)、恒定边际效应(一条 S 形曲线叠在直线上,展示在两端 S 形变平而直线仍在上升)。第二幕"为什么还在用":三个场景——IV(一个工具变量箭头插入模型,标注"2SLS + LPM = 简单直接")、面板 FE(多个个体虚拟变量进入模型,标注"Logit 的伴随参数问题,LPM 没有")、交互效应(
margins一行出结果,标注"非线性模型交互 = 地狱模式")。第三幕"选择指南":一个决策树动画——问题分支("有 IV?"→ LPM;"有面板 FE?"→ LPM;"需要交互?"→ LPM;"需要精确预测概率?"→ Logit)。结尾画面:两条路——左边的路标"LPM:粗但直白",右边的路标"Logit:细但要翻译",旁白:"不是谁对谁错——是你要解决什么问题。" - 公众号:LPM 的三宗罪建议每宗罪做成一张"罪证卡"(症状图 + 数学原因 + 解决方案)。LPM vs Logit/Probit 的选择决策树做成纵向流程图。五类场景的推荐表做成矩阵信息图。Angrist & Pischke 的那句经典建议("LPM + 稳健标准误足够好")做成引用框。预测概率的分布直方图(标注 min < 0 或 max > 1 的比例)建议配真实的 Stata 输出示例。
- 推荐标题:
- 主标题:《虚拟变量做因变量可以直接跑 OLS 吗?——线性概率模型的三宗罪与辩护词》
- 备选标题:《Y 只有 0 和 1,用
reg还是logit?——LPM 的致命缺陷和不可替代的优势》 - 新媒体标题:《你的因变量是 0/1——为什么经济学家还在用 OLS 而不是 Logit?》
- 金句提炼:
"LPM 把你的 0 和 1 强行塞进一条直线。它在中间拟合得很好,在两端一不留神就跑到概率的合法领土之外。但它的系数不需要翻译——'X 多一个单位,Y=1 的概率高 β 个百分点'——这句话 Logit 说不出来,除非你用
margins先翻译一遍。""LPM 的异方差不是因为你数据脏——是因为 0/1 的数学结构自带的。不用重跑,不用换模型——加个
robust就够了。""如果你需要工具变量、个体固定效应或者简单可解释的交互效应——Logit 在这些场景下要么做不了,要么做起来让你生不如死。LPM 说:我可以。"
"LPM 和 Logit 不是正确和错误的关系——它们是对同一个未知函数的不同近似。LPM 的近似是一根直线——粗糙但透明。Logit 的近似是一根 S 线——细腻但需要翻译。选哪个,取决于你的数据、你的方法、和你要沟通的对象。"