AB測試介紹
什么是AB測試?
A/B Test 是一個用于在線測試的常規(guī)方法,用于測試新產(chǎn)品或新功能。
如何操作
我們需要設(shè)置兩組用戶,一組設(shè)置為對照組,采用已有的產(chǎn)品或功能,另一組為實驗組,采用新版產(chǎn)品或功能。
然后,找到上述兩組用戶做出的不同響應(yīng),確認哪個版本的功能更好。
A/B Test 適用情況
存在明確的對照組和實驗組,能夠選擇合適的指標評估此類改變,適合使用A/B Test。
- 我們可以通過A/B Test 對很大范圍的事情進行測試,比如增加一些新功能,或界面中增加的內(nèi)容,網(wǎng)站的不同外觀等。
- 我們還可以將A/B Test用于十分復(fù)雜的改變,例如排名變動。
- 我們也可以針對不確定用戶是否會注意到的改變進行測試,例如頁面加載時間。
A/B Test 案例如下:
Amazon首次開始做個性化推薦時,他們想看一下用戶是否真的會購買更多商品,他們發(fā)現(xiàn),由于個性化推薦,他們的收益有了顯著增加。
Linkedin測試了一個改變,嘗試確定他們是否應(yīng)顯示新文章還是鼓勵大家增加新聯(lián)系人,這就是排名變動。
100ms的頁面加載時間不是很多,但是 Google 和 Amazon 都運行了測試。Amazon 在2007年證實,每個頁面增加 100ms 的延時,會導(dǎo)致收入降低 1%。對于Google,也得到了相似的結(jié)果。 你可以發(fā)現(xiàn),平均來看,100ms 看起來并不多,但每增加 100ms 的延遲,人們查詢的數(shù)量真的降低了。
這就是可以從 A/B Test中學(xué)到的東西。
A/B Test 不適用的情況
-
A/B Test 無法真實的告訴你是否遺漏了什么東西。
例如:亞馬遜想知道頁面上是否有用戶需要,但是他們還沒有提供的商品。這種情況沒辦法用 A/B Test 來尋找答案。 -
A/B Test 不適用與測試新的體驗。
例如:某 SaaS 公司已經(jīng)有了免費服務(wù),例如有待辦事項列表。他們想提供帶有其他功能的高級服務(wù),如需使用高級服務(wù),用戶需要升級,創(chuàng)建登錄賬戶,并探索新的功能。
這種情況下,也不適合用 A/B Test 來尋找答案。 -
A/B 不適用與需要很長時間才能驗證的測試。
例如:某租房網(wǎng)站,想測試促進用戶推薦頁面給好友有沒有效果,但是這個效果檢驗需要很長時間,可能是一周,可能是半年,一年。因為租房并不是經(jīng)常發(fā)生的。這種情況也不適合。
另外,當你測試新的體驗時,你當前已有的那些用戶,可能會覺得改變了他們的體驗,這被稱為改變厭惡癥;
另一種情況是,他們覺得這些都是新的,然后嘗試所有東西,這被稱為新奇效應(yīng)。
對于不適用情況,補充技術(shù)
用戶在你的網(wǎng)站上進行操作的日志,可以通過檢查或觀察分析日志,得出結(jié)論,是什么原因造成其行為的改變。
然后可能要沿著這個方向努力,然后設(shè)計實驗,完成隨機化和試驗,進行前瞻性分析。
可以把兩種技術(shù)結(jié)合來使用:
查看操作日志得出假設(shè),運行A/B Test驗證你的理論是否合理。
還有一些其他技術(shù):
- 用戶體驗研究
- 焦點小組
- 調(diào)查
- 人為評價
A/B Test 可以給我們大量寬泛的定量數(shù)據(jù),而上述技術(shù)可以給我們非常深入的定性數(shù)據(jù)作為A/B Test 的補充。
這些技術(shù)可以告訴我們該爬哪座山,也就是得出假設(shè)。
設(shè)計A/B 測試
在網(wǎng)絡(luò)世界中,當你做 A/B 測試時,要謹記的一件事是,確定用戶是否會喜歡這個新產(chǎn)品或新功能;
所以在進行 A/B 測試時,你的目標是設(shè)計一個合理且能夠給到你可復(fù)驗的結(jié)果,讓你能夠很好地決定是否要發(fā)布一款產(chǎn)品或功能。
A/B 測試的方法
一般來說,在科學(xué)領(lǐng)域,假設(shè)檢驗是確定創(chuàng)新的關(guān)鍵方法。
在A/B測試中,我們最想看到的是對照組和實驗組返回一致的響應(yīng),讓你能真正地決定試驗的結(jié)構(gòu),確定實驗組和對照組是否有很明顯的行為改變。
選擇和測量指標
指標的作用
選擇一個或多個指標是因為我們需要,明確如何判斷實驗組比對照組的好壞。
在決定如何定義指標之前,我們要考慮會用這些指標來做什么。
有兩種指標:
- 不變指標
- 評估指標
不變指標
用于不變量檢查:這些指標在實驗組和對照組中都不會更改。
例如:
- 如果運行一個實驗組和一個對照組,對比項目總體是否相同。例如兩組中用戶數(shù)量是否相同;分布是否相同;是否具有可比較的各個國家的用戶數(shù)量;或各個語言的用戶數(shù)量;
- 目的:需要進行這些完整性檢查,確保實驗?zāi)軌蝽樌麑嵤?/li>
- 通過這些不變指標,我們可以看到實驗是否受到其他非需要因素的影響,是否會對于我們判斷結(jié)果造成影響。
評估指標
用來評估實驗效果的指標。通過該指標,比較實驗組和對照組是否存在顯著性差異,從而判斷新功能是否最終被采納。
如何對指標進行定義?
- 要為一個指標想出一個高級概念,也就是一句話總結(jié),讓每個人都能理解這個指標。例如“活躍用戶”或“點擊概率”。
- 確定各個細節(jié)。例如你想測定活躍用戶,那你如何定義活躍?哪些事件可以算為活躍?
- 進行單獨數(shù)據(jù)測量之后,你需要將它們總結(jié)為一個指標,有點像概括或計數(shù),可能是一個平均值,中位數(shù)等
- 總結(jié)后,就得到了一個完整的指標定義,可以進行完整性檢驗。
- 最后使用一個指標時,需要考慮這個指標是否普遍適用
- 對于評估指標,可以沒有那么完美,但是適用于整套測試,能夠用來對比;
困難指標
- 不能直接訪問他們想要的數(shù)據(jù),不知道怎么計算;
- 需要太長時間
需要避免。
指標定義
定義 1(Cookie 概率):對于每個 <時間間隔>,點擊的 Cookie 數(shù)量除以 Cookie 總數(shù)
定義 2(網(wǎng)頁流量概率):<時間間隔> 內(nèi)點擊的網(wǎng)頁瀏覽量除以網(wǎng)頁瀏覽量總數(shù)
定義 3(比例):點擊數(shù)除以網(wǎng)頁瀏覽量總數(shù)
關(guān)于數(shù)據(jù)采集和指標定義:
- 在進行差異性計算之前,我們需要先弄清楚,數(shù)據(jù)采集和指標定義有沒有問題;
- 需要將定義標準化
- 由于收集數(shù)據(jù)的技術(shù)很多,所以要確認使用了什么技術(shù)
需要考慮指標的敏感性和穩(wěn)健性
敏感性和穩(wěn)健性
- 能夠捕捉到你所關(guān)心的更改的指標,這就是穩(wěn)健性的概念。當不發(fā)生任何有趣的事情時,它不會發(fā)生太大改變
- 如何測量敏感性和穩(wěn)健性?
- 使用實驗或使用你已經(jīng)有的實驗;
例如,在視頻延遲示例中,我們可以實施一些簡單的實驗,我們可以提高視頻的質(zhì)量,在理論上,我們可以增加用戶加載時間,我們可以看看你感興趣的指標是否對這種情況做出響應(yīng) - 也可以使用A/A實驗,看它們是否太敏感
- 在這個實驗中,你不需要改變?nèi)魏沃笜耍粚⒛芸吹较嗤畔⒌娜藗冞M行比較,看看你的指標是否顯示兩者之間的差別
- 通過這個關(guān)鍵元素,你可以確保不會將一些實際上沒有任何意義的東西認為是重要的
- 對你記錄的回顧性分析
- 如果你沒有數(shù)據(jù),或做不了新的實驗,回頭看看你對你的網(wǎng)站做過的更改,看看你感興趣的這些指標是否和這些更改一同發(fā)生了變化;
- 或者你可以只看指標歷史,看看你是否能夠找出主要更改的原因
- 使用實驗或使用你已經(jīng)有的實驗;
如何計算指標差異性
我們需要弄清楚,是客觀因素導(dǎo)致指標有了變化,還是改變以后讓指標有了變化。例如,學(xué)習(xí)平臺節(jié)假日流量會增加。
為了更嚴謹,我們需要為指標計算置信區(qū)間。
- 需要了解其分布情況
- 需要了解指標的方差和標準偏差
對于二項分布
- 標準偏差SE = sqrt(β(1-β)/ N)
- 置信區(qū)間寬度(誤差范圍)m = z*SE
- N越大,越趨近于正態(tài)分布
案例
對于你選擇作為評估指標的每個度量,假設(shè)有5000個cookie樣本訪問課程概述頁面的情況下,分析估計一下其標準偏差(保留4位小數(shù))
(注:請確保搞清楚每個對應(yīng)5000次頁面瀏覽的度量需要多少分析單位。)
基準值如下:
指標 | 基準值 |
---|---|
每天訪問課程概述頁面的獨立cookie | 40000 |
每天點擊“開始試用”的獨立cookie | 3200 |
報名參加免費試用的用戶數(shù)量 | 660 |
點進概率 | 0.08 |
總轉(zhuǎn)化率 | 0.20625 |
留存率 | 0.53 |
凈轉(zhuǎn)化率 | 0.1093125 |
從上面的表格可以看出,點進概率為0.08
故5000個樣本的中,每天點擊“開始試用”的獨立cookie為 $50000.08 = 400.0 , 5000660/40000 = 82.5 $
則總轉(zhuǎn)化率的標準偏差為:
$\sqrt{(0.2063*(1-0.2063)/400)} = 0.0202324189112424 $
凈轉(zhuǎn)化率的標準偏差為:
$\sqrt{(0.1093*(1-0.1093)/400)} = 0.0156007620006204 $
留存率的標準偏差為:
$\sqrt{(0.53*0.47/82.5)} = 0.0549490121785091 $
計算經(jīng)驗方差
分析變異性和經(jīng)驗變異性匹配的條件是 unit of analysis = unit of diversion。(分析單元 = 轉(zhuǎn)移單元)
例如參照上述數(shù)據(jù):
- 總轉(zhuǎn)化率的分析單位是cookie,轉(zhuǎn)移單位也是cookie,故總轉(zhuǎn)化率的分析變異性和經(jīng)驗變異性匹配;
- 凈轉(zhuǎn)化率的分析單位是cookie,轉(zhuǎn)移單位也是cookie,故凈轉(zhuǎn)化率的分析變異性和經(jīng)驗變異性也匹配;
- 留存率的分析單位是user-id,轉(zhuǎn)移單位是cookie,故留存率的分析變異性和經(jīng)驗變異性不匹配,根據(jù)經(jīng)驗計算的變異性可能會遠大于分析變異性。在這種情況下,應(yīng)該為留存率收集變異的經(jīng)驗估計。
如果分析單元和轉(zhuǎn)移單元不相等的情況下,在條件允許的情況下,我們可以為指標收集變異的經(jīng)驗估計。
經(jīng)驗方差的計算方法:
- 使用A/A實驗
- 一個對照組A對比另外一個對照組A,實際上用戶看到的東西是沒有什么改變的,意味著你觀察到的所有差異,都是潛在的差異性
- 可以使用A/A實驗實際測試指標的敏感性和合理性,如果在A/A實驗中,指標的差異性較大,可能在A/B測試時,敏感性太高
- 所以可以用A/A實驗來測試差異性
- 運行更多的A/A測試,會有明顯的邊際效益遞減
- 一個關(guān)鍵的經(jīng)驗法則就是:標準偏差與樣本量的平方根成正比
- 做一個規(guī)模很大的A/A實驗,在統(tǒng)計學(xué)中有種方法叫 bootstrap(自助法),你可以將很多的樣本隨機地劃分為一堆小樣本群,然后可以對這些隨機地子集進行對比
計算經(jīng)驗分布的好處:
-
健全性檢查
- 如果你已經(jīng)對置信區(qū)間完成的分析計算,你可以檢查A/A測試結(jié)果是否符合你的預(yù)期,這是一種完整性檢查功能
- 如果你檢查出不符合你的預(yù)期,表明你的計算出了錯,可能你對數(shù)據(jù)分布的假設(shè)是無效的
-
計算置信區(qū)間
- 如果你想要對指標分布進行假設(shè),但是不能分析估計方差,你可以通過實證預(yù)計方差,然后用你關(guān)于分布的假設(shè),按照之前的方式計算置信區(qū)間
- 如果你不想對數(shù)據(jù)做出任何假設(shè),你可以直接從A/A測試的結(jié)果中估計置信區(qū)間
- 假設(shè)置信區(qū)間為95%,實際有40組值,這去掉最小值和最大值,所得的范圍即為置信區(qū)間
未完待續(xù),請查看下一篇。