← M08 大數據分析 M08 大數據分析

M08.05|A/B 測試:用實驗驗證 AI 的效果

不要相信直覺 — 讓數據告訴你哪個版本更好

L1-AI基礎知識-實驗設計 L1-AI應用規劃-效果驗證
A/B測試 實驗設計 統計顯著性 假設檢定 p值 控制組 實驗組 效果驗證
📋

本講學習重點

A/B 測試的基本步驟是什麼?
p 值的正確解讀方式?
樣本量如何計算?影響因素有哪些?
什麼是型一和型二錯誤?
多重比較問題為何危險?如何解決?

A/B 測試:隨機分實驗組(新版本)和控制組(舊版本),比較兩組在目標指標上的差異

假設檢定:零假設 H₀(無差異)vs 對立假設 H₁(有差異),p 值是 H₀ 成立時觀測到至少如此極端結果的機率

p < 0.05 表示在 H₀ 成立的前提下,看到這個差異的機率低於 5%,通常拒絕 H₀

型一錯誤(False Positive,α):H₀ 為真但錯誤拒絕;型二錯誤(False Negative,β):H₁ 為真但未能拒絕

樣本量計算需要:效應量(期望的最小可偵測效果,MDE)、α(顯著性水準)、1-β(統計效力,通常 80%)

多重比較:同時測試 20 個假設,即使所有 H₀ 都為真,預期會有 1 個意外 p < 0.05(Bonferroni 校正)

辛普森悖論在 A/B 測試中:整體看 B 更好,但按子組分析 A 更好,需分層分析

📌 A/B 測試是在真實環境中用隨機對照實驗驗證 AI 效果的標準方法。核心流程:定義假設和指標 → 計算所需樣本量 → 隨機分組 → 收集數據 → 假設檢定 → 決策。p 值不是「效果多強」而是「數據和 H₀ 的矛盾程度」;提早停止測試和多重比較是最常見的陷阱;好的 A/B 測試需要在統計嚴謹性和業務可行性之間取得平衡。
A/B 測試:用實驗驗證 AI 的效果

🎙️ Podcast(中文)

0:00 / 0:00

一句話搞懂

A/B 測試是讓數據代替直覺做決策的標準工具——把用戶隨機分成兩組,一組看舊版(A),一組看新版(B),收集足夠的資料後用統計方法判斷兩組的差異是真實效果還是隨機巧合;在 AI 系統上線前後,這是驗證「模型真的有幫到用戶」最不偏頗的方式。


白話解說

為什麼直覺和事前分析不夠

假設你是一家電商的產品經理,你把購物車頁面的結帳按鈕顏色從灰色改成綠色,然後觀察到「改版後第一周」的轉換率從 3.2% 上升到 3.8%,你會興奮地宣布「綠色按鈕讓轉換率提升了 19%」嗎?

這個分析有幾個致命問題:改版的同一周,你的平台恰好發了一個折扣優惠郵件,這個促銷活動獨立提升了轉換率,和按鈕顏色無關;這一周剛好是長假前夕,消費者本來就更願意購物;樣本量可能不夠,3.2% 到 3.8% 的差距在統計上可能完全是正常的隨機波動。直覺告訴你「有效」,但直覺無法排除所有其他可能的解釋。

A/B 測試(A/B Testing)的設計,正是為了解決這個問題。它的核心機制是隨機化(Randomization):把用戶隨機分配到兩組(或多組),確保兩組在所有已知和未知的因素上(年齡分佈、購買習慣、進站時間……)都大致相同;然後讓兩組分別看不同的版本,在同一時間段內收集結果。因為隨機化,任何非干預因素(折扣郵件、假期效應)都會同等地影響兩組,所以最後兩組之間的差異,才能被解讀為干預(按鈕顏色改變)的因果效果,而不是其他因素的混淆。

假設檢定:給「這是巧合嗎?」一個數字

