什么是 A/B 测试？
做为一家提供以A/B测试方法论为基础的Saas创业公司，尽可能详细介绍一下这个事情，希望对大家有帮助：  ----------------什么是A/B测试？---------------------- 这个摘自：Online Experimentation at Microsoft  翻译过来的意思：（偷懒了，谷歌翻译，略作了修改）  对照实验，也叫随机实验和A /B测试，曾在多个领域产生深远的影响，其中包括医药，农业，制造业和广告。 通过随机化和适当的实验设计，实验构建了科学的因果关系，这就是为什么对照实验（A/B测试）是药物测试的最高标准。 在软件开发中，产品需求通过多种技术手段来实现; A/B测试实验提供了一个有价值的方式来评估新功能对客户行为的影响。 在微软，我们已经实现了运行网站和服务的A/B测试实验能力，从而可以用更科学方法来评估规划过程中不同阶段的想法价值。 在以前的文章中，我们并没有很好的A/B测试实验的例子; 现在我们有了！ 我们用震撼人心的效果，来说明先验优先级是否一样能获得大家的信任。 该实验平台（EXP）始建通过值得信赖的实验来加速创新。一路上，我们必须解决技术和文化的挑战，我们给软件开发人员、项目经理和设计师一副“公正的耳朵”，帮助他们听取客户真实的诉求以及用数据驱动的决策。  A/B测试其实是一种“先验”的实验体系，属于预测型结论，与“后验”的归纳性结论差别巨大。A/B测试的目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论，并确信该结论在推广到全部流量可信。这里面又涉及到数据化驱动决策与确定性优化提升等等延伸概念，接下来我详细解释。 （说句题外话，大量的大数据公司都在尝试通过“后验”结论进行未来行为预测，个人觉得然并卵，主要是因为数据不全、脏数据、随机事件、建模人为因素等等影响，方向无比正确，现实无比残酷）  ----------------A/B测试的应用场景----------------------  A/B测试这种方法论的应用非常广泛，这里讨论在Web产品、移动产品、数字广告优化领域的应用。应用场景由小到大可以可以分为：   ------元素/控件层面--------   先用一个例子来说明什么是元素/控件层面A/B测试：  图做的很难看，用来说明问题： 当产品已经相对稳定，已经上线并且有一定量的用户在使用时， 产品经理会面临一个压力：任何的更新或者优化是否一定比原来更好？ 比如上面这个界面的变化：背景图片变了、模特换了、CTA按钮的颜色、大小、文案都变了 这么多变化，怎么来衡量 任何的更新或者优化是否一定比原来更好？这个问题 首先，这个问题可以进一步分解为： "好"的定义就很复杂，不同的元素/控件的目的不一样，就拿“购买”这个CAT按钮来说，它的目的应该是“点击”，也就是说“点击次数”是衡量它好与不好的一个指标，当然还有其它如“点击率”、“首次点击次数”等等。 不同的产品侧重不同，为了简单点说明白，这里假定“点击次数”是衡量这个优化的唯一指标  接下来就到了难点了，怎么衡量？ 再回过来看看微软的描述： 这里涉及到“科学的方法”涉及到很多统计学的概念，我就不一一解释了，有兴趣可以看看，我用这个栗子来描述这几个词到底是个啥： 假定这是个电商的APP，产品有100万用户 样本空间：100万用户  样本特征：这100万用户有各式各样的特点（性别、地域、手机品牌与型号、甚至是不是爱点按钮等行为。。）  实验流量：100万用户成为100%的流量；假定将这100万用户根据样本特征与相似性规则分为100组，那每组就是1万人，这1万人就是1%的流量 相似性采样：在A/B测试的实验中，需要保证小流量的实验具备代表性，也就是说1%的流量做出来的实验结果，可以推广到100%的用户，为了保证这一点，需要保证1%的流量的样本特征与100%流量的样本特征具备相似性。（说个最简单的逻辑：假定把所有小米手机用户均匀的分到这100组中，那第一组的所有小米手机用户的特征与第2组-第100组的所有小米手机用户具备相似性）  代表性误差：代表性误差，又称抽样误差。主要是指在用样本数据向总体进行推断时所产生的随机误差。从理论上讲，这种误差是不可避免的，但是它是可以计算并且加以控制的。（继续小米。。尽管把小米用户均匀的分成了100组，但是不能完全保证每个组里的小米用户的数量、性别、地域等特征完全一样，这就带来了实验误差风险）  聚类：物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类，也就是在分配小米用户的过程中，需要按照实验目的的不同把特征相似性高的用户认为是一类用户，比如定义100次点击为高频点击，可能在某些情况下也会认为99次点击的用户跟100次点击的用户是一类用户  置信度：简单来将表示可信程度，一般来说95%的置信度就很好了，一些及其严苛的A/B测试实验才会到99%的置信度。差别在于，越高的置信度得出结论的实验时间越长、流量要求越高  置信区间：从前面的概念中也讲了，1%的流量尽管具备了代表性，但是跟100%的流量还是有差异的嘛，所以实验结果的评判要有一定的前提的，置信度就是这个前提，置信区间表示在这个置信度的前提下，实验结果很可能会落在一个区间内，比如下图，95%的置信度的前提下，置信区间为[-2.3%, +17.4%],可以解读为这个A/B测试的实验既有可能使“点击次数”降低2.3%，又有可能提升17.4%。说明这个实验结果还不稳定，可能是试验时间短或者是流量不够。   理解完这些，我们继续回来说“好”怎么衡量： 实际上，你需要一整套工具。。。。知道为啥我们创业做这个了吧，实在有点复杂。 有兴趣可以看看我们网站http://www.appadhoc.com 这里我就不安利了。。  基本的衡量逻辑如下图：（看起来很复杂，其实真正使用的时候比较简单） 别人那里借的图，罪过罪过~   是时候讲讲数据化驱动决策与确定性提升是什么意思了： 数据化驱动决策：A/B测试是典型的靠谱数据化驱动决策，拿这个栗子来说：无论是绿按钮还是橙色按钮只有用户真正使用了才能判断到底哪个更好，所以可以先用A/B测试的方式，让比如1%或者5%的用户进行实验，让用户用实际的行为来告诉你哪个好。假设结论是下图，那就很不幸，你原来绿色的版本更好。因为这1%或者5%的用户通过“点击次数”这个指标告诉你，他们不喜欢橙色的设计。这就是数据化驱动决策，不用一屋子人你拍桌子我瞪眼的争辩到底那个设计好，让真实的用户跟数据告诉你到底哪个更好。  确定性提升：这就更好解释了，有了这么个工具，每次只有效果好了才会上线，也就意味着每次优化都能比以前更好，无论是产品经理的自信心、用户的体验还是投资人那里，咱都可以理直气壮地说，我的每次更新，都比以前更好了。。。  到了我最喜欢的真实栗子的时间了： Airbnb的产品方法论 知乎日报原文：都说在做某界的 Airbnb，Airbnb 到底做了什么  灰度发布 和 A/B测试：重要页面的修改和流程上的调优，通过灰度发布到1%或者5%的用户，看其实际对用户的数据影响（访问时间增加、留存提高、下单率提高等），决定此修改到底是100%发布还是被砍掉  Google： 每个月从上百个A/B测试中找到十几个有效方案，月营收提升2%左右，10亿美元的规模 广告位左移一个像素带来X%的增收，左移两个像素带来Y%的亏损 任何产品改动需要A/B测试才能上线  Facebook： 6个月内所有版本完全线上灰度发布，通过不断进行用户流量分割的方式进行实验，获得无Bug口碑  写了这么多，才第一条。。我真是话痨=。=b  ------功能层面--------  A/B测试这么伟大的方法论只用来测界面（当然真有效啊！！！），有点太小瞧它了，无论是推荐算法还是定价策略，用这个方法论，轻松搞定啊！  为了简单理解，说个定价策略，如上图。 一个价格包含这个几个因素： 1.价格区间： 用我最朴素的理解，人类是喜欢折扣的不理性动物：人们明显更乐意花45折买一个价值900块钱的东西而不是花67折买一个价值600块的东西，尽管东西一样，最终价格一样都是400块。 所以你看电商广告都是打折配合几个垫背的低价来卖。。。  2.价格精度： 以前去超市经常能发现2.99元或者8.99，现在都变成2.32或者4.23，这是弄啥嘞？ 这里面太多心理学与营销的东西就不说了，在某些情况下，即使几分钱的价格变化对用户转化的影响是巨大的，比如一个东西原来卖400元，那现在改成399还是401可能对总营收的影响并不巨大，但是配合用户转化率的变化，可能营收的差异就天差地别了。  3.价格周期： 伴随着产品迭代、促销等等因素影响，什么时候降价是对自己最有利的策略，完全可以A/B测试来解决   ------产品层面-------- A/B测试在产品层面的应用主要是通过“灰度发布”来实现的。 就目前移动端的产品来说，iOS的应用商店审核期是个大大大坑，任何BUG打补丁还得再来一遍，也就意味着补丁的审核期内用户带着BUG使用，这个太致命了，用户的获取成本高的吓人，因为这个流失太不值得了，基于A/B测试的灰度发布更重要的不是优化，而是保护性发布，先通过小流量的实际用户测试，有BUG或者新版本体验不好，可以立即回滚到老版本，简单有效。  ------公司层面-------- A/B测试其实也是谷歌管理方法论，具体文章请参考： Google 的产品策略：两边下注  ===============都说到这了，聊聊A/B测试需要注意的一些问题吧============ 先说辛普森悖论，以偏盖全 转个果壳的文章，有兴趣可以看看 大多数的产品或功能上线前都会进行测试，实际上很多的测试行为并不科学，特别是很多定向的用户测试经常会有这个弊端，简单来说，如果新上线的一个功能，所有的研发工程师都说好，那是不是意味着所有的用户都觉得好？很多情况下是否定的。当然这个例子比较简单，实际上很多A/B测试方法并没有考虑到这个问题，以至于最后得出的结论跟实际情况差异巨大。 要解决这个问题，对采样、聚类、流量分割等要求非常的高，这也是为什么A/B测试工具不能像很多统计工具一样，埋个点看数据，再根据数据反推业务逻辑，而是要充分与业务结合，从一开始就应该考虑业务策略，让用户去选择适合其口味的产品。  先说辛普森悖论，以全盖偏   ==========写在最后======== 大多数的产品或功能上线前都会进行测试，实际上很多的测试行为并不科学，特别是很多定向的用户测试经常会有这个弊端，简单来说，如果新上线的一个功能，所有的研发工程师都说好，那是不是意味着所有的用户都觉得好？很多情况下是否定的。当然这个例子比较简单，实际上很多A/B测试方法并没有考虑到这个问题，以至于最后得出的结论跟实际情况差异巨大。 要解决这个问题，对采样、聚类、流量分割等要求非常的高，这也是为什么A/B测试工具不能像很多统计工具一样，埋个点看数据，再根据数据反推业务逻辑，而是要充分与业务结合，从一开始就应该考虑业务策略，让用户去选择适合其口味的产品。 现在的创业者面临着前所未有的竞争压力，好的想法与用户接受的想法有着各种不可逾越的鸿沟。特别是伴随着激烈的竞争，谁能领先一步可能就变成了赢者通吃的局面。 这个是广告--->通过AB测试来优化产品的方法在国外已经被广泛应用，现在这种代表先进生产力的方法如同GitHub、Docker、APM一样也正在逐渐被国内广大开发团队所接纳。AppAdhoc优化平台能够帮助用户提高产品的设计、研发、运营和营销的效率，降低产品决策风险，同时也能够帮助用户用数据优化移动广告，让流量的变现价值更大。 任何问题，欢迎随时交流。  更多内容欢迎关注我的专栏： http://zhuanlan.zhihu.com/milmax/20507473 http://zhuanlan.zhihu.com/milmax/20394728