六大環節,教你如何從 0 到 1 搭建一場 A/B 測試

3 評論 5718 瀏覽 25 收藏 18 分鐘

隨著“增長黑客”概念的盛行,A/B 測試作為“數據驅動增長”的最佳實踐受到了國內外眾多公司的青睞。許多童鞋想要了解A/B測試卻不知該從何處下手,本文作者基于A/B測試的六大環節,與大家分享小白入門A/B測試指南。推薦對此感興趣的童鞋閱讀分享~

隨著“增長黑客”概念的盛行,A/B 測試作為“數據驅動增長”的最佳實踐受到了國內外眾多公司的青睞。

A/B 測試的目的在于通過科學的試驗設計、高效精準的流量分割算法來獲取具有代表性的試驗結論,并將該結論推廣運用至全部流量。目前,A/B 測試已廣泛運用于產品交互設計、推薦算法、運營策略制定等方方面面,在最優方案的判斷與決策過程中為公司提供有力的數據支持。

因為市面上對于 A/B 測試搭建的信息都比較碎片化,沒有成體系化的梳理,且缺少標準化、規范化的 A/B 測試工具,所以,我們結合數百場 A/B 測試的服務及交付經驗,總結、沉淀出了建立假設、確定評價指標、設計試驗、運行試驗并獲取數據、結果分析、最終決策六大環節,幫助企業順利落地 A/B 測試,為客戶帶來價值。

一、建立假設

A/B 測試最核心的原理是假設檢驗。先假設,然后根據數據檢驗試驗組和對照組的結果,輔助決策。一般情況下,假設成對出現,如果我們認為試驗組和對照組的結果沒有顯著差異,那么可以稱為零假設(H0);相反,則稱為備擇假設(H1)。

在試驗前,我們需要先明確想要實現的結果。比如,我們希望通過優化注冊流程,提高用戶的注冊轉化率。針對這個場景,零假設就是優化后流程(試驗組)和優化前流程(對照組)的用戶注冊轉化率無顯著差異,備擇假設則是兩組結果有顯著差異。

另外,在建立假設的過程中,需要注意兩點:第一,A/B 測試本身屬于因果推斷,所以要先確定原因和結果;第二,假設必須是可衡量

的,需要有相應的評價指標來檢驗假設是否成立。

二、確定評價指標

注冊流程優化的試驗目的是為了提高注冊轉化率,那么注冊轉化率就可以作為檢驗假設是否成立的評價指標。同時,評價指標也需要分層級,確定唯一核心指標,輔助多個觀察指標,才能從盡可能多的角度來評估試驗結果。

評價指標主要分為三類:核心指標、驅動指標和護欄指標。

1. 核心指標

核心數據指標通常情況下只有一個,或者是極少數指標的合集,很多時候是一家公司或組織的核心 KPI,可以驅動業務核心價值,比如注冊轉化率(衡量注冊流程優化試驗效果)、活動按鈕點擊率(評估某項推廣活動試驗的 CTR 效果)、人均使用時長(評估某項推薦算法對用戶粘性的改進效果)等。

在確定核心指標時,需要滿足兩個關鍵原則:第一,簡單的,易理解的,可以在公司/團隊范圍內被廣泛接受;第二,相對穩定的,無需頻繁為了一個新功能更新核心指標。

核心指標除了用來衡量試驗的效果,還可以用來計算試驗所需的樣本量(將在后文中詳細介紹),由此可見,核心指標直接關系著試驗的成敗,需要重點關注。

2. 驅動指標

驅動指標一般比核心指標更短期,變化更快也更靈敏,幫助我們更加快速、全面地觀測業務變化。我們可以通過兩個案例做進一步了解:

在某項商品推廣活動試驗中,核心指標是下單轉化率,運營同學可以使用客單價、人均下單次數、退貨率等作為驅動指標。觀察發現,雖然下單率有所提升,但退貨率或客單價指標下降,此時便需要做針對性調整。

某個視頻推薦列表試驗中,核心指標是人均播放視頻數量,驅動指標是完播率、人均觀看時長,通過核心指標和多個驅動指標的配合來進行推薦算法效果的評估。

通過以上我們可以看出,驅動指標能夠幫助我們從更多、更全面的角度來觀察試驗給業務帶來的影響,尤其是當發現問題時,能夠幫助我們及時分析原因、調整策略,通過不斷優化達到最終的試驗目的。