A/B 測試結束後,你有兩組數據:A 組(控制組,舊版本)轉換率 3.2%,B 組(實驗組,新版本)轉換率 3.7%。問題是:這個差距是真實效果,還是隨機誤差?如果你只有 100 個用戶,A 組 3 人購買、B 組 4 人購買,這種程度的波動純粹靠機率就可能發生,根本說明不了什麼。

假設檢定(Hypothesis Testing)提供了一個嚴謹的框架來回答這個問題:

零假設(Null Hypothesis, H₀):新舊版本的轉換率沒有真實差異,任何觀測到的差異都是隨機波動。

對立假設(Alternative Hypothesis, H₁):新舊版本的轉換率有真實差異(或具體說:B 版本優於 A 版本)。

p 值(p-value)是假設檢定的核心輸出,定義為:在假設 H₀ 為真的前提下,觀測到「至少如此極端的差異」的機率。如果 p = 0.03,意思是:如果新舊版本真的沒有差異(H₀ 成立),那麼純靠隨機波動就得到 0.5% 以上差距的機率只有 3%。因為這個機率很低(通常以 α = 5% 作為閾值,即 p < 0.05 時「拒絕 H₀」),我們認為「有足夠的統計證據說明這個差距不太可能是純粹的隨機」,也就是認為 B 版本的效果是真實的。

p 值最容易被誤解:p 值不是「B 版本效果為真的機率」(這個誤解非常普遍)——它是在 H₀ 成立的條件下看到這份數據的機率,兩者是完全不同的東西(貝葉斯思考 vs 頻率主義思考的根本差異)。同時,p < 0.05 是一個慣例閾值,不是自然規律;在醫藥研究中通常要求 p < 0.01 甚至 p < 0.001,而在探索性分析中有時 p < 0.1 就值得繼續深入研究。

型一和型二錯誤:兩種犯錯的方式

假設檢定面臨兩種可能的錯誤,它們之間存在不可避免的取捨:

型一錯誤(Type I Error,偽陽性):H₀ 實際上是真的(兩個版本真的沒有差異),但我們錯誤地拒絕了 H₀,聲稱「B 版本更好」。型一錯誤率等於顯著性水準 α。如果 α = 0.05,那麼即使新舊版本完全相同、差異純屬隨機,長期重複測試的情況下每 20 次實驗就有 1 次會「錯誤地發現顯著效果」。

型二錯誤(Type II Error,偽陰性):H₁ 實際上是真的(B 版本確實更好),但我們未能偵測到,結果沒有拒絕 H₀,放棄了一個真正有效的改進。型二錯誤率 β,對應的「統計效力(Statistical Power)= 1-β」代表「當真實效果存在時,正確偵測到的機率」。業界通常要求效力至少 80%(即 β ≤ 0.20)。

這兩種錯誤是此消彼長的關係:降低 α(要求更嚴格的 p 值閾值)可以減少型一錯誤,但代價是更難偵測到真實效果(型二錯誤增加);反之亦然。解決之道是在設計階段就計算足夠的樣本量,確保在期望的效應量下,統計效力能達到 80% 或更高。

樣本量計算:實驗前最重要的步驟

在 A/B 測試開始之前,最關鍵的一步是計算所需的樣本量(而不是等數據收集完了再來看「夠不夠」)。計算樣本量需要確定三個輸入:

基準轉換率(Baseline Rate):目前的指標是多少?例如當前轉換率是 3.2%。

最小可偵測效果(Minimum Detectable Effect, MDE):你希望能偵測到多小的改善?如果你期望新版本至少要有 10% 的相對提升(也就是轉換率從 3.2% 提升到 3.52%),所需樣本量比期望偵測 50% 提升大得多——更微小的效果需要更多數據才能從噪音中分辨出來。

顯著性水準(α)和效力(1-β):通常設定 α = 5%、效力 = 80%(即 β = 20%)。

