想象你是一家奶茶店的老板,研发部推出了两款新配方:一款是浓郁的黑糖珍珠鲜奶,另一款是清爽的茉莉青提果茶。你想知道哪款更受顾客欢迎,于是决定搞一场“新品评测周”——周一到周三,进店的前100位顾客都送黑糖珍珠鲜奶,后100位送茉莉青提果茶,一周后看哪款的“好评率”更高。这个朴素的想法,就是A/B测试的雏形。可是问题来了:万一周一来的都是喜欢甜口的学生党,周四来的都是健身达人呢?这种“时间偏差”会让结果失真。更麻烦的是,你无法同时测试三款、五款新品,因为每个顾客只能喝一杯。在AI云服务设计中,当我们要上线一个新模型时,面临的正是同样的困境——如何科学地比较旧模型与新模型的优劣,并确保结论可靠? 这就是“自动化A/B分析平台”要解决的问题。它就像一个聪明的“实验总管”,把用户请求像发奶茶一样随机分发给不同版本的AI模型,用统计学方法判别哪个模型表现更好,并且能随着数据积累自动调整分发比例——表现好的模型多接客,表现差的模型少接客,全程无需人工干预。本文将从平台的基本概念、架构设计、核心算法到工程落地,为你拆解这个让AI模型“优胜劣汰”的自动化裁判系统。
掌握自动化A/B部署能力,是从“能训练模型”进阶到“能运营模型”的关键一步。理解它,你就具备了设计高可用AI服务、驱动模型持续进化的工程思维——这是AI平台工程师和MLOps岗位的核心技能。
可视化演示
展示自动化A/B分析平台:实验设计/流量分配/数据采集/分析/决策五阶段、固定/渐进/自适应分流、转化率统计显著性,通过交互理解在线模型比较。
本节配有交互动效(进入视口后自动加载,约 3KB)。
五阶段:系统化比较 设计实验假设与样本量 统计分析判断显著性 实验→分配→采集→分析→决策 数据驱动模型上线决策
A/B测试基础
奶茶店的故事继续。一开始你只比较两款新品,后来研发部说:“老板,我们其实有五款新配方都想试试!”你犯难了——如果五款同时上架让顾客自由选,喜欢甜的顾客自然拿黑糖奶茶,喜欢清爽的自然拿果茶,最后数据一团乱麻,根本没法判断哪款配方“本身更好”。这就是为什么科学实验要讲究“对照”。
在AI云服务设计中,A/B测试本质上是一种对照实验:将用户请求随机分为两组或多组,每组分别由不同版本的模型处理,然后比较各组的关键指标。当只有一个新模型和一个旧模型时,是最简单的“双样本”对比;当多个新模型候选同时存在时,就构成“多模型A/B部署”场景。平台需要解决的问题是:如何分流、如何比较、如何决策。
流量切分是A/B测试的第一原则。设想一个大型电商平台的搜索推荐模型,每天有上亿次请求。假设我们随机把其中10%的流量切给新模型,其余90%继续走旧模型。随机性保证了用户特征在两组间均匀分布——就像用抽签的方式决定哪些顾客喝新品、哪些喝旧配方,而不是让顾客自己挑。这样才能保证观察到的效果差异确实来自模型本身,而不是来自用户群体的偏差。
所以,流量切分不是简单的“抽一段流量给新模型”,而是通过随机化构建一个“平行宇宙”——在同一个时间窗口内,让模型A和模型B各自拥有一批特征分布相似的用户,从而让后续比较具备科学性。
- 分配概率每个到达的用户请求以固定概率 r 进入实验组,这是随机分流的核心。
- 均匀性保证当样本量足够大时,实验组和对照组用户特征趋向一致。
- 因果推断因为两组唯一差异是模型版本,所以指标差异可归因于模型效果。
平台架构解析
既然决定搞“新品评测”,你需要一套完整的流程:服务员要记录每位顾客拿了哪款饮品、评价如何;后厨要知道今天哪些配方参与测试;财务要汇总成本数据。在AI平台领域,这套流程的实体化就是“自动化A/B分析平台”的架构。
平台通常包含几个核心组件。流量分配器(Traffic Allocator)是入口守卫,它决定每个请求去哪条服务链路——就像门口迎宾的服务员,根据预设规则将顾客引向不同的试饮台。数据收集管道(Data Pipeline)负责采集每一条预测请求的输入特征、模型输出、用户行为反馈(如点击、购买、时延),全部打上实验标签后流入数据仓库。实时监控看板(Dashboard)将关键指标以分钟级粒度呈现——转化率、响应时间、错误率—让算法工程师和运维人员能第一时间发现异常。
还有一个容易被忽略的组件:实验配置管理。它类似于“实验手册”,记录谁在什么时间启用了哪个版本的模型、流量比例是多少、实验目标是什么。在生产环境里,如果没有这套配置管理,多个团队可能同时修改流量规则,造成实验互相干扰——就像奶茶店里多个服务员同时用不同标准记录试饮反馈,最后账目全乱。
一个好的架构是“插拔式”的:决策引擎、模型服务、数据管道都是模块化组件,彼此通过约定接口通信。这样当我们要把模型B替换成模型C时,不需要动任何其他模块,只需更新实验配置。
- 请求入口用户请求先到达流量分配器,它是一个可配置的路由层。
- 模型推理分配器按实验配置将请求路由到对应模型版本的服务实例。
- 日志埋点模型服务在返回预测结果的同时,将请求ID、模型版本、输出值写入日志。
- 指标聚合数据管道按模型版本聚合统计指标,推送到监控看板。
流量分配算法
奶茶店试饮有一个实际问题:如果五款新品同时各分20%的顾客,每款分到的试饮人数都不多;可如果只测两款,又无法一次找到最佳配方。你希望有个聪明的机制:开始均匀分配,数据积累到一定程度后,自动减少表现不佳配方的发放量,让更多人试饮“有潜力”的配方。这就是多模型A/B部署中的动态流量分配。
基础版方案是随机分流:每个请求以固定概率路由到某个模型。更精细的版本是分层实验:将用户按某些特征(如新老用户、地域、设备类型)分层,在每个层内独立做随机分配。这样可以避免“辛普森悖论”——某个模型在整体上胜出,但在每个细分人群中都输掉的现象。就像奶茶店把顾客按“甜口党”和“清爽党”分层后再试饮,不会出现“总体好评率高但两类顾客都不满意”的矛盾。
动态调整策略(如epsilon-greedy算法、汤普森采样)则是进阶版。它在每次请求时以 1-ε 的概率选择当前平均表现最好的模型,以 ε 的概率随机探索其他模型。这样随着数据积累,流量会自动向胜出模型倾斜——表现好的模型像获得越来越多回头客的配方,表现差的自然被冷落。
动态流量分配是“自动化”的核心体现——平台不只是被动地展示数据,还会主动地调整实验流量,像一个不断学习优化的调度员。对于推荐系统、搜索排序这类实时性要求高的场景,这种机制可以在保证用户体验的同时快速找到最优模型。
- 估计均值对于每个模型 a,用历史请求结果计算平均收益。
- 利用最佳大部分时候选择当前均值最高的模型,以最大化短期收益。
- 随机探索小部分时候随机尝试非最优模型,为长期收益收集信息。
- 策略切换随着数据积累,算法从“探索为主”自然过渡到“利用为主”,实现自动化决策。
指标计算分析
收集了大量试饮评价后,你发现黑糖珍珠鲜奶的好评率是78%,茉莉青提果茶的好评率是74%。差了4个百分点!这能说明黑糖珍珠鲜奶一定更好吗?不一定——如果评测人数不够多,可能只是随机波动。你希望知道:这4个百分点的差异,到底有多可信?
统计学告诉我们,不能只看点估计值,还要看置信区间。置信区间给出了一个范围,表示“真实好评率大概落在这个区间内”。比如黑糖奶茶好评率的95%置信区间是[75%, 81%],果茶是[70%, 78%]。两个区间有重叠,说明差异尚未达到统计显著。另一关键概念是p值:它衡量“如果两个模型真实表现相同,观察到当前这么大差异的概率”。p值小于0.05是工业界常用的显著阈值,表示这个差异不太可能由随机波动造成。
比较两个模型的转化率时,常用两比例z检验。核心公式是计算z统计量,并将其与标准正态分布的临界值比较。
在自动化平台中,这些统计计算每天定时自动执行,指标看板会同时展示两个模型转化率的置信区间和p值。当置信区间不再重叠、p值跌破阈值时,系统自动标记“胜出者”,并触发流量调整——这就是“数据驱动决策”的落地。
- 计算转化率分别计算两个模型的样本转化率。
- 合并比例将两组数据合并,作为原假设“两模型效果相同”下的总体转化率估计。
- 计算标准误衡量两个比例差异的随机波动幅度。
- 计算z值差异相当于多少个标准误,标准化后的差异服从正态分布。
- 显著性判断|z| > 1.96(对应 p < 0.05)时拒绝原假设,认为两模型有显著差异。
平台迭代流程
经过两周的评测,你确定了黑糖珍珠鲜奶是最佳配方。下一步怎么办?直接全面替换所有门店吗?如果你有100家店,全面替换后万一老顾客发现新款不如旧款,损失就大了。聪明的做法是:先在5家店试点一周,观察销售数据和顾客反馈,再逐步推广到全部门店。
AI平台的A/B实验迭代流程与此异曲同工。第一步是假设定义:明确要验证的问题,比如“新模型将搜索点击率提升5%”。假设必须可度量、有时间窗口、有明确的成功标准。第二步是小流量实验:先在1%-5%的流量上运行新模型,观察核心指标是否符合预期方向。这一步同时也在验证系统的稳定性——新模型的响应时间、错误率是否正常。第三步是扩大流量与全量发布:当小流量实验显示指标提升且统计显著时,逐步将流量比例提升到10%、25%、50%、100%,每一步都伴随实时监控。
这套流程的关键在于“渐进式发布”——每一个阶段都有明确的“Go/No-Go“决策标准。自动化平台在这个过程中扮演”裁判”角色:它持续计算累积数据,动态判定是否达到显著性要求,并自动给出建议动作(继续实验/扩大流量/回滚)。
“小步快跑、渐进放量”是AI模型部署的黄金法则。哪怕离线评测显示新模型效果惊人,线上真实流量下的表现依然可能意外——可能是数据分布偏移,可能是用户行为非平稳。渐进式A/B实验把不确定性的代价控制在最小范围内,这正是自动化平台的核心价值。
- 累积统计量在每个决策时刻,基于到目前为止的所有实验数据计算z值。
- 最小周期约束即数据还没攒够,z值再大也不做决策——防止早期小样本的偶发波动误导判断。
- 分段放量流量比例按阶梯式增加,每级停留一个观察周期。
- 安全回滚一旦新模型指标显著下降或出现错误率上升,立即切回旧模型。
工程踩坑指南
奶茶店测评看着简单,实际操作中陷阱不少。有一次你的店员记录“好评”时,把“顾客没骂但也没夸”的沉默式反馈也记为好评;还有一次,因为门店周末人流量暴增,试饮数据突然失真。这些坑在AI平台的A/B实验中也经常出现。
第一个坑是样本量不足。有的团队跑了三天实验,看着新模型似乎好3%,就急着发布。但可能两组各只有几千样本,p值高达0.3——差异完全可能是噪声。正确做法是在实验开始前就做功效分析(Power Analysis),估算需要的样本量。
另一个经典陷阱是多重比较问题。如果平台同时运行10个实验,每个实验以5%的显著性水平做判定,那至少一个实验产生“假阳性”的概率是 \( 1-(1-0.05)^{10}\approx 40\% \)。就像你同时测试10款配方并用5%的阈值筛选,极大概率会误判某款平庸的配方为“优秀”。
最常见的破坏性问题是流量污染:两个实验如果共享同一批用户,实验A的模型变更会改变用户在实验B中的表现,导致实验B的观测指标失真。这就像你在试饮时同时让顾客打分并赠送秒杀券——秒杀券本身会影响打分行为,于是你无法分清好评率高是因为配方好还是因为顾客领了券开心。
平台设计者必须像经验丰富的品控师一样,预见这些隐蔽的风险。样本量估算、多重比较校正、流量隔离,这些工程细节决定了A/B平台给出的结论是否可信。一个“自动化”平台不仅要自动计算指标,更要内置这些统计学的安全防线,在决策时机未成熟时自动暂缓判定。
- 样本量公式给定显著水平 α、统计功效 1-β、最小可检测差异 δ,计算所需样本量。
- 功效理解统计功效是“当真实差异存在时,实验能检测出它的概率”。
- 多重比较校正若同时进行 m 个实验,简单递增的假阳性率说明需要校正阈值。
- 隔离设计每个实验分配独立用户池(用户级层),确保实验间互不干扰。
AI 应用场景
场景1:推荐系统的模型优选
阶段:模型部署与持续优化
解决的问题:内容推荐团队每周都会提出新的推荐模型,但无法确定是否优于线上模型。人工切流量做小规模测试耗时数周,且无法避免用户群体偏差。
具体案例:某视频平台的首页推荐团队,将自动化A/B平台接入推荐服务链路。新模型候选以“实验组”身份获得5%流量,平台自动计算点击率、人均观看时长、留存率等指标,并与线上模型做显著性检验。实验运行3天后,平台判定新模型的观看时长显著提升3.2%(p<0.01),自动将流量比例提升至20%,一周后确认无副作用后全量发布。
场景2:客服机器人的多版本灰度
阶段:AI应用上线与质量保障
解决的问题:电商平台的客服机器人要升级大语言模型版本,但担心新模型在真实用户对话中出现“幻觉”或应答不友好,需要一种低风险的线上验证方式。
具体案例:某电商平台将客服机器人切分为两个版本:旧版(规则+小模型)和新版(大语言模型),通过自动化平台按1:9比例分流。平台实时监控用户满意度评分、转人工率、平均会话时长。48小时后,新版机器人的转人工率显著下降12%,但满意度评分未显著提升——平台给出“暂缓全量,继续观察”的结论,并建议用情绪分析模型进一步评估会话质量。
场景3:语音识别引擎的成本与效果平衡
阶段:模型资源优化
解决的问题:智能音箱的语音识别同时有高精度(高算力)和低延迟(轻量)两个模型,需要在不牺牲用户体验的前提下降低成本。
具体案例:某IoT公司的语音助手团队,在自动化平台上设置了两个候选模型:高精度模型A(GPU推理)和轻量模型B(CPU推理)。平台以用户满意度为主要指标,辅以响应时间约束。通过动态流量分配,起初均衡流量,3天后发现模型B在普通家居噪声环境下识别率仅差0.8%,但时延降低60%,平台自动将模型B流量提至90%,模型A保留10%处理复杂语音场景。
Python 演示
# -*- coding: utf-8 -*-"""自动化A/B分析平台核心逻辑演示"""import mathimport randomfrom collections import defaultdict class ABTestPlatform: def __init__(self, epsilon=0.1, z_threshold=1.96): self.epsilon = epsilon self.z_threshold = z_threshold # 记录每个模型的总样本数和成功数 self.trial_count = defaultdict(int) self.success_count = defaultdict(int) # 每个模型的累计收益,用于动态流量分配 self.reward_map = defaultdict(float) self.phase_count = 0 def allocate_traffic(self): """基于epsilon-greedy决策: 大部分流量给当前最优模型, 少量探索""" if random.random() < self.epsilon: # 探索: 从所有模型中随机选一个 return random.choice(list(self.reward_map.keys()) or ["A", "B"]) # 利用: 选择累计收益最高的模型 if not self.reward_map: return "A" return max(self.reward_map, key=self.reward_map.get) def record_outcome(self, model_id, success): """记录一次实验的结果""" self.trial_count[model_id] += 1 self.success_count[model_id] += int(success) # 更新累计收益 (滑动平均, 0.1为学习率) current_rate = self.success_count[model_id] / self.trial_count[model_id] old_rate = self.reward_map.get(model_id, 0.0) self.reward_map[model_id] = old_rate + 0.1 * (current_rate - old_rate) def get_metrics(self, model_id): """计算某一模型的转化率及置信区间""" n = self.trial_count[model_id] x = self.success_count[model_id] if n == 0: return 0.0, 0.0, 0.0 p_hat = x / n se = math.sqrt(p_hat * (1 - p_hat) / n) if 0 < p_hat < 1 else 0.0 margin = 1.96 * se return p_hat, p_hat - margin, p_hat + margin def z_score(self, model_a, model_b): """计算两个模型转化率差异的z统计量""" n_a = self.trial_count[model_a] n_b = self.trial_count[model_b] if n_a == 0 or n_b == 0: return 0.0 p_a = self.success_count[model_a] / n_a p_b = self.success_count[model_b] / n_b p_pool = (self.success_count[model_a] + self.success_count[model_b]) / (n_a + n_b) se = math.sqrt(p_pool * (1 - p_pool) * (1 / n_a + 1 / n_b)) return (p_a - p_b) / se if se > 0 else 0.0 def run_simulation(self, true_rates, rounds=3000): """运行完整模拟: true_rates为各模型的真实转化率""" model_names = list(true_rates.keys()) for m in model_names: self.reward_map[m] = 0.5 # 初始化乐观估计 for _ in range(rounds): chosen = self.allocate_traffic() success = random.random() < true_rates[chosen] self.record_outcome(chosen, success) self.phase_count += 1 # 每500轮检查一次显著性 if self.phase_count % 500 == 0 and len(model_names) == 2: z = self.z_score(model_names[0], model_names[1]) if abs(z) > self.z_threshold: break # 达到显著差异, 提前结束实验 def report(self): """输出最终报告""" for mid in sorted(self.trial_count.keys()): rate, lo, hi = self.get_metrics(mid) print(f"模型{mid}: 样本={self.trial_count[mid]}, " f"转化率={rate:.3f}, 95%置信区间=[{lo:.3f}, {hi:.3f}]") if len(self.trial_count) == 2: mids = list(self.trial_count.keys()) z = self.z_score(mids[0], mids[1]) verdict = "差异显著" if abs(z) > self.z_threshold else "差异不显著" print(f"z统计量={z:.3f}, {verdict}") if __name__ == "__main__": # 设定AB两个模型的真实转化率: A=5%, B=8% platform = ABTestPlatform(epsilon=0.2) platform.run_simulation({"A": 0.05, "B": 0.08}, rounds=2000) platform.report() print("\n模拟完成 -- 展示自动化A/B分析平台的核心决策逻辑")
self.epsilon = epsilon探索率,控制“利用最优模型”和“尝试其他模型”的比例def allocate_traffic(self)epsilon-greedy决策核心:用ε概率随机探索,否则选当前最优self.reward_map[model_id] = old_rate + 0.1 * (current_rate - old_rate)指数滑动平均更新累计收益,让新数据逐渐修正旧估计def z_score(self, model_a, model_b)两比例z检验,衡量两个模型差异是否显著if abs(z) > self.z_threshold提前停止条件:达到统计显著后无需等满全部样本量self.record_outcome(chosen, success)记录每次投放的结果,是数据管道核心逻辑的缩影
常见误区
误区“反正平台自动化跑数据,那就多跑几天、样本越多结论越可靠,不用提前算样本量。”
正解样本量过大会导致“统计显著但实际无意义”——当样本达到百万级时,0.1%的转化率差异都可能显著,但对业务可能毫无价值。而且实验时间过长会让模型上线被拖延,机会成本很高。正确做法是提前用功效分析计算最小样本量,达到后即做决策;同时设定最小效应量,只关注有业务意义的差异。
为何常见:直觉上“数据越多越准”是对的,但忽略了统计显著性与实际业务意义的区别。人们在讨论“可信”时,往往只盯着p值而忘记了效应量。
误区“z检验显示p<0.001,新模型明显更好,赶紧全量上线!”
正解统计显著≠效果稳健。可能存在未被发现的交互效应(如只在特定时段有效)、新模型对部分极端请求处理异常、或者指标提升是因为“新奇效应”(用户对新模型的行为好奇而短暂增加交互)。全量发布前应增加验证周期、细分人群分析,并设计一步到位的回滚方案。自动化平台的作用是辅助决策,不是替代人的风险判断。
为何常见:人们容易把p值当作“真相的确定性”,但p值只描述数据与零假设的相容程度,不描述效应是否在不同条件下都成立。初学者容易混淆“统计显著”与“实践可靠”。
误区“平台能力强,多团队可以同时跑几十个实验,效率高!”
正解实验数量激增会带来两个严重问题:多重比较导致假阳性率飙升(10个实验至少一个假阳性的概率约为40%),以及流量竞争导致每个实验样本量不足。工业界的做法是引入分层实验体系,将实验分配到互不相交的用户层,共享流量池;同时用Bonferroni或FDR校正法控制全局错误率。
为何常见:从资源利用角度看,并行实验确实提升了效率,但忽略了统计推断的全局风险。工程人员容易从“吞吐量”而非“推断质量”来评估平台能力。
面试题
Q1. 在A/B测试中,流量随机切分的核心目的是什么?
- A.让所有用户都能使用新模型
- B.保证实验组与对照组用户特征分布一致← 正确答案
- C.降低模型推理的计算成本
- D.提高模型的离线评估精度
答案:B。流量随机切分让用户特征在两组间均匀分布,从而将观察到的差异归因于模型本身。选项A描述的是全流量发布而非切分;C与实验设计无关;D说的是离线评估,A/B测试是线上评估。
Q2. 关于置信区间,下列说法正确的是?
- A.置信区间越宽,说明估计越精确
- B.置信区间包含0就一定能说明模型无效
- C.95%置信区间表示真实参数有95%概率落在区间内
- D.置信区间越窄,说明样本量通常越大← 正确答案
答案:D。置信区间宽度与样本量成反比——样本量越大,标准误越小,区间越窄。选项A说反了;B过于绝对,区间包含0只是未达到显著;C是常见误解,正确说法是“多次抽样构建区间,95%的区间会覆盖真实值”。
Q3. 在epsilon-greedy流量分配策略中,epsilon参数的作用是?
- A.控制模型推理时的温度参数
- B.控制探索与利用的平衡← 正确答案
- C.控制数据管道的吞吐量
- D.控制置信区间的宽度
答案:B。epsilon表示随机探索的概率,1-epsilon的概率选择当前最优模型。epsilon大则探索多,epsilon小则利用多。选项A是LLM生成参数;C与平台架构相关但非本策略内容;D与统计计算有关但z检验中无此角色。
Q4. 两比例z检验中,当|z|>1.96时,我们可以得出结论?
- A.两个模型的转化率绝对差一定大于1.96%
- B.两个模型的转化率在95%置信水平下存在显著差异← 正确答案
- C.两个模型都没有实用价值
- D.两个模型的样本量一定不相等
答案:B。|z|>1.96对应p<0.05,在95%置信水平下拒绝“两模型转化率相等”的零假设。选项A混淆了z值与百分比的数值关系;C无关;D不成立,z检验不要求样本量相等。
Q5. 如果一个实验同时运行10个独立A/B测试,每个都以5%显著性水平判定,至少出现一个假阳性的概率约为多少?
- A.5%
- B.10%
- C.40%← 正确答案
- D.95%
答案:C。10个独立实验且每个假阳性率5%,至少一个假阳性的概率是1-(1-0.05)^10≈40.1%。选项A忽略多重比较问题;B是简单加法(5%×10);D误以为假阳性率会叠加到接近100%。
Q6. 自动化A/B平台中,哪些组件负责保证实验结果的可信度?
- A.流量分配器← 正确答案
- B.数据收集管道← 正确答案
- C.实验配置管理← 正确答案
- D.监控报警系统
答案:ABC。流量分配器保证随机性、数据管道完整记录实验日志、配置管理确保各组间不串扰,这三个组件共同决定数据可信度。监控报警系统负责异常告警,不直接影响统计推断的可信度。
Q7. 某实验在用户级分层后,每个用户只会进入一个实验层。这种做法主要解决了什么问题?
- A.辛普森悖论
- B.流量污染← 正确答案
- C.样本量不足
- D.新奇效应
答案:B。用户级分层隔离确保各实验作用于互不重叠的用户集合,消除了一个实验的暴露对另一个实验结果的干扰,即流量污染。选项A对应的是“分层后再合并”的问题;C通过功效分析解决;D是用户行为层面的偏差。
Q8. 功效分析中,若要求提升检测灵敏度(更小的最小可检测差异δ),在其他条件不变的情况下,所需样本量会?
- A.减少
- B.不变
- C.增加← 正确答案
- D.先增后减
答案:C。根据样本量公式 \( n \propto 1/\delta^2 \),δ越小,n越大。要检测更细微的效果差异,需要更多样本以降低噪声的干扰。选项A和B都不符合公式关系;D则无统计学依据。
Q9. 关于A/B实验中“新奇效应”,下列说法正确的有?
- A.用户可能因新模型的新鲜感而暂时增加交互← 正确答案
- B.新奇效应会导致实验结果高估新模型的长期效果← 正确答案
- C.延长实验时间可以缓解新奇效应的影响← 正确答案
- D.新奇效应只影响对照组
答案:ABC。新奇效应是新模型上线初期用户因新鲜感产生的行为偏置,会使短期指标虚高。延长实验期能平滑这种短暂效应。选项D错误——新奇效应影响的是实验组的新体验,对照组行为相对稳定。
Q10. 当两个模型的95%置信区间产生重叠时,以下哪种解读最恰当?
- A.两个模型一定没有显著差异
- B.不能仅凭区间重叠下显著性的结论,需要看差异的置信区间← 正确答案
- C.两个模型一定存在显著差异
- D.说明样本量一定不足
答案:B。直观上区间重叠似乎表示“差不多”,但正确做法是计算两个转化率之差的置信区间——若该区间包含0才说明差异不显著。选项A和C都太绝对,实际可能与区间构造方式有关;D不一定成立。