因为最近在找实习,所以打算把自己之前学过的关数据分析的知识总结(复习)一下。在总结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 = kN_2
\]
\[N_2 = (1+ \frac{1}{k})(\sigma\frac{z_{1-\alpha/2}+ z_{1-\beta}}{\mu_1 - \mu_2})^2
\]

​ 其中\(N_1,N_2\) 分别表示两组样本数量;\(z_{1-\alpha/2},z_{1-\beta}\) 通过\(z\)分布计算;\(\mu_1,\mu_2\) 分别为当前均值指标和预估改进后均值指标(或者期望检测到的指标变化)。重点是标准差\(\sigma\) ,实验前很难知道其大小,一般可以根据经验值预估。

效应量(Effect size)

效应量又称效应值,提供了对效应大小的具体测量,也就是说反映了具体效果的大小。

  • 比值(率)型指标
\[es = 2(arcsin(\sqrt{p_1})- arcsin(\sqrt{p_2}))
\]

  • 均值型指标
    \[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]. 商务与经济统计

[2]. A/B测试系列文章之怎么计算实验所需样本量

[3]. A/B测试(A/B试验)的概述、原理、公式推导、Python实现和应用

All I know about A/B Test (1) : 均值型指标与比值(率)型指标的计算区别的更多相关文章

  1. In-Memory:内存数据库

    在逝去的2016后半年,由于项目需要支持数据的快速更新和多用户的高并发负载,我试水SQL Server 2016的In-Memory OLTP,创建内存数据库实现项目的负载需求,现在项目接近尾声,系统 ...

  2. 关于DOM的操作以及性能优化问题-重绘重排

     写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...

  3. H5实现摇一摇技术总结

    摇一摇遇到的问题 一.如何对摇晃效果进行反馈 刚开始的处理方式是,摇晃过程中不做任何处理,但后来反馈说这种效果不好,好像就没有摇动一样,如果声音也不响的话,就真的和什么都没发生一样. 后来想了想,加入 ...

  4. 【AR实验室】mulberryAR : ORBSLAM2+VVSION

    本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 mulberryAR是我业余时间弄的一个AR引擎,目前主要支持单目视觉SLAM+3D渲染,并且支持iOS端,但是该引 ...

  5. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  6. Unity3d学习 相机的跟随

    最近在写关于相机跟随的逻辑,其实最早接触相机跟随是在Unity官网的一个叫Roll-a-ball tutorial上,其中简单的涉及了关于相机如何跟随物体的移动而移动,如下代码: using Unit ...

  7. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  8. 你必须知道的EF知识和经验

    注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...

  9. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  10. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

随机推荐

  1. Git常用命令速查表 & Git Basics & github : release 发布!

    Git常用命令速查表 & Git Basics  & github : release  发布! Git常用命令速查表: 1 1 1 1 1 http://git-scm.com/bo ...

  2. 惠普机械键盘 K10GL 使用评测

    惠普机械键盘 GK100 使用评测 手感太差,不是 RGB 背光 惠普(HP) K10GL 机械键盘 有线 LED背光机械键盘 87键 混光青轴 refs https://item.jd.com/10 ...

  3. TypeScript TSConfig All In One

    TypeScript TSConfig All In One tsconfig.json https://www.typescriptlang.org/tsconfig https://www.typ ...

  4. holy shit CSDN

    holy shit CSDN 垃圾 CSDN 到处都是垃圾文章, 无人子弟 到处都是垃圾广告,看的恶心 毫无底线,窃取别人的知识成果,毫无版权意识 垃圾爬虫,垃圾小号 ...等等 Google Sea ...

  5. web effects collection

    web effects collection typewriter effect js 打字机效果 http://www.mattboldt.com/demos/typed-js/ https://g ...

  6. parcel bug & not support normal import React & ReactDOM module

    bug report not support normal import React & ReactDOM module, why Code Sample OK import * as Rea ...

  7. MarkDown编辑器基础使用教程

    教程原创链接 MarkDown 段落和换行 一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行.比方说,若某一行只 ...

  8. 图像仿射变换——MatLab代码实现

    这里先说一下我们的目的,最近在用Pix2Pix 做一个项目的时候,遇到了成对图像质量差,存在着特征不能对齐的问题,即A图与B图是一组成对图像,我们想要将A 图中的物体转化为B 图中的物体,但这个物体在 ...

  9. Java中的CPU占用高和内存占用高的问题排查

    下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...

  10. Dyno-queues 分布式延迟队列 之 辅助功能

    Dyno-queues 分布式延迟队列 之 辅助功能 目录 Dyno-queues 分布式延迟队列 之 辅助功能 0x00 摘要 0x01 前文回顾 0x2 Ack机制 2.1 加入Un-ack集合 ...