從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

22 評(píng)論 33778 瀏覽 162 收藏 26 分鐘

編輯導(dǎo)語:AB Test,即有A、B兩個(gè)設(shè)計(jì)版本。通過小范圍發(fā)布,得到并比較這兩個(gè)版本之間你所關(guān)心的數(shù)據(jù),最后選擇效果最好的版本。對(duì)于互聯(lián)網(wǎng)產(chǎn)品來說,通過A/B測試提升點(diǎn)擊轉(zhuǎn)化率,優(yōu)化獲客成本可以得到越來越多的關(guān)注。本文作者從案例實(shí)戰(zhàn)出發(fā),為我們分享了AB Test系統(tǒng)設(shè)計(jì)及其原理。

在實(shí)際工作中,我們經(jīng)常會(huì)遇到這種問題,準(zhǔn)備上線的新策略真的會(huì)比老策略好嗎?遇到這些問題總是讓人不知所措左右為難,難道真的只能遇事不決量子力學(xué)了嗎?

在數(shù)據(jù)驅(qū)動(dòng)時(shí)代,只要你遇到的問題是數(shù)據(jù)可量化的,還真的有這么一個(gè)萬能工具能回答你的這些困惑,它就是A/B Test。

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

相信大家對(duì)A/B Test并不陌生,但大部分人僅僅處在了解階段,在真正動(dòng)手做A/B Test實(shí)驗(yàn)的時(shí)候還是會(huì)遇到各種各樣的問題。

如果你也遇到過以上問題,那我們今天就從數(shù)據(jù)產(chǎn)品經(jīng)理的角度通過實(shí)戰(zhàn)案例一起來探討一下A/B Test具體怎么做及其里面的原理是什么,以及如何將A/B Test產(chǎn)品化。

一、A/B Test的前世今生

A/B Test的思想最初應(yīng)用于化學(xué)、生物、醫(yī)療等傳統(tǒng)學(xué)術(shù)研究領(lǐng)域,叫做雙盲實(shí)驗(yàn),在2000年由谷歌引進(jìn)到在互聯(lián)網(wǎng)中進(jìn)行了第一次A/B Test。A/B Test解決的是在現(xiàn)有認(rèn)知下不確定哪種方案更優(yōu)的問題,避免了拍腦袋決策,那么什么場景下適合做A/B Test呢?

首先有兩個(gè)條件:

  1. 有兩個(gè)到多個(gè)待選方案;
  2. 有最直接的數(shù)據(jù)指標(biāo)可衡量各待選方案,如:比率、數(shù)值。

目前A/B Test比較常見的應(yīng)用場景如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

二、abtest案例引出

關(guān)于A/B Test的案例有很多,最常見的無非就是一個(gè)按鈕的顏色或者是按鈕的文案,雖然很經(jīng)典但未免太簡單,以至于有的地方涉及到的實(shí)驗(yàn)知識(shí)點(diǎn)無法詳細(xì)展開。今天我們就拿一個(gè)工作中的實(shí)際例子來舉例:

某產(chǎn)品想上線付費(fèi)發(fā)表情功能,于是產(chǎn)品同學(xué)A設(shè)計(jì)了一套付費(fèi)引導(dǎo)流程:點(diǎn)擊表情按鈕->彈出付費(fèi)引導(dǎo)彈窗->點(diǎn)擊付費(fèi)彈窗支付按鈕->支付成功。

在需求評(píng)審上,產(chǎn)品同學(xué)B提出了不同意見:為什么不在用戶點(diǎn)擊具體某個(gè)表情的時(shí)候再彈出付費(fèi)彈窗,使用如下引導(dǎo)邏輯:點(diǎn)擊表情按鈕->彈出表情面板->點(diǎn)擊具體某個(gè)表情->彈出付費(fèi)引導(dǎo)彈窗->點(diǎn)擊付費(fèi)彈窗支付按鈕->支付成功。

根據(jù)以上邏輯,兩個(gè)方案的轉(zhuǎn)化漏斗如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

假設(shè):點(diǎn)擊表情按鈕人數(shù)=n,那么兩個(gè)方案看到付費(fèi)引導(dǎo)彈窗用戶數(shù)分別為:

  • A方案看到付費(fèi)引導(dǎo)彈窗人數(shù) = n*x%
  • B方案看到付費(fèi)引導(dǎo)彈窗人數(shù) = n*100%*a%*100%=n*a%

