news 2026/5/1 8:40:11

AB实验的关键认知(二)独立同分布

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AB实验的关键认知(二)独立同分布

—关注作者,送A/B实验实战工具包


如果说正交与互斥是 AB 实验平台的“骨架”,那么独立同分布 (i.i.d.)就是流淌在其中的“血液”。

很多工程师和分析师在面试时能背出“T 检验要求正态分布”,但当被问到“什么是 i.i.d.?为什么它比正态性更重要?”时,往往一脸茫然。

在工业界实战中,90% 的“实验翻车”事故——比如 A 组策略明明无效却显示显著(假阳性),或者 A 组策略吸干了 B 组的流量(SUTVA 违背)——归根结底都是因为违背了独立同分布假设。

今天我们不掉书袋,用最直觉的逻辑把这个统计学天条掰开了、揉碎了讲清楚。


1. 什么是 i.i.d.?

独立同分布的全称是Independent and Identically Distributed。它包含两个独立的铁律:

  1. 独立性 (Independent)
    • 定义:一个样本的取值,不会影响另一个样本的取值。
    • 人话:A 组用户吃肉,不能让 B 组用户连汤都喝不上。用户之间必须是“老死不相往来”的孤岛。
  2. 同分布 (Identically Distributed)
    • 定义:所有样本都来自同一个概率分布。
    • 人话:A 组和 B 组的用户,必须是从同一个池子里舀出来的水。不能 A 组全是早高峰的上班族,B 组全是半夜的夜猫子。

2. 独立性 (Independent):被忽视的“吸血鬼”

在互联网实验中,独立性最容易被网络效应 (Network Effect)破坏。学术界称之为SUTVA (Stable Unit Treatment Value Assumption)违背。

反例:网约车的“资源抢夺”

假设滴滴要在某城市测试一个“司机端高额补贴”策略。

  • A 组司机:有补贴,接单积极性暴涨。
  • B 组司机:无补贴,正常接单。

实验结果
A 组接单率显著上升,B 组接单率显著下降
计算出的 Lift = A - B,看起来巨大无比。

真相
这是一个封闭的供需市场。订单总量是固定的。A 组司机因为抢单太猛,把本该属于 B 组司机的单子抢走了。
A 组的提升,是靠**“吸血”** B 组得来的,而不是策略真的创造了额外价值。这违背了独立性。

B组司机-无补贴

A组司机-有补贴

有限的订单池

抢单能力强

抢单能力强

抢不过

无单可接

Order1

Order2

Order3

DriverA1

DriverA2

DriverB1

DriverB2

正例:如何修复?
对于这种双边市场(Marketplace)实验,不能按用户/司机 ID分流,而必须按时空分流。

  • 时间片轮转:今天全城 A 策略,明天全城 B 策略(Switchback Experiment)。
  • 地理隔离:北京跑 A 策略,上海跑 B 策略(虽然有城市差异,但保证了独立性)。

3. 同分布 (Identically Distributed):隐形的“时间刺客”

同分布要求实验组和对照组的样本在统计属性上是一致的。这通常由随机化 (Randomization)来保证,但在工程实现上很容易出 Bug。

反例:哈希算法的“时序陷阱”

假设你写了一个简陋的分流服务:

  • 前 50% 进入的用户→ \rightarrowA 组。
  • 后 50% 进入的用户→ \rightarrowB 组。

业务场景
这是一个早报类 App。

  • A 组用户:全是早上 6:00 - 9:00 进来的“早起党”,特征是年龄大、留存高、点击率低。
  • B 组用户:全是 9:00 以后进来的“摸鱼党”,特征是年轻、点击率高。

实验结果
即使 A/B 两组没有任何策略差异,B 组的点击率也会显著高于 A 组。
原因:A 组和 B 组的样本不同分布。你对比的不是策略,而是两群不同的人。

用户池

时间轴

全部进入

全部进入

性质不同

性质不同

6:00-9:00

9:00-12:00

老年/早起用户

A组

年轻/摸鱼用户

B组

结果不可比

正例:如何修复?
必须使用哈希取模hash(uid) % 100)进行实时分流。
无论用户几点来,只要他的 UID 是固定的,他进 A 组的概率永远是 50%。这样 A 组和 B 组里都会均匀混杂“早起党”和“摸鱼党”,实现了同分布。


4. 为什么 i.i.d. 比正态性更重要?

回到那个经典的面试题。

  • 正态性:即使原始数据不正态,只要样本量够大,中心极限定理 (CLT)会帮我们把均值分布“修正”为正态。我们有数学工具(T检验)来兜底。
  • i.i.d.:如果数据不独立(如网约车吸血)或不同分布(如时间片偏差),没有任何数学工具能救你
    • 因为你的对照组 (Baseline)已经失效了。
    • 你以为你在测策略,其实你在测运气,或者在测系统 Bug。

一句话总结
正态性决定了你算 P 值准不准(战术问题),而i.i.d. 决定了你的实验成不成立(战略问题)


如果这篇文章帮你理清了思路,不妨点个关注,我会持续分享 AB 实验干货文章。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:37:33

Galaxy比数平台功能介绍及实现原理|得物技术

一、背景 得物经过10年发展,计算任务已超10万,数据已经超200PB,为了降低成本,计算引擎和存储资源需要从云平台迁移到得物自建平台,计算引擎从云平台Spark迁移到自建Apache Spark集群、存储从ODPS迁移到OSS。 在迁移时…

作者头像 李华
网站建设 2026/4/25 23:31:10

‌AI模拟用户情绪波动:软件测试从业者的新测试范式

在当今以用户体验为核心的产品开发逻辑中,软件测试早已超越“功能正确性”的单一维度,逐步向‌情感可用性‌(Emotional Usability)和‌心理韧性测试‌(Psychological Resilience Testing)延伸。‌一、为什么…

作者头像 李华
网站建设 2026/4/26 19:45:09

React 性能优化:memo、useMemo 与 useCallback 用法

你在 React 项目开发中,是不是遇到过组件无意义重复渲染、复杂计算耗时过长的问题?比如父组件仅仅修改自身状态,子组件却跟着重新渲染;每次渲染都执行复杂的数组过滤、排序,导致页面卡顿。React 提供的 memo、useMemo、…

作者头像 李华
网站建设 2026/5/1 6:09:42

springboot152基于Java技术的大学生课程选课管理系统设计

目录 具体实现截图摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 摘要 大学生课程选课管理系统是基于Java技术和SpringBoot框架设计的一套高效、稳定的信息化管理平台。该系统旨在解决传…

作者头像 李华