粗略計算公式(雙比例 Z 檢定)所需的每組樣本量大約是:n ≈ 16σ² / δ²,其中 σ² 是結果的方差,δ 是你想偵測的效應大小。實踐中通常用統計工具(如 evan miller 的線上 A/B 測試計算器)直接輸入參數得到樣本量。一個常見的陷阱是:算出「需要 50,000 個用戶」後,立刻開始實驗,看到 10,000 個用戶時 p 值碰巧 < 0.05 就停下來聲稱「顯著了」——這就是危險的提早停止(Peeking Problem),大幅增加了型一錯誤的機率。正確做法是在實驗前確定樣本量,嚴格等到達到樣本量後再做一次性的統計檢定。

從 A/B 測試到更複雜的實驗設計

標準的 A/B 測試(一個控制組 vs 一個實驗組)是最基礎的形式,但實際的 AI 產品驗證往往需要更複雜的設計:

A/B/n 測試(多變體測試):同時測試多個版本(A、B、C、D……)。優點是能在同一時間段比較多個選項,節省時間;缺點是引入了多重比較問題(Multiple Comparison Problem)——如果同時測試 20 個版本,即使所有版本效果相同,預期也會有 1 個版本在純隨機下達到 p < 0.05 的假顯著(1/20 = 5%)。解決方案是 Bonferroni 校正(把 α 除以測試數量,例如測試 5 個版本時,每個版本的顯著性閾值從 0.05 降到 0.01)或 False Discovery Rate(FDR)控制方法。

多層次測試(Hierarchical Testing):例如先測試「整體版面大改版」(粗粒度),確認方向有效後,再分別測試「標題措辭」「按鈕位置」「圖片風格」(細粒度)。這樣的分層設計能有效控制多重比較問題,同時兼顧效率。

Interleaving(交叉實驗):在推薦系統評估中,標準的 A/B 測試需要非常大的樣本量才能偵測到細微的排名效果差異(因為每次只評估一個完整的推薦結果)。Interleaving 的做法是把兩個模型的推薦結果交叉混合呈現給同一個用戶,根據用戶的點擊行為判斷哪個模型的推薦更受歡迎,這樣的設計大幅減少了所需樣本量,Netflix 和 Spotify 都廣泛使用這種方法進行推薦系統的快速迭代評估。


應用場景

場景 干預(B 版本) 主要指標 注意事項
電商首頁改版 新的推薦算法 vs 舊算法 點擊率(CTR)、購買轉換率、每人平均訂單金額 排除季節性效應;新用戶和回訪用戶分層分析
App 推播通知策略 個人化推播時間 vs 固定時間推播 推播開啟率、7 日留存率 避免「效果新鮮感(Novelty Effect)」,實驗期至少 2 週
AI 客服機器人部署 AI 先回應 vs 人工直接回應 問題解決率、用戶滿意度評分、首次聯絡解決率 需要同時監控「逃脫率」(用戶要求轉接人工的比例)
信用評分模型更新 新模型 vs 舊模型 違約率、核准率、假陽性(誤拒好客戶)率 風控類實驗需要 6–12 個月才能觀察到違約結果
UI 文字措辭測試 「立即購買」vs「加入購物車」按鈕文字 轉換率 效應量通常很小,需要數萬到數十萬的樣本量
廣告出價策略 自動出價 AI vs 人工出價 ROAS(廣告支出回報率)、CPA(每次獲客成本) 廣告系統的自我學習效應需要「暖機期(Learning Period)」
內容推薦算法 協同過濾 vs 內容相似度算法 播放完成率、每次工作階段的內容消費數量 考慮用 Interleaving 替代傳統 A/B 以提高效率

常見誤區

誤區 1:「p 值 < 0.05 就代表效果很大,可以直接推廣」