付費(fèi)用戶數(shù)分別為:

  • A方案付費(fèi)用戶數(shù) = A方案看到付費(fèi)引導(dǎo)彈窗人數(shù)*y%*z% = n * x% * y% * z%
  • B方案付費(fèi)用戶數(shù) = B方案看到付費(fèi)引導(dǎo)彈窗人數(shù)*b%*c% = n * a% * b% * c%

針對(duì)兩個(gè)方案孰優(yōu)孰劣,兩個(gè)產(chǎn)品同學(xué)分別給出了以下觀點(diǎn):

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

就這樣,兩個(gè)產(chǎn)品同學(xué)誰都說服不了誰,最終一致決定做個(gè)A/B Test看看用戶的真實(shí)選擇,是騾子是馬牽出來溜溜就知道了。

三、abtest實(shí)驗(yàn)設(shè)計(jì)

1. 版本設(shè)計(jì)

實(shí)驗(yàn)版本的設(shè)計(jì)要遵循變量的單一性,不能一下子改變多個(gè)因素,如同一個(gè)按鈕不能同時(shí)改變按鈕顏色和按鈕文字,實(shí)驗(yàn)設(shè)計(jì)越簡單越容易得出正確的結(jié)論。

案例時(shí)間:

2. 實(shí)驗(yàn)時(shí)長

業(yè)界的實(shí)驗(yàn)時(shí)長一般是2-3周,最短時(shí)長建議不要少于7天。因?yàn)椴煌掌诨钴S的用戶群體可能不一樣,所以最好要覆蓋一個(gè)周期,如7天、14天、21天。

那實(shí)驗(yàn)時(shí)長是不是越長越好呢,也不是的,實(shí)驗(yàn)時(shí)間過長會(huì)把各版本的區(qū)別拉平了,不同時(shí)期用戶對(duì)不同策略的反應(yīng)不一樣。

例如0元奪寶玩法剛出來的時(shí)候用戶會(huì)特別感興趣,時(shí)間久了大家都知道這是一個(gè)套路會(huì)慢慢免疫選擇性忽略掉,在玩法誕生之初進(jìn)行實(shí)驗(yàn)可能效果會(huì)很顯著,時(shí)間長了之后這玩法的效果就會(huì)慢慢下降。

實(shí)驗(yàn)結(jié)果也是有時(shí)效性的,僅對(duì)當(dāng)前時(shí)間當(dāng)前用戶群有效果并不是放之四海而皆準(zhǔn),所以實(shí)驗(yàn)時(shí)間不宜過長,應(yīng)快速驗(yàn)證快速迭代。

3. 選擇指標(biāo)

一個(gè)改動(dòng)影響的指標(biāo)可能是多方面的,例如更改了加購物車按鈕的顏色,點(diǎn)擊該按鈕的人可能會(huì)增多,從而間接導(dǎo)致下單的人數(shù)增多。那如何從眾多指標(biāo)當(dāng)中選擇出實(shí)驗(yàn)效果指標(biāo)呢?可以從以下幾個(gè)方面進(jìn)行篩選:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

既然直接效果指標(biāo)已經(jīng)可以決定實(shí)驗(yàn)的成敗,為什么還要添加其他間接指標(biāo)呢,這就涉及到一個(gè)取舍問題了,不是實(shí)驗(yàn)成功了就一定要上線最佳版本。

假如實(shí)驗(yàn)版本確實(shí)有提升,但付出的成本有點(diǎn)大,那就要權(quán)衡下利弊再?zèng)Q定要不要上線新版本。又或者實(shí)驗(yàn)版本對(duì)我們想要提升的指標(biāo)有顯著效果,但影響到了其他指標(biāo)的大幅下降,這時(shí)候也需要我們進(jìn)行權(quán)衡。

具體可視當(dāng)前產(chǎn)品北極星指標(biāo)而定,如當(dāng)前產(chǎn)品戰(zhàn)略目標(biāo)為營收,該實(shí)驗(yàn)雖對(duì)用戶活躍有影響但能提高營收,也是可以全量上線新版本的,但當(dāng)前戰(zhàn)略目標(biāo)為有效日活,那就要慎重考慮新版本的上線問題了。

4. 案例時(shí)間

基于前面的例子,影響最為直接的指標(biāo)為點(diǎn)擊付費(fèi)彈窗支付按鈕人數(shù),但是這個(gè)跟各實(shí)驗(yàn)組具體人數(shù)也有關(guān)系,所以應(yīng)該轉(zhuǎn)化為比率。

