超全!AB-test白皮書(1)原理篇
編輯導(dǎo)語(yǔ):我們都知道產(chǎn)品推出和活動(dòng)策劃,最終是以用戶數(shù)據(jù)量來(lái)檢驗(yàn)是否成功,那么在正式推出前是需要提前預(yù)判效果。那么本文提出生物學(xué)上的對(duì)照實(shí)驗(yàn)方法“AB實(shí)驗(yàn)”,本文主要介紹AB實(shí)驗(yàn)的應(yīng)用場(chǎng)景、統(tǒng)計(jì)學(xué)原理以及常用的分層機(jī)制及其原理,值得閱讀學(xué)習(xí)。
考慮以下兩個(gè)場(chǎng)景:
場(chǎng)景1:過(guò)年前3天,產(chǎn)品X依據(jù)業(yè)務(wù)經(jīng)驗(yàn)信心滿滿上線新版首頁(yè)。全量鋪開一天后,DAU環(huán)比大幅下跌。下跌原因是新版首頁(yè)還是過(guò)年期間流量自然下跌?新版首頁(yè)到底好還是不好?
場(chǎng)景2:算法X與算法Y在同一天推全A、B兩個(gè)策略,全量上線后,成交效率直線上升。兩人為成交效率貢獻(xiàn)度吵得不可開交。
以上兩種問(wèn)題都可以通過(guò)AB實(shí)驗(yàn)來(lái)解決。AB實(shí)驗(yàn)源于生物學(xué)中的對(duì)照實(shí)驗(yàn),核心原理是通過(guò)隨機(jī)分流創(chuàng)造一個(gè)實(shí)驗(yàn)環(huán)境,使得實(shí)驗(yàn)組與對(duì)照組的唯一差異是待檢驗(yàn)的部分,從而觀察到的組間差異可以確認(rèn)與待檢驗(yàn)因素有因果關(guān)系。
AB實(shí)驗(yàn)核心價(jià)值能用對(duì)比分析、降風(fēng)險(xiǎn)、提效率來(lái)概括。通過(guò)AB測(cè)試,能夠準(zhǔn)確、定量的實(shí)現(xiàn)小成本試錯(cuò)以及高效率迭代。
一、AB實(shí)驗(yàn)原理
AB實(shí)驗(yàn)核心統(tǒng)計(jì)學(xué)原理是通過(guò)假設(shè)檢驗(yàn),來(lái)校驗(yàn)實(shí)驗(yàn)組與對(duì)照組的樣本均值差相對(duì)樣本方差來(lái)說(shuō)是否足夠大,是否能確定地說(shuō)實(shí)驗(yàn)組與對(duì)照組樣本均值的差異是穩(wěn)定的而非波動(dòng)導(dǎo)致。
一個(gè)典型的AB實(shí)驗(yàn)會(huì)經(jīng)歷設(shè)定預(yù)期、設(shè)定最小樣本量、AA校驗(yàn)、AB檢驗(yàn)共4個(gè)流程。
1. 設(shè)定預(yù)期
這個(gè)階段比較簡(jiǎn)單,直接給出包含指標(biāo)、漲跌幅的預(yù)期即可,例如GMV+0.5%,不喜歡該商品點(diǎn)擊率 -3%等。
2. 設(shè)定最小樣本量
首先引入以下兩個(gè)統(tǒng)計(jì)學(xué)概念:
第一類錯(cuò)誤(α):原假設(shè)為真時(shí)拒絕原假設(shè)的概率
第二類錯(cuò)誤(β):原假設(shè)為假時(shí)接收原假設(shè)的概率
原假設(shè)一般指不符合預(yù)期的情況,備擇假設(shè)則是期望發(fā)生的情況,例如實(shí)驗(yàn)期望GMV漲,則H0:GMV_diff=0、H1:GMV_diff>0。通俗的說(shuō):第一類錯(cuò)誤(α)指實(shí)驗(yàn)結(jié)果不符合預(yù)期但你以為它符合預(yù)期,拒絕了真的原假設(shè)(拒真);第二類錯(cuò)誤(β)指實(shí)驗(yàn)結(jié)果符合預(yù)期但你以為它不符合預(yù)期,接受了錯(cuò)誤的原假設(shè)(受偽)。
圖源:百度百科
樣本量越小,樣本方差越大,則一二類錯(cuò)誤概率越大,因此理論上實(shí)驗(yàn)樣本量越大越好。但在實(shí)踐中總會(huì)期望用最小的樣本量進(jìn)行試驗(yàn):1)試錯(cuò)成本:引發(fā)下跌的實(shí)驗(yàn)開20%流量與5%流量實(shí)驗(yàn)成本顯然不同 2)效率:?jiǎn)蝹€(gè)實(shí)驗(yàn)流量越大,能同時(shí)進(jìn)行的實(shí)驗(yàn)數(shù)也就越少,單個(gè)實(shí)驗(yàn)流量過(guò)大會(huì)影響業(yè)務(wù)整體迭代效率。因此需要找到一個(gè)平衡的樣本量能同時(shí)兼顧成本/效率以及準(zhǔn)確性。
通常在實(shí)際業(yè)務(wù)中,第二類錯(cuò)誤后果相對(duì)較為嚴(yán)重,因?yàn)榈谝活愬e(cuò)誤導(dǎo)致全量無(wú)效策略,第二類錯(cuò)誤則直接錯(cuò)失上漲機(jī)會(huì)。因此,一般使用power=1-β來(lái)確定實(shí)驗(yàn)最小樣本量。
以單邊檢驗(yàn)為例(實(shí)踐中單邊檢驗(yàn)較多,雙側(cè)檢驗(yàn)可以嘗試自行推導(dǎo)),假設(shè)實(shí)驗(yàn)預(yù)期目標(biāo)diff為△,d是不拒絕H0的臨界值。
得出:
計(jì)算最小樣本量可能是一件相對(duì)麻煩的事。通常需要將不同得到n1、n2及其對(duì)應(yīng)的s1和s2帶入公式中反復(fù)嘗試。
3. AA測(cè)試
AB試驗(yàn)開始前,一般會(huì)對(duì)空白的實(shí)驗(yàn)組和對(duì)照組進(jìn)行AA測(cè)試。AA實(shí)驗(yàn)應(yīng)該大概率通過(guò)檢驗(yàn),否則一定是埋點(diǎn)、分流、數(shù)據(jù)其中某些環(huán)節(jié)存在問(wèn)題。除此之外,AA測(cè)試還能有效預(yù)防以下兩種情況:
a.歷史實(shí)驗(yàn)對(duì)用戶的延遲效應(yīng):之前的實(shí)驗(yàn)影響可能持續(xù)到實(shí)驗(yàn)下線后,從而造成流量天然不平。
b.少數(shù)情況下樣本正態(tài)性不一定成立,需要通過(guò)AA測(cè)試來(lái)發(fā)現(xiàn)這一問(wèn)題。
AA測(cè)試具體統(tǒng)計(jì)學(xué)原理與AB測(cè)試一樣,在AB測(cè)試部分詳細(xì)展開
4. AB測(cè)試
總共有以下3個(gè)步驟,依然以單側(cè)檢驗(yàn)為例。
Step-1:假設(shè)
Step-2:構(gòu)造統(tǒng)計(jì)量
其中,△為實(shí)驗(yàn)預(yù)期
Step-3:比較臨界值并做出決策
單側(cè)檢驗(yàn)中,
當(dāng)Step2中的Z值小于臨界值時(shí),不拒絕原假設(shè),認(rèn)為實(shí)驗(yàn)沒有顯著效應(yīng);當(dāng)Step2中的Z值大于臨界值時(shí),拒絕原假設(shè),認(rèn)為實(shí)驗(yàn)存在顯著效應(yīng),實(shí)驗(yàn)成功!
Step-4:置信區(qū)間
雖然Step-3中已經(jīng)能夠說(shuō)明實(shí)驗(yàn)有效,但還需進(jìn)一步計(jì)算置信區(qū)間,增加實(shí)驗(yàn)結(jié)論攜帶的有效信息。
統(tǒng)計(jì)學(xué)意義是:實(shí)驗(yàn)的真實(shí)效果有1-α的概率落在置信區(qū)間內(nèi)
二、分層機(jī)制
如果一個(gè)實(shí)驗(yàn)需要10%流量的實(shí)驗(yàn)組與10%流量的對(duì)照組,那么在最理想情況下,單個(gè)層最多能同時(shí)運(yùn)行9個(gè)實(shí)驗(yàn)。當(dāng)以上實(shí)驗(yàn)效率不滿足業(yè)務(wù)發(fā)展需要時(shí),就應(yīng)該考慮實(shí)驗(yàn)分層了。
分桶可以理解為縱向切分流量,桶與桶之前互不重疊;分層則是橫向切分流量,層與層之間相互正交,一個(gè)用戶同時(shí)屬于多個(gè)不用層。有點(diǎn)類似城市中修建平房不能滿足居住需求時(shí),居住建筑就會(huì)變得越來(lái)越高,層數(shù)越來(lái)越多。
完全的正交使得layer1上的實(shí)驗(yàn)流量被均勻分配到layer2中,對(duì)layer2上的流量來(lái)說(shuō),實(shí)驗(yàn)與對(duì)照的唯一差距仍然是layer2實(shí)驗(yàn)中待檢驗(yàn)的部分,實(shí)驗(yàn)環(huán)境仍然成立。
層與層之間完全正交的前提是用戶在兩個(gè)層上完全被隨機(jī)打散,即兩個(gè)層相互獨(dú)立。用哈希算法來(lái)解決這個(gè)問(wèn)題就變得非常簡(jiǎn)單。只要鹽值變化,哈希算法就能給出不同的打散結(jié)果。常用的哈希算法有MD5和CRC兩種,具體算法與數(shù)據(jù)側(cè)關(guān)系不大,不做詳細(xì)展開。注意使用CRC算法時(shí)需要注意不同層的鹽值不應(yīng)取用類似layer1、layer2、layer3……比較相似的名稱。如下圖所示,CRC是典型的偽隨機(jī)算法,當(dāng)打散seeds(鹽值)過(guò)于相似時(shí),層與層之間并不相互獨(dú)立。
在層之外還有域的劃分(domain),域的劃分更適合獨(dú)立實(shí)驗(yàn),域和域之間也不會(huì)相互影響。發(fā)布層(Launch-Layer)則一般用來(lái)觀察n個(gè)策略的打包效果,確定本次集成發(fā)版的最終影響。
三、總結(jié)
本篇主要介紹AB實(shí)驗(yàn)的應(yīng)用場(chǎng)景、統(tǒng)計(jì)學(xué)原理以及常用的分層機(jī)制及其原理。如果認(rèn)真讀懂本篇,常規(guī)情境下的AB實(shí)驗(yàn)應(yīng)該都能搞定。
但在實(shí)踐中有很多情況會(huì)偏離常規(guī)情景,例如實(shí)驗(yàn)局部生效、分析單元與隨機(jī)單元不一致、多重檢驗(yàn)問(wèn)題、正態(tài)假設(shè)不滿足等。后續(xù)實(shí)踐篇中會(huì)逐步探討并介紹以上問(wèn)題的解決方法。
作者:Arwen的異想世界,互聯(lián)網(wǎng)電商大廠6.5年BI經(jīng)驗(yàn);公眾號(hào):Arwen的異想世界(ID:Arwendaodaodao)
本文由 @Arwen的異想世界 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議。
- 目前還沒評(píng)論,等你發(fā)揮!