前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AB试验(四)基于规范流程的一个案例分析

AB试验(四)基于规范流程的一个案例分析

作者头像
HsuHeinrich
发布于 2023-09-25 13:28:23
发布于 2023-09-25 13:28:23
4180
举报
文章被收录于专栏:HsuHeinrichHsuHeinrich

AB试验(四)基于规范流程的一个案例分析

确定目标和假设

  • 业务场景:某音乐APP,通过历史数据发现一些便利功能往往有着较高的留存和续订。但是这些便利功能的使用率并不高。调研发现,由于APP崇尚简洁设计,因此这些功能会放在每首歌曲的功能列表中,用户发现或使用都不容易。
  • 目标:通过以上业务现状,团队需要增加用户对产品功能的使用率
  • 脑暴解决方案:
    • 将每个功能直接显示出来,这样用户就会一目了然,但是过多的功能铺成使得界面看起来极其糟糕,用户体验较差
    • 新用户注册登录时进行功能引导,但是新用户刚使用时并不会使用所有和功能,大多会选择快速跳过
    • 在用户有需求的时候,通过弹窗形式告知用户使用相关功能。
  • 假设:只在用户有需求的时候弹窗引导用户使用相关功能,可以提高相关功能的使用率

确定指标

  • 定义场景:团队准备以“把喜欢的音乐加入收藏夹”这个功能做一个A/B测试
    • 历史数据分析确定x的最优值为4。即用户从未使用过这个功能,且播放同一首歌到达4次时,在播放第5次进行弹窗提醒可以把喜欢的音乐加入收藏夹
    • 由于弹窗仅是对用户的提醒,因此不做重复弹窗,所以每个符合条件的用户最多只能收到一次弹窗
    • 定义触发条件:用户从未使用过这个功能,且播放同一首歌到达x次时,进行弹窗提醒
    • 数据分析优化场景
  • 定义评价指标
    • 评价指标:【把喜欢的音乐加入收藏夹】功能的使用率=使用了【把喜欢的音乐加入收藏夹】的用户总数/实验中的用户总数
    • 定义实验用户:所有符合触发条件的用户,并将该用户随机分配至实验/对照组
    • 定义时间窗口:用户收到弹窗到最终使用功能的时间分布可能较分散(例如1天,2天甚至1个星期),由于实验周期可能超过一天,因此需要规定好统一的时间窗口,如弹窗后x天内使用率。由于该业务场景关注的是及时性,因此可以设为弹窗后1天内使用率。
    • 优化评价指标:【把喜欢的音乐加入收藏夹】功能的使用率=弹窗后1天内使用了【把喜欢的音乐加入收藏夹】的用户总数/实验中的用户总数,且用户符合触发条件。
    • 通过历史数据的回溯分析,得到用户在符合触发条件后一天内使用把喜欢的音乐加入收藏夹】功能的概率为2%,通过统计公式计算得到置信区间为[1.82%,2.18%]。

确定实验单位

由于弹窗对用户是易于感知的变化,因此为了保证用户体验的连贯性,这里选择用户为最小的实验单位,具体的为用户ID

样本量估算

  • 设置,,所以
  • 计算,实验为50%-50%,所以需要的总体用户约为16万

随机分组

  • 采取CR算法对用户随机分组
  • 由于同类型的实验有多个,避免实验间的干扰,申请B-1层的流量进行此次【把喜欢的音乐加入收藏夹】的A/B测试
  • 设计实验过程

10

测算时间的估算

  • ,每天符合触发条件的用户约1.7w。因此本实验大约需要10天
  • 考虑到周末和工作日用户活跃的差异,因此需要至少包括一整个周。由于上述计算的最小周期为10天包含了一周,所以本次实验的周期定为10天

实施测试

  • 实验伊始,给予该层1%的流量进行观察,运行过程产品端,数据埋点,用户反馈均无明显异常
  • 逐渐增大至全部流量,整个实验进行顺利

