想象你是一座大型主题乐园的运营总监。你设计了一条全新的“快速通道”路线,希望让游客玩得更开心,但又怕它实际效果一团糟。你不可能让所有游客都去走新路线——万一是场灾难,全园口碑都会崩掉;你也不能只凭几个员工的直觉做决定——那和掷骰子没区别。最靠谱的做法是:让一小部分游客先走新路线,与走老路线的游客对比体验数据,让数字来回答“新路线是不是真的更好”。 这正是A/B测试在做的事,而分桶与流量分配就是这套实验系统最底层的“交通调度中心”。它决定了每一位用户进入哪个实验组、每个实验拿到多少流量、多个实验怎么同时跑还不互相踩脚。本文会用主题乐园的游客分流贯穿始终,配合动画演示和可运行代码,带你从零掌握分桶原理、流量切片、正交设计、样本量计算与实战落地。
对AI从业者而言,A/B测试是衡量模型与策略价值的“裁判员”。掌握分桶与流量分配,你就能设计出科学可信的线上评估实验,让每个决策都有数据背书,避免“改了模型却说不出有没有变好”的尴尬。
目录
可视化演示
动态演示A/B测试分桶与流量分配实战的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
A/B测试分桶与流量分配实战:哈希分桶 哈希分桶的基本原理 流量分配的策略设计 核心机制可视化 A/B测试分桶与流量分配实战整体架构与关键组件
一、分桶原理:闸机口的“手环编号”
乐园入口处有一排闸机,每个闸机都装着手环扫描仪。游客刷手环进园时,扫描仪瞬间读出编号,用一道固定公式算出“这位游客该走哪条体验路线”。游客不论来多少次,只要同一个手环刷上去,结果永远一致——这就是“哈希分桶”。在A/B测试里,每位用户都有一个唯一ID(手环编号),分桶系统用哈希函数把用户ID映射到固定范围的整数,这个整数就是“桶号”。
哈希分桶最核心的性质是“均匀”与“确定”。均匀是指散列结果近似随机——100个用户进100个桶,每个桶大约1人;确定是指同一输入永远得到同一输出,用户反复访问不会凭空换桶。盐值(Salt)则是拼接进哈希输入的一段额外字符串,比如 hash(user_id + "experiment_v1")。它的作用是让不同实验的分桶结果互不相关:同一用户在不同实验中被分到的桶号模式完全打散,避免“两个实验的实验组恰好是同一批人”这种系统性串味。一致性哈希则解决“桶数量变化”时的稳定性问题——当实验从10个桶扩容到11个时,普通哈希会让几乎所有用户重新分配,而一致性哈希只迁移少量用户,类似乐园新开一条通道时,只有离通道最近的游客被引导改道。
就像手环扫描仪只用固定公式决定游客去向,哈希分桶用同一道公式处理所有用户——公平、快速、重复访问结果不变。盐值则相当于给手环换了种颜色:同一个游客戴上蓝手环走的路线,和戴红手环走的路线,可能完全不同。
- 哈希计算把用户ID和盐值拼接成一个字符串,用哈希算法(如MurmurHash、MD5)计算,得到一个“看起来随机”且均匀分布的整数值。相同输入永远得到相同输出。
- 归一化到[0,1)将上一步的哈希整数除以哈希值域的上界,得到一个0到1之间的小数。不同用户得到完全相同小数的概率极低。
- 映射到桶号用这个小数乘以桶总数N,再向下取整。结果为0到N-1的整数,即用户所在桶号。由于哈希均匀性,用户会近似均匀地落入每个桶。
二、流量切片:园区里“开放多少区域”
新路线刚建成时,你不敢一上来就全园开放。第一天只开放给1/10的游客,观察拥堵与反馈;确认没问题,再逐步开放到1/5、1/3、全部。这个过程就是“流量切片”——按比例从用户大盘里切出一块,投入实验。在A/B测试中,流量通常被切成100个“桶”(或1000个),每个桶代表1%的流量,实验分配到多少桶,就等于拿到了多少流量。
流量比例的设定是实验设计的第一个决策点。比例太低,组间差异难分辨;太高,风险敞口太大。业界经验是:新功能灰度用小流量(1%~5%),成熟功能回归验证可用更大流量(10%~50%)。桶大小控制的核心原则是让对照组和实验组都达到最小样本量——如果样本量公式算出每组需要3万人,你就得确保分配给该实验的流量足够在实验周期内收集到6万人。放量计划则是一套有门禁的阶梯:小流量验证→中期检查(指标方向是否对、有没有崩溃率上升等反指标)→逐步放量→全量发布。每一步都要求“达标才前进”。
流量切片与乐园的“分阶段开放”思路同源:先把风险关进笼子,用最小的代价验证方向,再逐步放开闸门。记住,放量的节奏不是拍脑袋,而是每一步都有明确的数据门禁。
- 实验分配桶数给某个实验配置的桶数量。比如在100桶的体系中分给实验A共20个桶。
- 总桶数所有流量被切分的桶总数,通常固定为100或1000,方便按百分比理解。
- 计算比例两者相除,得到实验实际占据的用户流量比例。20桶/100桶=20%的用户进入该实验。
三、正交实验:一张票玩遍全园
游客进园后,既会玩游乐项目,也会去餐厅吃饭、看演出。如果每个实验都单独占用一批游客,乐园很快就不够人用了。更聪明的做法是让同一位游客既参与“游乐路线实验”,又参与“菜品口味实验”,互不冲突——这叫正交实验设计。正交的数学含义是“独立”:实验E1的分组结果与实验E2的分组结果互不携带对方信息,即P(E1组别 | E2组别) = P(E1组别)。
让两个实验正交的工程方法很简单:使用不同的盐值。E1用salt=“exp1_tag“,E2用salt=”exp2_tag“,两套哈希互不相关,用户的组别就像两张独立的彩票——中不中E1的A组,跟中不中E2的A组没有关系。如果误用了相同盐值,两张彩票就不独立了:E1中A组的用户恰好也都是E2中A组的用户,两个实验的效应会系统性叠加,实验结果直接串味。正交实验带来的最大收益是”流量复用”:100万老用户,如果每个实验独占流量,只能同时跑2个50%流量的实验;有了正交设计,可以同时跑5个、10个实验,流量利用率成倍提升。
用一张票玩遍全园,是互联网产品“多实验并行”的真实写照。多快好省地做实验,靠的不是堆用户,而是让同一批用户聪明地重复利用。
四、分层策略:按“游客类型”分区管理
乐园管理时会把游客分为“亲子家庭”“青年玩家”“银发游客”等类型,不同类型的游客对同一路线的反应差异很大。分层策略就是在入口先按游客类型设置独立通道,通道内各自再分流——保证每类游客内部都能得到均匀的实验分配。在A/B测试中,分层(Stratification)指先将用户按关键属性(新老用户、注册渠道、会员等级、城市等级)分成互斥的层,每层内部再独立分桶。
常用分层维度包括:新老用户(两者对功能的熟悉度差别巨大)、设备类型(iOS与Android的渲染与交互差异)、地域(国内与海外用户的文化差异)、用户价值(高价值用户与普通用户的敏感度不同)。分层的直接收益是“降方差”:如果实验组里恰好混进了更多高转化老用户,哪怕实验无效,转化率也会虚高——分层保证组间在关键维度上可比,减少抽样误差。层内独立是指每个层拥有独立的分桶空间,比如新用户层和老用户层各自有0~99号桶,互不共享,避免层间用户被重复计数。层间正交则通过不同盐值实现,保证一个“新用户+高价值+iOS”用户可以在多个层的多个实验中各贡献一份数据。
分层策略就像在乐园门口先给游客贴上类型标签,再让同类游客内部公平分流。它让实验组与对照组在关键维度上“长得一样”,从而更精准地观察实验变量带来的真实影响。
- 第h层的权重W_h该层用户数占用户总数的比例。如新用户层占30%,则W₁=0.3。
- 第h层的方差σ_h²该层内用户核心指标的离散程度。层内用户越同质,方差越小,对降噪越有利。
- 加权求和各层方差按权重平方加起来,得到分层后的总体方差。它通常小于不直接分层的简单随机抽样方差,正是分层策略的核心价值。
五、样本量计算:需要多少游客才能下结论
你想知道新路线平均排队时间比老路线短5分钟还是只有1分钟。如果只观测10个游客,排队时间波动太大,根本看不出区别。需要看多少人才够?这取决于三件事:基线水平、想检测的最小差异、以及你对结论的信心要求。在A/B测试中,这三件事分别叫做基线转化率p、最小可检测提升δ(MDE)、显著性水平α与统计功效1-β。
基线转化率是当前版本的核心指标值,比如当前注册转化率5%。它决定了方差p(1-p)——p越接近0.5,方差越大,所需样本越多。最小可检测提升是你期望捕捉到的最小效果:想检测0.1%的提升比检测1%的提升难得多,因为系统需要更敏锐的“视力”,往往要10倍以上的样本。显著性水平α通常取0.05,意思是“本来没有提升,但误判为有提升”的概率控制在5%以内;统计功效1-β通常取80%,指的是“真的有提升且能被检测出来”的概率。α越小、功效越高,需要的样本量越大——天下没有免费的午餐,要求越严谨,成本越高。
样本量计算是实验设计的“预算表”。它告诉你:想证明新路线快5分钟,需要约3万游客做样本——人数不够就别急着下结论,硬下结论只会得到一纸废数据。
- z分数标准正态分布的分位数。α=0.05时,z₁₋α/2≈1.96;β=0.2时,z₁₋β≈0.84。前者代表“误报”门槛,后者代表“漏报”容忍度。
- 方差项2p(1-p)伯努利变量的方差。p=5%时,2×0.05×0.95=0.095。基线率越接近50%,方差越大,需要的样本越多。
- δ²最小提升的平方δ是绝对变化量。从5%提升到5.5%,δ=0.005,δ²=0.000025。想看到更细微的差异,分母变小,n急剧增大。
- 代入计算n ≥ (1.96+0.84)² × 0.095 / 0.000025 ≈ 7.84 × 0.095 / 0.000025 ≈ 29800,即每组约需3万人。
六、分流策略:指示牌的权重与调节
乐园入口每个通道前立着指示牌:“1号通道走路线A,2号通道走路线B”。某天路线B排队爆满,你可以临时调整指示牌,让更多游客流向路线A——这就是流量分配策略的动态调整。在A/B测试中,分流策略回答“实验组与对照组各拿多少流量”以及“流量如何随时间变化”。
最基础的是均匀分流:50/50或33/33/33的平均分配。优势是简单直观、统计功效最大——组间比例越接近1:1,检测同等效果所需的样本量越小。缺点是不够灵活,无法体现业务优先级。权重分流则允许按业务需求配置比例,如对照组50%、变体A 20%、变体B 15%、变体C 15%。实现方式是维护一张“桶号→变体”的映射表,映射表可以随时调整,但要注意:调整后已累积的历史数据与新映射不一致,通常需要重置实验或按时间分段分析。动态调整更进一步:实时监控实验指标,某变体出现明显负向时自动缩减流量,表现优秀时阶梯式放量。这需要一个“流量分配引擎”持续读取最新数据并更新配置,相当于给乐园装上了一个会自动重写指示牌的智能系统。
分流策略如同乐园入口的指示牌管理:既要做静态的公平分配,也要能在情况变化时灵活调节。好的分流系统是“看得见、调得动、回得去”的——实时监控加上阶梯调整,既保证实验的科学性,也守护业务的安全线。
- 分子w_i第i个变体的权重系数。配置为50/20/15/15时,变体A的权重为20。
- 分母总权重所有变体权重之和。50+20+15+15=100,这是归一化的基准。
- 概率计算变体A的流量占比为20/100=0.2,即20%的用户会进入变体A。
七、偏差控制:避开流量“拉帮结派”
实验最怕“串味”。想象你把游客分成两组测试路线,但路线A上游客小张和路线B上游客小李恰好是朋友,两人在园区碰头后交换了对路线的感受——小张一句“这条路线不好”,影响了小李的体验判断。你的实验数据就这样被“网络效应”污染了。偏差(Bias)指实验组与对照组之间除实验变量外的系统性差异,在分桶阶段,最常见的偏差来自交集污染、网络效应和用户重叠。
交集污染是指同一用户同时参与了两个高度相关的实验(如“首页改版实验”和“推荐算法实验”),两个实验的效应叠加,你就无法分清每个实验各自的贡献。解决方案很直接:高相关实验共享同一层,层内强制互斥——一个用户在该层只能进入一个实验。网络效应指用户之间的相互作用:社交产品里,实验组用户给对照组用户发消息,就可能把实验效应“传染”过去。解法是群组随机化,把用户按社交网络分组(家庭、公司、区域),整组一起进入同一个实验组。用户重叠则是指同一用户用多个设备登录,在实验里被当成多个样本来计数。解法是以user_id为主键做唯一去重,同时在设备维度做“用户级去重、设备级分桶”。
偏差控制的核心是“让实验边界清晰”:互斥的层隔离相关实验,群组随机化切断网络传染,用户去重消除重复计数。就像乐园里给不同路线设置物理隔栏,让游客只能走一条道,数据才不会“拉帮结派”。
- 分子统计同时处于两个及以上相关实验中的用户数量。这批用户是“串味”的来源。
- 分母所有参与实验的用户总数,是统一的归一化基准。
- 比例两者相除得到污染度。该值越接近0,实验隔离做得越好,结果越可信。
八、实战落地:把分桶系统架到园区里
有了闸机、路线、通道和监控,最后要把这些整合成一套可运营的系统。乐园需要一张“园区流量总控图”实时展示各路线的游客分布,还需要报警机制——某条路线突然拥堵或空缺时自动预警。实战落地指的是将分桶与流量分配的设计,最终落地为一个可运行、可监控、可迭代的工程系统。对AI团队而言,这套系统通常被称为“实验平台”或“增长实验基础设施”。
一个典型的实验平台包含四个模块:配置中心负责定义实验、变体与流量比例;分桶服务对外提供高性能的哈希计算接口;数据管道实时收集曝光、点击、转化等事件;分析服务负责计算显著性、置信区间与增量提升。平台化带来的最大收益是让非算法团队也能自助做实验——产品经理在配置界面点几下就能创建一个A/B实验,不必再排队等工程师手动分流。监控告警需要覆盖三层:桶流量均匀性(实际流量与配置比例是否一致)、桶内用户稳定性(用户是否被频繁换桶)、指标实时性(实验组核心指标是否有异常波动)。任何一层出问题都要及时告警,否则实验跑了几天才发现分桶失效,浪费的流量和时间都无法追回。决策流程则是一个标准闭环:提出假设→设计实验(选主指标与护栏指标)→配置分桶→放量→监控→分析→决策。决策不能只看p值是否小于0.05,还要看业务显著性——提升3个百分点是否值得承担改版风险?ROI是否划算?这些都要在流程中明确回答。
从闸机到手环,从指示牌到总控台,分桶与流量分配的全部理论最终都要沉淀为一套可运营的工程系统。它让“科学实验”不再是研究者的奢侈品,而是每个业务团队都能随时上手的日常工具。
AI 应用场景
电商首页改版评估
阶段:产品迭代评估
解决的问题:传统改版直接全量发布,出了问题只能集体回滚,损失惨重。AI驱动的分桶系统让首页改版在20%流量上先跑两周,用实时数据判断新版是否真的提升转化率,再决定是否全量。
具体案例:某电商平台将首页推荐流从“人气排序”改为“个性化排序”。通过分桶系统配置20%流量进入实验组,其余80%保持旧版。两周后分析显示实验组点击率+5.2%、GMV+2.8%,且无显著的加载失败率上升,随后阶梯放量至全量。
推荐模型线上评估
阶段:模型上线评估
解决的问题:离线指标(如AUC)提升不代表线上业务指标一定变好,必须做线上A/B评估。分桶系统保证了新旧模型在相同用户分布下的可比性,避免流量分配不均造成的评估偏差。
具体案例:某短视频平台新推荐模型离线AUC+0.8%。通过实验平台将5%流量分配给新模型实验组,观察人均播放时长、完播率与次日留存。确认三个指标均为正向后,逐步放量到30%、50%,最后全量替换旧模型。
Python 演示
import hashlib class BucketAllocator: """基于哈希的A/B测试分桶器""" def __init__(self, bucket_count=100, salt="default_salt"): self.bucket_count = bucket_count self.salt = salt def _hash(self, user_id, salt): # 用MD5前8位转成十进制,映射到[0, 1)区间 raw = f"{user_id}:{salt}".encode("utf-8") hex_str = hashlib.md5(raw).hexdigest()[:8] return int(hex_str, 16) / 0xFFFFFFFF def get_bucket(self, user_id, salt=None): # 取哈希值乘以桶总数,向下取整得到桶号 salt = salt or self.salt return int(self._hash(user_id, salt) * self.bucket_count) def map_to_variant(self, bucket, config): # 将桶号映射到实验变体(按权重累积判断) cumulative = 0 for variant, weight in config.items(): cumulative += weight * self.bucket_count if bucket < cumulative: return variant return list(config.keys())[-1] def allocate(self, user_id, experiments, salt=None): # 每个实验用独立盐值,实现正交分流 salt = salt or self.salt result = {} for exp_name, config in experiments.items(): exp_salt = f"{salt}:{exp_name}" bucket = self.get_bucket(user_id, exp_salt) result[exp_name] = self.map_to_variant(bucket, config) return result if __name__ == "__main__": allocator = BucketAllocator(bucket_count=100) # 定义两个正交实验:首页改版实验与定价实验 experiments = { "homepage_exp": {"control": 0.5, "treatment": 0.5}, "pricing_exp": {"control": 0.5, "treatment": 0.5}, } # 模拟10000个用户进来,统计各实验变体的人数 stats = {} for uid in range(10000): user = f"user_{uid}" result = allocator.allocate(user, experiments) for exp, variant in result.items(): key = f"{exp}:{variant}" stats[key] = stats.get(key, 0) + 1 # 打印分布结果,验证分桶是否均匀 for exp, config in experiments.items(): for variant in config: key = f"{exp}:{variant}" count = stats.get(key, 0) print(f"{exp} [{variant}]: {count} ({count / 10000:.1%})")
raw = f"{user_id}:{salt}".encode("utf-8")把用户ID和盐值拼成字符串并编码为字节,作为哈希函数的输入。hex_str = hashlib.md5(raw).hexdigest()[:8]取MD5结果的十六进制前8位,保证哈希值分布均匀且计算高效。return int(hex_str, 16) / 0xFFFFFFFF将十六进制转成整数后除以最大值,归一化到[0,1)区间。int(self._hash(user_id, salt) * self.bucket_count)归一化哈希值乘以桶总数并向下取整,得到0~99的桶号。exp_salt = f"{salt}:{exp_name}"每个实验拼接不同的盐值,使同一用户在不同实验中落入不同桶,实现正交。result[exp_name] = self.map_to_variant(bucket, config)将桶号映射到具体的实验变体(如control或treatment),完成一次分桶决策。
常见误区
误区“A/B测试样本越多越准,干脆把90%流量都放进实验组,10%做对照组,甚至直接全量上线慢慢看数据。”
正解样本量是“组间差异→统计功效→显著性”之间的平衡。90/10的分流虽然总量大,但组间比例严重失衡,对照组方差大,反而降低检验灵敏度;更重要的是风险控制——如果新策略有严重问题,90%的用户都会跟着遭殃。科学做法是先小流量(5%~20%)验证,再阶梯放量。
为何常见:“样本越大越准”的直觉在统计上确实部分成立,但忽略了实验的“风险成本”与“组间比例最优匹配”两个工程视角。
误区“A/B实验都是独立的,只要用户量够,同时跑几个互不相关的实验不会有问题。”
正解如果两个实验的相关指标互相影响(如首页改版影响转化率、推荐策略也影响转化率),同时跑就会“串味”——实验1的效应被实验2干扰,无法归因。正确做法是:高相关实验共享同一层互斥;非相关实验用不同盐值做正交。
为何常见:统计课里的“独立性假设”在真实系统中很难天然成立,不是所有做实验的人都意识到“业务指标会互相踩脚”。
误区“分桶只需要保证每个桶人数差不多,用户参加过什么实验不重要。”
正解用户的实验历史会改变行为基线。一个参加过“新用户引导实验”的用户,对产品的新鲜感已经改变,再进“首页改版实验”时不再是“干净用户”。这就是“层”存在的意义——层内互斥、层间正交,避免历史实验的遗留效应污染当前结果。
为何常见:新手只关注“当次实验”的均匀性,忽略了用户状态是随时间累积变化的。
误区“实验跑完,p<0.05就说明策略有效,直接全量上线,不需要再看别的。”
正解p<0.05只说明差异不是随机波动造成的,但不能回答差异有多大、有多稳。样本量不足时,p值可能“碰巧”显著;还需要关注置信区间和效应量——提升3个点,95%置信区间是1~5个点还是-5~11个点,决策完全不同。可靠决策是三重复核:统计显著+业务显著+可复现。
为何常见:“p<0.05“被过度简化为”成功”的盖章标准,很多人把它当成了决策的全部依据。
面试题
Q1. A/B测试中哈希分桶的主要目的是什么?
- A.加密用户数据防止泄露
- B.将用户ID均匀映射到实验桶← 正确答案
- C.压缩用户ID减少存储占用
- D.对用户流量进行实时排序
答案:B。哈希分桶的核心目标是“均匀映射”——把大量用户ID打散后均匀地分到各个桶中,使每个实验组拥有相似的样本构成。加密、压缩、排序都是其他技术领域的目标,与分桶无关。
Q2. 盐值(Salt)在分桶中的主要作用是什么?
- A.提升哈希函数的计算速度
- B.防止恶意用户刷实验接口
- C.让不同实验的分组互不相关← 正确答案
- D.对用户ID进行不可逆加密
答案:C。盐值拼接在用户ID后一起做哈希,使得两个实验即使处理同一批用户,分桶结果也互不相关——这是正交实验设计的工程基础。盐值不负责提速、防刷或加密。
Q3. 某实验基线转化率为5%,最小可检测提升为0.5%,α=0.05、功效=80%,估算每组所需样本量最接近哪个?
- A.约1万人
- B.约3万人← 正确答案
- C.约10万人
- D.约50万人
答案:B。代入样本量公式 n ≥ (1.96+0.84)² × 2 × 0.05 × 0.95 / 0.005²,计算得约2.98万,即每组约3万人。1万明显不足,10万和50万则严重高估,属于资源浪费。
Q4. 以下哪项能解决“同一用户同时参与多个相关实验导致数据串味”?
- A.将样本量再增加一倍
- B.相关实验共享同一层互斥← 正确答案
- C.使用一致性哈希算法
- D.把盐值字符串加长
答案:B。相关实验共享同一层强制层内互斥,用户在一个层里只能进一个实验,从根上杜绝交集污染。加样本量只会放大噪音,换哈希算法或加盐值长度都不解决“相关实验效应叠加”问题。
Q5. 正交实验设计最核心的优势是什么?
- A.每个实验独占全部用户流量
- B.同一批用户可同时参与多个实验← 正确答案
- C.可以完全消除所有随机误差
- D.减少实验代码的复杂度
答案:B。正交设计通过独立盐值让实验间分组互不相关,使得同一批用户可以同时参与多个实验而不互相干扰,实现流量复用。它不能消除随机误差,也不是为了简化代码。
Q6. 以下哪些属于A/B测试分桶阶段常见的偏差来源?
- A.交集污染(用户同时参与相关实验)← 正确答案
- B.网络效应(用户间相互作用传染效应)← 正确答案
- C.用户重叠(同一用户被重复计数)← 正确答案
- D.哈希冲突导致用户丢失
答案:ABC。交集污染、网络效应、用户重叠是分桶阶段三大经典偏差来源,分别对应实验间隔离不足、用户间传染、样本重复计数。哈希冲突是哈希函数的理论性质,实际中通过足够大的哈希空间可忽略,不算典型偏差来源。
Q7. 一致性哈希相较于普通哈希分桶的独特优势是什么?
- A.哈希计算速度更快
- B.桶数量变化时减少用户重分配← 正确答案
- C.可支持无限多个实验桶
- D.不需要再配置盐值
答案:B。普通哈希在桶数从10变成11时,几乎所有用户都会重新映射,造成大规模“换桶”。一致性哈希使桶数变化时仅有少量用户被重新分配,保证分桶稳定性。它并不更快、不需要无限桶,也仍需盐值。
Q8. A/B测试的样本量计算需要哪些输入参数?
- A.基线转化率← 正确答案
- B.最小可检测提升← 正确答案
- C.显著性水平与统计功效← 正确答案
- D.用户性别比例
答案:ABC。基线转化率决定方差p(1-p),最小可检测提升δ决定分母的精度要求,显著水平α和功效1-β决定z分数与“误报/漏报”容忍度。性别比例不属于样本量公式的输入,可能用于事后分层分析。
Q9. 实验放量过程中,以下哪种推进方式最稳妥?
- A.看到正向信号立刻全量放量
- B.按阶梯逐步放大并持续监控← 正确答案
- C.先关闭对照组再观察
- D.同时调整多个变体权重
答案:B。阶梯式放量每个阶段都有数据门禁,出现负向可及时刹车,是业界公认的稳妥策略。看到信号就全量放量容易忽略尾部的负面风险;关闭对照组会失去推断依据;同时调多个变体权重会让归因变得混乱。
Q10. 关于分层策略,下列说法正确的有哪些?
- A.层内用户独立分桶互不干扰← 正确答案
- B.层间通过不同盐值实现正交← 正确答案
- C.分层可减小组间抽样方差← 正确答案
- D.分层后每组样本量必须相等
答案:ABC。层内独立分桶保证了同层用户间的公平性;层间正交靠不同盐值实现,让用户可在多个层参与不同实验;分层通过层内同质性降低总体方差。但分层不要求每组样本量相等,样本量由流量比例和实验设计决定。