在確定驅動指標時,需要滿足三個原則:第一,驅動指標與核心指標的目標一致,能夠直接反映業務變化;第二,當指標發生變化時,能夠有既定的途徑和方法來優化指標,是可行動、與業務相關的;第三,驅動指標是核心指標的先導指數,需要具備足夠的靈敏性,快速衡量大部分試驗的效果。

3. 護欄指標

護欄指標,可以理解為保護業務的指標,在實際應用過程中,護欄指標的異??梢杂行Х从吵鲈囼炘O計、基礎設施、數據處理環節是否正常,能夠幫助我們在評價試驗效果時做出正確的權衡取舍,避免因為短期指標優化影響長期指標,從而得出值得信任的試驗結果。

舉個例子,我們在試驗中設置一定的比例讓用戶命中試驗分組(通常建議各組流量平均分配),實際運行中如果發現樣本量和構建時的預期不一致,那么可以猜測是否是分流服務出了問題,導致可信度降低。

三、設計試驗

在確定試驗評價指標之后,我們就可以開始進行試驗設計,主要分為四個階段:

1. 選擇正確的試驗主體

試驗主體是試驗中進行分流的隨機化單元,在試驗時需確保分流主體與評價指標分析主體相同。
用戶(通常為 user_id )是當前主流的隨機化單元。如果分流主體是用戶,那指標分析主體也應該是用戶,例如人均會話數、人均點擊量、人均支付金額等。

在實際業務場景中,可能使用其他分流主體,比如設備主體(device_id),按照設備進行隨機化,意味著每臺設備產生的指標數據是獨立的,比如在點餐機或者自動售賣機(一般為 Android 系統)的試驗場景中,不需要用戶進行登錄即可下單購買,那么此時試驗的分流主體和分析主體就是這個獨立設備,可以用每臺設備的平均下單時長(完成下單的總時長/獨立設備數)作為評價指標,用來衡量下單頁優化效果。

除了以上兩個常用的試驗主體外,也會存在其他主體,例如在推薦算法試驗中,可以用推薦的頁面(或推薦的商品)作為試驗主體單位等,在評估選擇使用哪種隨機化單元(分流主體)時,需要結合具體試驗場景來考慮,可以重點從用戶體驗一致性、分流主體和評價指標主體一致性兩個角度綜合評估。

2. 確定試驗目標受眾

當我們假設了一個試驗并選定試驗主體時,需要進一步明確試驗的受眾范圍,也就是說需要明確哪些用戶參與到試驗中。通常有完全隨機和定向篩選兩種方式:

  • 完全隨機,是指不做任何干預,所有的線上用戶都是目標受眾。
  • 定向篩選,是以特定的用戶群體為目標。比如,某在線教育 App 的會員活動試驗中,想要通過不同活動來探索和提升用戶的購買轉化,便將新用戶設定為目標群體。

需要注意的是,當使用定向篩選圈定受眾意味著當前的試驗效果只對這部分用戶有效,并不能代表線上全量用戶應用后都具備相同顯著的效果。因此,在實驗結束將新 Feature 固化到線上時,需要考慮有針對性的發布策略。

3. 確定試驗樣本量

(1)樣本量并非越多越好

我們都知道試驗的樣本量大小對結果的精確度有直接影響,從統計學理論來講,越大的樣本量意味著有更大的幾率檢測出很小的變化,得出的結論信度就越高。

但在實際業務場景中,當我們回收到優勝方案時應盡快發布給全量用戶,這樣才能擴大試驗效果、實現業務的全面增長。另一方面,雖然 A/B 測試的目標是驗證某個優化方案能夠提升收入指標、改善用戶體驗,但試驗總會伴隨著未知、未被考慮到的風險,就有可能出現與假設截然相反的結果。因此,快速分析定位原因,及時調整試驗就顯得尤為重要,“快”是A/B 測試的重要優勢,能夠快速應用、擴大收益;快速得出結論驅動決策等。

在進行試驗設計時,我們需要在實際業務場景和統計理論中做到平衡:既要保證足夠的樣本量,又要把試驗控制在盡可能短的時間內。

(2)如何確定試驗所需的最小樣本量

樣本量并不是越多越好,那么該如何確定樣本的數量呢?這里我們需要了解一下中心極限定理,通俗地理解為:只要樣本量足夠大,無論是什么指標,無論對應的指標是如何分布的,樣本的均值分布都會趨于正態分布?;谡龖B分布,我們才能計算出相應的樣本量,作出假設與檢驗。

樣本量計算背后的統計學邏輯較為復雜,計算公式如下:

從公式中我們可以看出,樣本量主要由 α、Power、△ 和 σ^2 四個因素決定,當確定了這幾個變量,也就確定了試驗所需的樣本量。相關統計原理詳見文末「補充閱讀」。[1]

目前市面上有很多樣本量計算工具,其背后的統計邏輯基本一致,這里需要提醒大家的是,大部分工具都只能計算比率類指標,而均值類(絕對值類)指標的計算需要用到歷史數據,通常只能利用公式來進行計算。

圖 神策數據最小樣本量計算器(數據為模擬)

4. 確定試驗運行時長

只要試驗結果顯著,并且符合最小樣本量,是否就可以停止試驗了呢?答案是否定的。除了最小樣本量之外,我們還需要考慮試驗指標的周期性波動以及新奇效應影響。

(1)周期性

在實際業務運行過程中,往往需要考慮周期性帶來的指標變化。比如,旅游行業在周末的用戶訪問量明顯高于工作日;而辦公軟件的各項指標都證明在節假日的使用頻率遠低于工作日。因此,當需要考察的指標自身帶有周期性特征時,那么在試驗中就必須要考慮到周期性影響,不能單純地根據結果顯著性來做決策。我們通常會建議客戶在合理的試驗時間內至少包含一個完整的數據波動周期。

(2)新奇效應

在試驗的初始階段,可能會產生一些明顯的效應,并在接下來的一段時間內趨于穩定。原因在于剛上線新策略時用戶的興趣值較高,從而引發新奇效應;隨著時間推進,用戶的新奇感會逐漸消失。所以,在做 A/B 測試時,我們需要評估引入的新策略能否引發新奇效應,從而判斷當獲得顯著結果時,是否需要延長試驗周期以得到穩定的結果。

四、運行試驗并獲取數據

雖然試驗上線前我們已經做了充分的測試工作,但仍需要驗證試驗是否按照預期的設定正常運行。其中以下兩項工作需要重點驗證:

  • 分流驗證:分流比例和預期設定是否一致,不同分組策略是否正常展示,用戶有無跳版本等。
  • 數據驗證:缺少有效、準備好的評估數據,再多的試驗也是徒勞。

在確保試驗正常運行的情況下,我們還需要對不同分組的數據進行觀察分析,避免因為設計缺陷或者引入功能 bug,造成重大業務損失。

五、結果分析

A/B 測試能夠高效驅動決策。在統計學中,會采用 P 值法和置信區間法評估結果顯著性,這里我們詳細介紹一下使用頻率較高的置信區間法。

置信區間是一個范圍,最常見的是 95% 的置信區間。如何理解呢?對于一個隨機變量來說,95% 的概率包含總體均值的范圍,就叫做 95% 的置信區間。也可以簡單理解為總體數據有 95% 的可能性在這個范圍內。

在 A/B 測試中,我們會計算兩組指標的差異值,如果計算得出的差異值置信區間不含 0,那么就可以拒絕零假設,認為兩組結果差異顯著;反之則接受零假設,認為兩組結果差異不顯著。

圖 神策數據 A/B 測試-實驗報告示意(數據為模擬)

六、數據驅動決策

運行 A/B 測試的終極目的為了提升業務指標。那么在收集試驗數據到最終決策的過程中需要考慮哪些因素呢?

  • 試驗結果差異是否真實可信,是否具備統計顯著性?
  • 統計功效是否充足(通常根據是否大于 80% 來判定)?
  • 試驗放量之后會帶來哪些風險,風險處理的預備方案是什么?

顯著結果往往比較容易判斷,可以通過增加統計功效來提升真實顯著的幾率。但對于一些差異不顯著的試驗,就需要在試驗方案中做出取舍,我們需要明確決策對未來可能產生的影響,并讓影響盡量控制在可預測的范圍內,而非局限于根據某個單一指標來進行決策。

以上是一個完整 A/B 測試流程,后續我們將結合具體業務案例,深入探索試驗各個環節,敬請期待!

補充閱讀:

[1] 試驗樣本預估指南:https://manual.sensorsdata.cn/abtesting/latest/abtesting_SampleSize-58327106.html

 

作者:李世強,神策數據產品經理

本文由 @神策數據 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 您這假設檢驗都用上。。。小白不一定看得懂啊

    來自天津 回復
  2. 學廢了學廢了,讓我再仔細瞅瞅

    來自廣西 回復
  3. 原本復雜的測試說得挺好的,發現仔細讀下來還是很多不懂,收藏了得空時再仔細瞧瞧

    來自廣東 回復