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