做 AB test 需要多少時間?

Bananish
AlfredCamera Team Blog
10 min readSep 24, 2021

在講求「迭代優化」、「快速驗證」的大敏捷時代
AB test 成為常見的產品實驗利器

「實驗需要多少時間才能知道結果」
「什麼時程才能做出下一步決策」

遂成為這個時代主管和產品經理們關心的重點

然而江湖走跳、青春飛逝就是數據不會憑空出現

難道……被「要~~多~~久~~」這種問題追殺時
就只能找人資準備跑離職流程嗎?

實驗,總要有合理的時間來收集
那麼「合理的時間」到底是多久?
又該如何估算呢?

什麼是 AB test?、為什麼要做 AB test?

數據分析的研究,依據研究類型分為:觀察性研究(Observational study)、實驗性研究(Experimental study)兩種;其目的都是希望能讓數據能說話

觀察性研究指的是在不干涉用戶的前提下收集數據、進而產生對數據的解釋

其中觀察性研究又分成兩種:

  • 進行數據收集、分析已發生的事實,稱為回溯性研究(Retrospective study)
  • 擬定策略進行資料收集、等待事實發生後加以洞見,則為前瞻式研究(Prospective study)

回溯性研究與前瞻式研究的核心價值都在「觀察數據的差異」,前者是想到才看一下,而後者是先想好再觀察

透過觀察性研究,數據分析可以發現指標之間的相關性(Correlation),就像是發現了「人都穿衣服」的相關性

而商業分析想知道的因果關係(Causal Relation),幾乎只能透過實驗性研究來完成;例如想要探究「因為是人,所以才穿衣服」或「因為穿衣服,所以是人」

正因為觀察性研究僅止步於相關性,沒有辦法討論到因果關係

所以其中的回溯式研究、前瞻式研究在證據等級的金字塔中(Evidence pyramid)被歸類為中等證據強度

如果在想透過數據分析來了解:一個產品如果提供了更多不同的功能是否讓用戶使用產品更久

這種想要研究存在因果關係的事實時,就是做實驗性研究的最好時機點!

而實驗性研究中又以 AB test 為主,或稱 RCT 隨機對照試驗(Randomized Controlled Trial)

就是透過觀察「干預動作」而後產生的差異,來證實因果關係

因此實驗性研究在證據等級金字塔中有更好的證據強度(比觀察性研究高但不是最高)

進行 AB test 所需要的時間

為了完成因果關係的研究,執行 AB test 的基本步驟大概是:

  1. 數量相當:訂定一群用戶,將用戶平均的分配成兩組
  2. 部分干預:干預一組用戶、另一組用戶不干預;並確保「干預動作」外,兩組用戶沒有其他差異
  3. 等待時間:讓實驗順利進行並收集數據
  4. 分析差異:比較「受到干預」與「未受到干預」的用戶在後續行為表現的差異。在本篇中所提到的用戶後續行為,都是指能夠以百分比所表示的比率,例如:購買率、註冊率、完成率、開啟率等,不是比率的話不適用喔!

這裡提到執行時需要等待一段時間,也就是 AB test 所需要實驗的時間,會受到兩件事影響:

  • 用戶後續表現的行為是否發生 — 等待事情發生
  • 兩個組別的用戶數量是否足夠 — 等待收集樣本

用戶後續表現的行為是否發生-等待事情發生

AB test 實驗開始後,需要等待用戶的後續行為表現

如果時間還不足夠讓用戶觸發實驗需要觀察的事情,就沒有辦法進行分析

若用戶很容易就觸發實驗需要觀察的行為,就可以更快觀察到實驗的結果

舉例來說:

「用戶在剛開啟 哈OX特OX覺醒 時可以直接透過 Google 帳號進行註冊登入,其註冊率會不會比只提供認證 Email 註冊登入還要高」

因為註冊多半發生在數分鐘之內,觀察用戶觸發註冊登入這個行為所需要等待的時間就會比較短

「新用戶如果可以參加 搜集巧克力蛙活動,在未來七天內每天都有上線的比例會不會比較高」

要觀察未來七天每天都有上線的比例,所以就需要花七天的時間等待

兩個組別的用戶數量是否足夠-等待收集樣本

因為 AB test 需要比對「干預動作」對用戶後續行為的差異

就需樣收集足夠多的數據再進行分析,不可能只有 1、2 個用戶的數據

