计量小课:计量经济学基础
计量经济学计量小课

实证研究中的控制变量怎么选?——不是影响 Y 的就该放进来

在实证研究的方法讨论中,有一个问题被问到的频率极高,但得到系统回答的频率极低——

作者:计量科研导航站发布:2026-07-29★★

一、开篇:"多放几个控制变量"可能是你论文里最危险的操作

在实证研究的方法讨论中,有一个问题被问到的频率极高,但得到系统回答的频率极低——

"我的控制变量该怎么选?"

很多人的默认操作是:凡是理论上可能影响 Y 的变量,都扔进去。理由是"多控制总比少控制好,至少审稿人不会说我遗漏变量"。

这个直觉在某些情况下是错的,而且错得危险。不是所有影响 Y 的变量都该被控制——有些变量被控制之后,不仅不会减少偏误,反而会引入新的偏误,甚至让你本来干净的因果识别变得一团糟。

控制变量的选择,取决于你的研究目标。而研究目标大致可以分为两类——这篇文章就沿着这两条路来讲清楚。

核心信息:如果你的目标是"预测 Y"或"探索 Y 的影响因素",控制变量可以相对宽泛——但仍要警惕反向因果和过度拟合。如果你的目标是"识别 X 对 Y 的因果效应",控制变量的选择必须严格遵循"阻断混淆路径、不阻断因果路径"的原则。放错一个控制变量,可能比少放一个控制变量更致命。


二、两张地图:两种研究目标,两种控制逻辑

在谈具体怎么选之前,先区分两种最常见的研究场景。

场景 A:研究 Y 的影响因素(无单一核心解释变量)。

典型论文标题:《中国居民主观幸福感的影响因素分析》《企业创新绩效的决定因素研究》。

你的目标是尽可能全面地描述哪些因素和 Y 相关,哪些因素的"解释力"更强。你没有一个需要优先识别和保护的"核心系数"——所有的 X 在地位上大致平等。这种研究的性质更接近描述或预测

场景 B:研究 X 对 Y 的因果效应(有明确的核心解释变量)。

典型论文标题:《教育回报率的估计——基于工具变量法》《最低工资对就业的影响——来自某自然实验的证据》。

你的核心目标只有一个:无偏地估计核心变量 X 的系数 β₁。 控制变量存在的全部意义,就是为这个目标服务——它们是被请来"挡枪"的(阻断混淆路径),而不是来"抢戏"的(不能被它们干扰核心因果链条)。这种研究的性质是因果识别

两种场景下,控制变量的选择逻辑完全不同。下面分别讲。


三、场景 A:研究 Y 的影响因素——"谁和 Y 有关?"

3.1 你可以放什么?

在描述/预测导向的研究中,你的目标是最大化对 Y 的解释力或预测力。因此:

  • 凡是理论上影响 Y 的变量,原则上都可以放。 年龄、性别、教育、地区、政策环境——只要在理论或已有文献中和 Y 有关联,都可以进入模型。
  • 你的核心关注点不在某一个系数上,而在于整体模式的解释力。 因此不需要区分"核心变量"和"控制变量"——所有变量在模型中的"待遇"是平等的(尽管它们在理论中的重要性可能不同)。

3.2 但有三件事你不能做

第一,不能放入"被 Y 影响的变量"(反向因果)。

你研究"企业绩效的影响因素",控制了"企业是否上市"。但企业绩效好的公司更可能去上市——上市不是绩效的原因,而是绩效的结果。把它放进回归,系数的解释就变得极其困难:是上市提高了绩效,还是高绩效的企业更容易上市?这两者在同一个回归系数里是无法拆开的。

放入反向因果的变量,会让模型中所有和它相关的变量的系数都被"污染"——因为模型在利用一个被 Y 反过来塑造的变量来"解释"Y。

第二,不能把同义反复的变量放进去。

你研究"影响GDP的因素",放了"消费""投资""政府支出""净出口"作为自变量。这四个变量之和恰好等于 GDP(按支出法核算)——你在拿一个恒等式跑回归。R² 会高得惊人,但这不是"解释力",这是会计核算。这样做相当于在说"GDP之所以是GDP,是因为消费投资政府支出加起来正好等于它"——这条信息量为零。

第三,多重共线性虽然不导致偏误,但在小样本中会让系数估计不稳定。

如果你的两个自变量高度相关(如"人均GDP"和"人均收入"),它们的系数标准误会膨胀——你无法区分"谁在起作用"。在预测任务中,这也许还可以接受(只要整体预测力不受影响),但在解释"每个因素的影响大小"时会出问题。


四、场景 B:研究 X 对 Y 的因果效应——"阻断混淆、不阻断因果"

这是本文的核心。对于因果识别研究,控制变量的选择有一组严格的原则。

4.1 因果图(DAG)思维——用图来思考

