A/B Test 必知必会

零、科学的、可信赖的、可重复的、可解释的

一次可信赖的实验是什么样的?

  • 实验设计的科学性
  • -实验对象分配的独立随机性
  • 实验过程的安全、可重复性
  • 实验数据的可靠性
  • 实验分析结果的可解释性

0.1 实验设计背景知识

0.1.1 实验设计的原则

    1. 对照性原则:
      1. 在实验设计中,通常设置对照组,通过干预或控制研究对象以消除或减少实验误差,鉴别实验中的处理因素同非处理因素的差异。
      2. 通常采用空白对照组:不给对照组加实验组的处理因素
    1. 随机性原则:
      1. 首先,随机并不代表“随意或无计划,而是一种基于概率的慎重选择。”
      2. 随机性原则是指:被研究的样本是从总体中随机抽取的。这样做可以
        1. 消除或者减少系统误差,使显著性测验有意义;
        2. 平衡各种条件,避免实验结果中的偏差。
    1. 平行重复原则:
      1. 控制某种因素的变化幅度,在同样条件下重复实验
        1. 为了或者更稳定的实验数据,减少实验误差
        2. 相同条件下的重复实验之间的数据差别过大时,极有可能实验某个环节出错导致。
        1. 任何实验都必须能够重复,这是具有科学性的标志。
    1. 单因子变量原则:
      • 控制其他因素不变,只改变其中某一变量,观察其对实验结果的影响。除了整个实验过程中欲处理的实验因素外,其他实验条件一致。

0.1.2 实验设计的流程

  1. 明确实验意图
  2. 明确实验目的原理
  1. 确定实验思路
  2. 设计实验步骤
  1. 记录实验现象和数据
  2. 分析实验结果,得出实验结论

0.2 实验围栏

0.2.1 实验设计的科学性

有理有据、严谨的、可解释的、禁得起推敲的、客观非主观的、

创建假设、运行实验、收集数据、提取洞察以及对假设进行验证或修改。

0.2.2 实验的可信赖性(最最重要)

为什么进行实验?相关性、因果关系和可信赖度。

举个例子:与冬天相比,夏天游泳的人变多且溺亡的人数上升,同时吃冰激凌的人数也增多,因此是否“吃冰激凌”导致“溺亡”?这种听起来荒诞的结论是因为我们错误的把相关性当成了因果性。我们没有观测到“夏天气温升高”同时会影响“游泳溺亡人数”和“吃冰激凌人数”,而错误的认为两者间有直接的因果关系。要记得相关性不等于因果性

对于这种显而易见的谬论我们可以轻易识别。那更多的是识别不到。那当我们需要去确立某种现象和结果之间的因果关系时,应该如何做呢?(在检验相关性时,能够排除其他因素影响)

随机对照实验是确立因果关系的黄金准则。对随机对照实验的统合分析则具有更强的实证性和普适性。这也正是我们为什么需要运行线上对照实验(ab test)的原因。

谷歌、领英和微软的实验平台每年可以运行成千上万个线上对照实验,并提供可信赖的实验结果。它是以高概率确立因果关系的最佳科学方法。

ab test极其强大又极其科学。

其强大之处在于:

    • 可以消除产品设计中不同意见的battle,根据实验效果确定最佳方案;
    • 快速试错,确定新功能上线后的效果,以及是否推广到全量;
    • 通过试验,找到问题的真正原因,提高产品设计和运营水平;
    • 建立数据驱动、产品不断迭代的闭环过程;
    • 通过ab test,降低新产品或新功能发布的风险,为产品持续迭代提供保障。

其科学之处在于:

    • 科学的实验设计;
    • 科学采样;
    • 科学的流量分割;
    • 科学的统计学原理。

0.2.3 实验过程的可重复性

0.2.4 实验结论的可解释性

0.2.5 有效运行线上对照实验的必要元素

  • 随机正交的实验单元(一般指用户)
  • 足够的实验单元(达到统计功效的样本量)
  • 关键指标是经过一致同意的,且可以在实践中被评估的
  • 代码的改动是容易实现的

实验平台的设计一定是操作便利的、通俗易懂的、易于迭代的、机构内指标“约定俗成”的、“高”收益的

一、什么是ab test

ab test就是线上运行的对照实验。