統計顯著性(p < 0.05)只告訴你「這個差異很可能不是純粹的隨機」,它完全不告訴你這個差異在業務上有多重要。一個有數百萬用戶的平台,即使是轉換率 0.01% 的微小差異,也可能達到 p < 0.001 的高度統計顯著性——但 0.01% 的提升,業務價值可能根本不值得為此進行產品改動的工程成本。反過來,一個在小規模測試中顯示 10% 提升但 p = 0.08 的改進,可能因為樣本量不足而未達顯著,但效應量(Effect Size)本身已很實質。解決之道是同時報告和關注效應量(Effect Size,如 Cohen’s d 或相對提升百分比)以及信賴區間(Confidence Interval)——後者告訴你「真實效果最可能落在什麼範圍」,是比單一 p 值更豐富的資訊。決策應基於「業務價值是否足以覆蓋風險和成本」,而不只是「是否 p < 0.05」。

誤區 2:「實驗開始後,看到 p < 0.05 就停下來,這樣效率最高」

這就是「提早停止(Peeking Problem)」,是 A/B 測試最危險的操作之一,也是很多企業 A/B 測試結果不可靠的主要原因。問題在於:如果你在實驗過程中不斷查看 p 值,並在 p 值偶然跌破 0.05 時就停止,你的實際型一錯誤率遠高於設定的 5%。模擬研究顯示,如果你計劃測試 1,000 個用戶,但每 100 人就看一次 p 值,並在 p < 0.05 時停止,即使兩個版本完全相同(H₀ 為真),這種「持續監控並提早停止」的策略會讓你在約 25%–50% 的情況下錯誤地聲稱「有顯著差異」,遠超過 5% 的 α。正確做法:在實驗設計階段確定樣本量,嚴格執行到達到預定樣本量後再做唯一一次統計檢定。若業務需求確實需要即時監控,應改用循序假設檢定(Sequential Testing)方法(如 O’Brien-Fleming 邊界),這類方法從設計之初就考慮了多次查看的問題。

誤區 3:「A/B 測試說 B 版本更好,就直接推廣給所有人」

A/B 測試的結論是「在測試期間、對測試用戶群體、B 版本比 A 版本好」,但這個結論不一定能安全地外推到所有情境。幾個重要的考量:新鮮感效應(Novelty Effect)——用戶對任何改變的初始反應往往比長期反應更誇張(正面或負面),如果實驗期只有一周,新按鈕設計的吸引力可能是短暫的,長期使用後效果回落。需要運行足夠長的時間(至少覆蓋用戶的完整使用週期)。辛普森悖論(Simpson’s Paradox)——整體 B 更好,但在某個特定的子族群(如行動裝置用戶、老年用戶)中 A 更好;如果這個子族群規模大且重要,盲目全面推廣 B 可能傷害這群用戶。正確做法:推廣前,對關鍵的用戶分群(裝置類型、地區、用戶活躍程度)做分層分析(Subgroup Analysis),確認沒有被總體效果掩蓋的子群體傷害。長尾效應——某些指標(如用戶滿意度)需要更長時間才能充分展現,短期測試的轉換率提升,不代表長期的用戶留存和口碑會同步改善。


小練習

練習 1:評估一個 A/B 測試方案

一家電商平台的產品經理提出以下 A/B 測試方案,請找出所有的設計問題並提出改進建議:

測試方案

  • 目標:驗證新的 AI 推薦算法是否提升購買轉換率
  • 測試期間:2025 年 11 月 1 日–2025 年 11 月 30 日(整個 11 月)
  • 分組方式:11 月 1 日–15 日所有用戶看 A 版本,11 月 16 日–30 日所有用戶看 B 版本
  • 觀察指標:每日購買轉換率
  • 判斷標準:若 11 月後半的平均轉換率高於前半,且差異超過 0.5 個百分點,視為 B 版本有效
  • 計劃:若 11 月 20 日的累積數據顯示 B 版本轉換率比 A 高 1%,立刻停止測試並宣布 B 版本勝出
