什麼是A/B test?有哪些流程?有什麼用?終於有人講明白了

2019-08-31 23:03:23

導讀:關於A/B test的重要性無需多言,資料、產品等從業人員幾乎必知,好的資料科學家我想一定是知道理解業務比模型更為重要,而A/B test就是伴隨著業務增長的利器。


如果你心中的A/B test幾乎都沒有用到中心極限定理、假設檢驗、z分佈、t分佈等知識,建議詳細閱讀本文。


作者:愛德寶器
來源:資料管道(ID:adc9556)


本文目錄:


  • A/B test是什麼
  • A/B test工作原理
  • 進行A/B test的目的是什麼
  • A/B test流程(面試喜歡問)
  • A/B test簡例(結合Python實現)
  • A/B test需要注意的點
  • A/B test中要知道的統計學知識



01 A/B test是什麼


A/B測試(也稱為分割測試桶測試)是一種將網頁或應用程式的兩個版本相互比較以確定哪個版本的效能更好的方法。AB測試本質上是一個實驗,其中頁面的兩個或多個變體隨機顯示給使用者,統計分析確定哪個變體對於給定的轉換目標(指標如CTR)效果更好。




02 A/B test工作原理


在A/B test中,你可以設定訪問網頁或應用程式螢幕並對其進行修改以建立同一頁面的第二個版本。這個更改可以像單個標題或按鈕一樣簡單,也可以是完整的頁面重新設計。然後,一半的流量顯示頁面的原始版本(稱為控制元件),另一半顯示頁面的修改版本(稱為變體)。



當用戶訪問頁面時,如上圖灰色按鈕(控制元件)和箭頭所指紅色按鈕(變體),利用埋點可以對使用者點選行為資料採集,並通過統計引擎進行分析(進行A/B  test)。然後,就可以確定這種更改(變體)對於給定的指標(這裡是使用者點選率CTR)產生正向影響,負向影響或無影響。


實驗資料結果可能如下:





03 進行A/B test的目的是什麼


A/B test可以讓個人,團隊和公司通過使用者行為結果資料不斷對其使用者體驗進行仔細更改。這允許他們構建假設,並更好地瞭解為什麼修改的某些元素會影響使用者行為。這些假設可能被證明是錯誤的,也就是說他們對特定目標的最佳體驗的個人或團隊想法利用A/B test證明對使用者來說是行不通的,當然也可能證明是正確的。


所以說 A/B test不僅僅是解決一次分歧的對比,A/B test可以持續使用,以不斷改善使用者的體驗,改善某一目標,如隨著時間推移的轉換率。


例如,B2B技術公司可能希望從活動登陸頁面提高其銷售線索質量和數量。為了實現這一目標,團隊將嘗試對標題,可檢視像,表單欄位,號召性用語和頁面的整體佈局進行A/B測試更改。


一次測試一個變化有助於他們確定哪些變化對訪問者的行為產生何種影響,哪些變化沒有影響訪問者的行為。隨著時間的推移,他們可以結合實驗中多次正向變化的效果來展示變體相對於控制元件的可測量的改進。



這樣來說產品開發人員和設計人員可以使用A/B測試來演示新功能對使用者體驗變化的影響。只要目標明確定義並且有明確的假設,使用者參與,產品體驗等都可以通過A/B測試進行優化。



04 A/B test流程


  1. 確定目標:目標是用於確定變體是否比原始版本更成功的指標。可以是點選按鈕的點選率、連結到產品購買的開啟率、電子郵件註冊的註冊率等等。


  2. 建立變體:對網站原有版本的元素進行所需的更改。可能是更改按鈕的顏色,交換頁面上元素的順序,隱藏導航元素或完全自定義的內容。


  3. 生成假設:一旦確定了目標,就可以開始生成A/B測試想法和假設,以便統計分析它們是否會優於當前版本。


  4. 收集資料:針對指定區域的假設收集相對應的資料用於A/B test分析。


  5. 執行試驗:此時,網站或應用的訪問者將被隨機分配控制元件或變體。測量,計算和比較他們與每種體驗的相互作用,以確定每個使用者體驗的表現。


  6. 分析結果:實驗完成後,就可以分析結果了。A/B test分析將顯示兩個版本之間是否存在統計性顯著差異。



無論的實驗結果如何,需要利用試驗結果作為學習經驗生成未來可以測試的新假設,並不斷迭代優化應用元素或網站的使用者體驗。



05 A/B test簡例(結合Python實現)


1. 例項背景簡述