ab代表什么:通过分析同一总体下,由于某些不同的策略导致样本数据表现出的差异,来推断某些策略的效果。随机分组的两个正交的群体独立运行各自被施加的策略。

ab test 的基本原理是对照实验,本质是假设检验。

二、简明ab test过程

完整的AB测试流程包括以下几个步骤:

  1. 分析现状:针对当前产品情况,根据业务数据,提出优化方案(一般由数据分析师和产品经理确定)。
  2. 确定评估指标:确定衡量优化效果的指标(如:CTR,停留时长等)。
  1. 设计与开发:确定优化版本的设计原型,并完成技术实现(通常与数据分析师无关)。
  2. 分配流量:确定实验分层分流方案,以及实验需要切分多少流量,一般根据最小样本量确定。
  1. 确定实验有效天数:实验的有效天数即为实验进行多少天能达到流量的最小样本量。
  2. 采集并分析数据:提取实验数据,对实验结果进行分析。
  1. 决策:根据试验结果,确定是否推广到全量或者是调整之后继续实验。

三、规范化与可传承

3.1 实验管理的规范

统一实验管理:实验的申请:实验名称,实验目的,实验起止时间,实验状态,目标指标,分组策略、申请人、实验评估审核人、实验Id(唯一性)、变体(实验组和对照组)、流量配额、分析负责人、实验结果与建议。

规范的实验报告

3.2 分析流程的规范

  1. 数据清洗
  2. 噪音去除/校正
  1. 是否需要归一化和标准化
  2. 目标指标的确定
  1. 各个指标的计算规范以及绝对值、相对值、增量的计算

3.3 结果评估的规范

评估实验结果的标准化与规范化:主要是采用的统计分析方法的合理性和可解释性,以及统计显著性的阈值的确定和统一。

3.4 经验的传承

历史实验的复盘

工程方面:实验的迭代的详细信息记录,bug修复经验

数据方面:各个版本平台采用的指标、主要的分析方法、遇到过的逻辑陷阱、日常分析的tips等。

四、ab test 详细过程

以下内容是关于:怎么正确的做ab test?在正确的做ab test的基础上如何做的更好?

设立实验--》假设检验--》设计实验--》运行实验并获得数据--》分析结果--》从结果到决策。

4.0 可能的实验平台架构

必应、领英和谷歌的实验平台都主要有以下4个组件构成:

    • 通过用户界面(UI)或应用程序接口(API)定义、设置和管理实验,并存储在实验系统配置中。
    • 服务器端和客户端的实验部署,涵盖变体分配和参数化
    • 实验相关的工具化日志记录
    • 实验分析,包括指标的定义和计算,以及统计检验,如p值。
  • 需要考虑的一个因素:变体分配发生在流程中的什么位置,即何时调用变体分配接口?
    • 在流程中的什么节点,你获得了进行变体分配所需的全部信息?
    • 你允许实验分配仅在流程中的一个点还是多个点?

4.1 确定机构指标

目标指标:也被称为成功指标或北极星指标

护栏指标:保护我们不会违背假设,并有两种类型

    • 保护业务的护栏指标:
    • 评估实验结果可信赖度的指标:

(例:在上线新的搜索引擎时,除了目标指标比如用户的活跃量,购买率等,加入护栏指标如多少搜索完成,平均搜索耗时)

存量和参与度指标:

业务和运营指标:

数据质量指标:

综合评估标准OEC: 即实验的响应变量或者叫因变量。

4.2 服务器端和客户端

注意两端之间实验实施的差异和数据回收的差异。

4.3 日志记录

4.3.1 日志的记录

前后实验日志的收集分工、实施便捷程度。

4.3.2 多个源头日志的连接

日志通常是来自不同的源头,重要的是要确保相关的日志可以被下游轻松地处理、利用和合并。首先,必须有一种连接日志的方法。理想情况下是所有的日志都有一个共同的标识符作为连接键。连接键必须表明哪些事件是来自同一用户或者随机化单元。

4.3.3 监控原始日志质量

4.4 变体分配

变体分配是将用户前后一致地分配给一个特定的实验变体的过程。在实验平台的早期阶段,因为实验个数少,所以经常会分配所有的流量,是每个实验变体接收一个总流量的给定比例。随着实验平台的成长,实验个数越来越多,因为要为每个实验提供足够的统计功效,所以必须为每个实验变体分配足够比例的用户。为了扩大实验数量,用户必然处于多个实验中。这是如何运作的呢?