在用文字讲之前,先引入一个思维工具——有向无环图(Directed Acyclic Graph, DAG)。它画的是变量之间的因果关系(箭头 = 因果方向)。

考虑一个简单的因果结构:

       能力 (Z)
      /      \
     ↓        ↓
  教育 (X) → 工资 (Y)
  • Z(能力)同时影响 X(教育)和 Y(工资)→ Z 是混淆变量(Confounder)
  • X(教育)影响 Y(工资)→ 这是你想识别的因果路径。

现在,你的回归里如果只放 X 不放 Z,X 的系数会同时捕获"教育→工资"和"教育←能力→工资"这两条路径——系数有偏。要得到无偏的因果效应,你需要在回归中控制 Z。

这个图中的每一条链对应着"控制或不控制"的一个决策。 下面把最常见的三种结构一一拆开。

4.2 结构一:混淆变量(Confounder)——必须控制

      Z
     / \
    ↓   ↓
    X   Y

Z 同时影响 X 和 Y。Z 之于"教育→工资"就是"能力"。

结论:必须控制 Z。 不控制 Z,X 的系数就是有偏的——X 和 Y 之间的相关被 Z 的混淆所污染。控制了 Z 之后,X 和 Y 在 Z 相同的水平下进行比较,这条'后门路径'(X ← Z → Y)被阻断了。

选择混淆变量的原则:考虑所有理论上同时影响 X 和 Y的变量,将它们纳入控制。如果你不确定某个变量是否"同时"影响两者,可以从已有文献中寻找线索,或做稳健性检验(分别控制和不控制时核心系数的变化方向是否符合预期)。

4.3 结构二:中介变量(Mediator)——不能控制

    X → M → Y

X 通过 M 来影响 Y。在"教育→职业声望→工资"这个例子中,职业声望 M 是中介变量。

结论:如果你想估计 X 对 Y 的总效应——不能控制 M。

因为控制 M 等于在统计上"堵住了"X 影响 Y 的一条真实因果通道。你估计出的 X 系数将只是"直接效应"(X→Y,绕过 M 的路径),而非你想知道的总效应(直接效应 + 通过 M 的间接效应)。

例外:如果你的研究问题恰好是"在控制了职业声望之后,教育是否仍然对工资有额外的直接影响"——那你确实需要控制 M。但这时候你明确知道自己在估计直接效应,而不再声称"教育对工资的总影响"。这属于研究目标层面的区分,需要在论文中清晰地说明。

4.4 结构三:对撞变量(Collider)——绝对不能控制

    X → C ← Y

C 同时是 X 和 Y 的结果。X 和 Y 原本不相关(或者只通过其他路径相关),但如果你控制了 C,你反而会在 X 和 Y 之间创造出一条虚假的关联

实例:X = 天赋,Y = 努力,C = "被名校录取"。天赋和努力在总体中可能没有相关性。但是——被名校录取的学生中,天赋和努力呈现负相关:天赋不太高的被录取者,往往特别努力;天赋极高却不太努力的也被录取了。如果你控制了"是否被名校录取"(即只看名校生),你会"制造"出"天赋和努力负相关"这一在总体中并不成立的统计现象。

这就是对撞偏误(Collider Bias)——控制了 C 之后,X 和 Y 之间的关联被扭曲了,你得到的是一个被选择效应污染过的虚假关联。

实证中的常见对撞变量

  • "是否存活到调查时点"——X 和 Y 都可能影响存活概率。如果在只对存活者做的分析中控制这个,你会引入存活者选择偏误。
  • "是否完成了学业"——在研究教育对收入的影响时,如果样本中只有毕业生,那你在"是否毕业"这个对撞变量上已经隐式地条件化了。
  • "是否参加了调查"——同上。

结论:绝对不要控制。 对撞变量是控制变量选择中最危险的陷阱——因为它"看起来像是重要的控制变量"(它既和 X 有关,又和 Y 有关),但实际上控制它会让你的分析更糟。

4.5 结构四:只影响 Y、不影响 X 的变量——可控制,但非必须

    X → Y ← W

W 只影响 Y,不影响 X。例如在研究"教育(X)对工资(Y)"时,W = "当地的天气"只影响工资(影响农业、建筑等户外工作的产出),与一个人的教育水平无关。

结论:控制 W 不会减少偏误(因为它不是混淆变量),但可能提高精度。 因为 W 解释了 Y 的一部分变异,残差方差 σ² 会减小 → 标准误会下降 → t 值会增大 → 更容易检测到真实的效应。

但如果样本量有限,增加不必要的控制变量会消耗自由度,使得标准误反而因自由度减少而略有增加。实践中——如果样本量充足(n > 100,k < 10),这类"无害但有益"的变量可以放;样本量紧张时,优先保证混淆变量的覆盖,而不是追求残差方差的最小化。


五、好控制 vs 坏控制——一张速查表