分母應(yīng)該是點(diǎn)擊表情按鈕人數(shù)而不是展示付費(fèi)引導(dǎo)彈窗人數(shù),因?yàn)閮蓚€(gè)版本的展示付費(fèi)引導(dǎo)彈窗觸發(fā)條件不一樣,方案B已經(jīng)人為的過濾掉一批低質(zhì)量用戶,必然會(huì)對(duì)展示點(diǎn)擊率產(chǎn)生影響。

本實(shí)驗(yàn)間接影響的正向指標(biāo)為付費(fèi)人數(shù),同理也需轉(zhuǎn)化為付費(fèi)率。正如產(chǎn)品同學(xué)A所說,發(fā)表情改為付費(fèi)發(fā)送會(huì)降低那些點(diǎn)擊表情按鈕意欲發(fā)表情的用戶的體驗(yàn),有關(guān)用戶活躍性的指標(biāo)同時(shí)也需要關(guān)注,如:人均使用時(shí)長、留存率,這些活躍性指標(biāo)均可作為本實(shí)驗(yàn)的負(fù)向指標(biāo)來關(guān)注。

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

5. 計(jì)算最小樣本量

之所以要計(jì)算最小樣本量,主要有以下幾點(diǎn)原因:

  1. 樣本量太小不能代表整體的情況,容易受到偶然因素影響,這就要求計(jì)算出至少抽取多少樣本量才能代表整體情況;
  2. 避免浪費(fèi)流量,通常有多個(gè)迭代同時(shí)進(jìn)行,給其他迭代留出實(shí)驗(yàn)空間;
  3. 如果實(shí)驗(yàn)是負(fù)向的,可以避免帶來大面積不必要的損失。

1)計(jì)算最小樣本量兩種檢驗(yàn)方法

Z檢驗(yàn):檢驗(yàn)實(shí)驗(yàn)組和對(duì)照組服從分布的均值是否相等

卡方檢驗(yàn):檢驗(yàn)實(shí)驗(yàn)組是否服從理論分布(將對(duì)照組的分布視為理論分布)

在A/B Test中常見的檢驗(yàn)方法為Z檢驗(yàn),下面就以Z檢驗(yàn)為例計(jì)算最小樣本量,在這之前先來了解下以下知識(shí)點(diǎn):

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

  • α:表示出現(xiàn)第一類錯(cuò)誤的概率,也稱為顯著性水平,常見的取值有1%、5%、10%、20%,一般取值5%,即犯第一類錯(cuò)誤的概率不超過5%,常見的表示方法為:1-α,稱為統(tǒng)計(jì)顯著性,表示有多大的把握不誤診。
  • β:表示出現(xiàn)第二類錯(cuò)誤的概率,一般取值20%,更常見的表示方式為統(tǒng)計(jì)功效power=1-β,即有多大把握能檢查出版本差異。

從兩類錯(cuò)誤上限的取值(α是5%,β是20%)我們可以了解到A/B Test的重要理念:寧肯砍掉多個(gè)好的產(chǎn)品,也不要讓一個(gè)不好的產(chǎn)品上線。

指標(biāo)基線:原有方案的指標(biāo),有可能是數(shù)值,有可能是比率,取決于選擇的直接效果指標(biāo)。這個(gè)指標(biāo)由歷史數(shù)據(jù)得出,如果是一個(gè)全新的版本實(shí)驗(yàn)沒有歷史數(shù)據(jù),可參考其他類似功能的指標(biāo)數(shù)據(jù),若都沒有只能根據(jù)經(jīng)驗(yàn)大概給出一個(gè)基準(zhǔn)值。

MDE:檢驗(yàn)靈敏度,以下用Δ表示,新方案的直接效果指標(biāo)與指標(biāo)基線差值的絕對(duì)值,即新方案與舊方案的區(qū)別有多大,該參數(shù)越大需要的樣本量越少。

方差:方差的計(jì)算方式根據(jù)直接核心指標(biāo)是數(shù)值或者比率決定,兩種類型計(jì)算方式如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

單/雙尾檢驗(yàn):用哪一種類型檢驗(yàn)視原假設(shè)而定,若原假設(shè)為新舊方案無區(qū)別用雙尾檢驗(yàn),使用場景為樣本量計(jì)算或者AA測試;若原假設(shè)為新方案優(yōu)于舊方案或舊方案優(yōu)于新方案則用單尾檢驗(yàn),后面用到的實(shí)驗(yàn)結(jié)果評(píng)估用的則是單尾檢驗(yàn)。

