深刻解讀A/B 測試的統計學原理

瞭解一些統計學知識對正確地進行 A/B 測試和研判試驗結果是頗有幫助的,本篇文章深刻介紹了A/B 測試的原理和背後的統計學依據。徹底理解本文中提到的數學計算須要你掌握機率方面的一點基礎知識。算法

統計學在 A/B 測試中的做用segmentfault

A/B 測試是一種對比試驗(下文中對比試驗特指 AppAdhoc 平臺上的 A/B 測試),而試驗就是從整體中抽取一些樣本進行數據統計,進而得出對整體參數的一個評估。能夠看出,作試驗並從試驗數據中得出有效結論的科學基礎是統計學。微信

統計學的基本概念app

整體:是客觀存在的、具備某一共同性質的許多個體組成的總體; 整體是咱們的研究對象,在對比試驗中,整體就是網站/App的全部用戶。ide

樣本:所謂樣本就是按照必定的機率從整體中抽取並做爲整體表明的一部分整體單位的集合體; 樣本是咱們的試驗對象,在對比試驗中缺省的對照版本和測試版本的用戶都是樣本。工具

參數:用來描述整體特徵的歸納性數字度量,稱爲參數,如整體平均數(μ);在對比試驗中整體參數就是全部用戶的某個優化指標的平均值。測試

統計量:用來描述樣本特徵的歸納性數字度量,稱爲統計量,如樣本平均數(x);在對比試驗中統計量就是測試版本用戶的某個優化指標的統計平均值。優化

均值:變量值的算數平均數。網站

方差:各變量值與其算術平均數離差平方的算術平均數。標準差是方差的平方根。spa

正態分佈:是一種應用很是普遍的機率分佈,它是下面介紹的假設檢驗等統計推斷方法的數學理論基礎。

圖片描述

因此,對比試驗的工做原理就是統計對照版本和測試版本兩個樣本的數據(樣本數量,樣本平均數和方差等),經過以正態分佈爲基礎的統計學公式進行計算,衡量測試版本的整體參數(均值)是否比對照版本的整體參數有肯定性的提高。

抽樣

抽樣是指按照隨機原則,以必定機率從整體中抽取必定容量的單位做爲樣本進行調查,根據樣本統計量對整體參數做出具備必定可靠程度的估計與推斷。

抽樣最重要的問題是抽取的樣本是否可以表明整體。若是樣本沒有表明性,那麼以樣本的統計量數據來對整體參數進行估計就沒有邏輯基礎。

AppAdhoc 試驗引擎的用戶流量分割算法根據用戶特徵對用戶進行聚類,把用戶分爲具備相同表明性的多個小組,而後經過隨機抽樣的方式獲得測試版本的用戶羣(樣本),保證了樣本的表明性。

參數估計

參數估計是一種統計推斷方法,用樣本統計量去估計整體參數。 整體的統計指標在必定範圍內以必定的機率取各類數值,從而造成一個機率分佈,可是這個機率分佈多是未知的。 當整體分佈類型已知(一般是正態分佈),僅需對分佈的未知參數進行估計的問題稱爲參數估計。

用來估計整體參數的統計量的名稱稱爲估計量,如樣本均值;估計量的具體數值稱爲估計值。參數估計方法有點估計與區間估計兩種方法。

用樣本估計量的值直接做爲整體參數的估計值稱爲點估計。例如在對比試驗中,缺省對照版本的優化指標均值就是對缺省版本整體的優化指標均值的一個點估計。

咱們必須認識到,點估計是有偏差的,樣本均值不能徹底表明整體均值。 在一些比較粗糙的 A/B 測試方式中,試驗者獲得對照版本和測試版本的均值以後,直接比較它們的大小,由此得出哪一個版本更優的結論,這樣的作法偏差是很是大的,結論的可靠性沒有保障。

