AB test學習筆記

AB Test 介紹:

https://vwo.com/ab-testing/算法

AB Test 的意義:

數據分析告訴咱們要不要去作一件事情,ab 實驗反饋告訴咱們咱們作得好很差,哪裏有問題,以及衡量能夠帶來多少肯定性的增加。工具

1、理論基礎

 
1、中心極限定理:
 
大量相互獨立的隨機變量,其均值(或者和)的分佈以正態分佈爲極限(意思就是當知足某些條件的時候,好比Sample Size比較大,採樣次數區域無窮大的時候,就越接近正態分佈)。而這個定理amazing的地方在於,不管是什麼分佈的隨機變量,都知足這個定理。
 
2、大數定理
 
    簡單的能夠描述爲,若是有一個隨機變量X,你不斷的觀察而且採樣這個隨機變量,獲得了n個採樣值,而後求得這n個採樣值得平均值,當n趨向於正無窮的時候,這個平均值就收斂於這個隨機變量X的指望。
 
三、置信區間和統計顯著性
參考:

https://zhuanlan.zhihu.com/p/22987913優化

 

 概念:樣本、整體
 
置信區間是(用來對一個機率樣本的整體參數進行區間估計的) 樣本均值範圍,它展示了這個均值範圍包含整體參數的機率,這個機率稱爲置信水平;
 
置信水平表明瞭估計的可靠度,通常而言,咱們採用95% 的置信水平進行區間估計。
 
置信區間在ABtest中的意義:(兩個整體的均值之差的置信區間)
 
由t檢驗大樣本檢驗公式計算得出Z值(由均值、樣本量、方差計算出來的統計值,經過這個統計值再結合分佈公式,也能夠計算出p value從而做出是否拒絕原假設的決策),再根據兩個整體的均值、標準差和樣
本大小,利用如下公式便可求出兩個整體均值差的95%置信區間:

 

 

  值得注意的是,置信區間的上下限同爲正或負,只能說明試驗是統計顯著的(也就是試驗版本和對照版本有差別),可是這個差別有多是很是小的,在實際應用中微不足道的。所以,只有兼備統計顯著和效果顯著兩個特徵的結果,才能說明該版本是可用,值得發佈的。
 

2、AB testing的實驗注意點

 
一、時間一致性;
 
二、數據分佈的一致性;
 
三、統計顯著的結果才能夠引導決策;
 
四、實驗分組設計上(流量分佈要均勻):
 
算法對用戶的誤差沒有反映到實驗分桶上,會放大算法之間效果的差距,從而產生辛普森悖論;
 
五、置信
 
要得到一個可信的試驗結果須要必定的流量(樣本)和時間,若是流量(樣本)過小或者分不均勻,試驗結果會存在偶然性,可能沒法得出可信的結果;試驗運行時間過短的話同理;
 
六、時間
 
實驗週期中也要避免外部因素的影響,儘可能在平穩時期進行,減小外部因素的干擾;
 
有時候爲了保證明驗效果的置信,防止小流量分佈不均勻,能夠在試驗過程當中,逐步增大流量分配,同時監控關鍵指標的數據走勢,從而獲得置信的結論;
 

3、分流及分桶原理

須要保證:spa

(1)同一實驗中不一樣分桶之間是隨機的;設計

(2)不一樣的場景、實驗,分桶會被從新打散;orm

(3)實驗設計時,須要考慮驗證哪一個因子,則能夠按照那個因子來進行分桶;blog

 

分桶和分流之間的關係:three

  分流是指,從整體中隨機抽樣百分之幾來作實驗;get

  分桶是指,在實驗的流量裏面根據某個須要驗證的因子隨機分桶;

4、分桶不平衡的驗證辦法

 
一、AA testing
 
A/A測試能夠理解成對兩個相同版本進行的A/B測試。一般,這樣作的目的是爲了驗證正在使用的工具運行試驗在統計上是公平的。在A/A測試中,若是測試正確進行,控制組和實驗組應該沒有任何區別。
 
若是說A/B測試用來測試比較幾個方案的優劣,那麼A/A測試就是驗證A/B測試及工具置信度的有效方式。
 