Z值:該值可以依據(jù)α和β指標(biāo)確定出對(duì)應(yīng)的Z值,有固定的Z值表可以查,也可以通過excel的NORMSINV函數(shù)計(jì)算。

鑒于篇幅問題,后續(xù)有時(shí)間再專門寫一篇詳細(xì)介紹Z檢驗(yàn),下面直接貼Z檢驗(yàn)樣本量計(jì)算公式出來吧(這里使用雙尾檢驗(yàn)因此使用α/2):

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

2)案例時(shí)間

計(jì)算樣本量之前首先要獲取歷史的支付按鈕點(diǎn)擊率,一般取最近一個(gè)月的歷史數(shù)據(jù),以下是最近一個(gè)月的支付按鈕點(diǎn)擊率數(shù)據(jù):

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

  • 根據(jù)歷史數(shù)據(jù)計(jì)算出支付按鈕點(diǎn)擊率均值p:

p=(0.075+0.079+0.087+……+0.083+0.077+0.081) / 30=0.08

  • 根據(jù)支付按鈕點(diǎn)擊率均值p計(jì)算出方差:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

  • 確定MDE值,新方案至少比舊方案提升多少才能達(dá)到我們的預(yù)期,即計(jì)算新方案的ROI,避免實(shí)際收益不能彌補(bǔ)新方案的研發(fā)和推廣成本,這里我們?nèi)”仍桨柑嵘?0%,即新方案期望的點(diǎn)擊率為:p(新方案支付按鈕點(diǎn)擊率)=0.08*(1+10%)=0.088,可得MDEΔ=0.088-0.008=0.008;
  • 計(jì)算Z值,本實(shí)驗(yàn)中我們?nèi)ˇ?5%,β=20%,通過NORMSINV計(jì)算,得:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

  • 從以上數(shù)據(jù),計(jì)算最終所需樣本量為:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

通過以上計(jì)算,每個(gè)實(shí)驗(yàn)組需要18053人,有兩個(gè)實(shí)驗(yàn)組則總需18053*2=36106人。

6. 圈選用戶

計(jì)算出了實(shí)驗(yàn)所需人數(shù),下一步就是從總用戶群體中抽取出對(duì)應(yīng)人數(shù)進(jìn)行實(shí)驗(yàn),這一步我們將會(huì)面臨著兩個(gè)問題:如何從一個(gè)總體中按一定比例抽取隨機(jī)樣本;如果同時(shí)進(jìn)行的實(shí)驗(yàn)中有互斥的怎么辦。

針對(duì)以上兩個(gè)問題我們有以下三種解決方案,下面分別介紹下:

1)單層方案

所有流量按某個(gè)參數(shù)(UserID,DeviceID、CookieID、手機(jī)號(hào)等)分成n個(gè)桶,假設(shè)選定UserID,有以下兩種方法:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

以上解決了隨機(jī)性問題,并沒有解決實(shí)驗(yàn)互斥的問題,只能靠人工給各實(shí)驗(yàn)指定分組進(jìn)行實(shí)驗(yàn)。

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

2)多層方案

單層方案適合簡單的驗(yàn)證,不適合長期大規(guī)模做交叉實(shí)驗(yàn),流量利用效率太低,且隨機(jī)組不好把握,最終容易造成某一組用戶指標(biāo)明顯優(yōu)于其他組。

為了解決以上問題,多層分組方案應(yīng)運(yùn)而生,人為定義一些分層,如:UI 層、推薦算法層,每一層中再對(duì)用戶隨機(jī)分組,即可實(shí)現(xiàn)同一個(gè)用戶出現(xiàn)在不同層的不同組里面,做到流量的重復(fù)利用。具體實(shí)現(xiàn)方法如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

從上圖看到流量經(jīng)過每一層時(shí)都會(huì)被打散重新分配,下一層每一組的流量都隨機(jī)來源于上一層各組的流量,如推薦算法層的0組用戶均勻來源于UI層的0、1、2……n組用戶。

如此一來我們只需要指定實(shí)驗(yàn)處于哪一層,系統(tǒng)就可計(jì)算出該層還有多少剩余流量然后自動(dòng)分配,即使實(shí)驗(yàn)不互斥也沒必要共用相同的實(shí)驗(yàn)組。

3)無層方案

多層方案做到了流量的重復(fù)利用,但是并沒有發(fā)揮出最大的重復(fù)利用價(jià)值。

單獨(dú)看每一層,其實(shí)就是一個(gè)單層方案,并沒有從根本上解決問題,只不過是復(fù)制出來多幾層而已,如果某一層實(shí)驗(yàn)非常多,還是會(huì)存在流量不夠用的情況,這就衍生出了無層方案。