https://blog.csdn.net/duck_genuine/article/details/108871414

https://blog.csdn.net/huchao_lingo/article/details/109922908

4.4.1 单层方法

使用哈希函数将用户一以贯之地分配到分桶,从而完成分配。例如,我们使用1000个不相交的分段,并指定哪个变体分配到哪些分桶。具有200个分桶的变体则分配到20%的流量。

传入请求中有用户UID

f(UID)%1000 = mi

对照组

m1-m200

实验组1

m201-m400

实验组2

m401-m600

实验组3

m601-m800

实验组4

m801-m1000

用户分配到哪个分段必须是随机的。但也是具有确定性的。

    • 每个分桶的用户量应大致相同。如果按关键维度进行细分,各个分桶中的细分群也应大致相同。
    • 关键指标(目标、护栏和质量指标)的数值应大致相同(在正常可变范围内)

监控分配很关键

    • 谷歌、微软和许多其他公司通过监视分桶的特征发现了随机代码中的错误。
    • 每次实验都重新随机化或置换分桶,以使其不再连续,避免残留效应。

4.4.2 并行实验

随着时间推移和实验平台的完善,为了扩大实验数量,用户必然处于多个实验中。这是单层方法无法实现的规模,必须转向某种并行(也称为重叠)实验系统,其中每个用户可以同时在多个实验中。实现此目的的一种方法是拥有多个实验层,其中每层都类似于单层方法的操作。为了确保跨层之间实验的正交性,在用户分配分桶时添加层ID。

此处还需要注意实验标识符的分配:确保实验标识符分配的独立性和跨实验分配的独立性。

流量正交

对于分层实验有个很重要的点就是每一层用完的流量进入下一层时,一定均匀的重新分配。图中的箭头展示的很清晰,第一层中每个实验的流量会重新分组进入到第二层中的每个试验中。所以整个流量有一个分散,合并,再分散的过程,保证第二层中的每个实验分配的流量雨露均沾,这就是所谓的流量正交

A/B Test 必知必会_第1张图片

从上图可以看出,即使第1层的2号桶的实验结果比其他几个桶效果好很多,由于流量被离散化,这些效果被均匀分配到第2层。(第3层及后面层类同),这样虽然实验效果被带到了下一层,但是每个桶都得到了相同的影响,对于层内的桶与桶的对比来说,是没有影响的。而我们分析实验数据,恰恰只会针对同一实验内部的基准桶和实验桶。

分层原则

通常来说有依赖关系的实验点(变量)必须划分在同一层,例如页面背景颜色和字体颜色必须在同一层,如果页面背景颜色和字体颜色都被设置成蓝色,那么我们就看不到页面上的字了),没有依赖关系的实验点(变量)可以划分在不同层,每个变量实验点只出现在一个层中,不会出现在多层中。

4.5 选择随机化单元(实验对象)--实验粒度

实验粒度:实验对象的粒度,有用户级别(常用),页面级别、会话级别等。

选择随机化单元要考虑的一个维度是颗粒度。

  • 用户界别:来自单个用户的所有事件作为一个单元。
  • 页面界别:每个新查看的网页均视为一个单元。
  • 会话级别:每次访问过的一组网页视为一个单元。通常会话时长定义在30min。
  • 其他:企业级别、社交网络级别等等。

确定颗粒度时,主要考虑两个问题:

  • 用户体验的一致性有多重要;
  • 哪些指标重要。

注意事项:

  • 如果新功能跨越该颗粒度级别起作用,则不能使用该颗粒度粒级进行随机化。
    • eg:如果实验使用页面级别的随机化,用户的第一个搜索在实验组,并且该功能导致搜索效果不佳,则用户修改搜索词并进行第二个搜索,第二次搜索落在实验组。
  • 跨越颗粒度级别而计算的指标不能用于测量评估实验结果。
    • eg:使用页面界别随机化的实验无法测量实验是否会影响用户会话数。

4.5.1 随机化单元和分析单元

随机化单元和分析单元必须是独立同分布的

    1. 随机化单元和分析单元颗粒度相同
    2. 比分析单元更粗糙的随机化单元
      1. eg:按照用户进行随机化而按照页面分析点击率,也是可行的。
    1. 与2相反,当分析单元在用户级别,而随机化单元是更细粒度的(如页面级别),由于用户可能混合体验到多个实验,而违背单一变量原则和独立性时,统计指标是没有意义的。