應該考慮運行A/A測試的惟一種狀況:
 
(1)你剛安裝了一個新的測試工具或更改了測試工具設置;
 
(2)你發現了A/B測試與數據分析工具結果之間存在差別;
 
通常在AB測試以前進行AA測試,或者在ab測試中同時進行A/A/B測試,觀察兩個相同的A組之間是否有統計顯著的不一樣,從而肯定分桶規則是否靠譜。一些分析代表,這種方式還不如直接讓控制桶(a桶)是實驗桶(b桶)的兩倍大(所謂的 池化)
 
二、多項檢驗的統計方法;
 
 

5、分桶不平衡的解決辦法

 
一、由AA實驗演變的A:B=2:1的流量大小分配方式;
 
二、經過逐步放大流量作對比的方式;
 
 

6、AB test的應用

 
一、方案優選;
二、系統測試;
三、因果推斷;
 

AB test和離線評估的優缺點和使用場景:

一、AB test 系統搭建和維護須要必定成本,對技術也有必定要求,若是該系統作得很差,用了反而有害;ab系統更可能是用於方便衡量算法/產品 優化帶來的效果,對於用人緊缺的創業公司其實不是必要的;
二、離線評估最重要是模擬真實線上場景,若是模擬很差,離線測試的結果也不可信;
  可是,當公司的ab test系統尚未搭建好的時候,離線評估仍是頗有必要,起碼有一些明顯的算法問題能夠經過離線測試看出來,模型選擇和調優也須要離線測試,並且離線測試不會對線上形成影響,ab實驗則會;
三、當產品在市場上的競爭環境激烈,項目上線須要爭取有利時機時,每每憑藉戰略決策來決定上線與否而不是ab實驗,ab實驗有一段觀察期並且須要外部條件相對穩定才能得出客觀的結論,適用於產品的發展期處於相對比較平穩的時候,防止決策錯誤致使數據降低;
  所以,實時數據分析是有必要的,實時ab test必要性不是很強;
四、多數的ab test系統並不具有決策推全後仍然持續觀察的能力,有一些關乎實現公司或者產品長期戰略目標的功能/算法,可能短時間內會致使指標降低或者沒有明顯增加,可是也必需要上線;
五、AB test 幫助你在現有流量中獲取更多的收益,或者在現有流量中提高ROI,或者說在現有用戶基礎上提高活躍度,可是在衡量對用戶量增加或者獲取新流量是否有幫助上,ab test或者所起做用不大。
六、AB test還有一個缺點,就是隻能作小範圍的效果比較,好比做用於同一個場景使用不一樣算法的效果比較;好比它不能告訴咱們,A業務的推薦算法是否比B業務的推薦算法作得好;也就是說它不能衡量一個模型的遷移和泛化能力;
 
 

算法ab test 與數據分析的關聯:

 一、使用deep模型作算法,ab test衡量算法end-to-end的效果;而後用統計分析方法或者ml的方法作模型解釋,或者是建模前的特徵分析。
 
 

其餘:

 
1、驗證達爾文系統流量分配不均的問題解決辦法:設置AA testing
 
2、對照組的設置要和優化baseline一致,實驗設計要和咱們須要驗證的結論相一致才行;
 
3、模型究竟是否須要 fine tuning?(權衡模型調優與新算法嘗試之間的選擇:看目標究竟是要精準仍是要召回高?實際上是準確率和召回率的平衡。拋開業務需求,一個好的模型,是在準確率和召回率趨向接近的基礎上,二者還能達到一個比較高的值;那若是是有業務需求,那麼就根據業務需求使用相應特色的模型)
 
四、在線模型裏面究竟是抽樣訓練仍是全量樣本訓練比較好?(訓練樣本抽樣方面的優化)(須要實驗驗證)
 
五、特徵優化包括特徵的全面性完善和特徵加工方式的多樣性完善;
 
 數據分析->基礎特徵加工->模型設計->平臺工具(特徵工程、模型訓練及預測)->實驗設計及驗證->(反饋到前面任意步驟再順序執行)
 

 附:

ab test tutorial

具體計算方法及工具:

 
賈俊平 《統計學》5~8章
相關文章
相關標籤/搜索