老司機(jī)的行業(yè)經(jīng)驗分享:A/B測試的五大誤區(qū)
![](http://image.woshipm.com/wp-files/img/83.jpg)
剛哥風(fēng)趣幽默,以一個碩大無比的搪瓷缸聞名。剛哥懂歷史,也曉風(fēng)月,更關(guān)鍵的是:他是A/B測試界里最懂統(tǒng)計學(xué)的;統(tǒng)計學(xué)界里A/B測試實戰(zhàn)經(jīng)驗最為豐富的老兵。本文是濃縮了剛哥多年行業(yè)經(jīng)驗與A/B測試的精髓,漲知識走起!
剛哥聲名在外,記得剛到公司第一周,見他用一套《A/B測試與統(tǒng)計學(xué)300題》虐遍了整個公司(哦,不,剛哥說30題就夠虐了)。后來有幸跟剛哥交流,他端起了標(biāo)志性的搪瓷缸。
抿口水,語重心長地對我說:“小張,你以為我是故意要虐大家嗎?身為咱們數(shù)據(jù)分析人,懂A/B測試與統(tǒng)計學(xué)是我們的基本修養(yǎng)呀?!蔽衣牶螅钜詾槿?,對剛哥的崇敬愈深。
后來需要剛哥交一篇關(guān)于A/B測試的文章,他筆下生花,交出了這份濃縮著多年行業(yè)經(jīng)驗與A/B測試精髓的帖子。
你到底是怎樣的A/B測試?
有放回?無放回?
從總體中隨機(jī)抽取一個容量為n的樣本,當(dāng)樣本容量 n足夠大(通常要求n ≥30)時,無論總體是否符合正態(tài)分布,樣本均值都會趨于正態(tài)分布。期望和總體相同,方差為總體的1/n。這即是中心極限定理,是A/B測試數(shù)據(jù)分析的基礎(chǔ)。
然而抽樣分為有放回和無放回兩種。樣本均值的方差是總體方差的1/n(n為樣本容量),這個結(jié)論是針對有放回抽樣的。實際試驗中,大部分是無放回的,這樣流程比較簡單。無放回抽樣,樣本均值方差見下。觀察公式可知道,當(dāng)總體容量比樣本容量大很多倍時,樣本均值的方差可以近似為總體方差的1/n。
配對樣本?獨立樣本?
當(dāng)兩個樣本的獲取存在關(guān)聯(lián)時,稱為配對樣本。例如比較人早晚身高變化,如果早上身高的樣本包含了張三,則晚上身高的樣本也要包含張三。
某些情況下配對樣本比較難實現(xiàn),比如藥物雙盲試驗,患者不能既服用安慰劑又服用藥物。這時只能使用獨立樣本,隨機(jī)分配個體進(jìn)入兩個樣本,認(rèn)為2個樣本的個體統(tǒng)計上不存在差別。同時患者不知道自己服用的是安慰劑還是藥物,消除心理作用的影響。
互聯(lián)網(wǎng)產(chǎn)品的A/B測試和新藥試驗類似,理論上說應(yīng)該讓同一組用戶同時看到多個版本進(jìn)行比較,或者是看完一個版本后用時間機(jī)器倒回去再看另一個版本。顯然無法做到,只能選取試驗用戶時足夠的隨機(jī),讓兩組用戶從統(tǒng)計意義上相同,認(rèn)為偏差都是產(chǎn)品版本造成的。
樣本方差?總體方差?
A/B測試計算置信區(qū)間的公式:
置信區(qū)間計算公式中的方差項,理論上應(yīng)該使用總體方差。而總體方差沒法知道,只能用樣本方差來代替了。好在樣本方差是總體方差的無偏估計。樣本方差和總體方差的比值,符合χ2分布。
時變?時不變?
A/B測試需要假設(shè)產(chǎn)品用戶的訪問習(xí)慣不會隨著時間的推移而發(fā)生變化。很遺憾在某些情況下并不是這樣。某些產(chǎn)品存在很明顯的季節(jié)因素,例如旅游。一般的A/B測試周期會包含休息日和工作日,但很難包含多個季節(jié),在外推測試結(jié)論時要十分謹(jǐn)慎。另外,強(qiáng)烈的外部事件會對用戶產(chǎn)生刺激,要避免在這種情況下進(jìn)行A/B測試,盡量在平穩(wěn)時期進(jìn)行。
A/B測試存在哪些誤區(qū)?
A/B測試?yán)锓稿e不可怕,可怕的是不知道自己犯錯了。
誤區(qū)1:P-value 是犯第一類錯誤的概率
P-value 是根據(jù)統(tǒng)計數(shù)據(jù)計算得來的,多次試驗的話會得到不同的 P-value ,究竟哪個值才是犯第一類錯誤的概率呢?所以, P-value 和犯第一類錯誤的概率無關(guān)。犯第一類錯誤的概率應(yīng)該只和實驗系統(tǒng)有關(guān),是在開始試驗之前就知道的,顯著性檢驗標(biāo)準(zhǔn) α 才是犯第一類錯誤的概率。顯著性檢驗標(biāo)準(zhǔn) α 是試驗者設(shè)置的,作為試驗者可以有效的控制犯第一類錯誤的概率,是不是更加合理呢?
95%置信區(qū)間為[x,y]意味著被估計參數(shù)有95%可能屬于區(qū)間[x,y],且在區(qū)間中間的概率更高一些。
傳統(tǒng)的假設(shè)檢驗基于頻率學(xué)派。對于頻率學(xué)派來說被估計的參數(shù)沒有不確定性,它就是一個固定的值。有不確定性的是抽樣,是試驗數(shù)據(jù),所以95%置信區(qū)間真實的意思是做100次試驗,得到100個區(qū)間,其中有95個區(qū)間能包含被估計參數(shù)的值,[x,y]只是眾多區(qū)間中的一個而已,下次試驗得出的置信區(qū)間就不是它了。
誤區(qū)2:脫離具體情況只關(guān)注 P-value 絕對數(shù)值的大小
P-value 是當(dāng)原假設(shè)為真時,得到比目前更加極端試驗數(shù)據(jù)的概率。P-value 無法描述原假設(shè)成立的概率,因為對于頻率學(xué)派來說原假設(shè)是否成立是不存在不確定性的。頻率學(xué)派在進(jìn)行試驗前對所有的原假設(shè)一視同仁,先驗知識無用武之地。實際情況下,我們對不同原假設(shè)的信心顯然是不同的。所以同樣是 P-value 為0.01,如果試驗用來證實增大網(wǎng)頁上的一個按鈕能提高點擊率,產(chǎn)品經(jīng)理會欣然接受,如果試驗想推翻動量守恒定律,根本不會有人正眼看一下這個結(jié)果。
誤區(qū)3:試驗過程中隨意調(diào)節(jié)不同版本的試驗流量比例
一般進(jìn)行A/B測試時,會先做小流量試驗,之后逐漸增大。這是業(yè)界常規(guī)的做法。需要注意的是,在均值數(shù)據(jù)僅根據(jù) UV 平均沒有進(jìn)行天數(shù)平均的情況下,新進(jìn)入的流量會拉低均值數(shù)據(jù)。這很好理解,新進(jìn)入試驗用戶貢獻(xiàn)的點擊量必然不如已經(jīng)進(jìn)入試驗若干天的用戶。如果各試驗版本的流量是同步放大的,這種新用戶效應(yīng)對不同試驗版本統(tǒng)計數(shù)據(jù)的影響是相同的。如果流量放大不同步,比如一個試驗版本5%-10%,另一個試驗版本5%-20%,后一個版本的均值數(shù)據(jù)會受到更大的拖累。對于轉(zhuǎn)化率指標(biāo),情況會好不少,因為一個用戶最多貢獻(xiàn)一個轉(zhuǎn)化,最先進(jìn)入試驗的用戶對指標(biāo)的貢獻(xiàn)不會比新用戶更大。
誤區(qū)4:反復(fù)進(jìn)行A/A測試,A/A測試觀測多個指標(biāo)
在A/B測試之前進(jìn)行A/A測試,避免工具有 bug ,這也是業(yè)界常規(guī)的做法。預(yù)期的結(jié)果當(dāng)然是統(tǒng)計不顯著。然而,犯第一類錯誤的概率總是存在的,無論多么小。在一次試驗中,小概率事件幾乎不會發(fā)生;不停試驗,小概率事件幾乎一定會遇到。A/A測試中偶然出現(xiàn)的統(tǒng)計顯著結(jié)果并不能斷定測試工具存在 bug ,可能僅是概率使然。
誤區(qū)5:干涉試驗流量的分配
A/B測試是通過給相同的用戶群體看不同的版本,來進(jìn)行比較,最大程度的保證結(jié)果的科學(xué)性和準(zhǔn)確性。這是由隨機(jī)分配流量來保證的,而試驗者人為的進(jìn)行流量分配,給不同來源的用戶看不同的版本,則比較結(jié)果可能會不準(zhǔn)確。如果最終目的就是想讓2個來源的用戶看到不同的版本。則建立2個定向試驗,分別進(jìn)行驗證,如果確實勝出的版本不同,結(jié)束試驗后,由前端程序把這種個性化方案固定下來。A/B測試的目的是測試,測試總有結(jié)束的一天,測試結(jié)束后去掉測試代碼,把勝出方案固定下來,通過A/B測試平臺來實現(xiàn)產(chǎn)品功能是不合適的。
作者:剛哥@吆喝科技(微信:appadhoc)數(shù)據(jù)分析老兵,統(tǒng)計學(xué)專家
本文由 @ 剛哥 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
好文!