快轉到主要內容

Sequential A/B Testing:讓你「偷看」實驗、快速決策的神奇武器

Data-Science Ab-Testing Data-Analytics Statistics
好豪
作者
好豪
Google 資料科學家,以部落格寫作記錄自己的知識焦慮,記下我看過的書、寫過的程式碼、以及數據分析工作的見聞。歡迎透過 此表單 點播新文章、或者給部落格任何回饋!
目錄

當老闆衝過來質問你:「這個新功能是不是出問題了?」
究竟你該不該喊卡?

想像一下這個場景:你是一家電商公司的資料分析師,產品團隊正興致勃勃地改版結帳流程。你按照標準程序啟動了 A/B 測試,計畫跑兩週實驗、蒐集 完整樣本數

但實驗才到第三天,客服主管衝進辦公室:「新版結帳頁面的失敗率暴增!用戶一直在抱怨!」

這時你作為科學家面臨一個兩難:

  • 如果現在停止實驗:統計學教科書會告訴你「提早結束實驗 會破壞統計有效性,你的 P 值不再可信了!」
  • 如果繼續跑完兩週完整實驗:公司有可能損失數十萬營收,更糟的情況會失去大量顧客

這就是典型 A/B 測試讓人頭痛的問題::它不允許你提早「偷看」實驗結果,無法快速應對意料之外的狀況。

這裡要告訴你,有一種方法可以讓你隨時查看實驗數據、快速止損,同時又不會破壞統計方法的嚴謹程度,這就是今天要介紹的 Sequential A/B Testing