查看答案 這個測試方案有五個嚴重問題: **問題 1:未隨機化分組(最根本的設計錯誤)** 這不是 A/B 測試,而是前後對比(Before-After Comparison)。11 月 1–15 日和 11 月 16–30 日的用戶並非同一群人的隨機分配,而是「不同時間段」的不同用戶群。11 月是台灣的「雙 11」購物節,後半段(16–30 日)緊接著雙 11 後期的優惠延伸活動、補購行為的高峰,本來就和前半段的消費行為不同。任何觀測到的差異都可能是「時間段」本身的效應,而非 AI 推薦算法的效果。 正確做法:在同一時間段內,隨機將用戶分成兩組(如按用戶 ID 的奇偶數),同時讓一半人看 A、另一半看 B,消除時間因素的混淆。 **問題 2:11 月是一個非常糟糕的測試時間窗口** 雙 11(11/11)在前半段,這是電商全年最大的促銷節點,用戶在這一天的購買意願遠超平日,轉換率會出現明顯的異常高峰。這個特殊效應本來就會讓 A 版本(前半段)的平均轉換率被拉高,讓後半段的 B 版本看起來「更低」(即使 B 版本其實更好)。 正確做法:避開重大促銷節點進行 A/B 測試,選擇相對穩定的「普通」時間段;或使用分時段配對(每天隨機重新分配)來均勻化節日效應。 **問題 3:判斷標準不基於統計顯著性** 「差異超過 0.5 個百分點」是一個任意設定的閾值,沒有考慮到統計顯著性——即這個差異有多大機率是隨機波動?如果用戶數量只有幾千人,0.5 個百分點的差異很可能在統計上並不顯著(p > 0.05),不能用來支持業務決策。 正確做法:在測試前計算所需樣本量(根據基準轉換率、MDE、α=5%、效力=80%),以 p 值(或信賴區間)作為判斷標準,而非任意閾值。 **問題 4:計劃在 11 月 20 日提早停止——Peeking 問題** 「若 11 月 20 日看到 1% 差異就停止」是典型的提早停止(Peeking),會嚴重虛增型一錯誤率。在測試進行中反覆查看並根據中間結果決定是否停止,使得實際型一錯誤率可能達到 25% 以上(而非設定的 5%)。 正確做法:在實驗設計階段確定「何時停止」(達到預定樣本量),嚴格執行一次性統計檢定,不基於中間數據提早停止。 **問題 5:只看轉換率,沒有設定護欄指標(Guardrail Metrics)** AI 推薦算法可能確實提升了購買轉換率,但同時導致「推薦的商品退貨率更高」(因為過度推薦用戶不真正需要的商品)、「用戶長期留存率下降」(因為推薦結果令人失望)。只看短期轉換率而忽略這些護欄指標,可能做出長期傷害平台的決策。 正確做法:同時設定主要指標(轉換率)和護欄指標(退貨率、7 日留存率、客服投訴率),若護欄指標顯著惡化,即使主要指標改善,也不應全面推廣。

練習 2:計算樣本量並分析結果

一個線上教育平台想測試新的 AI 個人化學習路徑是否能提升課程完課率。目前的基準完課率是 25%,平台認為如果新算法能帶來至少 5 個百分點的絕對提升(即完課率從 25% 提升到 30%),就值得工程成本投入。

使用以下簡化公式(雙比例 Z 檢定,α = 5%,效力 = 80%):

每組所需樣本量 ≈ (Z_α/2 + Z_β)² × [p₁(1-p₁) + p₂(1-p₂)] / (p₁-p₂)²

其中 Z_α/2 = 1.96(α=0.05,雙尾),Z_β = 0.84(效力 80%),p₁ = 0.25,p₂ = 0.30。

  1. 計算每組所需的樣本量(概略計算,取整數)。
  2. 平台日均新用戶 500 人,如果實驗組和控制組各佔 50%,這個 A/B 測試需要跑幾天?
  3. 實驗跑完後,假設實驗組完課率為 28%,控制組為 25%,p 值為 0.14。請解讀這個結果,並說明下一步行動建議。