所謂無層,就是每個(gè)實(shí)驗(yàn)都是單獨(dú)一層,具體實(shí)現(xiàn)方法如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

如此一來確保了每個(gè)實(shí)驗(yàn)都單獨(dú)占有所有流量,可以取任意組的流量進(jìn)行實(shí)驗(yàn),但是又引進(jìn)了新的問題,多層方案將實(shí)驗(yàn)的互斥在層內(nèi)進(jìn)行了限制,無層會(huì)導(dǎo)致同一個(gè)用戶命中多個(gè)實(shí)驗(yàn),即使這些實(shí)驗(yàn)是互斥的。

顯然這樣子是絕對(duì)不允許的,解決方法是賦予每個(gè)實(shí)驗(yàn)優(yōu)先級(jí),例如按上線優(yōu)先級(jí)排序,優(yōu)先將流量賦予高優(yōu)先級(jí)用戶。也可以在創(chuàng)建實(shí)驗(yàn)的時(shí)候如果有互斥實(shí)驗(yàn),新創(chuàng)建實(shí)驗(yàn)的分組算法復(fù)用已有實(shí)驗(yàn)的實(shí)驗(yàn)ID進(jìn)行分組即可避免。

以上分流算法最終會(huì)形成n個(gè)組,需要進(jìn)行AA實(shí)驗(yàn)驗(yàn)證分組是否均勻。驗(yàn)證各組之間無顯著性差異后即可從n組中隨機(jī)抽取出某幾組達(dá)到實(shí)驗(yàn)所需的用戶量進(jìn)行實(shí)驗(yàn)。

四、abtest實(shí)驗(yàn)評(píng)估

流量經(jīng)過分流后進(jìn)入到每個(gè)實(shí)驗(yàn)組,經(jīng)過一段時(shí)間后各實(shí)驗(yàn)版本將會(huì)產(chǎn)生實(shí)驗(yàn)數(shù)據(jù),經(jīng)過統(tǒng)計(jì)各組數(shù)據(jù)之間是否存在顯著性差異以及差異大小,就可以得出各版本之間是否有差異,哪個(gè)版本更好的結(jié)論。

顯著性檢驗(yàn)同樣有多種方法:T檢驗(yàn)、Z檢驗(yàn)、卡方檢驗(yàn)。

Z檢驗(yàn)使用的是總體方差,T檢驗(yàn)使用的是樣本方差,卡方檢驗(yàn)是比較兩組數(shù)值的分布,因此Z檢驗(yàn)比T檢驗(yàn)和卡方檢驗(yàn)效果更明顯,檢驗(yàn)精確度是:Z檢驗(yàn)>T檢驗(yàn)>卡方檢驗(yàn),下面以Z檢驗(yàn)為例進(jìn)行介紹。

AB測試需要比較出哪個(gè)實(shí)驗(yàn)組表現(xiàn)更好,因此使用的是單尾檢驗(yàn)。原假設(shè)為新方案不優(yōu)于舊方案,然后計(jì)算出在原假設(shè)成立的條件下,計(jì)算所得實(shí)驗(yàn)樣本數(shù)據(jù)特征的概率原假設(shè)發(fā)生的概率P值,和顯著性水平α進(jìn)行比較以判斷是否拒絕原假設(shè)。

如果P值小于顯著性水平,說明我們?cè)谠僭O(shè)的條件下幾乎不會(huì)得到這樣的數(shù)據(jù),所以我們應(yīng)該拒絕原假設(shè)。取顯著性水平α為5%,具體步驟如下:

1. 計(jì)算Z值

根據(jù)實(shí)驗(yàn)數(shù)據(jù)得到對(duì)照組均值為p1、實(shí)驗(yàn)樣本數(shù)n1,實(shí)驗(yàn)組均值為p2、實(shí)驗(yàn)樣本數(shù)n2,有以下公式:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

2. 得出實(shí)驗(yàn)結(jié)果

1)方法一

將上一步得到的Z值與α對(duì)應(yīng)的Z值比較,如果Z(實(shí)際) >= Z(1- α),則拒絕原假設(shè),可通過Excel函數(shù)計(jì)算。

  • 【雙側(cè)檢驗(yàn)】NORMSINV(1-α/2)。例如:NORMSINV(1-0.05/2)=1.959963985
  • 【單側(cè)檢驗(yàn)】NORMSINV(1-α)。例如:NORMSINV(1-0.05)=1.644853627