要收集足夠的數據,則需要等一部分的用戶觸發了實驗所需觀察的事件後,才能夠進行有效的分析

當想要研究的行為在用戶間的區別越小,就需要更大量的數據佐證,因此需要等待收集樣本的時間也會越長

舉例來說:

「把深藏在錢包頁面的 LXXE Bank 按鈕,改到聊天頁面的最上面,會不會讓用戶每次打開 LXXE 時有更高的進入率」

像這種超級明顯與非常不好找的情況,進入率可能會有超過 10% 或以上的差異,或許很快就可以收集更多的數據來進行分析

「把 EDM 標題中的 “你” 改成 “您”,是否會提升 EDM 的開啟率」

而這種微小的異動,也可能會對用戶的行為有所改變,但兩種 EDM 標題的開啟率可能是千分之一的區別,就會需要更多的數據來確定

如何估算 AB test 所需要的時間?

AB test 所需要的時間就能夠被表示為:

AB test 需要幾天 = ( 總共需要多少樣本數量 / 一天能收集多少樣本 ) + 等待事情發生需要幾天

  • 總共需要多少樣本數量:這個現階段並不清楚,也是接下來最需要得知的!
  • 一天能收集多少樣本:使用歷史資料來確認
  • 等待事情發生需要幾天:也就是前面提到的「用戶後續表現的行為是否發生-等待事情發生」是固定、且可以合理推算的

一般來說,合理的樣本數量與下列有關:

  • 未干預時事件發生率:發生的比率是高是低會影響樣本數大小
  • 兩組事件發生率差異:A、B 兩組差異越小就需要更多數據來精準測量
  • 統計模型的參數設定:通常不太會調整,所以本文不討論

我們用下面這個情境讓大家更了解 AB test 的實驗過程:

「首筆免運金額限制由 150 元減少至 100 元是否會影響新註冊用戶 30 天內完成下單的購買率」

首先,延續前面提到的幾個步驟來設計進行設計:

  1. 數量相當:9 月註冊用戶隨機分配至 A 與 B 組
  2. 部分干預:A 組沒有任何干預,也就是首筆免運金額限制由 150 元;B 組干預,首筆免運金額限制 100 元
  3. 等待時間:後續進行計算
  4. 分析差異:計算 A、B 兩組用戶在 30 天內完成下單的購買率

在 AB test 需要等待幾天的計算公式中

  • 等待事情發生需要幾天:30 天
  • 一天能收集多少樣本:查閱歷史資料,假設一天有 1,000 個註冊的用戶
  • 總共需要多少樣本數量:接下來得剖析這個實驗的「未干預時事件發生率」、「兩組事件發生率差異」來計算!

如何估算所需樣本數量?

在估算需要的數量之前,需要知道「未干預時事件的發生率」以及「兩組事件發生率的差異」

在上述的情境中,免運金額限制為 150 元,註冊用戶 30 天內會購買率為 6%

而行銷經理認為,干預後的用戶因為免運金額限制只有 100 元會讓下單意願增加

因此假設購買率會增加 1%,變成 7%

也就是説:

  1. 未干預時事件發生率:A 組購買率 6%
  2. 兩組事件發生率差異:A、B 兩組購買率差異為 1%

題外話,解釋下面兩者代表的意思,要注意措辭(很常誤會啊~~~~):

  • 「購買率增加 1%」指的是 6% → 7%
  • 「增加購買率的 1%」則是 6% → 6.06%

以線上工具估算樣本數量

比較了幾個線上的工具後,我認為 Evan’s Awesome A/B Tools 比較便利好懂

也可以估狗 AB test sample size calculator,來找到其他類似的工具

不管是哪一種線上的工具,其步驟基本上是:

  1. 填寫「未干預時事件發生率」,這裏是:A 組的購買率 6%
  2. 填寫「兩組事件發生率差異」,這裏是:A、B 兩組購買率差異為 1%
  3. 最後得到各組需要 9,000 個樣本,因為 AB test 有兩組,所以需要 18,112 個用戶

以查表估算樣本數量

當然,懶得使用線上工具,也可以使用這張表格進行參考,其步驟:

  1. 找到「未干預時事件發生率」,這裏是:A 組的購買率 6%(用 5% 替代)
  2. 找到「兩組事件發生率差異」,這裏是:A、B 兩組購買率差異為 1%(找到 ± 1%)
  3. 最後得到各組需要 8,000 個樣本,因為 AB test 有兩組,所以需要 16,000 個用戶

