DataScience 板


LINE

[关键字]: A/B Testing [重点摘要]: - 干嘛管 A/B Test 的样本数?样本数太少会怎麽样吗? - 实验检定力会不足、测不出有用的结果 - A/B Test 的样本数不是越多越好吗?太多又可能有什麽问题? - 经常看见显着、但是效果小到没有帮助 - 多蒐集样本在商业上也是一种成本 - 是什麽因素影响 A/B Test 所需样本数? - 样本标准差、Minimum Detectable Effect、还有型一、型二错误 A/B Test 是个看似简单,实际上充满统计学学问的领域 一个小动作做错、也可能铸成错误决策 「样本数怎麽算」就是做 A/B Test 的产品设计者、行销专家 还有资料科学家们永远都在问的万年问题 如果没有在实验前想清楚这个问题 很有可能让你的产品团队精心准备的实验成为浪费时间 以下我将和大家分享三个议题: *为什麽要计较 A/B Test 的样本数? *是哪些要素影响 A/B Test 所需样本数? *所需样本数可以用什麽公式计算? 更完整的数学公式加上 Python 程式码图文介绍 欢迎参考我的网志文章: https://haosquare.com/calculate-ab-testing-sample-size/ ## 为什麽要计较 A/B Test 的样本数? 我们先稍微聊聊究竟资料分析为什麽要这麽在意 A/B Test 的样本数有多少。难道,不是 只要做好随机对照实验(RCT)、在假设检定看到显着就能马上下结论吗?没这麽简单! 当 A/B Test 样本数过少时,统计检定力往往会不足,也就是,即使你的产品新设计确实 对使用者有帮助,商业实验也看不出显着性。更麻烦的问题是,如果产品每天能蒐集的样 本很少,我们常会急切地天天盯着 A/B Test 结果看,如果看到资料反映出统计检定显着 ,马上下结论、结束实验,这种在样本数不足下「偷看」的动作会造成持续监控问题,其 中的抽样偏误会使得实验的统计错误大大提高!此「偷看」问题我过去曾在本板分享过, 如果你有兴趣,欢迎参考之前的文来复习:#1VGG3_Pu 而当 A/B Test 样本数过多也不全然是好事情,不是资料越多就一定越好。首先,对某些 使用者流量还不太高的产品而言,每个样本都超珍贵、多蒐集几个样本可能要花不少时间 。如果你蒐集了比你实际上需要还多很多的样本,就会多浪费好几天蒐集样本、还对实验 没什麽贡献。而且别忘了,A/B Test 会让你的使用者看到跟平常不一样的产品,这个不一 样或许是暂时的、未来或许会变回原状(因为你的实验有可能告诉你使用者其实不青睐新 设计),因此我们当然希望因为 A/B Test 而看到这个「不一样」的使用者样本越少越好 ,我们不会想让太多人看到我们反反覆覆修改着产品设计的过程。 此外,当样本数超级大的时候,通常 P 值(P-value)都会很小,换言之,只要你的样本 数超多,几乎都能看到统计显着、拒绝虚无假设 但样本数过多的统计显着往往只伴随着很小很小的效果 会是「不实用」的统计显着。 (Statistically significant, but not practically significant) 举例而言,假设有药厂发明了一种药,可以让身高增加 0.2 公分,他们找了超大一群样本 、也真的在实验看出统计显着性,但你会为了想长高 0.2 公分冒险吃这种药吗?这就是统 计显着不太「实用」(Practical Significance)的意思。如果你还想知道样本数过大还 会造成哪些其他 P-value 问题,推荐你细细品嚐以下这篇 Too big to fail 论文: https://reurl.cc/XERbqg 总之,想要为产品高效率执行 A/B Test,我们要找个刚刚好的样本数 不能太低、也不适合太高 ## 决定所需样本数的四大要素 ### 1. 样本标准差 > 样本标准差越大、A/B Test 需要的样本数越多 样本标准差(Standard Deviation)衡量样本内数值的离散程度,样本内的数值如果很发 散,我们会更难结论两组数据间的差异。直接举个例子来想像,假设已经知道A地区的平 均身高是 165 公分: * 如果你在B地区抽样出 5 个人:158、163、170、172、177 公分 * 即使样本平均是 168 公分,但是数据很发散(样本标准差很大) * 让你不敢断言「B地区平均身高高於A地区」,或许还要 30 个样本以上才能下结论 * 如果你在C地区抽样出 5 个人:166、166、167、168、169 公分 * 虽然平均数只比A地区高 2 公分,但是每笔数据都很接近 167 公分、资料相当集中 (样本标准差很小) * 你可能会在心中想着:只要再抽样 3 个人、他们身高也同样接近 167 公分的话,你 或许已经愿意相信「B地区平均身高高於A地区」 样本标准差的影响亦可以用钟型曲线来视觉化。统计学常会对估计值画出钟型曲线来呈现 其分布,A/B Test 两组的样本平均数分布可以各自画出钟型曲线,很概略地说,(见下图 )两个钟型曲线只要重叠的部分很少、就会有统计显着。所以,样本标准差对决定样本数 的影响可以这样思考: * 钟型曲线越「瘦高」,越不容易重叠(越容易统计显着) * A/B Test 样本数越多,标准误会越小、钟型曲线会越瘦高 * 而当样本标准差越小,标准误也会越小 * 那就表示样本标准差很小的时候,样本数可以不用那麽多,钟型曲线也能保持同样瘦高 、同样容易呈现统计显着 * 「容易呈现统计显着」的程度就是统计学家口中的检定力(Statistical Power) https://imgur.com/ezHFIOm ### 2. Minimum Detectable Effect (MDE) > MDE 越大、A/B Test 需要的样本数越少 Minimum Detectable Effect(MDE)是期望最小的指标效果差异,它是主观设定的,它可 能取自於你的产品设计理念,例如帮 APP 某个按钮换造型预计提升 10% 点击率;也可能 来自於商业策略问题,例如这个 APP 按钮的点击率如果无法成长 10%,那将会不符成本、 不值得改变产品。 决定样本数的时候就把 MDE 考虑进去,将会解决刚刚提到的「不实用」统计显着问题,因 为你事先设定好你的数据至少要看到多大差异才算是实用,只要你使用刚刚好的样本数来 做商业实验,最後如果看到实验呈现出统计显着,其效果肯定不小於 MDE、必然是「实用 」的统计显着(Practical Significance)。 Practical Significance 参考说明: https://online.stat.psu.edu/stat200/book/export/html/119 在此罗唆提醒,MDE 是在 A/B Test 开始之前就(主观)决定好的,MDE 不是指实际实验 数据的两组平均数差异(因为实验还没开始做、不知道实际差异)。 当你设定的 MDE 越小,实验需要的样本数越高;反之,MDE 越大,需要样本数越少。就用 上个小节的「长高药」来举例吧,假设已知控制组的平均身高是 165 公分: * 如果实验者设定 MDE 为 1 公分 你陆续蒐集了几个样本分别是 166 公分、164 公分、172 公分 * 实验组平均虽然比控制组高了 2 公分,你可能还是会心想:「不能结论长高药有效! 或许有抽样偏误存在,是运气好抽到一位特别高的样本才有这种结果」 * 还要多蒐集很多样本才敢结论到底有没有长高效果 * 如果实验者设定 MDE 为 20 公分 而你目前蒐集到几个样本分别是 187 公分、174 公分、189 公分 * 实验组平均只比控制组高了 18 公分、不到 MDE 设定的 20 公分 * 但光是实验组蒐集这少少 3 个样本相对於控制组都有很大的效果 你是否也开始相信这个长高药好像真的有效了? 此外,MDE 对样本数的影响也同样可以用钟型曲线来想像。 * A/B Test 样本数越多,标准误会越小、钟型曲线会越瘦高 * 而 MDE 越大,对照组的钟型曲线会越往右边平移、与另个钟型曲线的重叠会越少 * 换言之,MDE 越大,样本数即使少一点、钟型曲线矮胖一点,也同样容易出现统计显着 https://imgur.com/D3lBpFE ### 3. 型一与型二错误 > 允许的型一与型二错误率越高、A/B Test 需要的样本数越少 统计方法不是完美的,不管你进行假设检定之後看到显着或不显着,都还是有机会让你造 成错误结论。有可能抽样时恰好运气不佳,使得你抽到的样本对於母体不具有代表性、无 法反映出母体的真实特徵,这种出现抽样偏误的随机性会使我们错误推论资料。统计学家 将这种 A/B Test 「预期会发生」的错误分成两种: * 型一错误(α 或 Type-1 Error): A/B 两组其实并没有差异,统计检定却因为随机性判定成有差异(伪阳性错误) * 型二错误(β 或 Type-2 Error): A/B 两组确实有差异,统计检定却没有侦测到显着(伪阴性错误) 如同人做的决策不可能完美无缺,统计检定的型一与型二错误也不可能完全消除、但可以 被控制,分析者可以自己决定容许统计方法有多少型一与型二错误存在。在资料越多时, 你对估计值的衡量就越精确,(通常)也表示会产生的决策错误越少;反过来说,如果你 允许发生的型一与型二错误越少,需要的样本数就会越多。 在此又要罗唆地注记,很多资料科学家会用检定力(Statistical Power)来描述型二错误 ,检定力其实就只是 1-β、与原本的型二错误 β 一体两面,只需要注意样本数计算的统 计直觉会变成:如果分析者要求 A/B Test 的检定力(1-β)越高、需要的样本数也会越 多。 相对於刚刚讨论的另外两个因素(样本标准差由资料决定、MDE 由产品设计者决定),一 般来说,我们执行 A/B Test 会选择的型一与型二错误率几乎都是按照统计学的惯例、不 太会更动: * 型一错误设定为 α = 0.05 * α 也被称为显着水准(Significance Level) * 这也是为什麽我们常常看到 95% 信赖区间 * 型二错误设定为 β = 0.2 * 也就是检定力 = 1-β = 80% ## 究竟样本数计算公式是什麽? 进行 A/B Test 的正确做法是预先决定实验样本数、并且禁止在蒐集到这个样本数之前偷 看。那麽实验样本数究竟是怎麽算出来的呢?以下是计算方法的「经验法则」: n = 16 * sigma^2 / delta^2 https://imgur.com/A9qOqMQ 经验法则的意思是,此公式已经经过不少简化, 并且计算内容已蕴含了上述的四大要素 更重要的是, 我们使用时要注意其包含了几项假设: * 实验的 A 与 B 两组样本数大小相同 * n 是 A 与 B 其中一组的样本数至少要是多少(注意 n 不是 A 与 B 的样本数总和) * 型一与型二错误依照惯例设定 α = 0.05 与 β = 0.2 * 假设实验的 A 与 B 两组样本变异数相同(样本标准差相同) (如果你的实验要改变以上假设, 就不能再用此经验法则、要去找更完整的数学公式) 这个简化後的经验法则公式不限於资料型态,不管你的 A/B Test 目标是连续型资料还是 比例资料都能适用。我们可以用 Python 程式跑些模拟来验证我们算出来样本数的正确性 对模拟流程有兴趣的话,请参考我放在 GitHub 的 Python Notebook: https://reurl.cc/y7vaaE 此外,这个简短的样本数计算公式还可以用效果量的观点来理解 统计学课本所说的 效果量(Effect Size)是衡量两个变数之间关系的强度,我自己则更 喜欢把效果量想成考虑资料离散程度(变异数)後的效果大小相对值,又或者,效果量可 以想成是为效果标准化、以统一尺度来衡量效果。 在 A/B Test 情境,效果量经常使用 Cohen’s d 来计算。而上面这个公式,可以用 Cohen's d 来改写(以下 Cohen's d 以 ES 表示): n = 16 * sigma^2 / delta^2 = 16 / ES^2 where ES = delta / sigma https://imgur.com/6bIGdPb 由此改写後的公式来看,A/B Test 样本数取决於标准化後的效果大小 换言之,样本数是 Cohen’s d 的函数。 依此能看出把样本数转换成 Cohen’s d 的函数来理解的好处: 帮我们一眼看出「样本数取决於效果大小」的统计直觉 ## 小结 如果你在网路上用英文关键字搜寻过「Sample Size」 很可能看过 Evan Miller 设计的热门 A/B Test 样本数计算机 https://www.evanmiller.org/ab-testing/sample-size.html 网页提到他用的正是 n = 16 * sigma^2 / delta^2 这个经验法则公式 而网站中对公式说明不多、也无法一眼看出用到了哪些假设 希望这篇文章能帮助各位板友 更清楚理解网路上搜寻到的各种 A/B Test 样本数计算机究竟算了什麽 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.5.200 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1687878735.A.FB3.html
1F:推 agogoman: 推06/28 07:32
※ 编辑: AgileSeptor (36.225.15.165 台湾), 06/28/2023 11:27:01 ※ 编辑: AgileSeptor (36.225.15.165 台湾), 06/28/2023 11:29:09
2F:推 filialpiety: 推推!之前学姊在做大专生计画时,收案也有估算所需 06/29 10:51
3F:→ filialpiety: 样本数 06/29 10:51
4F:推 wow56397849: 推推 从文章学到很多 06/30 19:46
5F:推 cowbadma5566: 推 07/03 02:46
6F:推 lp1116lp1116: 推 07/05 12:08
7F:推 chih2loveu: 推 07/07 20:05
8F:→ diabolica: 推 07/14 23:11
9F:推 paxetin: 推 10/19 18:11
10F:→ magic123: 推 01/27 16:19







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP