理论到实践,A/B测试不得不直面的4个统计学问题
有放回?无放回?
从总体中随机抽取一个容量为n的样本,当样本容量 n足够大(通常要求n ≥30)时,无论总体是否符合正态分布,样本均值都会趋于正态分布。期望和总体相同,方差为总体的1/n。这即是中心极限定理,是A/B测试数据分析的基础。
然而抽样分为有放回和无放回两种。样本均值的方差是总体方差的1/n(n为样本容量),这个结论是针对有放回抽样的。实际试验中,大部分是无放回的,这样流程比较简单。无放回抽样,样本均值方差见下。观察公式可知道,当总体容量比样本容量大很多倍时,样本均值的方差可以近似为总体方差的1/n。

配对样本?独立样本?
当两个样本的获取存在关联时,称为配对样本。例如比较人早晚身高变化,如果早上身高的样本包含了张三,则晚上身高的样本也要包含张三。
某些情况下配对样本比较难实现,比如药物双盲试验,患者不能既服用安慰剂又服用药物。这时只能使用独立样本,随机分配个体进入两个样本,认为2个样本的个体统计上不存在差别。同时患者不知道自己服用的是安慰剂还是药物,消除心理作用的影响。
互联网产品的A/B测试和新药试验类似,理论上说应该让同一组用户同时看到多个版本进行比较,或者是看完一个版本后用时间机器倒回去再看另一个版本。显然无法做到,只能选取试验用户时足够的随机,让两组用户从统计意义上相同,认为偏差都是产品版本造成的。
样本方差?总体方差?
A/B测试计算置信区间的公式:
置信区间计算公式中的方差项,理论上应该使用总体方差。而总体方差没法知道,只能用样本方差来代替了。好在样本方差是总体方差的无偏估计。样本方差和总体方差的比值,符合χ2分布。

时变?时不变?
A/B测试需要假设产品用户的访问习惯不会随着时间的推移而发生变化。很遗憾在某些情况下并不是这样。某些产品存在很明显的季节因素,例如旅游。一般的A/B测试周期会包含休息日和工作日,但很难包含多个季节,在外推测试结论时要十分谨慎。另外强烈的外部事件会对用户产生刺激,要避免在这种情况下进行A/B测试,尽量在平稳时期进行。
本文作者:吆喝科技高级客户成功专家 韩刚
理论到实践,A/B测试不得不直面的4个统计学问题的更多相关文章
- Java 理论与实践: 非阻塞算法简介——看吧,没有锁定!(转载)
简介: Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能.非阻塞算法属于并发算法,它们可以安全地派生它们的线程, ...
- Java 理论与实践: 用弱引用堵住内存泄漏
弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...
- Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)
简介: 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化.请跟随并 ...
- DDD(领域驱动设计)理论结合实践
DDD(领域驱动设计)理论结合实践 写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听 ...
- Java 理论与实践: 并发集合类
Java 理论与实践: 并发集合类 DougLea的 util.concurrent 包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型 List 和 Map 的高性能的.线程安全的实现 ...
- CAN调度理论与实践分析
CAN调度理论与实践分析 分布式嵌入式系统是当前嵌入式系统的重要发展方向,因为它能提供更强的性能,节约系统的总体成本.但是由于各单个节点必须有通信网络相连才能协调地工作,网络就成了关键部分,没有网络提 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践
计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局 版 ...
- Java 理论与实践: 流行的原子
Java 理论与实践: 流行的原子 新原子类是 java.util.concurrent 的隐藏精华 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 ...
随机推荐
- RHEL6.5中完成播放音乐的“大业”
参考文章:http://ylw6006.blog.51cto.com/470441/589964 感谢:ylw6006@51CTO 首先,费了不少劲去找到三个文件(还要对应版本el6.i686或el6 ...
- linux延时关机
04.shutdown +2 "The machine will shutdown" # 2min 后关机,并通知在线者 05.shutdown -h now 立刻关机,其中now ...
- JAVA学习博客---2015-7
@Updata 2015.7.17 开始熟悉API.WPS首字母自动大写,有的没有加#编号的,其实方法首字母不是大写例如Char charAt 实际上是char charAt.当然骆驼写法charA ...
- MyRocks简介
RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务.经过facebook大量工作,将RocksDB为MySQL的一个存储引擎移植到MySQL,称之为M ...
- 不用asp.net MVC,用WebForm照样可以实现MVC(请看最后一句话)
在<避开WebForm天坑,拥抱ASP.Net MVC吧>这篇博客中我讲到了ASP.net WebForm由于一些先天的“诱导犯罪”的缺陷,现在用ASP.net MVC的公司越来越多.但是 ...
- linux下用rpm包安装默认配置
rpm安装默认目录:数据文件:/var/lib/mysql/配置文件模板:/usr/share/mysqlmysql客户端工具目录:/usr/bin日志目录:/var/log/pid,sock文件目录 ...
- 如何在ASP.NET 5上搭建基于TypeScript的Angular2项目
一.前言 就在上月,公司的一个同事建议当前的前端全面改用AngularJs进行开发,而我们采用的就是ASP.NET 5项目,原本我的计划是采用TypeScript直接进行Angular2开发.所以借用 ...
- Linux文件系统应用---系统数据备份和迁移(用户角度)
1 前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的 “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...
- 项目八:团队项目——Alpha阶段项目总结
1.项目的预期目标 a.完成游戏的基本功能 b.游戏难度的玩家手动调节 c.游戏能够良好的运行完成 与前期的需求分析对比: 第一点不同是游戏的难度调节,原来是想通过选择难度来调节的,但由于难度的分层上 ...
- 继续SecureString
上回写了关于SecureString的特征和为什么我们要使用它,这篇继续研究研究这个SecureString. **主要内容:** - SecureString与String之间的转换 - Secur ...