點估計只能給出整體參數的一個大概值,但不能給出估計的精度。區間估計就是在點估計的基礎上,給出整體參數的一個機率範圍。區間估計的幾個要素是點估計值、方差、樣本大小以及估計的置信水平。 專業的 A/B 調試工具會經過結合這些要素的統計學公式來對結果進行科學地評估,而不是簡單粗糙地比較點估計值的大小。

假設檢驗

從 A/B 測試的試驗原理來看,它是統計學上假設檢驗(顯著性檢驗)的一種形式。

假設檢驗(中的參數檢驗)是先對整體的參數提出某種假設,而後利用樣本數據判斷假設是否成立的過程。邏輯上運用反證法,統計上依據小几率思想。

小几率思想是指小几率事件(顯著性水平 p < 0.05)在一次試驗中基本上不會發生。反證法是指先提出假設,再用適當的統計方法肯定假設成立的可能性大小;如可能性小,則認爲假設不成立。

具體到對比試驗,就是假設測試版本的整體參數(優化指標均值)等於對照版本的整體參數,而後利用這兩個版本的樣本數據來判斷這個假設是否成立。

假設檢驗的基本概念

統計假設:是對整體參數(包括整體均值μ等)的具體數值所做的陳述。

原假設:是試驗者想收集證據予以反對的假設 ,又稱「零假設」,記爲 H0; 對比試驗中的原假設就是測試版本的整體均值等於對照版本的整體均值。

備擇假設:也稱「研究假設」,是試驗者想收集證據予以支持的假設,記爲 H1; 對比試驗中的備擇假設就是測試版本的整體均值不等於對照版本的整體均值。

雙側檢驗與單側檢驗:若是備擇假設沒有特定的方向性,並含有符號「≠」,這樣的稱爲雙側檢驗。若是備擇假設具備特定的方向性,並含有符號 「>」 或 「<」 的假設檢驗,稱爲單側檢驗。

提出假設

原假設和備擇假設是一個完備事件組,並且相互對立。在一項假設檢驗中,原假設和備擇假設必有一個成立,並且只有一個成立。 在對比試驗中,由於咱們試驗的目的是經過反證法證實測試版本和對照版本有明顯的不一樣(提高),因此咱們的原假設是測試版本的整體均值等於對照版本的整體均值。

假設檢驗的兩類錯誤

第 I 類錯誤(棄真錯誤):原假設爲真時拒絕原假設;第 I 類錯誤的機率記爲 α(alpha)。

第 II 類錯誤(取僞錯誤):原假設爲假時未拒絕原假設。第 II 類錯誤的機率記爲 β(Beta)。

α 是一個機率值,表示原假設爲真時, 拒絕原假設的機率,也稱爲抽樣分佈的拒絕域。在這兩類錯誤中,相對更加嚴重的是第 I 類錯誤,因此 α 的取值應儘量小。經常使用的 α 值有 0.01,0.05,0.10, 由試驗者事先肯定。對比試驗中使用的 α 值是 0.05(5%),這是顯著性檢驗中最經常使用的小几率標準值。

顯著性水平 p(p-value)

顯著性水平 p是指在原假設爲真的條件下,樣本數據拒絕原假設這樣一個事件發生的機率。例如,咱們根據某次假設檢驗的樣本數據計算得出顯著性水平 p = 0.04;這個值意味着若是原假設爲真,咱們經過抽樣獲得這樣一個樣本數據的可能性只有 4%。

那麼,0.04 這個機率或者說顯著性水平究竟是大仍是小,夠仍是不夠用來拒絕原假設呢?這就須要把 p 和咱們採用的第 I 類錯誤的小几率標準 α 來比較肯定。假設檢驗的決策規則:

若 p ≤ α,那麼拒絕原假設;

若 p > α,那麼不能拒絕原假設。

圖片描述

若是 α 取 0.05 而 p = 0.04,說明若是原假設爲真,則這次試驗發生了小几率事件。根據小几率事件不會發生的判斷依據,咱們能夠反證認爲原假設不成立。

