数分面试题-AB测试

news2024/11/17 7:36:03

目录标题

      • 1、ABtest实验目的
      • 2、A/Btest是什么?意义/目的/作用
      • 3、A/Btest工作原理
      • 4、A/B test流程(面试喜欢问)
      • 5、一个实际的ABtest案例
      • 6、AB实验的注意事项
        • 6.1 网络效应:一个用户影响另一个用户
        • 6.2 学习效应:新奇效应
        • 6.3 多重检验问题
        • 6.4 先验性:
        • 6.5 并行性:
        • 6.6 分流科学性和数据科学性:
      • 7、相关面试题
        • 7.1:滴滴准备升级司机端的一个功能,该如何校验功能效果?
        • 7.2:某app,用户活跃周期是14天,这时,上线了一个实验,计划跑20天在看效果,结果有位新同学,在10天时做了统计推断,发现数据已经有了显著差异,认为可以停止实验,这样做对吗?
      • 8、数理统计原理(AB测试相关)
        • 8.1 中心极限定理
        • 8.2 小数定理与大数定理
        • 8.3 辛普森悖论

1、ABtest实验目的

1,判断哪个更好,2个设计方案,需要实验判断
2,计算收益:例如,最新上线了一个直播功能,那么直播功能到底给该平台带来了多少额外的DAU,多少额外的使用时长,多少直播以外的视频观看时长等

对于一般的abtest,本质上就是把平台的流量均匀分为几个组,每个组添加不同的策略,然后根据这几个组的用户数据指标,例如:留存、人均观看时长,基础互动率等等核心指标。
在这里插入图片描述

2、A/Btest是什么?意义/目的/作用

一般用于互联网公司对两种方案进行效果对比,以确定哪个版本的性能更好的方法,主要是利用统计学中的假设检验的方法进行测试。
意义:

  • 通过实验可以验证问题的原因
  • 降低人为决策风险,用统计数字对运营进行科学支持

3、A/Btest工作原理

H0:这个改动不会对核心指标产生影响
H1:这个改动会对核心指标产生影响

当P值足够小时,我们则推翻原假设,证明这项改动会对我们所关注的指标产生显著影响
ABtest就是随机均匀样本组的对照实验,这就是AB测试的原理。

4、A/B test流程(面试喜欢问)

  1. 确定目标(指标):目标是用于确定变体是否比原始版本更成功的指标。可以是点击按钮的点击率、链接到产品购买的打开率、电子邮件注册的注册率等
  2. 分配流量:实验抽样很可能出现抽样不均的情况,尽量采用科学的试验流量分割,使得每一组实验对象具备一致的用户特征,保证实验数据的变化仅仅是实验本身引起的。可以是一次性抽取4/5组流量,选择任意两组不加策略空跑,监控核心指标数据,选取两组数据最为接近的上实验。
  3. 生成假设:一旦确定了目标,就可以开始生成A/B测试想法与假设,以便统计分析它们是否会优于当前版本
  4. 收集数据:针对指定区域的假设收集相对应的数据用于A/Btest分析
  5. 运行试验:测量、计算和比较他们与每种体验的相互作用,以确定每个用户体验的表现。
  6. 分析结果:

5、一个实际的ABtest案例

某APP上线了某功能,分析该功能是否有效果。
步骤:确定目标-确定指标-建立假设 - 选取实验单位 - 计算样本量 - 流量分割 - 实验周期计算 - 线上验证 - 数据检验

由于实验桶和基线桶的比例是1:1,所以我们分配为实验桶1w样本,基线桶1w样本量。但是由于我们不能一上来就全量试验,所以我们开20%的流量为实验桶(假设DAU的20%是2000/天,即实验桶的DAU为2000/天),那么,我们预计要实验5天(1w/2000)。

但是通过计算,用户的一次活跃周期是7天,所以我们为了让实验效果可信度更高,计划实验7天。

检验方法有以下两种:

1、算P值,P值小于5%,拒绝原假设,即产品功能有效果。这个场景中(假设)P=0.002,即我们判断产品有效果。
2、算执行区间的差值,如果不含0,则拒绝零假设。同样,我们这里假设算出来期间不含0,我们认为该产品有效果。
以上,就是一个整体的AB实验案例。我们从筛选指标,到设计实验(选取实验单位,计算最小样本量,计算实验周期),到实验上线,再到后面的效果验证。

6、AB实验的注意事项

6.1 网络效应:一个用户影响另一个用户

例子:如果微信改动了某一个功能,该功能让用户更加活跃。但是实验组的用户好友没有分配到实验组,而是在对照组。但是实验组用户更活跃(比如频繁发朋友圈),作为对照组的我们也会经常去刷朋友圈,从而对照组用户也受到实验组用户的影响。那么AB实验就不再能很好的检测出相应效果

