这是一个非常好的调整。我们将这两部分内容(线性回归的硬核原理 + 模型评估的深度辨析)进行有机融合。
线性回归是"骨架",模型评估(K折/Bootstrap)是"体检报告"。只有骨架正、体检过关,这个模型才能在 AB 实验(如 CUPED、归因分析、HTE)中真正落地。
以下是为你重新整合、深度撰写的文章。
---关注作者,送A/B实验实战工具包
在数据科学界,有一个怪圈:新人都在卷 XGBoost 和 Transformer,而真正的老手却在重新审视 线性回归 (Linear Regression)。
为什么?因为在 AB 实验和因果推断领域,可解释性 (Interpretability) 是压倒一切的。当我们试图回答"策略 A 到底带来了多少增量"、"哪些特征导致了效果差异"时,线性回归依然是上帝视角的工具。
但这就带来了一个更深层的问题:你训练出的回归模型,参数是可信的吗?如果训练数据稍微抖动一下,你的结论会不会直接反转?
这篇文章我们将从白板推导开始,把线性回归的"三大戒律"与模型评估的"稳定性陷阱"彻底讲透。
1. 回归模型的"骨架":形态与编码
1.1 简单 vs 多元
- 简单线性回归 (Simple Linear Regression) : y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1 x + \epsilon y=β0+β1x+ϵ。
- 多元线性回归 (Multiple Linear Regression) : y = β 0 + β 1 x 1 + ⋯ + β n x n + ϵ y = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n + \epsilon y=β0+β1x1+⋯+βnxn+ϵ。
- 价值 :AB 实验中,我们引入多元回归主要是为了控制变量 (Control Variates) 。比如 CUPED 方法,本质上就是把"实验前的指标"作为 x x x 扔进回归里,从而降低方差。
1.2 类别变量:独热编码 (One-hot Encoding)
机器读不懂"北京/上海/广州"。
- 做法 :将一个有 k k k 个级别的类别变量,拆解为 k k k(或 k − 1 k-1 k−1,避开共线性)个 0/1 二元变量。
- 警示:严禁使用 Label Encoding(即把北京编为 1,上海编为 2)。因为回归模型会从数学上认为"上海 = 2 倍的北京",这是严重的逻辑谬误。
1.3 交互项 (Interaction Term):异质性的灵魂
当你怀疑"策略的效果因人而异"时,必须引入交互项。
- 公式 : y = β 0 + β 1 x t r e a t + β 2 x u s e r + β 3 ( x t r e a t ⋅ x u s e r ) + ϵ y = \beta_0 + \beta_1 x_{treat} + \beta_2 x_{user} + \beta_3 (x_{treat} \cdot x_{user}) + \epsilon y=β0+β1xtreat+β2xuser+β3(xtreat⋅xuser)+ϵ
- 解读 :
- x t r e a t x_{treat} xtreat:是否实验组。
- x u s e r x_{user} xuser:用户等级。
- x t r e a t ⋅ x u s e r x_{treat} \cdot x_{user} xtreat⋅xuser:交互项 。如果 β 3 \beta_3 β3 显著,说明实验效果在不同等级用户身上是不同的。这是异质性分析 (HTE) 的数学基础。
2. 线性回归的"三大戒律"(核心假设)
如果这三条假设被打破,你的 P P P 值、置信区间和系数估计就是废纸。
① 无多重共线性 (No Multicollinearity)
- 定义 :自变量之间不应存在高度相关性(如 x 1 x_1 x1 和 x 2 x_2 x2 相关系数 0.99)。
- 后果 :
- 方差膨胀:系数估计变得极不稳定。
- 符号翻转:数据的一个微小扰动,可能导致正系数变成负系数,彻底破坏业务解释。
- 诊断:计算 VIF (Variance Inflation Factor)。
② 同方差性 (Homoscedasticity)
- 定义 :残差(误差)的方差在所有 x x x 水平上应保持恒定。
- 违背(异方差):例如预测电商 GMV,高消费人群的预测误差往往比低消费人群大得多(喇叭口形状)。
- 后果:标准误差 (Standard Error) 计算错误,导致显著性检验失效。
③ 观测独立性 (Independent Observations)
- 定义:样本点之间互不影响。
- 违背场景:时间序列数据(自相关)、聚类数据(同一班级、同一门店)。
- 后果 :样本有效信息量被高估,导致 P P P 值过小,产生"伪显著"。
3. 灵魂拷问:你的模型"稳"吗?(稳定性评估)
做完回归,很多人只看 R 2 R^2 R2 或 P P P 值。但资深分析师会问:"如果我换一份合理的训练样本,这个模型的系数/预测值还得住吗?"
这就涉及到了模型波动的评估。这里有三种常见做法,其中包含一个巨大的误区。
3.1 训练数据扰动 (Training-set Uncertainty)
我们真正关心的是:模型对训练数据的采样有多敏感?
为了回答这个问题,我们需要重采样技术。
3.2 黄金标准:重复 K 折与 Bootstrap
- 重复 K 折 (Repeated K-fold CV) :
- 做法 :做 N N N 次不同随机种子 的 K 折。最终得到 N × K N \times K N×K 个模型结果。
- 优势:相比单次 K 折,它平滑了"切分随机性",能更稳健地估计"在不同切分下模型的平均表现与波动"。
- 训练集 Bootstrap (Training-set Bootstrap) :
- 做法 :对训练集进行 B B B 次有放回重采样,训练 B B B 个模型,在固定 Test 集上预测。
- 产出 :你会得到同一个 Test 样本点 x i x_i xi 的 B B B 个预测值 y ^ i ( 1 ) , ... , y ^ i ( B ) \hat{y}_i^{(1)}, \dots, \hat{y}_i^{(B)} y^i(1),...,y^i(B)。
- 价值 :这是直接观察预测分布的最佳手段。如果某类用户的预测方差极大,说明回归模型没"看懂"这类人。
3.3 避坑:"方法4"为什么不够硬?
工程中常见一种做法(我们称之为"方法4"):
做法 :做一次 K 折,得到 K 个模型。用这 K 个模型预测同一个外层 Test 集,计算 K 个 MAE 的方差。
结论 :这只能做快速体感,不能作为正式的波动分布。因为它有两个致命弱点:
- 高度相关 (Correlation) :这 K 个模型的训练集共享了 ( K − 2 ) / ( K − 1 ) (K-2)/(K-1) (K−2)/(K−1) 的数据,重叠度极高。导致 K 个预测值高度正相关,算出的方差会系统性低估真实波动。
- 训练集规模效应 :每个模型只用了 ( K − 1 ) / K (K-1)/K (K−1)/K 的数据。你测到的波动里,混入了"数据量变少"带来的额外抖动,不能代表全量模型的真实稳定性。
4. 进阶技法:模型选择与正则化
当 OLS(普通最小二乘法)因为共线性或过拟合失效时,我们需要引入"惩罚项"。
4.1 偏差与方差权衡 (Bias-Variance Tradeoff)
- 高偏差:模型太简单(欠拟合)。
- 高方差:模型太复杂(过拟合),对训练集噪声过度敏感。
- 评估指标 :请看 调整后的 R 2 R^2 R2 (Adjusted R-squared) 。普通的 R 2 R^2 R2 只要加变量就会涨,而 Adjusted R 2 R^2 R2 会惩罚无用的变量,是模型选择的金标准。
4.2 正则化 (Regularization)
- Lasso 回归 (L1) : min ( S S E + λ ∑ ∣ β j ∣ ) \min (SSE + \lambda \sum |\beta_j|) min(SSE+λ∑∣βj∣)
- 杀手锏 :能把系数压缩到 0。
- 用途 :特征选择。如果你有 100 个特征只想留 10 个,用 Lasso。
- Ridge 回归 (L2) : min ( S S E + λ ∑ β j 2 ) \min (SSE + \lambda \sum \beta_j^2) min(SSE+λ∑βj2)
- 杀手锏:把系数压小,但不为 0。
- 用途 :解决共线性 。当 x 1 , x 2 x_1, x_2 x1,x2 高度相关时,Ridge 能让它们的系数平摊,不再甚至乱跳,大幅提升模型稳定性。
- Elastic Net:L1 + L2 的混合体,兼顾稀疏性与稳定性。
5. 总结与落地清单
在 AB 实验场景下使用线性回归,请遵循以下 SOP:
- 诊断先行:画残差图看同方差性,算 VIF 看共线性。
- 特征工程:类别变量必须 One-hot,异质性分析必须加交互项。
- 稳定性评估 :
- 不要迷信单次测试的 MAE。
- 使用 重复 K 折 或 训练集 Bootstrap 来量化"训练扰动"带来的不确定性。
- 警惕"方法4"(K 折模型 + 固定 Test)带来的方差低估风险。
- 模型调优:如果共线性严重,果断上 Ridge;如果想筛特征,上 Lasso。
线性回归看似简单,实则是统计学的基本功试金石。用好了,它就是最锋利、最透明的手术刀。
如果这篇文章帮你理清了思路,不妨点个关注,我会持续分享 AB 实验干货文章。
