如何優雅的做好一次A/B Test?(一)

文源:阿倫的資料分析之路 作者:艾倫nmk

A/B Test系列文章將會圍繞以下六個問題進行展開,比較系統的梳理數據分析師應掌握的A/B Test技巧,本章為A/B Test系列文章第一章,“什麼是A/B test和A/B Test的統計學原理”

1.什麼是A/B Test?

2.A/B Test的統計學原理?

3.統計功效是什麼?

4.靈魂拷問!A/B Test要開多久,樣本量要多少?

5.如何優雅的分析A/B Test的結果?

6.A/B Test常見注意要點

A/B Test 經典案例

在切入正題前,我們先來看一個有趣的案例,奧巴馬在當年競選時,競選團隊有一個重要的任務是對競選頁面進行優化,目的是為了提高使用者的註冊率,獲得更多的募捐獎金。競選團隊一共設計了6個頁面,各有不同的特點,但最終需要選出一個頁面來作為主打,你能幫他們選出哪一個頁面是最好的嗎?

在真正的歷史上,競選團隊做了這麼一個方案,他們將6個頁面在小範圍內同時推出並隨機的讓每個頁面獲得相同的使用者數量,記錄下每個頁面的註冊率。結果發現最優頁面的註冊率為11.6%,比最初版本頁面的註冊率8.26%提升了40.6%。增加了2,880,000個電子郵件地址,並轉化為額外的約近6,000萬美元捐款。從定性的角度我們很難去選出哪個頁面是最好的,但通過A/B Test定量的去判斷可以幫助我們更好的決策。

最佳頁面如下:

什麼是A/B Test?

在這裡我們引用王曄博士對A/B Test給出的一個定義,A/B Test就是“為了驗證一個新的產品互動設計、產品功能或者策略、演算法的效果,在同一時間段,給多組使用者(一般叫對照組和實驗組,使用者分組方法統計上隨機,多組使用者統計角度無差別)分別展示優化前和優化後的產品互動設計,並通過數據分析,判斷優化前後的方案在一個或多個評估指標上是否符合預期的一種實驗方法“。

這段話可能比較拗口,下面我們用更通俗的語言再來理解一遍,A/B Test就是我們在線上可以切出一部分使用者(降低風險),完全隨機的分成兩組或多組(確保人群一致),一組保持現有的方案叫對照組,另外一組使用改進的方案叫實驗組,使用統計的方法對兩組之間指標差異進行分析,評估是否符合預期的一種方法。

為什麼要做A/B Test?

A/B Test核心的價值是降低風險和準確評估改動影響,下面我們來看兩個場景:

場景A

小A作為一款日活300萬產品的產品經理在新版本自信滿滿的新上線了一個feature(改動),結果版本釋出後線上留存大跌,給產品帶來了重大損失

場景B

小A和小B在新版本同時上線了一個feature,釋出後線上留存大漲,小A和小B都認為是自己的feature提高了留存,兩個人爭執不休

如果沒有A/B Test,以上兩個場景可能就會在網路公司工作中頻繁出現。快速迭代是網際網路產品的一大特點,如何在迭代中降低錯誤嘗試帶來的損失以及準確評估每一個feature對產品的影響是快速迭代的關鍵所在。A/B Test為這兩個問題提供了解決方案,能夠切出小部分使用者去做實驗的特性可以降低風險,而變數的唯一性又讓我們可以準確的評估feature帶來的影響

A/B Test的統計學原理

A/B Test的核心統計學原理是“假設檢驗”,什麼是假設檢驗?

假設檢驗是用來判斷樣本與樣本,樣本與總體之間的差異是由抽樣誤差引起還是本質差別造成的統計推斷方法,其基本原理是先對總體特徵做出某種假設,然後通過抽樣研究的統計推理,對此假設應該被拒絕還是接受做出判斷,假設檢驗使用了一種類似反證法的推理,通過A/B Test,我們要驗證的其實是一對假設,原假設和備擇假設。

舉個例子,我認為把按鈕從圓形改成正方形可以提高使用者的人均點選數,那麼我的原假設就是“把按鈕從圓形改成正方形可以提高使用者的人均點選數”,備擇假設是“把按鈕從圓形改成正方形不能提高使用者的人均點選數” ,這是一對互斥的假設,如果我們能證明原假設不成立,那麼備擇假設在某種程度上就可以被推斷為成立。