4.5.2 用户级别的随机化

因为用户级别的随机化可以避免用不体验的不一致,并且可以长期测量用户留存等,所以是最常见的。

    • 登录用户ID
    • 匿名用户ID,cookie
    • 设备ID
    • IP地址

匿名用户ID或者设备ID在测试用户跨登录边界的过程中,例如新用户的引导过程,包括首次登陆时会更有效。

4.6 实验放量

4.6.1 什么是放量?

实验的流量释放。是逐步放量到给定配额还是一次到位。

有效放量需要权衡三个关键因素:速度、质量和风险。

缩量:当实验出现问题明显问题时,需要非常快地将流量降为0,以减少对用户的影响。

4.6.2 SQR放量框架

对于逐步放量的过程,如何在控制风险和提高决策质量的同时快速迭代?换句话说,我们该如何权衡速度、质量和风险(Speed,Quality and Risk, SQR)。

假如我们某次实验得到的是100%的流量,通常意味着将50%的流量分配给实验组来提供最高统计灵敏度。这会带来最快和最精确的测量。然而,为了降低影响和潜在风险,我们通常需要从小范围曝光开始,而不是一下将实验流量全部放量。

还要考虑新服务或端点可以负荷的不断增加的流量。

另外一点,对于需要测量影响是否是长期可持续的,往往会留出一小部分用户(例如%~10%)在一段时间内不运行任何实验,这需要一个长期的留出(holdout)放量阶段。

4.6.3 四个放量阶段

  1. 第一放量阶段:MPR(最大统计功效放量)之前
    1. 创建测试人群环,并依次有序将实验组变体曝光给不同的测试人群环,以降低风险。
    2. 为关键护栏指标生成实时或近实时的结果,以了解实验是否有风险。
  1. 第二放量阶段:MPR
    1. MPR是专用于测量实验影响的放量阶段。实验在MPR阶段最好保持一周。如果存在初始或者新奇效应,则需要更长的时间。
    2. 通常更长的试验运行时长可以获得较小的方差,但是收益会随着等待时间的延长逐渐减少。如果没有初始或新奇效应,则一周的时长是最佳选择。
  1. 第三放量阶段:MPR之后
    1. 结束MPR之后,应该不必再担心实验对终端用户的影响。出于对流量增加造成某些工程基础框架的负担的考虑,可能需要逐步放量到100%。
  1. 第四放量阶段:长期留出阶段或重复实验
    1. 除实验级别的留出外,一些公司会运行超级留出实验:部分流量长期(通常是一个季度)没有任何新功能或改动的发布,以衡量所有实验的累积效应(例如必应)

4.6.4 最终放量之后

需要在放量之后即实验数据收集结束后进行不同的清理,诸如无用代码的删除,相关参数初始化等等。

SQR: Balancing Speed, Qality and Risk in Online Experiments

4.7 规模化实验分析(主要是工程方面)

4.7.1 数据处理

  1. 数据排序和分组
  2. 数据清洗
  1. 扩展数据:解析和扩展一些日志数据以提供有用的维度或测量。在原始数据的基础上延伸计算一些维度,诸如会话数,会话时长等等。

4.7.2 数据计算

计算细分群和指标,并汇总结果以获得每个实验的概述统计量,包括实验效应本身(例如指标差异的均值或百分位数)和统计显著性(p值、置信区间,贝叶斯检验)。也可以在数据计算阶段寻找其他信息,例如哪些细分群有趣等等。

那么该如何架构数据计算呢?

首先,假设实验单元是用户

    1. 第一种方法是先计算每个用户的统计信息(诸如每个用户的浏览量、展示数和点击数),并将其连接到一个将用户映射到实验的表格。这种方法的优点是可以将每个用户的统计信息用于总体业务报告,而不仅仅是实验。
    2. 另一种方法是将每个用户指标的计算与实验分析完全集成在一起,每个用户的指标是按需进行计算的,而不是单独计算。通常,有一些方法可以共享指标和细分群定义,以确保不同管线之间的一致性,例如实验数据计算管线和总体业务报告计算管线。
    1. 还需要考虑实验分析数据看板的延迟

