A/B Test理論與實踐

黃郁傑
3 min readAug 26, 2019

--

最近我在Udacity完成了GoogleA/B test課程,該課程強烈推薦給想要學習A/B test的人。本課程重點強調A/B test的Business implication,而不是統計方面。因此如果想了解有關統計推斷的更多信息,以便為A / B test奠定基礎,建議您查找統計數據或觀看一些視頻作為本課程的補充。

本文將以課程的內容為框架,輔以筆者之前的工作經驗。為讀者們提供一個關於A/B Test的大概認識。

What is A/B test ?

A/B test是一種運用統計學原理,對目標變量進行統計假設檢定,以釐清該次變動是否能產生實際的影響(i.e. 達到統計顯著性與實務顯著性)。A/B test往往是公司在做重大決策前,必定會做的一個前置動作,不僅能夠提供數字化的決策依據,也可以將改動帶來的不可預期損害範圍縮小。如:淘寶在做首頁產品矩陣變動、或推薦搜索排序算法更動時,都是透過大量的A/B test確保結果是符合預期的(前端和後端實驗工程框架可能不同,但大的概念上都是一樣的)。

由上述可知,A/B test是一種對於既有假設的檢驗與優化,並不能直接幫助你產生新的假設。這可以想像成是在爬山,你的目標是爬到海拔最高的地方,A/B test可以幫助你爬到你正在爬的山的最高點,但對於你是不是正在爬最高的那座山,A/B test則無法回答(演算法也是一樣的,在你給定的訓練目標下,它可以做到最好;但這個目標是不是對全局最優,無法給你答案)。

What it can do, and can’t do?

那A/B test可以測試一切的東西嗎?理論上是的,除了以下幾種情況:

  1. 無法主動區分測試組、控制組。如:Facebook想要知道父母加入對於子女用戶在FB上參與程度的影響,從FB的角度就無法有效區分測試組、控制組。
  2. 對於全新體驗的測試。如:假設你要添加全新體驗並測試它,舊用戶可能會抵制新版本(無理由的討厭任何變動),或者舊用戶可能會覺得新奇(新奇效果),但這並不是無法解決的,只是需要將A/B test的時間拉長,等上述的初始效果都淡去,才能得到穩定的實驗結果。
  3. 對長期指標的測試。如同第2點提到的,A/B test更多是用於短期的效果評估衡量,因此對於長期指標要嘛將實驗時間拉長、要嘛找一個好的替代指標(proxy indicator)。

當A / B測試無效時,我們可以:

  • 分析用戶活動日誌 (user log)
  • 進行回顧性分析 (retrospective analysis)
  • 進行用戶體驗研究 ( user experience research)
  • Focus groups and surveys
  • Human evaluation

How to do an A/B test ?

A/B test大致可以分為以下3個步驟:

  1. 選擇並明確指標以評估您的實驗成果(明確指標的定義及計算口徑,可以選擇一個或多個指標),i.e. 根據商業背景,決定你關心什麼、想如何衡量效果。
  2. 實驗設計與測試(包含計算所需的樣本量、抽樣方法及實驗所需進行時間)。
  3. 分析結果並給出有效結論

以上的步驟並不是單向線性的,而是在過程中不斷的iterate。接下來會在各個章節對上述步驟做詳細解說。

Extended reading

以下兩篇Airbnb的文章也非常值得一看:

--

--