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