2)方法二

根據(jù)上一步得到的Z值計(jì)算出P值,與顯著性水平α比較,如果P < α, 則拒絕原假設(shè),若兩者相等,可加大樣本量后再驗(yàn)證。

P之計(jì)算方式:【雙側(cè)檢驗(yàn)】P值=(1-NORMSDIST(Z(實(shí)際)))*2,例如:(1-NORMSDIST(1.96))*2=0.024997895*2=0.05【單側(cè)檢驗(yàn)】P值=1-NORMSDIST(Z(實(shí)際)),例如:1-NORMSDIST(1.96)=0.024997895=0.025。

3. 案例時(shí)間

通過一段時(shí)間的實(shí)驗(yàn),各實(shí)驗(yàn)組人數(shù)為方案A:n1=18953,方案B:n2=18879,點(diǎn)擊率數(shù)據(jù)得到如下:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

根據(jù)歷史數(shù)據(jù)計(jì)算出支付按鈕點(diǎn)擊率均值p:

p1=(0.078+0.084+0.075+……+0.081+0.075+0.082) / 14=0.081

P2=(0.086+0.092+0.091+……+0.087+0.088+0.089) / 14=0.089

1)計(jì)算Z值

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

2)計(jì)算P值

P=1-NORMSDIST(Z(實(shí)際))= 1-NORMSDIST(2.789943083)= 0.002635865

3)得出結(jié)論

P值0.002635865遠(yuǎn)小于顯著性水平0.05,說明在當(dāng)前的數(shù)據(jù)表現(xiàn)下,原假設(shè)幾乎不可能發(fā)生,拒絕原假設(shè),認(rèn)為方案B是優(yōu)于方案A的。

4)計(jì)算置信區(qū)間

顯然我們?cè)僮鲆淮螌?shí)驗(yàn)的話方案B的支付按鈕點(diǎn)擊率均值不一定還是0.089,有可能會(huì)上下波動(dòng),那么這個(gè)波動(dòng)范圍是多少呢,我們可以由樣本統(tǒng)計(jì)量構(gòu)成的總體參數(shù)計(jì)算出估計(jì)區(qū)間。計(jì)算公式如下:

標(biāo)準(zhǔn)誤是描述樣本均數(shù)的抽樣誤差,樣本的標(biāo)準(zhǔn)誤差為(n為樣本量):

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

樣本均值為p,樣本置信區(qū)間為:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

方案B的均值為0.089,方差為0.081079,顯著性水平為5%,樣本量為18879,則方案B的標(biāo)準(zhǔn)誤為:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

可計(jì)算出方案B的置信區(qū)間為:

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

這意味著,將方案B應(yīng)用到總體用戶,支付按鈕點(diǎn)擊率有95%的概率落到[0.085,0.093]這個(gè)區(qū)間。

五、abtest系統(tǒng)核心功能架構(gòu)圖

經(jīng)過上面的分析,我們已經(jīng)知道了A/B Test的完整流程。

一個(gè)產(chǎn)品需要測試的點(diǎn)往往是非常多的,如果每次實(shí)驗(yàn)都要像上面那樣人工走一遍顯然效率是非常低的,A/B Test又是近年興起的增長黑客的秘密武器,需要進(jìn)行快速迭代快速驗(yàn)證,所以將以上流程自動(dòng)化是非常有必要的。

下面我們就來看看A/B Test系統(tǒng)需要哪些模塊,各模塊之間是怎么配合的。

從案例實(shí)戰(zhàn)看AB Test系統(tǒng)設(shè)計(jì)及其原理

1. 配置模塊

  1. 配置實(shí)驗(yàn)名稱、版本等信息;
  2. 選擇實(shí)驗(yàn)指標(biāo),并從數(shù)據(jù)倉庫獲取所有實(shí)驗(yàn)的指標(biāo)配置,若有當(dāng)前在運(yùn)行的實(shí)驗(yàn)與本次實(shí)驗(yàn)選擇指標(biāo)一致,則自動(dòng)化選擇該實(shí)驗(yàn)為互斥實(shí)驗(yàn);
  3. 選擇實(shí)驗(yàn)對(duì)象,如圈選進(jìn)行過充值的用戶進(jìn)行實(shí)驗(yàn);
  4. 根據(jù)配置的指標(biāo)及統(tǒng)計(jì)參數(shù),計(jì)算出需要多少用戶量,根據(jù)選擇的實(shí)驗(yàn)對(duì)象,從數(shù)倉中同步選擇的實(shí)驗(yàn)對(duì)象每天有多少該實(shí)驗(yàn)對(duì)象用戶,計(jì)算出需要多少天才能達(dá)到最小樣本量,并自動(dòng)化推薦實(shí)驗(yàn)時(shí)長。