分析测试结果

  • 收集数据:在10天后,收集到实验组样本80723,符合触发条件一天内使用该功能的用户3124;对照组样本80689,符合触发条件一天内使用该功能的用户1598。达到最小样本量。
  • 分析统计层面的护栏指标
    • 实验对照组样本比例:实验组样本是80723,对照组样本是80689。由于等流量分组,因此样本进入实验组的概率,则。则进入实验组的置信区间为。实验组/对照组的实际占比分别为50.01%、49.99%。符合样本比例合理检验。
  • 实验对照组主要特征分布是否相似:通过ks检验,两组的分布基本一致(假设进行了此操作)
  • 通过z检验,得到p值接近于零,远小于5%。同时计算评价指标差值(1.89%)的95%置信区间为[1.72%,2.05%],不包括0。事实证明在用户需要的时候进行弹窗提醒确实有效
  • 后续将陆续推广其他相关功能的推广

总结

当你熟练的时候,一次A/B试验是很简单的~

共勉~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-25 16:13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HsuHeinrich 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
拥抱变化,面向Java17,Java8-18全系列特性详解
当我们大部分Javaer还沉浸在Java 8 的特性中时,Java 19 预计在2022年9月20号发布,现在半年发布一次的节奏真让人应接不暇,况且Spring Boot 3.0开始最低版本为Java 17,Spring Security、KafKa等也都宣布在后期版本最低需要Java 17 ,所以我们恶补一下Java 8-18的特性很有必要。
阿提说说
2022/11/18
2.6K0
拥抱变化,面向Java17,Java8-18全系列特性详解
再见Java8!万字总结Java 9~15新特性!真香
你可以在 Archived OpenJDK General-Availability Releases 上下载自己需要的 JDK 版本!
Guide哥
2021/09/16
8480
Java21的新特性
在java21之前,字符串拼接或者字符串与表达式组合主要是用StringBuilder、String::format、java.text.MessageFormat,不过可读性都不是太好,java21引入了StringTemplate(java.lang.StringTemplate)来解决这个问题。
code4it
2023/09/22
7780
Java21的新特性
Java 18新特性
Java 18是Java开发的重要里程碑,它带来了许多新特性和改进,旨在提高开发者的生产力和代码质量。本文将深入浅出地介绍Java 18的一些关键特性,通过代码示例帮助你理解这些新功能。
Jimaks
2024/05/16
1910
Java21的新特性
在java21之前,字符串拼接或者字符串与表达式组合主要是用StringBuilder、String::format、java.text.MessageFormat,不过可读性都不是太好,java21引入了StringTemplate(java.lang.StringTemplate)来解决这个问题。
code4it
2023/09/20
1K0
Java21的新特性
Java 19 新特性一览
作者 | Michael Redlich 译者 | 明知山 策划 | 丁晓昀 Oracle 发布了 Java 19 及虚拟机。这个最终的特性集中包含了如下 7 个 JEP。 JEP 405:记录模式(预览); JEP 422:Linux/RISC-V 移植; JEP 424:外部函数和内存 API(预览); JEP 425:虚拟线程(预览); JEP 426:Vector API(第四轮孵化器); JEP 427:switch 的模式匹配(第三次预览); JEP 428:结构化并发(孵化器)。 J
深度学习与Python
2023/03/29
4290
Java 19 新特性一览
深度解析Java 9核心新特性
避免对文章进行过度解读,因为每个人的知识结构和认知背景都不同,没有一种通用的解决方案。
公众号:码到三十五
2024/05/06
2170
深度解析Java 9核心新特性
Java19的新特性
上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 19 Release Notes,这里举几个例子。
code4it
2022/09/21
5120
Java19的新特性
Java20的新特性
ScopedValue是一种类似ThreadLocal的线程内/父子线程传递变量的更优方案。ThreadLocal提供了一种无需在方法参数上传递通用变量的方法,InheritableThreadLocal使得子线程可以拷贝继承父线程的变量。但是ThreadLocal提供了set方法,变量是可变的,另外remove方法很容易被忽略,导致在线程池场景下很容易造成内存泄露。ScopedValue则提供了一种不可变、不拷贝的方案,即不提供set方法,子线程不需要拷贝就可以访问父线程的变量。具体使用如下:
code4it
2023/03/25
7440
Java20的新特性
【小家java】java11新特性(简述八大新特性) 首个重磅LTS版本
Java11 带来了 ZGC、Http Client 等重要特性,一共包含 17 个 JEP(JDK Enhancement Proposals,JDK 增强提案)。
YourBatman
2019/09/03
1.2K0
【小家java】java11新特性(简述八大新特性) 首个重磅LTS版本
【原创】万字长文带你了解 JDK8 - JDK13 的新特性
某次面试中,面试官问到我这个问题,只勉强说出了 JDK 8 的部分特性,今天就来盘一盘!
良月柒
2020/04/14
9330
【原创】万字长文带你了解 JDK8 - JDK13 的新特性
Java14的新特性
上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 14 Release Notes,这里举几个例子。
code4it
2020/03/19
6320
Java14的新特性
Java程序员必备基础:JDK 5-15都有哪些经典新特性
包装类型有:Integer,Double,Float,Long,Short,Character和Boolean
捡田螺的小男孩
2020/09/28
1K0
Java程序员必备基础:JDK 5-15都有哪些经典新特性
300 秒快速了解 Java 9 - 16 新特性
Java 这几年的更新实在是太太太……快了,Java 8 都还没用多久,16 都已经发布了。自从 Java 8 发布了 Lambda 和 Stream 之后,Java 就像打了鸡血一样,半年一个版本的发布,生产队的驴也没这么勤快。
肉眼品世界
2021/09/27
4830
300 秒快速了解 Java 9 - 16 新特性
Java 18的未来:新特性和编程实践
Java一直是软件开发领域的巨人,通过不断演进和改进,它保持着自己的竞争力。随着Java 17的发布,开发人员已经开始期待Java 18将会带来什么新的特性和编程实践。本文将探讨Java 18的可能特性,并提供一些实际的编程示例,以帮助您更好地理解这些新功能。
IT_陈寒
2023/12/13
2470
Java 18的未来:新特性和编程实践
Java22的新特性
主要是通过引入Region Pinning来降低使用JNI时G1收集器的延时。与Java代码不同,JNI交互可能使用指向堆中对象的显式指针。当Java线程执行JNI 代码的关键区域时,无法在堆中重新定位这些对象。为了避免此问题,G1在关键区域禁用GC,这可能会导致延迟增加,因为如果其他非JNI线程触发GC,它们将被阻止。此更改允许G1 GC通过固定JNI代码使用的内存区域但允许重新定位和收集其他内存区域,即使线程位于关键区域也可以运行。
code4it
2024/03/25
1800
Java9-17新特性总结
Java 9 模块的重要特征是在其工件的根目录中包含了一个描述模块的 module-info.java 文 件通过exports向外开放接口/类, 限定模块使用范围同时通过requires定义该模块所需依赖
code-x
2022/06/21
6780
Jdk14 都要出了,Jdk9 的新特性还不了解一下?
Java 9 中最大的亮点是 Java 平台模块化的引入,以及模块化 JDK。但是 Java 9 还有很多其他新功能,这篇文字会将重点介绍开发人员特别感兴趣的几种功能。
Java_老男孩
2020/02/25
5290
Jdk14 都要出了,Jdk9 的新特性还不了解一下?
卷不动了?300 秒快速了解 Java 9 - 16 新特性,助你脱离内卷
来源 | https://juejin.cn/post/6964543834747322405
用户1516716
2021/07/06
3920
Jdk14 都要出了,Jdk9 的新特性还不了解一下?
Java 新特性系列已经从 Java 7 开始补充到 Java 9 了,每一篇的反馈都还不错。这个系列会持续更新到 Java 13 版本,然后在每个 Java 新版本发布时同步更新这个系列。你可以在文末找到这个系列的其他文章。
未读代码
2020/02/25
5650
Jdk14 都要出了,Jdk9 的新特性还不了解一下?
相关推荐
拥抱变化,面向Java17,Java8-18全系列特性详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档