A/B 測試的統計學原理及用例詳解

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

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

統計學的基本概念

名詞

  • 總體:是客觀存在的、具有某一共同性質的許多個體組成的整體; 總體是我們的研究對象,在對比試驗中,總體就是網站/App的所有用戶。
  • 樣本:所謂樣本就是按照一定的概率從總體中抽取並作爲總體代表的一部分總體單位的集合體; 樣本是我們的試驗對象,在對比試驗中缺省的對照版本和測試版本的用戶都是樣本。
  • 參數:用來描述總體特徵的概括性數字度量,稱爲參數,如總體平均數(μ);在對比試驗中總體參數就是所有用戶的某個優化指標的平均值。
  • 統計量:用來描述樣本特徵的概括性數字度量,稱爲統計量,如樣本平均數(x);在對比試驗中統計量就是測試版本用戶的某個優化指標的統計平均值。
  • 均值:變量值的算數平均數。
  • 方差:各變量值與其算術平均數離差平方的算術平均數。標準差是方差的平方根。
  • 正態分佈:是一種應用非常廣泛的概率分佈,它是下面介紹的假設檢驗等統計推斷方法的數學理論基礎。

在這裏插入圖片描述

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

抽樣

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

抽樣最重要的問題是抽取的樣本是否能夠代表總體。如果樣本沒有代表性,那麼以樣本的統計量數據來對總體參數進行估計就沒有邏輯基礎。

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)
在假設檢驗中,如果樣本數據拒絕原假設,我們說檢驗的結果是顯著的;反之,我們則說結果是不顯著的。一項檢驗在統計上是“顯著的”,意思是指這樣的樣本數據不是偶然得到的,即不是抽樣的隨機波動造成的,而是由內在的影響因素導致。

檢驗方法

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

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

t 檢驗

爲了簡化,對比試驗忽略了樣本大小在 30 以下的小樣本情況(視爲結果不顯著),按大樣本檢驗公式進行 p-value 的計算。
首先通過 t 檢驗公式計算出檢驗統計量 Z 的值:
在這裏插入圖片描述

  • x1:樣本 1 均值;x2:樣本 2 均值;
  • S1:樣本 1 標準差;S2:樣本 2 標準差;
  • n1:樣本 1 大小;n2:樣本 2 大小;

然後通過 t 分佈(大樣本情況下近似正態分佈)的公式計算得出和 Z 值對應的 p 值【查表對應】。
在這裏插入圖片描述
p 值算出來之後,我們就可以根據 p 值按照前面介紹的假設檢驗決策規則來判斷這兩個樣本均值的差異是否顯著了。

A/B test舉例應用

下面我們以 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% 之間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章