解决办法:从地理上区隔用户。例如北京是实验组,上海是对照组,只要保证两个城市的样本量相近即可。复杂点,可以按照用户的亲密关系区分为不同的组

6.2 学习效应:新奇效应

例子:产品做了一个醒目的改版,比如某个按键颜色从暗色调成亮色。用户刚刚看到,会因为新奇点击该按钮,导致该按钮这点击率在一段时间内上涨,但是长时间来看,很可能又恢复到原有水平。反之,按钮颜色从亮色调成暗色,也有可能短时间内点击率下降,长时间内又恢复到原有水平

解决办法:1,拉长周期来看,不要一开始去观察该指标,而是一端时间后再观察该指标。2,只看新用户,因为新用户并不知道老版本的样子

6.3 多重检验问题

我们在实验中,不断的检验指标是否有差异,会造成我们的结果不可信。即,多次检验同一个实验导致第一类错误概率上涨,同时检验多个分组导致第一类错误上涨

设出现第一类错误概率:P(A)=5%
检查了20遍:p(至少出现一次第一类错误) = 1-(1-5%) ^20 = 64%

也就是说,当我们不断的去检验实验效果时,第一类错误的概率会直线上涨。所以我们在实验结束前,不要多次去观察指标,更不要观察指标有差异后,直接停止实验并下结论说该实验有效。

6.4 先验性:

通过低代价,小流量的实验,再推广到全流量的用户

6.5 并行性:

不同版本、不同方案在验证时,要保证其他条件一致

6.6 分流科学性和数据科学性:

分流科学是指对AB两组分配的数据要一致,数据科学性是指不能直接用均值转化率、均值点击率来进行AB test决策,而是要通过置信区间、假设检验、收敛程度来得出结论。

7、相关面试题

7.1:滴滴准备升级司机端的一个功能,该如何校验功能效果?

考点1:常见的AB测试流程设计
考点2:网络效应
解法:
针对考点1:AB测试的流程是 确定目标 --> 确定实验单位 --> 确定最小样本量 --> 确认流量分割方案 --> 实验上线 --> 规则校验 --> 数据收集 --> 效果检验
针对考点2:实验分桶,以两个量级相近城市分割,避免网络效应的相互影响

7.2:某app,用户活跃周期是14天,这时,上线了一个实验,计划跑20天在看效果,结果有位新同学,在10天时做了统计推断,发现数据已经有了显著差异,认为可以停止实验,这样做对吗?

考点1:实验周期应该跨越一个活跃周期
解法:
由于AB测试的实验周期尽量跨越一个用户活跃周期,且在实验结束时再做统计推断,所以该做法不对,建议跑慢20天再看数据效果。

8、数理统计原理(AB测试相关)

8.1 中心极限定理

样本的平均值约等于总体的平均值。不管总体是什么分布,任意一个总体的样本平均值都会围绕在总体的整体平均值周围,并且呈正态分布。

用途: 1.用样本估计总体。2.根据总体信息,判断某个样本是否属于总体(3σ之内,概率99.7%)。

8.2 小数定理与大数定理

小数定律:如果统计数据很少,那么事件就表现为各种极端情况,而这些情况都是偶然事件,跟它的期望值一点关系都没有。
大数定律:如果统计数据足够大,那么事物出现的频率就能无限接近他的期望值。

8.3 辛普森悖论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端开发:JS中堆和栈的区别

前言 在前端实际开发中,有关JS原生的堆和栈也是很重要的点,关于底层和原理的掌握使用,尤其是在性能优化方面甚为重要。众所周知,JS的变量都是存放在内存中的,而且内存给变量开辟了两块区域,即堆区域和栈区域…

头条_signature

文章目录 0x0目标url0x1接口分析0x2定位0x3调试分析0x4扣代码,补环境0x5运行测试0x6相关代码 0x0目标url aHR0cHM6Ly93d3cudG91dGlhby5jb20 0x1接口分析 打开开发者工具,在xhr下可以找到相关接口 _signature由js算法生成 0x2定位 这里通过全局搜索的…

lesson 12 Zigbee绑定通信

目录 Zigbee绑定通信 通信原理 实验过程 实现步骤 实验现象 实验分析 Zigbee绑定通信 通信原理 1、Zigbee一共有五种通信方式:单播、广播、组播、MAC、广播 2、绑定是Zigbee的一种基本通信方式,具体绑定通信又分为三种模式,模式大同…

