1. A/B Test

embedded/2024/10/11 11:19:09/

文章目录

      • 1、什么是A/B Testing ?
      • 2、A/B Testing 的用途?
      • 3、如何设计 A/B Testing?
      • 4、如何分析实验数据,得出结论?
      • 5、如何发行新产品并持续监测?
      • 学习链接

1、什么是A/B Testing ?

A/B Testing 是一种在互联网or科技公司常见的,帮助我们判断产品改善方案是否可行的、在线的一种统计实验工具。类似于初中生物学的对照实验。
举例:比如我们当前现存一个产品版本A,同时根据单一变量P原则 ,设计出一个改善后的版本B。接下来对实验用户分组,一组用户使用A、一组用户使用B。然后,在相同的时间维度内,观测两组用户的实验数据和反应。最后,根据假设检验原理,判断B版本相较于A版本而言,是否带来了统计学意义上的显著差异。同时,需要确定这些差异是否最终将带来商业价值。

实验中应遵循的原则(两个假设前提条件):

  • 单一变量原则:设计改善后的方案B时,只能改变一个变量。如果同时改变多个变量,假设最后的实验数据让我们得出的结论是,方案B带来了统计学意义上的显著改变,但此时我们很难说明这些改变应该归咎于哪个变量的改善。
  • 随机原则:将实验用户分到A组和B组时,应遵循随机原则,尽量减少样本选择偏差。可以提高最终实验结论的准确性。同时,将实验复制到更大规模的实验群体中时,尽可能保证实验结果是可复制的。最后,帮助我们制定更加准确和可靠的商业决策。

2、A/B Testing 的用途?

用途:帮助我们了解,就产品目前状态而言,哪种改善方案是更优的,以帮助我们将产品的表现从1提升到100(产品优化)。
相对而言不能帮助我们将产品表现从0提升到1,也就是创造出一个新产品。

不适用 A/B Testing 的场景:

  • 将产品表现从0提升到1,也就是创造出一个新产品。
  • 实验需要运行非常长的时间才能得出结果。因为实验要遵循单一变量原则,如果时间跨度较长,将不能保证变量单一。

When A/B Testing is not useful,we can:

  • 分析用户活动日志
  • 进行回顾性分析
  • 进行用户体验研究
  • 焦点小组和调查
  • 人工评价

3、如何设计 A/B Testing?

步骤:
1、确定指标:
a、不变指标(invariant metrics):对于实验组和对照组而言,恒定不变的指标。eg. 分配到两组中的用户数量是否相当;用户的分布情况是否相当;用户的语言系统是否相当。
b、评估指标(evaluation metrics):评价我们的优化方案是否得到了具体改善的指标。eg.人均收入;点击率;转化率。挑选评估指标时,需要注意指标的稳定性和敏感性。这样才能将实验的变化结果归因到变量P的变化上。

  • 稳定性:指标不会随着其他变量(非P变量)的变化有明显的波动
  • 敏感性:指标会随着变量P的变化发生相应的变化

2、确定显著性水平、统计功效、实际显著性水平
3、确定样本量
先确定,从哪个总体中选择样本。
Simple count(实验组样本量=对照组样本量)≈16*(Sigma)^ 2/(Delta)^ 2。Sigma为评估指标在总体中的标准差;Delta为评估指标需要在实验组和对照组之间形成的差异。
4、确定实验时长
采用逐次累加的方案进行实验。需要注意首位效应(privacy effect)和新奇效应(novelty effect)的影响。
假设每天的用户流量为2000、选用其中10%作为实验用户,那每天的实验组样本量=对照组样本量=100。Simple count=1000,实验时长=Simple count/100=5天。

4、如何分析实验数据,得出结论?

步骤:
1、得到实验数据后,先进行完整性检查(Sanity Check)。其中不变指标可帮我们进行完整性检查。只有通过完整性检查后,才可去分析数据、得出结论。
2、分析数据、得出结论。通过实验数据得出的结论为:

  • 差异不显著:找到不显著的具体原因。
  • 差异显著:对实验数据做细致化分析,分组分类,看改善出在哪个细分小组,避免辛普森悖论的存在。

5、如何发行新产品并持续监测?

先将新产品发行给小量的用户,再逐渐增加用户的流量和比例,直到完成100%的发行。

学习链接

https://www.bilibili.com/video/BV1Vx4y1E7dV


http://www.ppmy.cn/embedded/5510.html

相关文章

Vue 指令、计算属性、侦听器

目录 指令 指令修饰符 按键修饰符 ​编辑 v-model修饰符 事件修饰符 v-bind对于样式操作的增强 操作class 对象 数组 操作style v-model应用于其他表单元素 computed计算属性 概念 基础语法 ​编辑 计算属性vs方法 computed计算属性 作用 语法 缓存特性 m…

精通MongoDB聚合操作API:深入探索高级技巧与实践

MongoDB 聚合操作API提供了强大的数据处理能力,能够对数据进行筛选、变换、分组、统计等复杂操作。本文介绍了MongoDB的基本用法和高级用法,高级用法涵盖了setWindowFields、merge、facet、expr、accumulator窗口函数、结果合并、多面聚合、查询表达式在…

Python 操作 json 数据

在Python中,操作JSON数据主要包括序列化(将Python对象转换为JSON格式)和反序列化(将JSON字符串转换回Python对象)。 以下是使用Python内置的json模块进行这些操作的基本示例: JSON 序列化 (Serialization…

从入门到精通C++之类和对象(续)

目录 初始化列表构造函数?拷贝构造?浅谈explicit关键字友元 内部类static成员总结 初始化列表 引入初始化列表:简化代码,提高效率 在编程中,初始化列表是一种用于在创建对象时初始化成员变量的快捷方式。通过初始化列…

智能生活新体验:小米香薰加湿器技术解码

在现代家居生活中,科技与舒适性日益交织,智能家居产品成为提升生活品质的重要工具。小米香薰加湿器作为一款集科技与生活美学于一体的产品,其独特的设计和多功能性受到了广泛欢迎。今天,我们就来详细拆解这款融合了科技与香薰元素…

C语言第六章之内存分布,内存管理

内存分布 C代码编译过程 预处理 宏定义展开、头文件展开、条件编译,这里并不会检查语法 编译 检查语法,将预处理后文件编译生成汇编文件 汇编 将汇编文件生成目标文件(二进制文件) 链接 将目标文件链接为可执行程序 进程的内存分布 程序运行起来(…

NotePad++联动ABAQUS

Abaqus 中脚本运行 1. 命令区kernel Command Line Interface (KCLI) execfile(C:\\temp\second develop\chapter2\pyTest1.py)2. CAE-Run Script File->Run Script 3. Abaqus command Abaqus cae noGUIscript.py(前后处理都可)Abaqus Python scr…

STM32G431RBT6之时钟树配置与生成工程

默认大家都下载了蓝桥杯嵌入式资源包了哈. 首先,打开cubumx,修改RCC与SYS. 打开并观察原理图,发现晶振是24Mhz. 第一步,打开Clock Configuration. 第二步,修改晶振为原理图相对应的24Mhz. 第三步,切换到HSE. 第四步,切换到PLLCLK. 第五步,设置HCLK为80Mhz(15届真题要求为8…