查看答案 **問題 1:計算每組樣本量** 代入公式: (Z_α/2 + Z_β)² = (1.96 + 0.84)² = (2.80)² = 7.84 p₁(1-p₁) = 0.25 × 0.75 = 0.1875 p₂(1-p₂) = 0.30 × 0.70 = 0.21 分子:7.84 × (0.1875 + 0.21) = 7.84 × 0.3975 ≈ 3.117 分母:(p₁-p₂)² = (0.25-0.30)² = (-0.05)² = 0.0025 每組樣本量 n ≈ 3.117 / 0.0025 ≈ **1,247 人** 每組約需 1,250 人(取整),兩組合計需要約 **2,500 人**。 **問題 2:實驗需要幾天?** 每日新用戶 500 人,實驗組和控制組各 50%,每天各組新增 250 人。 所需天數 ≈ 每組所需樣本量 / 每天每組新增用戶數 = 1,250 / 250 = **5 天** 但請注意:計算出的 5 天只是「達到所需樣本量的時間」。實際上還需要考慮:課程完課是一個需要時間的行為(假設課程需要 4 週完成),所以即使 5 天後達到樣本量,仍需再等 4 週讓所有加入實驗的用戶有機會完課。實驗的總時長應該是:**5 天(達到樣本量)+ 4 週(等待完課機會)= 約 33 天**。 **問題 3:實驗組 28%、控制組 25%,p = 0.14 的解讀** **統計解讀**:p = 0.14 > 0.05,未達到統計顯著性。在 α = 5% 的標準下,無法拒絕零假設(H₀:新舊算法完課率無差異)。這個差異在統計上可以被合理解釋為隨機波動。 **業務解讀**:觀測到的提升是 28% - 25% = 3 個百分點,而設計實驗時的 MDE(最小可偵測效果)是 5 個百分點。觀測到的效果比設計 MDE 小,這有兩種可能的解讀:(1)新算法的真實效果本來就不足 5 個百分點,實驗正確地告訴我們「效果不夠大」;(2)新算法的真實效果確實在 3–5 個百分點之間,但我們設計的實驗不夠靈敏(MDE 設得太大),造成型二錯誤(漏判)。 **行動建議**: **不建議直接採用**:在統計不顯著、且效果量未達設計 MDE 的情況下,直接全面推廣新算法並不合適。 **分析並重新評估 MDE**:3 個百分點的提升是否對業務有實際價值?如果是,把 MDE 重設為 3 個百分點,重新計算所需樣本量(大約需要 4 倍的樣本,即每組約 5,000 人),並設計規模更大的第二次實驗。 **分組分析**:檢查新算法對哪些子群體的效果最強(如特定課程類別、特定學習程度的用戶),若在某個子群體中效果顯著(且有業務合理性),可以先在該子群體中部署,同時繼續收集數據。 **考慮完課率以外的指標**:28% vs 25% 的完課率差異雖未顯著,但實驗組的學員是否在測驗分數、學習時長、或滿意度上有可測量的改善?這些次要指標可以幫助決定新算法是否值得繼續投資優化。

關鍵字自我檢核

✅ A/B測試 ✅ A/B Testing ✅ 假設檢定 ✅ Hypothesis Testing ✅ 統計顯著性 ✅ Statistical Significance ✅ p值 ✅ p-value ✅ 效力 ✅ Statistical Power ✅ 樣本量 ✅ Sample Size ✅ 控制組 ✅ Control Group ✅ 實驗組 ✅ Treatment Group ✅ 隨機化 ✅ Randomization ✅ 零假設 ✅ Null Hypothesis ✅ 多重比較問題 ✅ Multiple Comparison ✅ 效應量 ✅ Effect Size ✅ 型一錯誤 ✅ Type I Error ✅ 型二錯誤 ✅ Type II Error ✅ 辛普森悖論