C++之std::move用法(一百四十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

最长回文串

Manacher 问题 寻找字符串中的最长回文串 传统做法 字符串首字符前加一个特殊字符 ‘#’ 末尾字符加一个特殊字符 ‘#’ 相邻字符间也加上特殊字符 ‘#’ 遍历字符串,除特殊字符外,以每个字符作为回文字符串的中心向外扩张 思考 很明显这种做法的…

吴恩达ChatGPT《LangChain for LLM Application Development》笔记

基于 LangChain 的 LLM 应用开发 1. 介绍 现在,使用 Prompt 可以快速开发一个应用程序,但是一个应用程序可能需要多次写Prompt,并对 LLM 的输出结果进行解析。因此,需要编写很多胶水代码。 Harrison Chase 创建的 LangChain 框…

基于Mybatis的数据权限拦截器实现

目录 一、背景二、动机三、实现思路3.1 权限类型、操作类型3.2 统一用户及数据权限集合模型3.3 定义数据权限拦截注解3.4 提取配置属性3.5 数据权限拦截器实现 四、集成方式五、关于D3S 一、背景 最近一直在做RBAC相关的架构设计与实现,传统的RBAC的权限控制只是控…

2023CCF CAT- 全国算法精英大赛

目录 A Flower B Tree C Best Travel Plans D Hearthstone E Hotpot F Mystery Sailing Challenge G Card H The diameter of a rectangle I Tourist J Mysterious Rune String A Flower B Tree C Best Travel Plans D Hearthstone E Hotpot F Mystery Sailing Challe…

Git标签管理

目录 标签介绍 创建标签 删除标签 推送标签到远程仓库 标签介绍 标签tag,可以理解为是对某次commit 的一个标识,相当于起了一个别名。 比如说有些重要的commit id 难以记住,这时候就可以利用tag给这个commit id 起一个有意义的名字&…

【QT】图形化页面设计

可视化的图形化界面共有三种设计方式,一种是通过可视化来设计界面的方式;一种是代码化的设计方式;最后是混合上面两种的混合界面设计方式。目前我们只考虑通过Designer和代码来设计图形化页面的两种方式。 目录 可视化图形界面设计 图形页…

数字信号的载波传输

从信号传输质量来看,数字系统优于模拟系统。 由于数字基带信号的频谱包含低频成分,而许多重要的通信信道是带通型的,比如无线信道和许多有线信道,这时需要调制成数字频带信号。 数字调制与模拟调制原理基本相似,有调幅…

ChatGLM-6B详细学习实践记录与资料分享

随着年初chatGPT产品的退出和迭代发展,凭借一己之力将大模型带火,国产很多厂商后续也陆续跟进开始投入研发属于自己的大模型产品,在这段时间里面陆陆续续出来了很多不同的产品,比如:文心一言、星火大模型、通义千问、商…

吴恩达AIGC《How Diffusion Models Work》笔记

1. Introduction Midjourney,Stable Diffusion,DALL-E等产品能够仅通过Prompt就能够生成图像。本课程将介绍这些应用背后算法的原理。 课程地址:https://learn.deeplearning.ai/diffusion-models/ 2. Intuition 本小节将介绍扩散模型的基础…

gof23设计模式之代理模型

1. 代理模式 1.1. 概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代…

Kubernetes对象深入学习之一:概览

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于《Kubernetes对象深入学习》系列 在client-go的学习和使用过程中,不可避免涉及到对象相关的代码,经常面临一个尴尬的现象&#x…

PCL点云处理之多角度剖面切割(一百九十五)

PCL点云处理之多角度切割点云剖面(一百九十五) 一、算法介绍二、具体实现1.沿法向量方向切割剖面2.沿竖直方向切割剖面3.沿水平方向切割剖面一、算法介绍 点云的剖面往往隐藏着很多有用信息,而且分析更加简单一些,这里自己实现一系列不同角度的点云剖面切割,包括沿着法向量…

车载软件架构 —— 闲聊几句AUTOSAR OS(七)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…

Framework - AMS

一、概念 Android10(API29)开始,ActivityTaskManagerService 接管 ActivityManagerService。 二、启动ATMS过程 三、启动APP & 跳转Activity过程 3.1 Activity → ATMS 启动一个 APP 或跳转一个 Activity 都是调用的 startActivity()&a…

数据结构--串的存储结构

数据结构–串的存储结构 串的顺序存储 静态数组实现(定长顺序存储) #define MAXLEN 255 typedef struct {char ch[MAXLEN];int length; }SString;动态数组实现(堆分配存储) typedef struct {char* ch;int length; }HString;int main() {HString S;S.ch (char*)malloc(sizeo…

问题解决:centos7异常关闭后无法开机

前言:主机卡死,直接关了电脑电源,虚拟机中的centos7 产生错误,无法开机 重点是取消挂载。很多文章都提到了xfs_repair /dev/dm-0 , 但是不适用我遇到的情况。 # ls /dev/mapper umount /dev/mapper/centos-root xfs_repair -v -…