這兩種方式或其他工具所計算的樣本數量,會因為計算的公式而有所落差

在進行商業分析的時候,請把這當作必要的門檻並增加 10 ~ 20% 的樣本數,以避免任何意外的狀況喔!

算出實驗最終需要的時間

從線上工具所估算樣本數量共需要 18,112 個用戶

帶入計算 AB test 所需要的時間,公式就變成:

( 總共需要 18,112 個用戶 / 一天能收集 1,000 個多少樣本 ) + 等待事情發生需要 30 天

= 總共需要 48.1 天

其中有 18.1 天是真的要收集用戶的時間

換句話說,實驗開始後的第 19 天時,已經有了足夠的樣本

只是還沒有等到他們都展現後續的行為

為了觀察 30 天內的購買指標,還需要等到第 48 天之後才能分析

也就前面 18 天搜集樣本,後面 30 天等待事情發生

判讀實驗結果

在進行分析時可能觀察到的狀況大概是這三種:

  1. A 組 6%,B 組 5% 以下:B 組購買率比 A 組差,降低免運門檻對提高購買率沒有幫助
  2. A 組 6%,B 組 7% 以上:B 組購買率比 A 組好,降低免運門檻對提高購買率有幫助
  3. A 組 6%,B 組在 5% ~ 7% 間:目前的數據量不足以說明 A 與 B 組間的購買率是否有差異,因此我們不認為降低免運門檻對提高購買率有幫助

做 AB test 的心得

小子!我看你骨骼精奇是百年難得一見的練武奇才呀

因此我決定把我的 AB test 武功口訣心法傳承給你

請務必記得最後兩招「嘴遁」才是稱霸武林的關鍵!

實驗多久,從產品著手

首先要看這個商業價值、機會可以等待多久

也就是老闆能忍耐多久,這很重要

接下來才是從「等待事情發生」、「等待樣本蒐集」這兩點著墨

我的好同事們總會互相提醒:太快進入解法,會失去這個需求的核心價值與概念,容易走偏

樣本多少,有參考最好

計算樣本數的時候,「事件發生率」、「不同組別事件發生率的差異」必不可少

如果有歷史數據可以使用,那可以省下許多工夫

沒有參考,收數據瞧瞧

作為數據分析師這樣輔佐的角色,在沒有參考資料來計算樣本數、實驗時間時

如果我們有足夠的時間(老闆可以等)

那能不能先做小型的前導實驗、或先搜集數據

當然公司內部產品數據、或外部的公開資訊都可以使用

溝通重要,找大家閒聊

沒有前例、沒有時間、或在進行評估時遇到問題,或就算你沒問題也好

一定要記得找專案規劃的行銷經理、產品經理、各種經理

務必要溝通好「期待是什麼」、「信心有多高」

這不僅可以在沒有參考數據時有所引導,決定樣本估計試算時所需帶入的參數之外

還可以確保大家價值、方向、手段一致,也就是心口手如一~

而完善的溝通也可以在實驗發生意外、不如預期時有個保障(照應?)

確定結果,把前提說透

當我們都確定結果是好是壞時,請務必記得數據分析都伴有前提假設

所以請在各個階段直到完成分析時要跟合作的同仁溝通、溝通、溝通

當實驗沒有觀察到差異時

  1. 可能需要更多數據才能觀察,即便是微小的差異可能還是有巨大商業利益
  2. 不一定要大聲強調兩組沒有差異、沒有因果關係;因為這可能更像是攻擊大家:這個案子或同仁的努力沒有幫助

當實驗觀察到差別時

  1. 這些在實驗中固定,但隨著產品生命週期前進,難以被短週期實驗的影響因素都是不確定性
  2. 所謂的差異與 AB test 都是為了驗證事實以邁進未來,完善的風險溝通才能協助決策

參考資料

如果對這樣的描述,讓你對商業分析更有興趣,或覺得還有需要惡補的,建議你可以參考下面這些文章:

👏 如果喜歡這篇文章,可以幫阿福拍手🤗 想要加入阿福管家,可以查看我們的職缺
🙌 歡迎追蹤我們的 MediumFacebook 關注阿福管家的團隊資訊喔!

--

--