什么是AB测试?

通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见,所以不难理解。具体到AB测试这个概念,它和我们比较哪个梨更大、比较哪个美女更漂亮、比较哪个工作更好之间有什么区别吗? 区别其实非常明显,从以下几个方面不难看出来:

  • 领域不同:AB测试的概念是在互联网中被提出来的,所以它有特定的应用领域。
  • 标准不同:AB测试需要比较产品的两个不同版本之间的优劣,但是评判要交给用户,不像我们生活中遇到的AB比较,基本都可以“自己拿主意”。

正是因为标准在“用户爸爸”那里,所以这个看起来很简单的AB比较就变得异常复杂。在我这个理科男眼里,凡是跟人有关的东西都更复杂,何况和千千万万人有关的产品。因此,为了比较A和B两个不同版本产品的优劣,AB测试这一套系统的方法被发明出来了。

上图是AB测试的一个直观解释。我们会随机给不同的人群提供两个不同版本的产品,然后通过收集用户反馈的数据进行统计分析,决定出哪个版本的产品更好。相信我们每个人都当过AB测试的小白鼠,细心的你不难在使用微信、抖音、高德、美团这些APP时发现一些端倪。

维基百科上给AB测试下了一个定义:

A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.

在我看来这跟啥也没说差不多,就是我上面“通俗理解”的翻译版本。AB测试属于那种一听就懂,一看就明白,一做就抓瞎的事。所以定义和概念不重要,实践才重要。幸运的是,前辈们已经帮我们总结了非常多的经验教训,而我作为知识的搬砖工,将会用几篇文章来和大家一起从零开始学习AB测试。

  • 互联网公民第一守则:不要重复造轮子。
  • 互联网公民第二守则:参照上一条。

为什么要做AB测试?

AB测试虽然思想简单但是非常有效,看了如下的几个好处你就明白为什么一定要做AB测试了:

  • 如果我们人工针对部分用户做调研,很难消除一些外部因素的影响,比如交通、天气、节日,而AB测试可以通过随机分配和对照的方式,有效消除这些影响。
  • 如果我们听取专家或研究机构的建议,众所周知,他们很可能出错。用户行为是个很复杂的事,具有潜在性,很多时候用户自己都不知道自己怎么想的,想要什么。
  • 让数据说话,而不是听老板的

    从零开始学AB测试:基础篇的更多相关文章

    1. 从零开始学AB测试:躲坑篇

      AB测试的原理很简单,只用到了最简单的统计假设检验,但表面的简单通常都隐藏着陷阱,这一点没有经过实践的摸爬滚打是不容易看到的,今天我就把前人已经踩过的坑,一共15个,给大家分享一下.在分享之前,大家脑 ...

    2. 小白学Docker之基础篇

      系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1. docker是什么 百科上的 ...

    3. 一起学Spring之基础篇

      本文主要讲解Spring的基础环境搭建以及演变由来,仅供学习分享使用,如有不足之处,还请指正. 什么是Spring ? Spring是一个开源框架,用来处理业务逻辑层和其他层之间的耦合问题.因此Spr ...

    4. 【Android Api 翻译1】Android Texting(2)Testing Fundamentals 测试基础篇

      Testing Fundamentals The Android testing framework, an integral part of the development environment, ...

    5. Android Texting(2)Testing Fundamentals 测试基础篇

      Testing Fundamentals The Android testing framework, an integral part of the development environment, ...

    6. Shell编程-条件测试 | 基础篇

      什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...

    7. 小朋友学Linux<一>基础篇

      Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...

    8. 新年在家学java之基础篇-高级类的特性

      继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

    9. 新年在家学java之基础篇--循环&数组

      因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...

    随机推荐

    1. Ansible Playbook 初识

      Ansible Playbook 基本概述与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: ...

    2. Building Applications with Force.com and VisualForce Dev 401-001(一):Introduction

      Dev 401-001:Introduction   Module Objectives1.Orient yourselves to the training location.2.Understan ...

    3. Spinner的简单实用

      1.Spinner的功能 Spinner在Android中主要实现的是一个下拉列表,这个下拉列表相当于弹出一个弹出一个菜单供用户选择.即Spinner提供一个快速的方法从一组中选择一个值,默认状态下S ...

    4. Elasticsearch+spring cloud201912301423

      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

    5. STL之sstream的用法

      STL之sstream的用法 说在前面: 库定义了三种类:istringstream.ostringstream和stringstream,分别用来进行流的输入.输出和输入输出操作.另外,每个类都有一 ...

    6. 【Jenkins】使用 Jenkins REST API 配合清华大学镜像站更新 Jenkins 插件

      自从去年用上了 Jenkins 进行 CI/CD 之后,工作效率高了不少,摸鱼的时间更多了.不过 Jenkins 好是好,但在功夫网的影响下,插件就是经常更新不成功的,就像下面这样子: 查了不少资料, ...

    7. 求你了,别再问我Zookeeper如何实现分布式锁了!!!

      导读 真是有人(锁)的地方就有江湖(事务),今天不谈江湖,来撩撩人. 分布式锁的概念.为什么使用分布式锁,想必大家已经很清楚了.前段时间作者写过Redis是如何实现分布式锁,今天这篇文章来谈谈Zook ...

    8. 使用原生方法查询指定元素是否包含指定className

      如果我们要查找某个指定元素是否包含指定的className,可以使用以下方法 eg:document.getElementById('Id').classList.contains('要查询的clas ...

    9. 1051 Pop Sequence (25分)

      Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

    10. 安装 elasticsearch For LINUX

      官网下载地址 https://www.elastic.co/cn/downloads/elasticsearch 选择版本为LINUX 当前版本为 es-7.6.2 用tar 命令解压 tar -zx ...