A/B測試常見的10個錯誤

  • 2019 年 10 月 5 日
  • 筆記

A/B 測試結果出錯的風險非常高,或許應該持懷疑態度。

文 | skura

「沒有數據,你只是一個有想法的人。」

這是 W. Edwards 的依據名言,它表明,A/B 測試對於做出良好的商業決策來說至關重要。在 Manomano,我們向數百萬用戶展示數百萬 DIY 和園藝產品,並每天進行數十個 A/B 測試,以改善我們網站的用戶體驗。

ManoMano 花園大棚分類頁面上的產品排名算法 A/B 測試示例

然而,運行 A/B 測試和解釋結果可能非常困難,如果做得不對,可能會得到錯誤的結論。這篇博文的目的不是要說明在運行 A/B 測試時應該做什麼,而是要告訴你不應該做什麼。下面是我們在進行 A/B 測試時經常會犯的 10 個常見錯誤。

1.在僅當一部分人受到影響時,觀察所有人


示例:你想測試你的搜索引擎相關性,但在分析 A/B 測試結果時,你查看整個總體,而不僅僅是使用搜索引擎的用戶。雖然這在科學的角度來說不是錯誤的,但是達到統計顯著性需要更長的時間,因為在分析的數據中添加了一些噪聲:

經驗 1:為了更快地達到統計顯著性,應該只觀察與測試功能交互用戶(這裡是搜索引擎)的結果。

2.在沒有任何業務直覺的情況下進行測試


不能使用太多變量(A/B/C/../N)進行測試。例如,如果使用 α=5% 顯著性閾值並決定測試 20 個不同的場景,則其中每個場景是正樣本的機會是偶然的。這是多重比較問題的一個例子。因此,業務直覺對於決定啟動哪個 A/B 測試至關重要。為了說明這一點,我們可以修改 W.Edwards Deming 的名言:

「沒有想法,你只是一個有數據的人 」

經驗 2:用你的直覺(或者更好的方法——做用戶調查)來決定啟動哪一個 A/B 測試。

3.對人口進行分段以達到統計顯著性


這是多重比較問題的另一個例子:「我的 A/B 測試不顯著,因此我將在設備上對數據進行分段以獲得顯著結果」。在進行數據分割時必須非常小心。事實上,你比較的片段越多,結果中出現錯誤的幾率就越大。

以 country * device 為例,我們在 Manomano 有 n=15 個細分市場(5 個國家*3 個設備:法國/手機、法國/桌子、西班牙/平板電腦等)。讓我們計算在其中一個分段上偶然出現至少一個重要結果的概率:

我們有超過 50% 的機會出現這種偶然性,因此,從分割數據的測試中得出結論並採取行動是非常危險的。但也有一些技術可以緩解這一問題,比如 Bonferroni 校正。

經驗 3:不要為了達到統計顯著性而分割你的數據。

4.查看幾個指標以達到統計顯著性


多重比較問題的另一個例子是:「我的 A/B 測試在轉換率、平均購物籃和跳出率上都沒有顯著結果。但這對每類購物籃的數量來說是很重要的!如果你觀察足夠多的指標,你最終會發現其中一個指標碰巧顯示了一個重要的結果:

A/B 測試結果說明

經驗 4:堅持測試設計的標準。

5.達到統計顯著性時停止測試


統計顯著性不能告訴你什麼時候應該停止測試。在停止測試之前,你需要等待以達到計算出的樣本大小。使用 A/B 測試計算器計算測試所需的樣本大小。有關這種偏差的更多細節,請閱讀這裡的問題說明。你還可以在此處模擬 A/A 測試,以查看在測試早期達到統計顯著性的頻率,即使在測試結束時結果不顯著:

使用 james lutrek 工具,根據樣本數量觀察 A/A 測試實驗的顯著性

經驗 5:即使你的測試有統計學意義(統計顯著性),也要繼續測試,直到測試結束。

6.在達到統計顯著性之前不要停止測試


同樣,統計顯著性不能告訴你什麼時候可以停止測試,或者繼續測試。你不應該等待一個測試變得有意義,因為它可能永遠不會發生。如果你已經達到了在測試前計算出的樣本量,這就意味着你的測試有足夠的統計能力得出結論。