为了确保速度和效率以及正确性和可信度,我们需要在机构内:

    1. 有一种确立通用指标及其定义的方法,以便每个人共享同一个标准词库和建立相同的数据直觉。
    2. 确保这些指标定义的实现保持一致,无论是通用的实现、某种测试或者持续进行的比较机制。
    1. 认真考虑如何管理变动。指标、综合评估标准、细分群定义的添加、修改、删除诸如此类的变动管理。

4.7.3 结果汇总和可视化

直观的总结和高亮标出关键指标和细分群。

    1. 高亮显示诸如SRM之类的关键测试,以清晰地表明结果是否值得信赖。在关键测试失败时,隐藏实验分析看板。
    2. 突出综合评估指标和关键指标
    1. 显示指标的相对变化,并明确显示结果是否具有统计意义。
    2. 对于不同的访问群体:技术人员,实验拥有者,领导层,产品人员等显示不同的实验分析看板。
      1. 有大家共有的一些显示指标
      2. 允许个人订阅自己感兴趣/关注的指标,并获得关于影响这些指标的主要实验信息(可以通过邮件发送实验摘要等)
      1. 假如实验产生负面的影响时,则平台可以启动批准流程,使实验所有者在实验放量前和指标所有者进行对话。

4.8 实验过程的监控

五、ab test 实验结果分析

5.1 统计学知识

  1. 成对样本t检验
  2. p值和置信区间
  1. 正态性假设
  2. 第一/二型错误和统计功效
  1. 偏差
  2. 多重检验
  1. 费舍尔统合分析

5.2 方差估计和提高灵敏度

统计功效越大,越能发现更小的效应。

我们大部分的情况是依据组内和最间方差去做很多结论性判断的,包括样本量估算也是要依靠方差的。方差的正确估算是至关重要的。

5.2.1 常见陷阱

如果我们不能正确的估算方差,那么p值和置信区间都将是错误的,得到的实验结论也将是错误的。

  • 增量与增量%
    • 报告实验结果时,相对变化值比绝对变化值更常被用到。你如何去判断每个用户多0.01个会话是不是一个很大的增幅呢?或者是否比其他指标更有影响呢?此时,相对变化值将会是一个好的评估标尺。
    • 相对变化值:增量百分百,简单的理解就是实验组相对于对照组增加了(减少了)的百分比
    • 算增量百分比的方差以正确估计增量百分比的置信区间。
  • 离群值
  • 注意随机化单元和分析单元的一致性问题

5.2.2 提高灵敏度("花小钱办大事儿")

运行对照实验时,如果实验效应存在,我们希望检测到该效应。这种检测能力通常被称为统计功效或者灵敏 度。一种提高灵敏度的方法就是减小方差

  • 创建一个方差更小并能捕捉相同信息的评估指标。例如:搜索量比搜索人数有更大的方差,购买量(实数值)比是否购买(布尔值)有更大的方差 。
  • 通过添加阈值、二元化和对数转化来改变指标。对于严重的长尾指标,特别是当可解释性不是特别重要的时候,可以考虑对数转化。
  • 通过触发分析。这是一个非常好的移除没有受实验影响的用户所带来的噪音影响的方法。
  • 通过分层采样、控制变量法或者CUPED。
  • 选择颗粒度更精细的随机化单元。
  • 更大的样本量也会提升假设检验的灵敏度
  • 共享对照组。如果分割流量运行多组实验,并且每组实验都有自己的对照组,那么可以考虑合并对照组形成一个大的共享对照组。合并对照组有很多坑,真要用的话,需要再细致的去考察下。

5.3 A/A测试

a/a测试:像a/b测试一样把用户分成两组,但b和a是一样的(因此命名为a/a测试)。有时候也称为空测试。

Trustworthy Online Controlled Experiments: Five Puzzling Outcomes Explained

5.3.1 为什么运行A/A测试

    1. 确保第一型错误被控制在预期范围内(如5%)。
    2. 评估指标的波动性。
    1. 确保实验组和对照组的用户之间没有偏差,特别是我们再次使用之前的实验人群时。
    2. 比较数据和系统记录。如果数据是由单独的日志系统收集的,那么一个好的验证步骤可以确保核心指标(比如用户量、营收、点击率)和系统记录一致。
    1. 估计方差大小用来计算统计功效!a/a测试提供的指标方差可以帮助解决定在给定最小检测效应时a/b测试要运行多久。(不同检验方法需要计算统计功效(power,灵敏度)的公式并不相同,例如卡方检验不需要估计方差)