Sequential A/B testing 概念圖
(圖片來源:Spotify

傳統 A/B 測試的問題:「偷看」為什麼是大忌?
#

在深入了解解決方案之前,我們得先搞懂為什麼傳統 A/B 測試不允許偷看。

固定樣本數的遊戲規則
#

本文所說的「傳統」A/B 測試指的是固定樣本數法(fixed-time horizon),運作邏輯是這樣的:

  1. 事前計算所需樣本數:根據你想偵測的最小效果(MDE)、顯著水準(5%)、統計檢定力(80%),算出需要收集多少資料(算法教學
  2. 等待數據完整收集完畢:耐心等到預定的樣本數收集完成
  3. 進行一次性分析:只在最後做一次統計檢定,決定是否採用新版本

這個流程的核心假設是:你只會看一次結果、只有一次假設檢定。

偷看的代價:錯誤率爆炸
#

產品改進這麼令人興奮的事,誰能忍住不看實驗數據呢 (˚∀˚)?

尤其當你每天、甚至每小時都能看到即時實驗數據時,「偷看」A/B 測試結果的誘惑太大了。

問題來了:每次你偷看並考慮「要不要現在就停止實驗」,就等於給自己多一次犯錯的機會

舉個極端例子,如果你在實驗期間偷看 1,000 次,即使兩個版本根本沒差異(虛無假設為真),你會有超過 20% 的機率會看到「假的顯著差異」!這比你原本設定的 5% 錯誤率高了 4 倍多。

簡言之,頻繁偷看會讓你把隨機波動誤認為真實效果,結果上線了一個其實沒用(甚至有害)的功能。

重要相關解說(點擊展開)

商業現實:不偷看根本不可能!
#

這裡有個矛盾:在真實職場的商業環境中,你幾乎不可能不偷看

  • 產品經理每天追問「實驗結果怎麼樣了?」
  • 老闆看到營收下降一點,急著要求立刻停止實驗
  • 工程師們搶著做更多 A/B 測試,需要知道能不能釋放測試流量給其他實驗

更重要的是,控制風險的優先級比嘗試新的賺錢潛力高多了。推出一個有害的功能所造成的損失,遠大於錯過一個好功能的機會成本。

總結一下,統計學家已經證實偷看會傷害實驗有效性、但實際工作我們又很需要偷看,這就是 Sequential A/B Testing 誕生的原因:它讓你可以合法地偷看,同時保持統計嚴謹程度

Sequential A/B Testing 的核心機制:賭徒破產理論
#

Sequential A/B Testing 最精妙的地方,在於它用一個古老的數學問題—賭徒破產理論(Gambler’s Ruin)—解決了現代實驗設計的難題。

賭徒破產理論:一個經典的機率問題
#

想像你在賭場玩擲硬幣遊戲:

  • 每次擲出正面,你贏 1 元
  • 每次擲出反面,你輸 1 元
  • 假設你一開始有 10 元,賭場有 100 元

我們來思考三種情況:

  1. 硬幣是公平的:過程中是平均地有輸有贏,你大致維持著 10 元資產,賭場也維持 100 元
  2. 硬幣超級不公平,擲出反面機率高很多:你很快就會破產、把 10 元輸光光了
  3. 硬幣超級不公平,擲出正面機率高很多:你會往發財之路邁進、累積越來越多錢,但因為賭場有 100 元,賭場破產的速度比你(情況 2)慢

請稍微記得這三種情況,等等閱讀 本文後半段 時,你會驚喜地發現它們清楚描述了 Sequential A/B Testing 的商業價值!

從賭場到 A/B 測試:巧妙的類比
#

Sequential A/B Testing 的巧妙之處,在於把 A/B 測試類比成這個賭博遊戲:

  • 你的「籌碼」變化:實驗組(B 版本)的成功次數減去控制組(A 版本)的成功次數,記為 d = 成功 B - 成功 A
    • 一開始擁有多少籌碼?d 值起初多大?由下個小節的 決策邊界 d* 決定
  • 「擲硬幣」的行為 = 每當有一個用戶完成行為(例如購買):
    • 如果是實驗組 B 組用戶成功 → d 值 +1(你贏 1 元)
    • 如果是控制組 A 組用戶成功 → d 值 -1(你輸 1 元)
  • 「破產」的定義d 值回到 0

現在關鍵來了,如果 B 版本真的比較好,那麼 d 值會有「向上漂移」的趨勢、而不是破產,就像一個賭徒玩一個對他有利的遊戲。

反之,如果 B 版本反而越改越爛,d 值會快速往負數方向前進,你很快就會歸零破產啦!

決策邊界:什麼時候可以停止實驗?
#

Sequential A/B Testing 會事先計算一個決策邊界 d*

  • d 值向上觸及 d → 可以停止實驗,宣告 B 版本獲勝!
  • d 值向下觸及 -d → 可以停止實驗,B 版本顯著更差,趕快止損!
  • d 值在邊界之間晃動 → 繼續收集數據

這個 d* 的計算,是根據你能容忍的錯誤率(例如 5%)推導出來的。數學上可以證明:無論你偷看多少次,只要遵守這個邊界規則,整體型一錯誤率都不會超過 5%。

更酷的是,這個決策邊界 d* 是動態的,會隨著實驗過程樣本數搜集越來越多、而 d* 越來越窄,目的是讓你的檢定保持精準。

決策邊界(圖片中綠色與紅色部分)會動態調整、隨著實驗進行越來越窄
(圖片來源:Georgi Georgiev

為什麼這個方法這麼厲害?
#

傳統測試的問題是「每次偷看都增加犯錯機率」,但 Sequential Testing 透過賭徒破產理論,把多次偷看的問題,轉換成一個一維度的 隨機漫步 問題(也就是指 d 變數的一維隨機漫步)。

就像賭徒破產理論有明確的機率公式,Sequential Testing 也能精確計算「在 B 版本其實沒用的情況下,d 值觸及邊界 d* 的機率」,並把這個 型一錯誤 機率控制在 5% 以內。

具體來說,根據隨機漫步理論以及 經驗法則,只要設定 \( d^* \approx 2\sqrt{N} \),就能控制 Sequential Teseting 的型一錯誤率符合典型的顯著水準 5% 設定。

白話總結

  • 傳統 A/B 測試說「你只能在終點線看一次成績」,不守規矩的話、偽陽性決策錯誤率會遠超過 5%
  • Sequential Testing 說「你隨時都能來查看 A/B 測試的結果,但我會動態調整『該不該做決策』的標準,確保你不會被隨機波動騙了」,而且偽陽性決策錯誤率保持在符合預期的 5%

型一錯誤不提高、又能更快地偷看實驗,有這麼好的事?天下沒有白吃的午餐!Sequential Testing 的缺點在於它犧牲了統計檢定力,簡單的說,如果 A 與 B 組的成效有差異、但是沒有差太多,Sequential Testing 反而比傳統的固定樣本數還難用。這就關係到我們接下來要談的:在什麼商業情境下最適合用 Sequential Testing。

Sequential A/B Testing 的商業應用與價值
#

理解了原理之後,我們來看看這個方法在實務上能帶來什麼價值。

核心價值:風險控制優先,快速止損
#

Sequential A/B Testing 最重要的商業價值不是加速獲勝,而是「快速止損

Sequential A/B Testing 在 本質 上,是在實驗初期給你比一般檢定還要更寬的信賴區間、你更難以宣告檢定有顯著結果,可以說決策更保守了。

現在想想看,這個新檢定方法更保守、更難宣告顯著,如果能在實驗剛開始的早期就觀察到顯著結果,那有兩種可能:

  1. 實驗結果超級好、公司要賺大錢了
  2. 我們出了大包,實驗出現極差的結果

用你的膝蓋想想,實際工作場域是 1 還是 2 更常發生?當然是 2!能設計超好產品的天才千年一遇,但我們每個人都有可能會糊塗搞砸工作。

因此,比起加快獲勝的速度,Sequential A/B Testing 更值得用來及時控制風險

Sequential Testing 本質上是讓假設檢定更保守、更難以出現顯著
要是連更保守的結果都出現顯著負面結果,那表示你真的有大麻煩了!
(圖片來源:Uber

假設情境:付費按鈕的顏色實驗
#

假設你在測試把「立即購買」按鈕從藍色改成紅色。理論上紅色更顯眼,應該提升購買轉換率。

但上線第二天,你發現轉換率下降了 3%。如果是傳統測試,你可能會想:

  • 「也許只是隨機波動?」
  • 「再等等看,說不定會回升?」
  • 「統計學老師說不能偷看 …」

結果你繼續跑了兩週,最後確認紅色按鈕確實更差。但這兩週期間:

  • 損失營收:假設你的網站每天有 10 萬營收,3% 的下降就是每天損失 3,000 元,兩週累積損失 4.2 萬
  • 用戶體驗受損:可能有用戶因為不習慣新設計而流失
  • 機會成本:浪費了兩週的測試資源

如果用 Sequential Testing,你可能在第三天就能統計顯著地確認「紅色按鈕更差」,立刻停止實驗,把損失控制在 9,000 元左右。

雖然這是假想情境,但它確實在業界數見不鮮。微軟的實驗平臺團隊發現,他們約三分之一的商業實驗是負面的結果(新版本反而更差!)。對於像 Bing 這樣每天有上億用戶的產品,即使 1% 的營收下降,每年也可能損失超過 1,000 萬美元。

Sequential Testing 讓他們能夠:

  • 近乎即時地偵測嚴重問題(例如頁面載入錯誤率暴增)
  • 自動中止有害實驗,減少對用戶的影響
  • 保持統計嚴謹,避免誤判

加速創新:捕捉「爆紅」功能
#

Sequential A/B Testing 的第二個價值是快速確認超乎預期大獲全勝的功能。

如果一個新功能的效果遠超預期,例如你原本只期待提升 2% 購買轉換率,結果實際提升了 15%,Sequential Testing 可以讓你:

  • 提早 25~50% 停止實驗
  • 更快將優秀功能推廣給所有用戶
  • 釋放測試流量給其他實驗

看到這,你會不會問:為什麼得要是「爆紅」功能才適合?進步一點點的小幅改進不行嗎?還記得上面那個躑硬幣的範例吧,你有 10 元、賭場莊家有 100 元,在此設計之下,你想大獲全勝地贏光賭場的 100 元,那就需要爆紅功能快速地一直贏才能做到。相對地,如果只是小幅進步的實驗,那你跟莊家雙方資產的變化都不會太快,Sequential A/B Testing 就沒有加速實驗的效果,反而是典型的固定樣本數測試更好用。

業界應用:Netflix、Booking.com、Spotify
#

Sequential A/B Testing 不只是學術界發發論文而已,業界也已證明出此方法的商業價值,這些科技巨頭們都在用:

實戰建議:正負效果混合策略
#

值得注意的是,業界最常見的 Sequential Testing 應用是「混合策略」:

  • Sequential Testing 來偵測負面結果並快速止損(風險管理)
  • 傳統的固定樣本數測試來檢驗正面結果(保持精確度,避免偽陽性錯誤增加)

為什麼?因為 Sequential A/B Testing 為了允許偷看,必須「更嚴格」,這會讓信賴區間變寬、點估計精確度下降。如果你的目標是精確估計效果大小(例如要衡量營收變化),傳統的固定樣本數測試可能更合適。

結語:在速度與嚴謹之間找到平衡
#

Sequential A/B Testing 的誕生,解決了資料科學家面對 A/B 測試的兩難:

  • 商業世界要求速度:Sequential Testing 能快速止損、快速迭代
  • 統計學要求嚴謹:Sequential Testing 能控制(型一)錯誤率、確保結果可信

透過賭徒破產理論這個巧妙且經典的數學工具,Sequential Testing 讓我們能夠合法地偷看實驗、動態調整決策,同時不犧牲統計有效性

這不是魔法,而是透過數學的力量來權衡速度與統計檢定力。它讓實驗平臺從「事後驗證工具」進化成「即時風險管理系統」,在競爭激烈的數位產品開發中,實現更靈活快速的數據驅動決策。

參考資料:


在這篇文章中,我們用最直觀的方式理解了 Sequential A/B Testing 的核心概念。但你可能還有很多疑問:

  • 決策邊界 d* 怎麼算?
  • 信賴區間變寬是什麼意思?會帶來什麼問題?
  • Spotify 用的 Group Sequential Tests 是什麼?和 Fully Sequential Tests 有什麼差別?
  • 什麼情況下不該用 Sequential Testing?

這些進階主題,我會在下一篇文章中深入探討。

如果你對實驗設計、因果推論或 A/B Testing 有興趣,歡迎在 LinkedIn 上與我交流,也歡迎追蹤好豪的 Facebook 粉絲專頁InstagramThreads 帳號,讓我們一起在資料科學的路上持續學習、成長。