All I know about A/B Test (1) : 均值型指标与比值(率)型指标的计算区别
因为最近在找实习,所以打算把自己之前学过的关数据分析的知识总结(复习)一下。在总结A/B test时,我发现中文互联网中关于A/B test的总结已经很多了,但是对于均值型指标和比值(率)型指标在设计实验、计算统计量时的区别却没有一个很明确的总结。甚至有的文章给出的计算公式语焉不详、前后矛盾,计算样本数量给的是均值型指标的计算公式,计算Z值时又给出了比值(率)型指标的计算公式。
均值型指标和比值(率)型指标
在互联网数据分析中,有许多指标是数据分析师所关心的,对于不同的数据分析任务需要选取合适的指标。对A/B test而言,这些指标可以分为两类
- 比值(率)型,如点击率、转化率等
- 均值型,如人观看时长等
需要注意的是,在统计学中,这两类指标的假设检验是不同的。这种不同主要体现在三个方面:效应量(Effect size)的计算、所需样本量的计算以及Z检验统计量的计算。
所需样本量
在给出计算样本量之前,首先介绍一下样本量的四个影响因素,分别是:
- 显著性水平(α):显著性水平越低,对实验结果的要求也就越高,越需要更大的样本量来确保精度
- 统计功效(1 – β):统计功效意味着避免犯二类错误的概率,这个值越大,需要的样本量也越大
- 均值差异(\(\mu_1, \mu_2\)):如果两个版本的均值差别巨大,也不太需要多少样本,就能达到统计显著
- 标准差(σ):标准差越小,代表两组差异的趋势越稳定。越容易观测到显著的统计结果
一个A/B test需要的样本量就由四个指标进行计算:
比值(率)型指标
\[N = \frac{(z_{1-\alpha/2}\sqrt{2\frac{p_1 +p_2}{2}(1-\frac{p_1 +p_2}{2})} +z_{1-\beta}\sqrt{p_1(1-p_1)+ p_2(1-p_2)} )^2}{(p_1-p_2)^2}
\]其中\(p_1,p_2\)分别表示两组样本的比值型指标。上述方法为R和G*power中使用公式,其他工具略有不同,更多比值类样本量计算方法,参考[2]。
均值型指标
\]
\]
其中\(N_1,N_2\) 分别表示两组样本数量;\(z_{1-\alpha/2},z_{1-\beta}\) 通过\(z\)分布计算;\(\mu_1,\mu_2\) 分别为当前均值指标和预估改进后均值指标(或者期望检测到的指标变化)。重点是标准差\(\sigma\) ,实验前很难知道其大小,一般可以根据经验值预估。
效应量(Effect size)
效应量又称效应值,提供了对效应大小的具体测量,也就是说反映了具体效果的大小。
- 比值(率)型指标
\]
- 均值型指标
\[es = \frac{\mu_1 - \mu_2}{\sigma_{pooled}} = \frac{\mu_1 - \mu_2}{\sqrt{\frac{(n_1-1)s_1^2+(n_2-1)s_2^2}{n_1+n_2-2}}}
\]其中\(s_1, s_2\) 分别表示两组样本的标准差.
Z检验统计量
比值(率)型指标
商务与经济统计[1]中给出的方法
\[z = \frac{\overline{p}_1 - \overline{p}_2}{\sqrt{\overline{p}(1-\overline{p})(\frac{1}{n_1}+\frac{1}{n_2})}}
\]\[\overline{p} = \frac{n_1\overline{p}_1 + n_1\overline{p}_1}{n_1 + n_2}
\]网络中给出的方法:
\[z = \frac{(p_1 - p_2) - (\mu_1-\mu_2)}{\sqrt{\frac{p_1(1-p_1)}{n_1} + \frac{p_2(1-p_2)}{n_2}}}
\]找了好久没有找到推导,个人看法是把比值型指标看做伯努利分布,则根据中心极限定理,\(B(1,p)\sim N(p,p(1-p))\),然后从均值型指标公式推导过来。
均值型指标
\[z = \frac{(\overline{x}_1 - \overline{x}_2) - (\mu_1-\mu_2)}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}
\]
以上就是我总结的关于均值型指标和比值(率)型指标在A/B test中的区别,如有遗漏和错误,望大家多多指正。
参考文献
[1]. 商务与经济统计
[3]. A/B测试(A/B试验)的概述、原理、公式推导、Python实现和应用
最新文章
- Asp.net mvc5开源项目";超级冷笑话";
- Python 中的urlencode和urldecode
- Python的平凡之路(13)
- Java字符串处理函数
- ZOJ Problem Set - 3865 Superbot (bfs)
- jQuery异步表单提交
- java环境变量设置--编写一年java,竟不会配变量了
- c语言-键盘扫描码
- mysql语句的一个问题
- 用JS制作一个信息管理平台完整版
- Swift 开源项目练习应用
- Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源
- Flex中对表格中某列的值进行数字格式化
- 工具资源系列之给虚拟机装个ubantu
- entity.Database.SqlQuery() 和entity.Database.SqlCommand()
- [转]kaldi上的深度神经网络
- Python全栈-数据库存储引擎
- python基础之 025 模块加载与import的使用
- Java编程的逻辑 (2) - 赋值
- 窗体的Alpha通道透明色支持
热门文章
- SPOJ SUBST1 New Distinct Substrings(后缀数组 本质不同子串个数)题解
- how to remove duplicates of an array by using js reduce function
- HTML5 Animation Creator | Hype 官方文档
- copy-webpack-plugin &; ignore folder
- node.js delete directory &; file system
- navigator.geolocation.getCurrentPosition
- full stack &; front end
- js in depth: arrow function &; prototype &; this &; constructor
- ffmpeg concat设置绝对路径
- Flutter: The getter 'futureDynamicType' was called on null.