2. 預(yù)警模塊

若實(shí)驗(yàn)快到期,或者實(shí)驗(yàn)樣本量與預(yù)期的出入較大,則向業(yè)務(wù)方預(yù)警及時(shí)進(jìn)行調(diào)整。

3. 分流模塊

實(shí)驗(yàn)配置好并上線后,用戶訪問APP時(shí),向該模塊該用戶對(duì)應(yīng)的實(shí)驗(yàn)配置信息,分流模塊根據(jù)現(xiàn)有正運(yùn)行的實(shí)驗(yàn)配置,計(jì)算出該用戶屬于哪些實(shí)驗(yàn),進(jìn)行互斥處理后返回對(duì)應(yīng)最終實(shí)驗(yàn)的版本,客戶端展示對(duì)應(yīng)的實(shí)驗(yàn)版本。

4. 分析模塊

  1. 從數(shù)據(jù)倉庫中讀取實(shí)驗(yàn)的指標(biāo)數(shù)據(jù)、樣本量數(shù)據(jù)、其他輔助指標(biāo)數(shù)據(jù),進(jìn)行分析;
  2. 針對(duì)每天新進(jìn)實(shí)驗(yàn)組的用戶數(shù)據(jù),進(jìn)行同期群分析,觀察每天新增實(shí)驗(yàn)用戶的數(shù)據(jù)波動(dòng)情況,常見應(yīng)用于留存分析。

 

