ABtest對于網際網路人來說在熟悉不過了,尤其是一些做使用者營運或者使用者體驗的。很多網際網路公司把ABtest作為使用者增長的必殺器,市值增長的推手。其實在風控領域,ABtest依然很重要,可以做使用者下探,産品屬性偏好測試,模型效果對比等等。
一、ABTest的定義
ABTest本身其實是實體學的“控制變量法”,通過隻改變一個因素來确定其變化對CR(conversion rate)或者收益的影響。其本身具備統計意義,而且具備實際意義。
試想一下如果沒有ABTest,那新項目上線後的收益如何排除季節因素、市場環境因素的影響,而且一個頁面上如果同時做多處改動,如何評判是哪個改動造成的收益或損失?這對一個理性思維的人是不可接受的。
簡單了解為将一群人分成兩類,通過展示新舊版version A/B來測試哪種版本效果好,差異是多少。
二、實驗前的問題思考
2.1、你所做的實驗想證明的問題是啥?
設計同學:新上的這款設計對比原來的效果如何?是不是比原來更有,是否可以替換原來的設計。通常對比名額為點選率。
營運同學:借款産品免息券和還款券哪個效果最優呢,這時候也需要AB一下看看,通常名額為激活率,額度使用率。
産品同學:這類客群更偏好于3期的産品和6期的産品呢?怎麼測試有效呢?
風控同學:新上的模型和原來的模型,新上的政策與目前的政策比是否更有效?
2.2、怎麼設計對照組和實驗組?
對照組就是目前的樣子,而實驗組為我設定條件後的樣子。
請看下圖,登入的按鈕是藍色的背景,實驗組我想把登入的按鈕背景改成橙色,進而看看裝置登入率是否有提升。
三、樣本量
做A/B實驗需要足夠多的樣本量,對于網際網路公司來說,尤其做流量的其實樣本量以及足夠了,但是對于小樣本的實驗,就需要一定的樣本量,這樣對照實驗才有效。
3.1、為何要計算樣本量?
理論上來說:樣本量越多越好。
當樣本量較少的時候,很容易被個别樣本點的結果給帶偏,造成結果的不穩定,造成證據不充分情況。當樣本足夠多的時候,個别樣本就不會帶來樣本偏差,實驗的可靠性就較為穩定。
實際上來說:樣本量越少越好。
試錯成本高:假設50%的實驗組,50%的對照組,如果50%的實驗組表現不佳,會直接帶來損失。
流量成本高:在沒有足夠多的流量的情況下,50%的實驗組對應的流量會被浪費。
3.2、置信度與檢測效能
3.2.1、兩類錯誤和兩個假設
兩類錯誤:
第一類錯誤:原假設為真的時候,拒絕原假設的機率 。α
第二類錯誤:原假設為假的時候,接受原假設的機率。β
舉一個風控的案列:
作為銀行的客戶經理,,在判斷是不是要放貸給某個客戶。如果客戶的信用好,就貸款給他;如果客戶的信用不好,就不貸款給他。
兩個假設:
原假設(H0):這個客戶信用好 。
備擇假設(H1):這個客戶信用不好。
1、原假設正确,即這個客戶信用好,但是實際我判斷這個客戶不好。由于判斷錯誤,我們把這類錯誤定位為第一類錯誤(Type I error)。我們把第一類錯誤出現的機率用α表示。置信度 = 1-α。第一類錯誤意味這個客戶沒有給他通過,造成了我的利息收入損失, 即為α越小越好。實際操作中,我們人為的對α定了一個上限,一般是5%。也就是說,在做實驗的時候,我們都會保證第一類錯誤出現的機率永遠不超過5%。
2、原假設錯誤,即這個為壞,但是實際我判斷這個客戶為好,這類錯誤叫做第二類錯誤(Type II error),用β表示。我們一般定義第二類錯誤β不超過20%。如果這個客戶本身是壞的,但是我判斷下來為好,我放款給他,就會造成本金的損失。不犯第二類錯誤的機率,也就是“1-犯第二類錯誤的機率”,叫做檢驗能力power of the test。
3.3、樣本量計算
3.3.1、Z檢驗樣本量确定
1、統計功效公式推導
2、樣本量計算
上述推導出了統計功效的計算公式,當然計算樣本量已經有很多工具,比如Z檢驗計算樣本量工具,這個工具中也提供了計算公式,與上面推導出的類似,注意差別在于這個工具的
是下分位點,上述推導是上分位點。
從這個網站的公式中也可以看到樣本量的計算公式。
3、求解樣本量
python中提供了假設檢驗的函數(R中也有類似的函數,參考pwr功效分析R包),Z檢驗的函數定義如下,使用的時候提供參數,留一個未知參(None),傳回值為未知參數的計算結果,看後面的具體例子。
使用Z檢驗計算樣本量工具,結果為6267,與上述計算結果差異較小,猜測為效應量公式不同。使用另一個Z檢驗計算樣本量工具計算結果則相同,為6280
3.3.3、卡方檢驗樣本量确定
卡方檢驗的推導思路應該與Z檢驗大緻相同,我沒有去嘗試,這裡直接用python函數求解,并與工具對比。
1、求解樣本量
python提供的卡方檢驗函數如下,使用方法與Z檢驗的函數相同。
卡方檢驗中,四格表的效應量計算公式如下(百度百科-效應量):
假設原方案的留存率為0.40,新方案的留存率預計為0.45,方差為1,則求解樣本量如下:
使用python函數計算,樣本量為3068,則每組1534
使用卡方檢驗計算樣本量工具結果如下,每組樣本量為1514,與上述函數結果有較小差異。
使用另一個卡方檢驗計算樣本量工具結果如下,每組樣本量也為1514
兩個工具均為1514,猜測與我們自己計算的結果不同原因為效應量計算方式不同。
四、确定實驗名額
在進行實驗時一般是比較實驗組和對照組在某些名額上是否存在差異,當然更多時候是看實驗組相比對照組某個名額表現是否更好。是以我們在進行實驗之前就應該先确定好實驗中需要需要對比的名額,更多時候我們關注的比例類的名額,如點選率、轉化率、留存率、逾期率、激活率等。後續我們做實驗的顯著性分析的時候,也是分析的比例類名額。
參考資料
【機率論】- (3)AB實驗樣本量确定 - 知乎 (zhihu.com)
如何做一次完美的 ABTest?- 知乎 (zhihu.com)
做AB實驗該選多少樣本量?- 知乎 (zhihu.com)