從數(shù)據(jù)產(chǎn)品經(jīng)理視角,聊聊科學(xué)的AB Test
隨著ab測試在互聯(lián)網(wǎng)行業(yè)用戶增長方面的推廣,各家都搭建了自己的ab測試平臺(不限于BAT) 或者 購買了ab測試服務(wù)。今天就來看下AB測試的前世今生,能為企業(yè)解決什么問題,如何標(biāo)準(zhǔn)化ab測試流程,如何搭建一個ab測試平臺。
36Kr曾在一篇報道中寫道:“頭條發(fā)布一個新APP,其名字都必須打N個包放到各大應(yīng)用市場進(jìn)行多次A/B測試而決定,張一鳴告訴同事:哪怕你有99.9%的把握那是最好的一個名字,測一下又有神馬關(guān)系呢?”
一、追本溯源
AB測試的前身是隨機(jī)對照試驗(yàn)-雙盲測試,是“醫(yī)療/生物實(shí)驗(yàn)將研究對象隨機(jī)分組,對不同組實(shí)施不同的干預(yù),對照起效果”。
雙盲測試中病人被隨機(jī)分成兩組,在不知情的情況下分別給予安慰劑和測試用藥,經(jīng)過一段時間的實(shí)驗(yàn)后再來比較這兩組病人的表現(xiàn)是否具有顯著的差異,從而決定測試用藥是否真的有效。
2000年谷歌工程師進(jìn)行了第一次AB Test,試圖確定在搜索引擎結(jié)果頁面上顯示的最佳結(jié)果數(shù)量。后來AB測試不斷發(fā)展,但基礎(chǔ)和基本原則通常保持不變,2011年,谷歌首次測試后11年,谷歌進(jìn)行了7,000多次不同的AB測試。
12年奧巴馬競選網(wǎng)站的樣式,通過AB Test 找到了更能吸引募捐,幫助奧巴馬贏得了更高的募捐金額。
AB Test將不同的用戶分成不同的組,同時測試不同的方案,通過用戶反饋的真實(shí)數(shù)據(jù)來找出哪一個方案更好的過程。解決的是“多種方案需要拍腦袋確認(rèn)哪一種更好的問題”。
二、特性
- 先驗(yàn)性:A/B Test 是一種“先驗(yàn)體系”,屬于預(yù)測型結(jié)論(與其相對的是后驗(yàn)型的經(jīng)驗(yàn)歸納)。同樣是一個方案是否好壞:A/B Test 通過小流量測試獲得具有代表性的實(shí)驗(yàn)結(jié)論,來驗(yàn)證方案好壞后再決定是否推廣到全量;后驗(yàn)型則是通過發(fā)布版本后的版本數(shù)據(jù)對比總結(jié)得到。
- 并行性:是指支持兩個或以上的實(shí)驗(yàn)同時在線,并需要保證其每個實(shí)驗(yàn)所處環(huán)境一致。并行性極大的降低了多實(shí)驗(yàn)的時間成本。
- 科學(xué)性:AB Test是用科學(xué)的方式來驗(yàn)證方案,科學(xué)性體現(xiàn)在流量分配的科學(xué)性、統(tǒng)計的科學(xué)性。記得在開篇提到的“AB測試的前身是隨機(jī)對照實(shí)驗(yàn),醫(yī)療/生物實(shí)驗(yàn)將研究對象隨機(jī)分組,對不同組實(shí)施不同的干預(yù),對照起效果”,這要求AB Test將相似特征的用戶均勻的分派到實(shí)驗(yàn)組別中,確保每個組別的用戶特征相同。
三、統(tǒng)計學(xué)原理
3.1 抽樣
總體:“是包含所研究的全部個體(數(shù)據(jù))的集合,它通常由所研究的一些個體組成,如由多個企業(yè)構(gòu)成的集合,多個居民戶構(gòu)成的集合,多個人構(gòu)成的集合,等等”。對于一個app、web網(wǎng)站,他的所有用戶即為總體。
樣本:與總相對應(yīng),是從總體中按一定比例抽取且能代表總體的部分個體集合。例如:分別抽樣5%的app用戶,形成實(shí)驗(yàn)組、對照組。
從總體到樣本的過程,即為抽樣。所以ABTest,是通過抽樣 獲取 實(shí)驗(yàn)組、對照組,對比統(tǒng)計量均值,以衡量實(shí)驗(yàn)效果。
抽樣面臨問題“如何從一個總體中按一定比例抽取一組隨機(jī)樣本?”,也就是樣本統(tǒng)計值是否可以代表總體參數(shù)?
3.2 參數(shù)估計
為了估計總體參數(shù),會計算樣本的統(tǒng)計量,例如:某個優(yōu)化指標(biāo)的平均值。而樣本的統(tǒng)計結(jié)果為真實(shí)的總體統(tǒng)計結(jié)果的點(diǎn)估計,但由于點(diǎn)估計樹值與總體參數(shù)值在某種程度上存在差異??梢詷?gòu)造區(qū)間估計以便獲取關(guān)于點(diǎn)估計值與總體參數(shù)的差異大小的信息。區(qū)間估計是在點(diǎn)估計的基礎(chǔ)上,給出總體參數(shù)的一個概率范圍(點(diǎn)估計值 +/- 邊際誤差)。
可以利用總體標(biāo)準(zhǔn)差 或 樣本標(biāo)準(zhǔn)差 計算 邊際誤差。
(1)已知總體標(biāo)準(zhǔn)差
假設(shè):總體標(biāo)準(zhǔn)差=20,歷史數(shù)據(jù)顯示總體符合正態(tài)分布;抽取100個個體形成樣本,樣本均值為82。
樣本標(biāo)準(zhǔn)差=總體標(biāo)準(zhǔn)差/?開根號(樣本個數(shù))=20/ ?開根號(100)=2
故樣本符合均值為82、標(biāo)準(zhǔn)差為2 的正態(tài)分布
=> 查標(biāo)準(zhǔn)正態(tài)分布表得到,任何正態(tài)分布隨機(jī)變量都有95%的值在均值附近+/-1.96個標(biāo)準(zhǔn)差以內(nèi)。
=> 當(dāng)樣本均值是正態(tài)分布時,一定有95%的樣本均值落在總體均值?+/- 3.96(1.96*2=3.96)?=> 總體均值=樣本均值+/- 3.96 =?82?+/-3.96
=> 有95%的把握相信區(qū)間(78.08,85.92)包括總體均值。
**95%為置信水平,(78.08,85.92)為置信區(qū)間,邊際誤差為 ?Z分布(總體標(biāo)準(zhǔn)差/開根號(樣本個數(shù)))。
(2)已知樣本標(biāo)準(zhǔn)差,未知總體標(biāo)準(zhǔn)差
總體均值 = 樣本均值 +/- t分布(樣本標(biāo)準(zhǔn)差/開根號(樣本個數(shù)))
基于以上論述,可以得到 在某種置信水平下,置信區(qū)間(78.08,85.92)包括總體均值,論證了 “樣本統(tǒng)計值和總體參數(shù)相似程度”。
接下來,文中將介紹 如何知道一個方案是好還是壞呢?——可以通過假設(shè)檢驗(yàn)來確認(rèn)是否應(yīng)該拒絕關(guān)于總計參數(shù)值。
3.3 假設(shè)檢驗(yàn)
嘗試性的假設(shè)為原假設(shè)H0,與原假設(shè)對立的是備擇假設(shè)H1.?在AB測試中,原假設(shè)H0: 實(shí)驗(yàn)組和參照組不存在差異,備擇假設(shè)是存在差異。
在假設(shè)檢驗(yàn)的過程中會出現(xiàn)以下情況(橫向?yàn)檎鎸?shí)情況,總想為結(jié)論):
我們做實(shí)驗(yàn)時,期望盡可能的控制?第一/二類錯誤。
第一類錯誤:原假設(shè)為真時拒絕了原假設(shè) 首先我們?nèi)菀追傅木褪堑谝活愬e誤,就是原假設(shè)為真時拒絕了原假設(shè),說白了就是過來就是 2 個版本無差異時候,我們錯誤 的認(rèn)為他們有差異。
第一類錯誤出現(xiàn)的概率稱之為檢驗(yàn)的顯著性水平α,一般取0.05或0.01。通過指定α 從而控制出錯概率。
犯第一類的假設(shè)檢驗(yàn)稱之為 顯著性檢驗(yàn),通過P值來判斷:P值為z值的概率值(查表),是樣本所提供的證據(jù)對原假設(shè)支持成都的度量,p值越小說明反對原假設(shè)的證據(jù)越多。當(dāng)P值<=顯著性水平α, 則拒絕H0。
請注意此處的描述“不能拒絕H0 或 拒絕H0”,而不能描述為H1為真(如果控制?第一類 不控制??第二類,僅能如此描述)。
第二類錯誤:原假設(shè)為假時接受了原假設(shè),也就是 “2 個版本有差異時候,我們認(rèn)為他們沒有差異 ”,這個概率記為β ,不犯第二類錯誤的概率為的1-?β。1-?β:當(dāng)H0為假時,作出拒絕H0的正確結(jié)論的概率稱之為“檢驗(yàn)的功效”,通常最低的統(tǒng)計功效值為80%。
綜上,通常情況下 AB實(shí)驗(yàn)中, 95%+的置信水平,<5%顯著性水平 , > 80%統(tǒng)計功效,可以被認(rèn)為實(shí)驗(yàn)是有效的,結(jié)果有代表性是可信的。
曾經(jīng)一度也曾有大量文章由于p值無法提供一個人類期望的結(jié)論,而抨擊p值已死。p值在統(tǒng)計學(xué)的意義中是用來推斷,而非歸納總結(jié)。僅用p值來確認(rèn)顯著性直接得到結(jié)論是不恰當(dāng)?shù)?,同學(xué)的先輩們聽到都會跳起來,引入統(tǒng)計功效、置信區(qū)間才能科學(xué)的解釋實(shí)驗(yàn)數(shù)據(jù)。
四、科學(xué)分流
4.1 分流
分流是將用戶分入AB實(shí)驗(yàn)的過程。
如何知道一個用戶應(yīng)該咋哪些實(shí)驗(yàn)中呢?
對用戶id進(jìn)行hash并取模后得到實(shí)驗(yàn)。如果用戶量夠大,可以設(shè)置按1000,10000取模,得到的用戶組會變多。這種方式記為單層實(shí)驗(yàn)架構(gòu),每個用戶只會分入一個組中,在同一時刻只會參與一個實(shí)驗(yàn)。
這里的用戶id,不特指user_id,由于實(shí)驗(yàn)的范圍不同,用戶id可以使用user_id、device_id、cookieid,以及global_id,global_id在各家公司稱呼不同,但表達(dá)意思均為全局流量id,是基于多種id得到的唯一id。
4.2?多層重疊實(shí)驗(yàn)
如果有多個大流量實(shí)驗(yàn)同時在線,如何增加新的實(shí)驗(yàn)?zāi)兀?/p>
Google的文章中描述了多層重疊實(shí)驗(yàn),可以解決這個問題,也是業(yè)內(nèi)的主要方式,多層重疊實(shí)驗(yàn)可以實(shí)現(xiàn)?“更多、更好、更快”做AB Test。
多層重疊實(shí)驗(yàn)的幾個概念:
- 域:域是對用戶流量的一種縱向劃分,將流量垂直的切分成多塊,多個域中的實(shí)現(xiàn)相互沒有干擾,保證實(shí)驗(yàn)純度。
- 層:層是對域流量的一個橫向劃分。每個層使用獨(dú)立的Hash函數(shù)對用戶進(jìn)行分桶,使得多個層之間的用戶流量是正交的。如下圖所示,每個層中的實(shí)驗(yàn)對其他層的影響都是正交的,,一份流量穿越每層實(shí)驗(yàn)時,都會被再次隨機(jī)打散,參與第一層中實(shí)驗(yàn)X的用戶,均勻的分散在層B中,使層B中的實(shí)驗(yàn)也可以獨(dú)立進(jìn)行分析,并得到準(zhǔn)確的分析結(jié)果。層內(nèi)實(shí)驗(yàn)為互斥實(shí)驗(yàn)。層內(nèi)多實(shí)驗(yàn)互斥關(guān)系(下圖)與域的互斥關(guān)系相同,只是表述粒度不同。該流量可以繼續(xù)以“域”劃分為層,無限嵌套,但這樣復(fù)雜度會急劇增加,是不推薦的。
如果實(shí)驗(yàn)是相互影響的(例如 實(shí)驗(yàn)A更改按鈕樣式,實(shí)驗(yàn)B更改按鈕文案),兩個實(shí)驗(yàn)室需要設(shè)置為互斥實(shí)驗(yàn),建議放在同一層中。如果實(shí)驗(yàn)間無影響(例如在UI、搜索、廣告推薦實(shí)驗(yàn)),則可以在不同層進(jìn)行實(shí)驗(yàn)。
此外,精細(xì)化運(yùn)營、國際化時本土化產(chǎn)品策略中 需要面向指定流量進(jìn)行AB測試,如 對巴西的用戶AB Test。驗(yàn)收測試的同學(xué),也需要將自己的id加入測試人群,但這批用戶的數(shù)據(jù)不應(yīng)該參與效果分析。特殊號碼過濾:如有些用戶id在分發(fā)時做了特殊人群的投放,需要過濾該人群。
五、AB Test 系統(tǒng)
上文中提到的均是AB測試的原理,為提升ABTest的速度,ABTest的代碼早已被封裝為了產(chǎn)品,如 商業(yè)化的有Optimize、吆喝科技、testin等,BAT TMD也都有自家的AB?Test系統(tǒng)。
TO 產(chǎn)品、運(yùn)營、算法 同學(xué)(做實(shí)驗(yàn)的人):
- 創(chuàng)建實(shí)驗(yàn),并同步實(shí)驗(yàn)信息到服務(wù)端、客戶端開發(fā),以便其寫代碼時使用實(shí)驗(yàn)code;
- 獲取實(shí)驗(yàn)結(jié)果。
TO C端用戶(不局限于C端,這里僅是泛指,被實(shí)驗(yàn)的人),將決定該用戶在哪些實(shí)驗(yàn)中。
AB Test系統(tǒng)也和其他系統(tǒng)一樣,有管理模塊、權(quán)限模塊等。
各家AB Test系統(tǒng):
美團(tuán)AB測試平臺:https://tech.meituan.com/2019/11/28/advertising-performance-experiment-configuration-platform.html
大眾點(diǎn)評: ?https://www.csdn.net/article/2015-03-24/2824303
Optimiz:http://www.googleoptimizedemos.com/
六、如何科學(xué)的做AB測試(AB測試標(biāo)準(zhǔn)化)
有了ABTest的概念,了解了原理,購買或者自建了系統(tǒng),如何建立標(biāo)準(zhǔn)化流程讓其在團(tuán)隊(duì)中完整的執(zhí)行下來?
6.1 ABTest的局限性
在討論ABTest標(biāo)準(zhǔn)化執(zhí)行過程前,我們先看了解下ABTest的局限性,莫過于將其神化。
(1)ABTest是驗(yàn)證方案、想法的策略,而不是戰(zhàn)略。
看到知乎中的一句話無比贊同:
“你可以用A/B測試讓你在已經(jīng)到達(dá)的山上越來越高,但你不能用它來發(fā)現(xiàn)一座新的山脈。如果你的產(chǎn)品真正需要的是一個完整的改造,那么A/B測試可能做不到”。
張一鳴在清華經(jīng)管學(xué)院,對問題“PM是否可以產(chǎn)品設(shè)計上是否更多的依賴ABtest而非直覺?”的解答:
“我們認(rèn)為這和ABtest同樣重要。我們反對從邏輯到邏輯,從邏輯到邏輯,很容易失之毫厘謬以千里。有一手的體驗(yàn)?zāi)軒臀覀冞h(yuǎn)離偏差,我們愿意把用戶的感受、體會帶到公司。我們?nèi)蚧牡谝患虑槭呛M庥脩舴答仯峁┞?lián)系方式,讓用戶可以直接聯(lián)系到我們。PM是需要sense的,AB的science可以用來的降低在細(xì)節(jié)層面的精力付出。
(2)ABTest是有開發(fā)成本的
(3)ABTest的數(shù)據(jù)只有現(xiàn)象,沒有詳情
ABTest可以給出實(shí)驗(yàn)組比對照組的效果好現(xiàn)象,但無法給出過程數(shù)據(jù)。測試相對復(fù)雜的方案,ABTest無法表述出具體是哪個方面呈現(xiàn)出了優(yōu)勢。
6.2 ABTest的標(biāo)準(zhǔn)化流程
此外,AB測試時,需要警惕辛普森悖論。
后續(xù):ABTest的相關(guān)知識點(diǎn)還會在本文中陸續(xù)補(bǔ)充,期望了解點(diǎn)可以在評論中@我,我會逐一回復(fù)并補(bǔ)充到文章中的。
本文由 @cecil 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
1.96是基于標(biāo)準(zhǔn)正太分布
區(qū)間估計不對吧
大家期待已久的《數(shù)據(jù)產(chǎn)品經(jīng)理實(shí)戰(zhàn)訓(xùn)練營》終于在起點(diǎn)學(xué)院(人人都是產(chǎn)品經(jīng)理旗下教育機(jī)構(gòu))上線啦!
本課程非常適合新手?jǐn)?shù)據(jù)產(chǎn)品經(jīng)理,或者想要轉(zhuǎn)崗的產(chǎn)品經(jīng)理、數(shù)據(jù)分析師、研發(fā)、產(chǎn)品運(yùn)營等人群。
課程會從基礎(chǔ)概念,到核心技能,再通過典型數(shù)據(jù)分析平臺的實(shí)戰(zhàn),幫助大家構(gòu)建完整的知識體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。
學(xué)完后你會掌握怎么建指標(biāo)體系、指標(biāo)字典,如何設(shè)計數(shù)據(jù)埋點(diǎn)、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺等實(shí)際工作技能~
現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領(lǐng)取福利優(yōu)惠吧!
你好,我現(xiàn)在是產(chǎn)品經(jīng)理,正在往數(shù)據(jù)產(chǎn)品經(jīng)理的方向?qū)W習(xí),在社區(qū)搜索關(guān)鍵詞的時候就看到了你寫的文章。所以想請教一下您目前工作職責(zé)有哪些,工作中都會和哪些崗位的人合作,您典型的1天工作場景是如何的呢?ヾ(≧?≦謝謝≧?≦)ノ