AB Test,即有A、B兩個設計版本。通過小范圍發布,得到并比較這兩個版本之間你所關心的數據,最后選擇效果最好的版本。對于互聯網產品來說,通過A/B測試提升點擊轉化率,優化獲客成本可以得到越來越多的關注。本文作者從案例實戰出發,為我們分享了AB Test系統設計及其原理。


一、A/B Test的前世今生
A/B Test的思想最初應用于化學、生物、醫療等傳統學術研究領域,叫做雙盲實驗,在2000年由谷歌引進到在互聯網中進行了第一次A/B Test。A/B Test解決的是在現有認知下不確定哪種方案更優的問題,避免了拍腦袋決策,那么什么場景下適合做A/B Test呢? 首先有兩個條件:- 有兩個到多個待選方案;
- 有最直接的數據指標可衡量各待選方案,如:比率、數值。

二、abtest案例引出
關于A/B Test的案例有很多,最常見的無非就是一個按鈕的顏色或者是按鈕的文案,雖然很經典但未免太簡單,以至于有的地方涉及到的實驗知識點無法詳細展開。今天我們就拿一個工作中的實際例子來舉例: 某產品想上線付費發表情功能,于是產品同學A設計了一套付費引導流程:點擊表情按鈕->彈出付費引導彈窗->點擊付費彈窗支付按鈕->支付成功。 在需求評審上,產品同學B提出了不同意見:為什么不在用戶點擊具體某個表情的時候再彈出付費彈窗,使用如下引導邏輯:點擊表情按鈕->彈出表情面板->點擊具體某個表情->彈出付費引導彈窗->點擊付費彈窗支付按鈕->支付成功。 根據以上邏輯,兩個方案的轉化漏斗如下:
- A方案看到付費引導彈窗人數 = n*x%
- B方案看到付費引導彈窗人數 = n*100%*a%*100%=n*a%
- A方案付費用戶數 = A方案看到付費引導彈窗人數*y%*z% = n * x% * y% * z%
- B方案付費用戶數 = B方案看到付費引導彈窗人數*b%*c% = n * a% * b% * c%

三、abtest實驗設計
1. 版本設計
實驗版本的設計要遵循變量的單一性,不能一下子改變多個因素,如同一個按鈕不能同時改變按鈕顏色和按鈕文字,實驗設計越簡單越容易得出正確的結論。 案例時間:2. 實驗時長
業界的實驗時長一般是2-3周,最短時長建議不要少于7天。因為不同日期活躍的用戶群體可能不一樣,所以最好要覆蓋一個周期,如7天、14天、21天。 那實驗時長是不是越長越好呢,也不是的,實驗時間過長會把各版本的區別拉平了,不同時期用戶對不同策略的反應不一樣。 例如0元奪寶玩法剛出來的時候用戶會特別感興趣,時間久了大家都知道這是一個套路會慢慢免疫選擇性忽略掉,在玩法誕生之初進行實驗可能效果會很顯著,時間長了之后這玩法的效果就會慢慢下降。 實驗結果也是有時效性的,僅對當前時間當前用戶群有效果并不是放之四海而皆準,所以實驗時間不宜過長,應快速驗證快速迭代。3. 選擇指標
一個改動影響的指標可能是多方面的,例如更改了加購物車按鈕的顏色,點擊該按鈕的人可能會增多,從而間接導致下單的人數增多。那如何從眾多指標當中選擇出實驗效果指標呢?可以從以下幾個方面進行篩選:

4. 案例時間
基于前面的例子,影響最為直接的指標為點擊付費彈窗支付按鈕人數,但是這個跟各實驗組具體人數也有關系,所以應該轉化為比率。 分母應該是點擊表情按鈕人數而不是展示付費引導彈窗人數,因為兩個版本的展示付費引導彈窗觸發條件不一樣,方案B已經人為的過濾掉一批低質量用戶,必然會對展示點擊率產生影響。 本實驗間接影響的正向指標為付費人數,同理也需轉化為付費率。正如產品同學A所說,發表情改為付費發送會降低那些點擊表情按鈕意欲發表情的用戶的體驗,有關用戶活躍性的指標同時也需要關注,如:人均使用時長、留存率,這些活躍性指標均可作為本實驗的負向指標來關注。
5. 計算最小樣本量
之所以要計算最小樣本量,主要有以下幾點原因:- 樣本量太小不能代表整體的情況,容易受到偶然因素影響,這就要求計算出至少抽取多少樣本量才能代表整體情況;
- 避免浪費流量,通常有多個迭代同時進行,給其他迭代留出實驗空間;
- 如果實驗是負向的,可以避免帶來大面積不必要的損失。

- α:表示出現第一類錯誤的概率,也稱為顯著性水平,常見的取值有1%、5%、10%、20%,一般取值5%,即犯第一類錯誤的概率不超過5%,常見的表示方法為:1-α,稱為統計顯著性,表示有多大的把握不誤診。
- β:表示出現第二類錯誤的概率,一般取值20%,更常見的表示方式為統計功效power=1-β,即有多大把握能檢查出版本差異。