顯著性水平 p 的計算公式取決於假設檢驗的具體方式,將在下文的 t 檢驗部分介紹。

統計顯著性 (Significance)

在假設檢驗中,若是樣本數據拒絕原假設,咱們說檢驗的結果是顯著的;反之,咱們則說結果是不顯著的。一項檢驗在統計上是「顯著的」,意思是指這樣的樣本數據不是偶然獲得的,即不是抽樣的隨機波動形成的,而是由內在的影響因素致使。

t 檢驗

經常使用的假設檢驗方法有 z 檢驗、t 檢驗和卡方檢驗等,不一樣的方法有不一樣的適用條件和檢驗目標。t 檢驗(Student’s t test)是用 t 分佈理論來推斷兩個平均數差別的顯著性水平。

咱們的對比試驗是用對照版本和測試版本兩個樣本的數據來對這兩個整體是否存在差別進行檢驗,因此適合使用 t 檢驗方法中的獨立雙樣本檢驗。

爲了簡化,對比試驗忽略了樣本大小在 30 如下的小樣本狀況(視爲結果不顯著),按大樣本檢驗公式進行 p-value 的計算。

首先經過 t 檢驗公式計算出檢驗統計量 Z 的值:

圖片描述

x1:樣本 1 均值;x2:樣本 2 均值;

S1:樣本 1 標準差;S2:樣本 2 標準差;

n1:樣本 1 大小;n2:樣本 2 大小;

而後經過 t 分佈(大樣本狀況下近似正態分佈)的公式計算得出和 Z 值對應的 p 值。

圖片描述

p 值算出來以後,咱們就能夠根據 p 值按照前面介紹的假設檢驗決策規則來判斷這兩個樣本均值的差別是否顯著了。

小結

下面咱們以 AppAdhoc 後臺 Demo App 的試驗 page_order02 爲例來走一遍對比試驗的整個過程,從統計假設檢驗的角度來看看 AppAdhoc 是怎麼處理試驗數據並得出結論的。

page_order02 這個試驗的目的是測試不一樣頁面順序對購買點擊的影響,它設計了一個具備不一樣頁面順序的測試版本 experiment_1_page_order02 和對照版本 CONTROL-page_order02 進行對比, 每一個版本的用戶流量分配都是 7% 的用戶,經過 buy_success 優化指標來衡量試驗的結果。

圖片描述

試驗開始以後,AppAdhoc 試驗引擎經過抽樣把兩個具備相同表明性的用戶羣體(樣本)分配到這兩個版本。試驗運行一段時間以後 buy_success 指標有以下數據(方差數據未在表格中顯示):

圖片描述

整體和樣本

此試驗中,整體就是應用的全部用戶,涉及到兩個樣本:CONTROL-page_order02 的 33771 個用戶和 experiment_1_page_order02 的 34190 個用戶。

原假設

在此試驗條件下,假設檢驗的原假設就是:experiment_1_page_order02 版本的 buy_success 指標的整體均值等於 CONTROL-page_order02 版本的 buy_success 指標的整體均值。也就是說,若是應用採用新的頁面順序,全部用戶的 buy_success 指標的均值相比原頁面順序下的均值沒有差別。

若是原假設不成立,說明 experiment_1_page_order02 和 CONTROL-page_order02 這兩個樣本不是來自同一個整體;換句話說,採用新頁面順序的全部用戶的表現和採用原頁面順序的全部用戶的表現是有本質區別的。由於這兩個樣本的表明性是相同的,惟一的區別在於頁面順序, 因此咱們能夠推斷得出頁面順序的改變是有效果的,試驗的目的就達到了。

p-value 的計算

接着要作的就是根據這兩個樣本的數據按照前面介紹的 t 檢驗的公式來計算原假設的顯著性水平 p 值。