Evan Miller 的 A/B 測試持續時間計算器

經驗 6 :一旦達到所需的樣本量,停止測試。

7.將(1-p 值)當做 B 優於 A 的概率


這是一個很常見的錯誤。p 值為 2% 並不意味着 B 有 98% 的機會比 A 好。這個假設在數學上是錯誤的,因為它還取決於基準率,即你所做的測試中,有積極影響的百分比(只有上帝知道這個數字!)。這個數字反映了你的商業直覺水平。

假設我們是上帝,我們知道 ManoMano 的基準率是 20%。這意味着我們 20% 的測試都是陽性的:

80% 的陽性測試(灰色)拒絕零假設(統計能力):

5% 的陰性測試(白色)拒絕零假設(顯著性閾值):

結論:在 80% 的統計能力、5% 的顯著性閾值和 20% 的基準率,當檢驗被認為是陽性(p 值<0.05)時,我們只有 16/(16+4)=80% 的機會是真陽性,而不是 95%。

在這種情況下(統計能力=80%,顯著性閾值=5%),知道你的 A/B 測試結果是有意義的,下面是一些概率,你的測試實際上是陽性的,這取決於基準率:

經驗 7:(1-p 值)不是檢驗為陽性的概率。如果你還想計算這個概率,使用貝葉斯 A/B 測試方法。

8.認為觀察到的增量是特徵帶來的增量


測試所觀察到的增量允讓你可以計算統計顯著性,但將觀察到的增量視為特徵帶來的實際增量是錯誤的,這通常需要更多的用戶或會話。

如果不能證明 B 優於 A ,則選擇傳遞置信區間而不是原始增量。為了說明這一點,我們以 A/B 測試為例:

p 值為 0.014,可接受的顯著性水平為 95%,此 A/B 檢驗為陽性,這意味着測試組顯著好於對照組。可以很容易地計算出觀察到的跳出率相對增量:

但將觀測到的增量視為特徵帶來的實際增量是不正確的。你應該使用標準誤差計算每組的置信區間:

其中 p 是觀察到的組跳出率,n 是池樣本大小,zα 是對應於置信水平 α 的 z 值(在本例中為 95%)。你可以在這裡找到通常置信水平的 z 值。

使用此公式,你最終可以計算兩個組的 95% 置信區間(CI)跳出率:

也可以反計算相對增量(pctdiff)的置信區間,但它更複雜。如果需要更多詳細信息,請參閱這個調查的第 3.3.2 節(http://www.robotics.stanford.edu/~ronnyk/2009controlledExperimentsOnTheWebSurvey.pdf。

經驗 8:當你的測試為顯著陽性時,應該傳遞置信區間而不是原始增量。

9.當 A/B 測試結果違背你的直覺時,忽略它們


如果你(和你的組織)還沒有準備好用新的版本更新你的產品,除了確認你的偏見,啟動 A/B 測試是沒有意義的。直覺在選擇測試內容時至關重要,但它不應與 A/B 測試的結果相抵觸。

經驗 9:與利益相關者確定測試前的閾值和相關行動。

10.忘記檢查 A/B 測試系統是否可靠


為了保證你的 A/B 測試結果的可靠性,你的 A/B 測試系統必須經過校準並正常工作。確保這種可靠性的一種方法是持續進行 A/A 測試,並檢查這兩種人群之間沒有顯著差異:

Manomano 的連續 A/A 測試允許我們快速檢測 8 月份遇到的緩存錯誤,由於該錯誤,8 月 20 日到 8 月 22 日之間進行的所有測試無效。

經驗 10:持續進行 A/A 測試,以檢測可靠性。

結 論


如你所見,在分析 A/B 測試結果時出錯的風險非常高,而在測試之後所做的決策對你的公司來說至關重要。因此,你應該對給到你的 A/B 測試結果持懷疑態度,特別是當這個結果來自於一個對取得積極結果有強烈興趣的人(例如,一個想賣給你東西的人)時尤其如此。在 ManoMano,我們有一個值得信賴的委員會,幫助分析所有內部和外部 A/B 測試的結果,並對結論有着公正的看法。

via:https://medium.com/manomano-tech/a-b-testing-10-common-mistakes-we-all-make-97a5030f1d44