p=(0.075+0.079+0.087+……+0.083+0.077+0.081) / 30=0.08
- 確定MDE值,新方案至少比舊方案提升多少才能達到我們的預期,即計算新方案的ROI,避免實際收益不能彌補新方案的研發和推廣成本,這里我們取比原方案提升10%,即新方案期望的點擊率為:p(新方案支付按鈕點擊率)=0.08*(1+10%)=0.088,可得MDEΔ=0.088-0.008=0.008;
- 計算Z值,本實驗中我們取α=5%,β=20%,通過NORMSINV計算,得:
6. 圈選用戶
計算出了實驗所需人數,下一步就是從總用戶群體中抽取出對應人數進行實驗,這一步我們將會面臨著兩個問題:如何從一個總體中按一定比例抽取隨機樣本;如果同時進行的實驗中有互斥的怎么辦。 針對以上兩個問題我們有以下三種解決方案,下面分別介紹下: 1)單層方案 所有流量按某個參數(UserID,DeviceID、CookieID、手機號等)分成n個桶,假設選定UserID,有以下兩種方法:



四、abtest實驗評估
流量經過分流后進入到每個實驗組,經過一段時間后各實驗版本將會產生實驗數據,經過統計各組數據之間是否存在顯著性差異以及差異大小,就可以得出各版本之間是否有差異,哪個版本更好的結論。 顯著性檢驗同樣有多種方法:T檢驗、Z檢驗、卡方檢驗。 Z檢驗使用的是總體方差,T檢驗使用的是樣本方差,卡方檢驗是比較兩組數值的分布,因此Z檢驗比T檢驗和卡方檢驗效果更明顯,檢驗精確度是:Z檢驗>T檢驗>卡方檢驗,下面以Z檢驗為例進行介紹。 AB測試需要比較出哪個實驗組表現更好,因此使用的是單尾檢驗。原假設為新方案不優于舊方案,然后計算出在原假設成立的條件下,計算所得實驗樣本數據特征的概率原假設發生的概率P值,和顯著性水平α進行比較以判斷是否拒絕原假設。 如果P值小于顯著性水平,說明我們在原假設的條件下幾乎不會得到這樣的數據,所以我們應該拒絕原假設。取顯著性水平α為5%,具體步驟如下:1. 計算Z值
根據實驗數據得到對照組均值為p1、實驗樣本數n1,實驗組均值為p2、實驗樣本數n2,有以下公式:
2. 得出實驗結果
1)方法一 將上一步得到的Z值與α對應的Z值比較,如果Z(實際) >= Z(1- α),則拒絕原假設,可通過Excel函數計算。- 【雙側檢驗】NORMSINV(1-α/2)。例如:NORMSINV(1-0.05/2)=1.959963985
- 【單側檢驗】NORMSINV(1-α)。例如:NORMSINV(1-0.05)=1.644853627
3. 案例時間
通過一段時間的實驗,各實驗組人數為方案A:n1=18953,方案B:n2=18879,點擊率數據得到如下: 根據歷史數據計算出支付按鈕點擊率均值p:p1=(0.078+0.084+0.075+……+0.081+0.075+0.082) / 14=0.081
P2=(0.086+0.092+0.091+……+0.087+0.088+0.089) / 14=0.089
1)計算Z值 2)計算P值 P=1-NORMSDIST(Z(實際))= 1-NORMSDIST(2.789943083)= 0.002635865 3)得出結論 P值0.002635865遠小于顯著性水平0.05,說明在當前的數據表現下,原假設幾乎不可能發生,拒絕原假設,認為方案B是優于方案A的。 4)計算置信區間 顯然我們再做一次實驗的話方案B的支付按鈕點擊率均值不一定還是0.089,有可能會上下波動,那么這個波動范圍是多少呢,我們可以由樣本統計量構成的總體參數計算出估計區間。計算公式如下: 標準誤是描述樣本均數的抽樣誤差,樣本的標準誤差為(n為樣本量): 樣本均值為p,樣本置信區間為: 方案B的均值為0.089,方差為0.081079,顯著性水平為5%,樣本量為18879,則方案B的標準誤為:
五、abtest系統核心功能架構圖
經過上面的分析,我們已經知道了A/B Test的完整流程。 一個產品需要測試的點往往是非常多的,如果每次實驗都要像上面那樣人工走一遍顯然效率是非常低的,A/B Test又是近年興起的增長黑客的秘密武器,需要進行快速迭代快速驗證,所以將以上流程自動化是非常有必要的。 下面我們就來看看A/B Test系統需要哪些模塊,各模塊之間是怎么配合的。
1. 配置模塊
- 配置實驗名稱、版本等信息;
- 選擇實驗指標,并從數據倉庫獲取所有實驗的指標配置,若有當前在運行的實驗與本次實驗選擇指標一致,則自動化選擇該實驗為互斥實驗;
- 選擇實驗對象,如圈選進行過充值的用戶進行實驗;
- 根據配置的指標及統計參數,計算出需要多少用戶量,根據選擇的實驗對象,從數倉中同步選擇的實驗對象每天有多少該實驗對象用戶,計算出需要多少天才能達到最小樣本量,并自動化推薦實驗時長。
2. 預警模塊
若實驗快到期,或者實驗樣本量與預期的出入較大,則向業務方預警及時進行調整。3. 分流模塊
實驗配置好并上線后,用戶訪問APP時,向該模塊該用戶對應的實驗配置信息,分流模塊根據現有正運行的實驗配置,計算出該用戶屬于哪些實驗,進行互斥處理后返回對應最終實驗的版本,客戶端展示對應的實驗版本。4. 分析模塊
- 從數據倉庫中讀取實驗的指標數據、樣本量數據、其他輔助指標數據,進行分析;
- 針對每天新進實驗組的用戶數據,進行同期群分析,觀察每天新增實驗用戶的數據波動情況,常見應用于留存分析。
聲明:本文由網站用戶竹子發表,超夢電商平臺僅提供信息存儲服務,版權歸原作者所有。若發現本站文章存在版權問題,如發現文章、圖片等侵權行為,請聯系我們刪除。