5.3.2 如何运行A/A测试

理想状态下,模拟1000个a/a测试然后把p值的分布画出来,如果分布离均匀分布很远,那么系统是有问题的。在解决这些问题前,a/b测试系统是不可信赖的。

运行1000个a/a测试的成本很高,但有一个小tips可以使用:重播上周数据。由于没有进行产品和功能的改动,每次迭代时,选择一个对用户分组的随机化哈希值。通过重播上周数据,只需要模拟a/a测试时的用户分配,将用户分成两组。然后对感兴趣的指标生成p值,并把每个指标的p值累积起来画成直方图。接着进行拟合优度测试来判断是否符合均匀分布。

5.3.3 A/A测试失败时

p值分布不符合均匀分布时常有以下几种常见情况:

    • 分布偏斜且明显不接近均匀分布(范围为0~1)
      • 常见的原因之一是指标的方差估计有问题:1、检查分析单元和随机单元是否一致;2、指标的分布是否倾斜明显?
    • 在0.32的p值附近有很多观测值,表明有离群值的问题。
    • 分布中的一些点有很大的间隙。

5.5 可信度相关的护栏指标(阳性对照)

很多人假设实验会按照设计运行。如果假设不成立,那么分析会产生严重的偏差,同时所得出的一些结论也会失效。可信度相关的护栏指标就至关重要,样本比率不匹配(Sample Ratio Mismatch,简称SMR)是常用的可信度相关的护栏指标。

5.5.1 样本比率不匹配(SMR)

SMR检测的是两个实验变体(通常是一个实验组和一个对照组)的用户量的比率。如果实验设计要求曝光特定的用户比率(假如1:1)到实验的两个变体,那么实际得到的比率应该和设计的比率匹配。不同于一般指标可能会被实验改定影响,将一个实验变体曝光给一个用户的决定必须和实验改动独立,所以实验变体的用户比率应该与实验设计的相符。

当样本比率指标的p值很低的时候(标准t检验或卡方检验计算相应的p值),即基于设计的比率,观察到观测结果的比率或更极端情况的概率很低,那么这样就是样本比率不匹配,且其他所有指标也很可能不再有效。

微软大约6%的实验表现出SRM。

一些引起SRM的原因:

    • 用户随机化过程中的漏洞。
    • 数据管线问题
    • 残留效应
    • 糟糕的触发条件
    • 触发条件基于可能被实验影响的属性。

5.5.2 调试SMR

基于上述提到的一些原因,给出的常见调查方向:

    • 验证在随机化时机点或触发时机点上的上游没有区别。
    • 验证实验变体的分配设置是否正确
    • 顺着数据处理管线排查是否有任何环节引发SRM
    • 去除起始阶段。两个实验变体是否有可能没有同时没开始?
    • 查看用户细分群组的样本比率
    • 查看与其他实验的交集

5.6 规范化实验分析

5.6.1 分析流程的规范

5.6.2指标与分析方法的规范

5.6.3 实验结果可视化与实验报告

5.6 如何评估实验结果----统计显著性

5.6.1 假设检验、显著性水平α、P值、置信区间

https://blog.csdn.net/itslifeng/article/details/108139122

5.6.2 为什么是p值?为什么不是p值?

https://zhuanlan.zhihu.com/p/61819043

5.6.3 贝叶斯检验

https://mp.weixin.qq.com/s/IdlqK3oPtF8tBdo_0xzBHA

5.7 需要注意的陷阱

  • 辛普森悖论
  • 幸存者偏差
  • 初始效应
  • 新奇效应
  • 残存效应
  • 。。。

六、线上对照实验案例

美团设计

https://tech.meituan.com/2019/11/28/advertising-performance-experiment-configuration-platform.html

谷歌是如何高效做AB实验的

https://blog.csdn.net/shangpairen/article/details/105232249

AB实验平台在贝壳找房的设计与实践

https://blog.csdn.net/GFJ0814/article/details/92422510

推荐策略平台与ABTEST实验结合

https://blog.csdn.net/duck_genuine/article/details/108873102

七、统计学必知必会

A/B Test 必知必会_第2张图片

你可能感兴趣的:(a/b,test,算法,ab测试)