假設檢驗的基本思路是“小概率事件在少量實驗中是幾乎不可能出現的”,如果在實驗中出現了小概率事件,那麼我們就可以推斷原假設是錯誤的,從而推斷備擇假設可能是正確的。

兩類錯誤

由於假設檢驗是根據有限的樣本資訊對總體作推斷,我們做出的結論都可能因為抽樣誤差而作出錯誤的判斷。

比如我們認為瑞士的平均收入要高於我國,隨機抽5個瑞士人和5箇中國人做比較,如果抽到的中國人是馬雲、馬化騰、王健林、李嘉誠和我的話,那這個結論肯定就不成立了,這就是抽樣誤差可能會帶來的錯誤。在假設檢驗過程中,我們可能會犯兩種錯誤,第一類錯誤(棄真)和第二類錯誤(納偽)。

為了更形象的說明兩類錯誤,我們看下面這張圖片,在這裡我們的原假設是 “沒有懷孕”,備擇假設是“懷孕了”,對圖1來歲,沒有懷孕我們認為其懷孕了,我們錯誤的拒絕了原假設,這就是棄真,對圖2,懷孕了我們認為其沒有懷孕,這就是納偽。

在A/B Tset中,兩類錯誤的表現往往是:

棄真:我的實驗改動實際沒有用,但我認為它有用

納偽:我的實驗改動實際有用,但我認為它沒有用

在統計學中,我們用顯著性水平(α)來衡量犯第一類錯誤的概率,統計功效β來衡量犯第二類錯誤的概率,對於這兩類錯誤,一般來說我們認為第一類錯誤的危險性更大

比如我們做了一個產品上的改動通過AB實驗判斷它是對留存有促進作用,但這裡我們犯了第一類錯誤,改動上線後留存不增反降,可能就會造成了重大損失,所以我們會盡量降低犯第一類錯誤的風險,第二類錯誤也是需要避免的,只不過避免犯第一類錯誤的優先順序會更高。

顯著性水平(α)

上面我們提到了由於抽樣誤差可能會帶來犯二類錯誤的風險,幸運的是統計學為我們提供了指標去量化我們犯錯的可能性的有多大。

那麼顯著性水平(α)該怎麼運用呢?首先我們要先有這麼一個認知,由於抽樣誤差的存在,我們每次在總體中抽取樣本計算指標均值可能和“真實均值”都是有誤差的,但根據中心極限定理,如果我們在總體樣本中不斷的去抽取樣本計算指標均值,所得到的結果應會是近似正態分佈,分佈以真值會中心,均值越接近真值,出現的概率就越大

舉個例子,我們設計了一個新的策略並且認為這個策略可以提高使用者的人均停留時長,由此我們做出的原假設是“策略不能提高使用者的人均停留時長”,備擇假設是“策略可以提高使用者的人均停留時長”,已知策略生效前的使用者使用時長分佈如下圖所示,呈正態分佈。

現在我們在總體中隨機抽一部分樣本施加策略,計算其樣本使用時長均值,如果發現均值落在非紅色區域,那麼因為抽樣誤差也很有可能會出現這個取值,但如果均值落在了紅色區域,我們就認為“小概率的事件發生了“,根據假設檢驗的基本思想,“小概率事件在少量實驗中是幾乎不可能出現的”,我們就可以拒絕原假設“策略不能提高使用者的人均停留時長”,從而有很大的信心推斷策略生效了。

如果上面理解有困難的話,我們再舉一個通俗的例子,我有個朋友說他是一個射箭8環選手,平均成績是在8環,但我不信,我讓他射一次試一試,如果他只命中了1環,那我就有理由懷疑他是在騙我,因為對於一個平均成績在8環的射箭選手來說,射中1環是很小概率的事件。

容易看出,紅色區域的面積設定的越小,我們拒絕原假設的條件就嚴格,犯第一類錯誤的可能性就越小,顯著性水平(α) 就是我們能接受的犯第一類錯誤的可能性,一般來說,業界普遍設定顯著性水平(α) 為5%。

到這裡,我們就講完了A/B Test的基本統計學原理,下一章我們來聊聊“統計功效”。

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store