变量类型 因果结构 应该控制吗? 为什么?
混淆变量(Confounder) X ← Z → Y 必须控制 不控制会导致遗漏变量偏误
只影响 Y 的变量 X → Y ← W ⭕ 可选 不减少偏误,但可能提高精度
只影响 X 的变量 Z → X → Y ⭕ 可选 不影响偏误,控制也不会提高精度
中介变量(Mediator) X → M → Y 不要控制(如果你要估计总效应) 会堵住真实的因果路径
对撞变量(Collider) X → C ← Y 绝对不能控制 会制造虚假的X-Y关联
被Y影响的变量(Reverse Causality) Y → V ❌ 不能控制 系数解释变得不可能
工具变量 Z → X → Y(Z和Y不直接相关) ❌ 不能作为控制变量 如果把 IV 当作控制变量,它就不再是 IV 了
同义反复变量 X + V ≡ Y(恒等式) ❌ 不能控制 不是解释力,是会计核算

六、实战框架——选择控制变量的步骤

如果你在研究 X 对 Y 的因果效应(场景 B),按以下步骤操作:

步骤一:画因果图。 把你认为和 X 或 Y 相关的所有变量画在一个 DAG 上。标注每个变量和 X、Y 之间的箭头方向。这不需要"证明"因果——它只是把你的理论假设外化到纸面上,让审稿人和读者能看到你的假设是什么。

步骤二:标出混淆路径。 找出所有"同时影响 X 和 Y"的变量。这些是你必须优先控制的。

步骤三:标出中介路径和对撞结构。 找出 X 和 Y 之间的中介变量——如果你要估计总效应,标记为"不控制"。找出 X 和 Y 共同的结果——标记为"绝对不能控制"。

步骤四:考虑实际可行性。 你能获得的数据中,哪些混淆变量是可观测的?如果关键混淆变量不可观测,你可能需要更换识别策略(IV、DID、RDD 等),而非仅靠多元回归。

步骤五:做稳健性检验。 报告不加控制变量(只含核心 X)的回归结果,以及逐步添加控制变量的结果。如果核心系数在各列中保持大致稳定,这支持了"混淆变量的影响不大"的论断;如果系数随控制变量的加入而发生剧烈变化,说明混淆偏误严重。

步骤六:在论文中论述——而不只是列表。 不要用"我们控制了年龄、性别、教育、地区"来搪塞——要解释为什么这些特定变量需要被控制:"我们控制教育程度,因为教育同时影响政治参与(X)和收入水平(Y)——在以往文献中,教育被认为是政治参与的最强混淆因素之一(引用)。"这段话本身就展示了因果推理,而不是机械列表。


七、总结:一个公式帮你记住

偏误=被遗漏的混淆变量的效应×混淆变量与X的相关性\text{偏误} = \text{被遗漏的混淆变量的效应} \times \text{混淆变量与X的相关性}

选择控制变量的核心任务:让这个"偏误"尽可能接近于零——通过把 Cov(Z,X)0\text{Cov}(Z, X) \neq 0βZ0\beta_Z \neq 0 的 Z 变量逐一纳入控制。

但要同时确保:不要把中介变量和对撞变量当作混淆变量来控制——在因果图上,混淆变量位于 X 和 Y 的"上游"(指向 X 和 Y),中介变量位于 X 和 Y 的"中间"(在因果链上),对撞变量位于 X 和 Y 的"下游"(被 X 和 Y 共同指向)。

不是影响 Y 的就该放进来。有些变量被放进来之后,你的因果识别就从"不完美但可辩护"变成了"彻底不可靠"。


一句话收尾

"选择控制变量不是技术操作——是你的因果理论在变量层面的投影。你在因果图上画出的每一条箭头,最终都对应着回归表里一个变量是控还是不控的决策。画错了图,控制变量就选错了。控制变量选错了,系数就不是你想要的因果效应了。"


八、B站/公众号呈现建议

  • B站视频:三种因果结构(Confounder / Mediator / Collider)建议用动画展示——分别演示"控制前 vs 控制后"的关联变化。特别是 Collider 偏差:用"名校生中天赋和努力负相关"的例子,展示条件化(只看名校生)如何凭空制造出一个在总体中不存在的关系。
  • 公众号:好控制 vs 坏控制的对照表建议做成"✅ 绿灯 / ❌ 红灯"双列卡片。DAG 的三种结构建议各配一个具体实例的手绘图(能力→教育→工资等)。六步实战框架做成纵向流程图。
  • 推荐标题
    • 主标题:《实证研究中的控制变量怎么选?——不是影响 Y 的就该放进来》
    • 备选标题:《放错一个控制变量,比少放一个控制变量更致命》
  • 金句提炼

    "控制变量的选择,是你的因果理论在变量层面的投影。画对了因果图,就知道哪些该控、哪些不该控。画错了图,系数的含义就不是你想象的那个因果了。"