4. 核心假设的类型

在模型概念稳健性与核心假设验证的实战中,第一步不是急着跑诊断,而是先回答一个更根本的问题:这个模型到底依赖了哪些假设?很多模型失效并非算法本身有缺陷,而是它的核心假设在真实数据上不成立。本节把常见核心假设归纳为五类,并给出可操作的验证思路。

一、核心原理:假设是模型的“承重墙”

任何模型都可以看作“假设 + 推断规则”的组合。假设决定了模型在什么条件下可信,推断规则决定了如何从数据得到结论。当假设被违反时,参数估计可能仍然能算出来,但它的含义、置信区间和预测稳定性都会失真。因此,验证假设不是形式主义,而是判断模型结论能否迁移到新场景的关键。

五类核心假设可以这样理解:

  • 线性假设:自变量与因变量(或变换后的因变量)之间呈线性可加关系。
  • 独立性假设:样本之间、误差之间相互独立,不存在未建模的相关结构。
  • 分布假设:误差或变量服从某类分布(如正态、泊松、指数族)。
  • 因果假设:变量之间存在可解释的因果方向,且无未观测混杂。
  • 平稳性假设:数据生成过程随时间保持统计特性不变。
核心判断:假设验证的目标不是“证明假设成立”,而是评估“假设被违反到什么程度、对结论影响多大、是否需要换模型或改设计”。

二、五类假设的验证方法与典型信号

下面用一张表把假设、常见违反信号和验证手段对应起来,便于在项目中快速排查。

假设类型 典型违反信号 常用验证手段 稳健化方向
线性假设 残差呈现弯曲模式;分组斜率差异大 残差-拟合图、偏依赖图、分段回归 多项式/样条、广义加性模型、树模型
独立性假设 残差自相关;同一用户多次采样 ACF/PACF、Durbin-Watson、聚类稳健标准误 混合效应模型、时间序列模型、聚类调整
分布假设 残差重尾、偏态;方差随均值增大 QQ图、Shapiro-Wilk、异方差检验 稳健标准误、分位数回归、变换或换分布族
因果假设 系数显著但方向与业务逻辑相反 DAG梳理、工具变量、倾向得分匹配 实验设计、双重差分、敏感性分析
平稳性假设 均值/方差随时间漂移;滚动统计量变化 ADF/KPSS检验、滚动均值与方差图 差分、去趋势、滚动重训练、状态空间模型

三、方法流程:从假设清单到验证闭环

建议按以下流程执行,避免“只跑一个检验就下结论”:

  1. 列出假设清单:把模型文档、论文或实现中的前提逐条写出,标注哪些是强假设。
  2. 映射到可观测诊断:每个假设至少对应一个可视化或统计检验。
  3. 量化违反程度:不要只报 p 值,同时报告效应量、置信区间和业务影响。
  4. 做敏感性分析:在假设被放松或替换后,观察核心结论是否翻转。
  5. 决定动作:接受、修正、换模型或重新设计数据采集。

以线性回归为例,可以用一段最小代码同时检查线性、独立性和分布假设:

import statsmodels.api as sm
import statsmodels.stats.diagnostic as diag

model = sm.OLS(y, sm.add_constant(X)).fit()
resid = model.resid

# 线性与异方差:残差-拟合图 + Breusch-Pagan
print(diag.het_breuschpagan(resid, model.model.exog))

# 独立性:Durbin-Watson
print(sm.stats.durbin_watson(resid))

# 分布:Jarque-Bera 正态性检验
print(sm.stats.jarque_bera(resid))

输出中若 Breusch-Pagan 的 p 值很小、Durbin-Watson 明显偏离 2、Jarque-Bera 拒绝正态,就说明至少有两类假设需要处理。此时不要直接删除样本,而应优先考虑稳健标准误、模型结构变化或数据重采样。

四、案例与场景:假设违反如何导致结论翻转

某电商团队用线性回归估计“优惠券金额对复购率的影响”,系数为正且显著。但残差图显示明显弯曲,且同一用户多次购买导致残差自相关。进一步按用户聚类后,标准误扩大,显著性消失。这里同时违反了线性假设和独立性假设,若只看原始 p 值,会得出过度乐观的结论。

另一个典型场景是时间序列销量预测。模型在训练集表现很好,但上线后误差逐渐增大。检查滚动均值和方差发现明显漂移,说明平稳性假设不成立。此时应改为差分建模或引入滚动重训练机制,而不是继续调参。

实战建议:把“假设验证”写成项目检查清单,每次建模前勾选一次。清单比记忆更可靠,也更容易在团队内传承。

五、误区与复盘

  • 误区一:假设检验不显著就等于假设成立。不显著可能只是样本量不足,应结合效应量和可视化判断。
  • 误区二:只验证分布假设,忽略独立性和平稳性。后两者在业务数据中更常见,也更隐蔽。
  • 误区三:把因果假设当成统计假设。因果方向无法仅靠回归系数确定,需要设计或外部知识。
  • 误区四:发现违反就立刻换复杂模型。先评估违反对核心结论的影响,再决定是否升级模型。
复盘要点:记录每次假设违反的处理方式与结果。长期积累后,你会形成针对自身业务的数据假设风险图谱,这比任何单一模型都更有价值。