某司「猜你想看」業務接入了的新推薦演算法,新推薦策略演算法開發完成後,在全流量上線之前要評估新推薦策略的優劣,所用的評估方法是A/B test,具體做法是在全量中抽樣出兩份小流量,分別走新推薦策略分支和舊推薦策略分支,通過對比這兩份流量下的指標(這裡按使用者點選衡量)的差異,可以評估出新策略的優劣,進而決定新策略是否全適合全流量。

2. 例項A/B test步驟


  • 指標:CTR
  • 變體:新的推薦策略
  • 假設:新的推薦策略可以帶來更多的使用者點選。
  • 收集資料:以下B組資料為我們想驗證的新的策略結果資料,A組資料為舊的策略結果資料。均為偽造資料。

3. 分析結果(Python)


利用 python 中的 scipy.stats.ttest_ind 做關於兩組資料的雙邊 t 檢驗,結果比較簡單。但是做大於或者小於的單邊檢測的時候需要做一些處理,才能得到正確的結果。


from scipy import stats
import numpy as np
import numpy as np
import seaborn as sns

A = np.array([ 1423555789,10,18])
B = np.array([ 125681013141720,13,8])
print('策略A的均值是:',np.mean(A))
print('策略B的均值是:',np.mean(B))


Output:
策略A的均值是:6.416666666666667
策略B的均值是:9.75

很明顯,策略B的均值大於策略A的均值,但這就能說明策略B可以帶來更多的業務轉化嗎?還是說僅僅是由於一些隨機的因素造成的。


我們是想證明新開發的策略B效果更好,所以可以設定原假設和備擇假設分別是:


H0:A>=B
H1:A

scipy.stats.ttest_ind(x,y)預設驗證的是x.mean()-y.mean()這個假設。為了在結果中得到正數,計算如下:


stats.ttest_ind(B,A,equal_var= False)


output:
Ttest_indResult(statistic=1.556783470104261, pvalue=0.13462981561745652)

根據 scipy.stats.ttest_ind(x, y) 文件的解釋,這是雙邊檢驗的結果。為了得到單邊檢驗的結果,需要將 計算出來的 pvalue 除於2 取單邊的結果(這裡取閾值為0.05)。


求得pvalue=0.13462981561745652,p/2 > alpha(0.05), 所以不能夠拒絕假設,暫時不能夠認為策略B能帶來多的使用者點選。



06 A/B test需要注意的點


  1. 先驗性:通過低代價,小流量的實驗,在推廣到全流量的使用者。


  2. 並行性:不同版本、不同方案在驗證時,要保重其他條件都一致。


  3. 分流科學性和資料科學性:分流科學是指對AB兩組分配的資料要一致,資料科學性是指不能直接用均值轉化率、均值點選率來進行AB test決策,而是要通過置信區間、假設檢驗、收斂程度來得出結論。


07 A/B test中要知道的統計學知識


上述文章只是從應用的角度介紹來AB test的一些內容,當收集好資料之後做推斷性統計分析你可能需要具備以下知識,這裡限於篇幅不做介紹,自行查閱統計學書籍閱讀,可參考《統計學》賈躍平,可汗學院統計學等書籍和視訊。

  1. 點估計
  2. 區間估計
  3. 中心極限定理(樣本估計總體的核心,可以對比看一下大數定理)
  4. 假設檢驗


其中假設檢驗部分為核心,其他輔助更好的理解該部分內容,比如區間估計可以理解為正向的推斷統計,假設檢驗可以理解為反證的推斷統計,關於假設檢驗本身,你可能還需要知道小概率事件、t分佈、z分佈、卡方分佈、p值、alpha錯誤、belta錯誤等內容。


總結:


本文內容目錄前4部分參考翻譯於:
https://www.optimizely.com/optimization-glossary/ab-testing/


對其中部分內容做了修改,其中關於AB test流程步驟做了核心修改,目錄後3部分為個人學習思考所得,希望對大家有所幫助。



有話要說👇


Q: 你在哪些專案中用過A/B test?

歡迎留言與大家分享


猜你想看👇


  • 我會背鍋,能去做運維嗎?

  • Python程式碼實操:詳解資料清洗

  • 從遊戲AI到自動駕駛,一文看懂強化學習的概念及應用

  • 什麼是機器學習?有哪些分類?到底有什麼用?終於有人講明白了


更多精彩👇


在公眾號對話方塊輸入以下關鍵詞

檢視更多優質內容!


PPT | 報告 | 讀書 | 書單 | 乾貨 

大資料 | 揭祕 | Python | 視覺化

AI | 人工智慧 | 5G | 區塊鏈

機器學習 | 深度學習 | 神經網路

合夥人 1024 | 段子 | 數學 | 高考


據統計,99%的大咖都完成了這個神操作

👇



覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:baiyu@hzbook.com

更多精彩,請在後臺點選“歷史文章”檢視

已同步到看一看
在看



熱點新聞