核心内容摘要
老八日三个媳妇:一段跨越时空的民间传说与文化印记
—关注作者送A/B实验实战工具包很多刚接触 A/B 实验的数据分析师都有一个误区认为方差分析 (ANOVA) 和线性回归 (Linear Regression) 是两个完全独立的统计工具。
“我要预测用户 LTV我用回归。
”“我要比对 A/B 组的消费均值我用 ANOVA。
”但在数学的底层逻辑里ANOVA 只是线性回归的一个特例。
而在业务分析的逻辑里它们是互补的叙事工具。
今天我们不仅要在白板上推导数学公式还要从数据叙事和工程实现的角度看清这两个工具如何配合帮你把实验结论讲清楚。
选型地图一切取决于“自变量 (X)”首先我们要厘清一个概念。
ANOVA 和 线性回归 有一个共同的前提因变量 (Y) 必须是连续数值如 GMV、人均时长、订单金额。
如果 Y 是“点击/未点击”那你需要的是卡方检验或逻辑回归。
在 Y 都是连续值的前提下决定我们用哪个工具的是自变量 (X)的类型场景自变量 (X) 的类型典型业务问题首选工具场景 A分类变量 (Categorical)实验组 vs 对照组红钻用户 vs 蓝钻用户方差分析 (ANOVA)(关注组间差异)场景 B连续变量 (Continuous)活跃天数、历史订单数用户年龄线性回归 (Regression)(关注趋势预测)既然分工明确为什么说它们是一回事因为通过哑变量 (Dummy Variable)技术我们可以把“分类变量”转化为“数值变量”0和1。
一旦转化完成ANOVA 就变成了一个特殊的线性回归方程。
业务视角宏观叙事 vs 显微侦查在分析复杂的 A/B 实验尤其是多因素实验时我们往往需要同时使用这两种思维线性回归是“宏观叙事” (Storytelling)它提供了一张全景图 (Holistic Picture)。
它告诉你哪些变量策略、城市、用户等级显著影响了结果以及影响的权重系数β\betaβ是多少。
ANOVA 是“放大镜” (Magnifying Glass)当回归告诉你“城市对客单价有显著影响”后ANOVA 帮你把镜头拉近去进行成对比较 (Pairwise Comparisons)。
它能帮你拆解变量内部的子集差异看清楚到底是“北京 vs 上海”有差异还是“上海 vs 广州”有差异。
数学推导切蛋糕模型理解了业务定位我们回到数学底层。
为什么回归的指标能用来做方差分析核心结论只有一个在处理分类变量时线性回归模型的预测值Y^\hat{Y}Y^本质上就是该组的“组均值”。
基于此回归的三大指标完美映射到了 ANOVA 中。
我们可以把总变异想象成一块大蛋糕SST数据的原始混乱度 (Total Sum of Squares)SST∑(Yi−Yˉtotal)2 SST \sum (Y_i - \bar{Y}_{total})^2SST∑(Yi−Yˉtotal)2含义这是整块蛋糕的大小。
它是数据的原始波动不依赖于任何模型。
它定义了我们能解释的上限。
SSR模型解释了多少 (Regression Sum of Squares)SSR∑(Y^i−Yˉtotal)2 SSR \sum (\hat{Y}_i - \bar{Y}_{total})^2SSR∑(Y^i−Yˉtotal)2对应 ANOVA组间平方和 (Sum of Squares Between, SSA)。
含义这是你切走并吃掉的蛋糕。
逻辑回归视角看的是“预测值偏离基准线多远”实验视角看的是“实验组均值偏离大盘均值多远”。
SSR 越大说明实验策略带来的差异越显著。
SSE模型没解释的部分 (Error Sum of Squares)SSE∑(Yi−Y^i)2 SSE \sum (Y_i - \hat{Y}_i)^2SSE∑(Yi−Y^i)2对应 ANOVA组内平方和 (Sum of Squares Within, SSW)。
含义这是切蛋糕时掉在地上的碎渣。
逻辑这是模型搞不定的噪音。
即剔除分组影响后组内个体张
李四之间的随机差异。
建模的终极目标让 SSR 无限接近 SST吃掉蛋糕同时让 SSE 无限接近 0不掉渣。
工程实战为什么 Python 里做 ANOVA 要先写ols如果你使用 Python 的统计界标准库statsmodels你会发现一个有趣的现象做 ANOVA 之前你必须先跑一个 OLS 回归模型。
importstatsmodels.apiassmfromstatsmodels.formula.apiimportols#
先建立回归模型 (OLS)# 注意C(color) 告诉模型这是一个分类变量modelols(price ~ C(color) C(cut) C(color):C(cut),datadiamonds).fit()#
再基于回归模型生成 ANOVA 表anova_tablesm.stats.anova_lm(model,typ
很多同学会困惑“我只是想做个方差分析为什么要强迫我写回归公式”这恰恰是工程实现对数学本质的致敬。
当你写下price ~ C(color)时你实际上是在告诉计算机构建一个包含哑变量的回归方程。
而anova_lm函数只是把这个回归方程的 SSR 和 SSE 提取出来计算出 F 统计量而已。
关键应用交互效应 (Interaction Effects)这种“披着回归外衣”的 ANOVA最大的威力在于处理交互效应。
在上述代码中C(color):C(cut)这一项就是在检验颜色的影响是否依赖于切工在 A/B 实验中这对应着最深层的洞察“新算法策略A确实有效但交互项显示它只对高活跃用户因子B有效对低活跃用户甚至是负向的。
”如果不借助回归方程的公式语法这种复杂的交互关系很难通过简单的分组计算理清楚。
5.
总结不要把 ANOVA 和回归看作两门课。
SST是总考卷分值。
SSR是你做对的题模型解释的规律即组间差异。
SSE是你做错的题模型未解释的噪音即组内差异。
当你运行anova_lm时你实际上是在问模型“我刚才切走的那块蛋糕SSR是不是大到了不像是运气好切出来的”如果这篇文章帮你理清了思路不妨点个关注我会持续分享 AB 实验干货文章。