本文由 @不語 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自?Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 好專業(yè) 當(dāng)教材學(xué)習(xí)了!

    來自浙江 回復(fù)
  2. 我想問下 假設(shè)的是新方案不優(yōu)于舊方案,是否在計(jì)算z的時(shí)候就使用p2-p1,如果假設(shè)新方案優(yōu)于舊方案,那要怎么減呢?
    假設(shè)和p2-p1相減順序的關(guān)系是什么

    來自浙江 回復(fù)
  3. 我們公司推薦 搜索業(yè)務(wù)都有涉及到abtest 文章內(nèi)容對(duì)比實(shí)際場景收獲不少 感謝~

    來自北京 回復(fù)
  4. 這里概率類指標(biāo)的方差應(yīng)該是綜合方差吧? p1(1-p1)+p2(1-p2)

    來自上海 回復(fù)
  5. 您好,非常感謝您的文章,學(xué)到了很多。但對(duì)于文中對(duì)于雙尾檢驗(yàn)及單尾檢驗(yàn)的部分有些疑惑,希望能夠得到博主更為詳實(shí)的講解~
    第一部分:
    1 三、abtest實(shí)驗(yàn)設(shè)計(jì)→5. 計(jì)算最小樣本量→1)計(jì)算最小樣本量兩種檢驗(yàn)方法→單/雙尾檢驗(yàn)講解部分中,提到“原假設(shè)為新方案優(yōu)于舊方案或舊方案優(yōu)于新方案則用單尾檢驗(yàn),后面用到的實(shí)驗(yàn)結(jié)果評(píng)估用的則是單尾檢驗(yàn)?!贝藭r(shí)重點(diǎn)為單尾檢驗(yàn)。
    2 在兩行后中對(duì)于樣本量的計(jì)算使用了雙尾檢驗(yàn):“下面直接貼Z檢驗(yàn)樣本量計(jì)算公式出來吧(這里使用雙尾檢驗(yàn)因此使用α/2)”
    在此想請(qǐng)問,是否在設(shè)計(jì)中明確標(biāo)識(shí)針對(duì)本文中的案例所設(shè)立的假設(shè),以及使用的驗(yàn)證方法?
    第二部分:
    四、abtest實(shí)驗(yàn)評(píng)估→2. 得出實(shí)驗(yàn)結(jié)果→1)方法一→此部分計(jì)算了雙尾檢驗(yàn)(a/2)的Z值為1.9599,單尾檢驗(yàn)(a)的Z值為1.6448,
    但在接下來的 2)方法二→P之計(jì)算方式中,“【單側(cè)檢驗(yàn)】P值=1-NORMSDIST(Z(實(shí)際)),例如:1-NORMSDIST(1.96)=0.024997895=0.025。”
    實(shí)際單側(cè)檢驗(yàn)的數(shù)值上面有計(jì)算為1.6448,整體是否應(yīng)該修改為“【單側(cè)檢驗(yàn)】P值=1-NORMSDIST(Z(實(shí)際a)),例如:1-NORMSDIST(1.6448)=0.05。” 又該如何解讀呢?
    第三部分:
    對(duì)于統(tǒng)計(jì)學(xué)部分,我還是個(gè)小白,想請(qǐng)教博主,針對(duì)本文中的案例,若原假設(shè)為“AB兩組沒有明顯差異”,應(yīng)使用文中提到的雙尾檢驗(yàn),但如果原假設(shè)為“A組效果高于B組”,整個(gè)的實(shí)驗(yàn)流程及檢驗(yàn)是否會(huì)有一個(gè)新的計(jì)算流程及解讀呢?
    萬望博主能夠賜教~不勝感激

    來自上海 回復(fù)
  6. 我有很多問題想要問你,加個(gè)微信吧

    來自北京 回復(fù)
  7. 你好,想問下文章中的三種分流方案,主流的abtest都是用哪一個(gè)呀?感覺每一個(gè)方案都有缺點(diǎn)…

    來自廣東 回復(fù)
    1. 沒有主流這一說法,看自己的業(yè)務(wù)需求,如果流量夠用的話采取簡單一點(diǎn)的方案就好,如果流量不多并且經(jīng)常需要同時(shí)進(jìn)行大量實(shí)驗(yàn)就需要分層設(shè)計(jì)重復(fù)利用流量。

      來自香港 回復(fù)
    2. 奧,明白了。所以在同一個(gè)頁面同一個(gè)場景下,進(jìn)行簡單的實(shí)驗(yàn),一般都是互斥了。只有在同一頁面上進(jìn)行多個(gè)實(shí)驗(yàn)并且共用一套流量的時(shí)候,采用正交分層就比較合適了。感謝~

      來自廣東 回復(fù)
  8. 你好,請(qǐng)問一下,為什么一開始A同學(xué)的方案里,點(diǎn)擊表情后只有x%的人可以看到彈出窗口,這里不應(yīng)該是100%嗎?

    來自四川 回復(fù)
    1. 看的比較仔細(xì),確實(shí)這里的x應(yīng)該等于100

      來自香港 回復(fù)
    2. 點(diǎn)擊表情的基數(shù)肯定比點(diǎn)擊具體某個(gè)具體表情的大 為啥等100% 不太明白

      來自北京 回復(fù)
  9. 哈哈案例實(shí)踐是不是都打錯(cuò)了,大佬打的是案例時(shí)間,一臉懵逼

    來自北京 回復(fù)
  10. 請(qǐng)教大佬,現(xiàn)在國內(nèi)市場的A/B testing工具,好像大部分都是T檢驗(yàn),至于在設(shè)計(jì)系統(tǒng)上需要支持多種檢驗(yàn)來評(píng)估結(jié)果嗎?(PS:統(tǒng)計(jì)學(xué)小白對(duì)這塊真是有點(diǎn)迷)

    來自北京 回復(fù)
    1. 也沒必要,目前也沒看到有哪家產(chǎn)品各種檢驗(yàn)都支持的,互聯(lián)網(wǎng)這塊的話Z檢驗(yàn)就可以滿足了,用的比較多的是Z檢驗(yàn)

      來自香港 回復(fù)
    2. 大佬目前是做商業(yè)化AB平臺(tái)還是大廠內(nèi)部AB平臺(tái)哈,可以加個(gè)微信交流交流不

      來自北京 回復(fù)
  11. 您的這個(gè)“Z檢驗(yàn)樣本量計(jì)算公式出來吧(這里使用雙尾檢驗(yàn)因此使用α/2)”,這里的Z(1-α/2),那第二類錯(cuò)誤為什么是Z(1-β),而不是Z(1-β/2)?

    來自河南 回復(fù)
    1. 這是統(tǒng)計(jì)學(xué)的公式,我去學(xué)習(xí)一下吧

      來自河南 回復(fù)
  12. 很好的解說 棒棒

    來自新加坡 回復(fù)
    1. 感謝支持,說明認(rèn)真看完了!

      來自廣東 回復(fù)
  13. 高端啊,這么多數(shù)學(xué)公式

    來自云南 回復(fù)
    1. 把這些復(fù)雜的計(jì)算流程固化成傻瓜式產(chǎn)品才是產(chǎn)品經(jīng)理的價(jià)值所在,共勉!

      回復(fù)