x1:CONTROL-page_order02 版本的 buy_success 均值 (23.01);

x2:experiment_1_page_order02 版本的 buy_success 均值 (22.11);

S1:CONTROL-page_order02 版本的 buy_success 標準差 (53.21);

S2:experiment_1_page_order02 版本的 buy_success 標準差 (50.21);

n1:CONTROL-page_order02 版本的樣本大小/用戶數 (33771);

n2:experiment_1_page_order02 版本的樣本大小/用戶數 (34190);

經過上面介紹的t檢驗大樣本檢驗公式計算得出 Z = 2.28,而後根據正態分佈公式由 Z 值計算得出 p-value = 0.01。

0.01 < 0.05,根據決策規則咱們能夠下結論這次檢驗的統計顯著性是「顯著」,即原假設不成立,改變頁面順序顯著地影響了購買點擊。

測試結果的好壞

如今咱們知道初步的試驗結果了,此次試驗是具備統計顯著性的,咱們能夠繼續研讀試驗的數據,得出進一步的結論。 若是結果不顯著,說明樣本數量可能還不夠,應該等待試驗繼續運行;若是試驗已經充分運行,說明結論是原假設不能被拒絕,咱們不能肯定改變頁面順序會顯著地影響購買點擊。

咱們接着看兩個版本(樣本)的均值,experiment_1_page_order02 的均值 22.11 比 CONTROL-page_order02 的均值 23.01 小,變化(提高)是 -3.90%。 咱們如今更清楚了,測試版本的 buy_success 指標均值降低了,頁面順序的改動對購買點擊有負面的影響,咱們不該該發佈這個版本。

OK,至此咱們能夠得出明確的結論了:檢驗結果顯著,測試版本和對照版本有明顯不一樣,可是提高效果是負面的。

置信區間

好吧,事還沒完。咱們知道測試結果好壞以後,還能夠更深刻地查看它大概好了多少,或者差了多少。

experiment_1_page_order02 的均值 22.11 和 CONTROL-page_order02 的均值 23.01 都是點估計,因此來自這兩個均值比較獲得的變化百分值 -3.90% 也是點估計,它是有偏差的。 前面的參數估計部分已經提到了,咱們須要區間估計的方法來獲得一個機率範圍,這纔是比較準確的描述。

置信區間(Confidence interval)就是用來對一個機率樣本的整體參數的進行區間估計的樣本均值範圍。置信區間展示了這個均值範圍包含整體參數的機率,這個機率稱爲置信水平。

置信水平表明瞭估計的可靠度,通常來講,咱們使用 95% 的置信水平來進行區間估計。簡單地講,置信區間就是咱們想要找到的這麼一個均值區間範圍,此區間有 95% 的可能性包含真實的整體均值。

根據統計學的中心極限定理,樣本均值的抽樣分佈呈正態分佈。所以,經過相關的公式咱們能夠計算出兩個整體均值差的95%置信區間。

圖片描述

結果爲:[-0.9 – 0.778, -0.9 + 0.778]

即區間 [-1.678, -0.122] 有 95% 的可能性包含兩個整體均值之差。

爲了更直觀,咱們把這個整體均值差的置信區間轉換爲相比對照版本均值的變化的百分比置信區間:

[變化1,變化2]

變化1 = -1.678 / 23.01 = -0.073 (-7.3%)

變化2 = -0.122 / 23.01 = -0.005 (-0.5%)

變化百分比形式的置信區間爲:[-7.3%, -0.5%]

最後,咱們能夠這麼評價試驗的結果:測試版本不如對照版本,有 95% 的可能性差了 0.5% 到 7.3% 之間。

參考資料

《應用統計學》

《生物統計學基礎》


本文由吆喝科技(微信:appadhoc)數據科學團隊發佈。

喲,歡迎公號裏勾搭:-)

圖片描述

相關文章
相關標籤/搜索