那些年我們在A/B測試中踩過的坑
隨著Growth Hacking在中國的傳播和興起,作為增長黑客必殺技之一的A/B測試,也被越來越多的國內企業所接受和重視。然而,A/B測試看似簡單,實則隱藏著許多溝溝坎坎,稍不注意就會導致試驗結果偏離科學軌道。那麼今天,我們就為大家一一細數那些年我們在A/B測試中踩過的坑。
PS,文中包含大量真實案例,若能對號入座,請儘快修正試驗方案。
輪流展現不同版本
對於廣告主而言,找到最有價值的廣告投放渠道,提升著陸頁(landing page)的轉化率,從而對整個廣告投放流程進行優化,無疑是最核心的優化目標。採用A/B測試對不同版本的廣告和著陸頁進行測試,是一種很有效的優化手段。也就是將不同版本的廣告和著陸頁同時投放,根據它們各自的數據表現,就可以判定哪一版更好。
而目前最常見的做法是,將不同版本的廣告進行輪流展示,比如谷歌Adwords系統中的測試功能,就是採用的這種方法。這種所謂的A/B測試(請注意,這種測試方法其實並不能被稱為真正意義上的A/B測試),就讓企業掉入了第一個陷阱。
舉個不太恰當的例子,如此的測試方法就好比在電視上投放廣告,分別選取了工作日的下午三點中和晚間黃金時段進行測試收集。由於輪流展示時的測試環境不盡相同,所面向的受眾群體更是千差萬別,因此最終試驗結束後的數據結果必然會存在一定偏差,也就更不具有說服性了。
正確的做法是:不同版本需要並行(同時)上線,並且儘可能的降低所有版本的測試環境差別,才能得到精準的數據結果,從而做出可信的決策。
選擇不同應用市場投放
在介紹這個誤區之前,必須先解釋一下什麼是辛普森悖論。辛普森悖論是英國統計學家 E.H. 辛普森(E.H.Simpson)於1951年提出的悖論,即在某個條件下的兩組數據,在分別討論時都會滿足某種性質,可是一旦合併起來進行考慮,卻可能導致相反的結論。
什麼樣的情況會造成辛普森悖論呢?一個很典型的應用場景:為了驗證新版本對於用戶使用真實影響,很多企業會選擇將不同版本打包,分別投放到不同的應用市場。當發現其中某版本的數據表現的最好,就決定將該版本全量上線。殊不知,當將全部應用市場整合起來進行統計,卻發現這個版本的表現差強人意,對核心數據產生了不利影響。
這裡有一個真實的案例,某產品計劃在安卓客戶端上線一個新功能,於是先將不同版本以小流量投放在多個應用市場(例如豌豆莢、91助手等)。一段時間之後,測試結果都指向了其中一個版本。但其實,這些不同應用市場的用戶並不具有全用戶代表性,所以如果盲目將試驗選出的版本直接推送給全部用戶,就很容易因為辛普森悖論而出現完全相反的結果。
因此,避免這一大陷阱的正確做法是:將流量進行科學地分割,保證試驗組和對照組的用戶特徵一致,且都具有全局代表性。
試驗結果不好就一竿子打死
上一個誤區講的是「以偏概全」,那麼接下來我們要介紹的這個誤區則是「以全概偏」,也叫做區群謬誤。
在這個概念中,認為群體中的所有個體都有群體的性質。但如果僅基於群體的統計數據,就對其下屬的個體性質作出推論,那麼得出的結論往往是不準確的。換句話說,當我們做了一次A/B測試後,發現試驗版本的數據結果並不理想,於是就認定所有的地區或渠道的效果都是負面的,那麼我們就陷入了區群謬誤的陷阱。
作為國際短租平台,搜索是Airbnb生態系統中很基礎的一個組成部分。Airbnb曾經做過一個關於搜索頁優化的A/B測試,新的版本更加強調了列出的圖片,以及房屋所在位置(如右圖所示)。
在等待了足夠長的時間之後,試驗結果顯示新老版本的整體數據相差無幾,似乎這次優化沒有很好的效果。如果此時,Airbnb直接根據整體的數據表現放棄了這次優化,那麼這個花費了很多精力設計的項目就會前功盡棄。
然而,Airbnb並沒有藉此放棄。相反,經過仔細研究,他們發現除了IE瀏覽器之外,新版在其他不同瀏覽器中的表現都很不錯。當意識到新的設計制約了使用老版本IE的操作點擊後(而這個明顯為全局的結果造成了很消極的影響),Airbnb當即對其進行了修補。至此以後,IE恢復了和其他瀏覽器一樣的展示結果,試驗的整體數據增長了2%以上。
通過Airbnb的例子,我們能學到正確的做法是:在整體效果不太好的時候,不要一竿子打死,而需要從多個維度細分觀察個體的情況,以避免區群謬誤帶來的決策偏差。
「好奇害死貓」
一個好的產品必須要能夠激發用戶的好奇心,並在用戶的持續使用中對產品逐漸產生粘性,而不至於流失。但與此同時,我們需要時刻警惕好奇心理所帶來的數據偏差。
從心理學的角度來說,好奇心是個體遇到新奇事物或處在新的外界條件下所產生的注意、操作、提問的心理傾向。應用到A/B測試的場景中,當一個產品推出了新的功能或主頁,用戶在早期出於好奇心理,發生了過多的試探性點擊,從而推動了相關數據的增長。如果這時就以為用戶更青睞於優化後的版本,直接全量上線,就很有可能忽視了用戶的真實喜好。
所以,正確的做法是:適當延長試驗的運行時間,觀察試驗數據的走勢是否持久穩定,消除用戶的好奇心給結果帶來的偏差。
反覆檢驗,區間一收斂就喊停
在反覆檢驗中,我們提到了p-value的概念,它可以作為區間收斂結果顯著的一個參考。通常情況下,p=0.05是常用的顯著值。於是,我們會自然而然的認為當p達到這個值時,就可以得到顯著的結果。不過事實真是這樣嗎?可以看看下面這個案例。
Airbnb還做過另一個試驗,他們將搜索頁上的價格過濾器的上限從300調大到了1000,想知道預訂數是否會增加。他們監測了價格過濾器試驗隨時間變化的結果,發現p-value曲線在7天之後就達到了0.05,並且這時候的結論是試驗版本在預訂方面起到了很顯著的效果,然而當他們繼續運行試驗的時候,卻發現這個試驗開始趨向於中立,最後得到的結果是兩個版本差別不大。
為什麼不應該在p-value達到0.05時就停止試驗呢?Airbnb團隊認為,用戶預訂需要花很長的時間,所以早期的轉化在試驗最開始時會有不太恰當的影響。他們給出的建議是,為了避免統計學上的錯誤,最好的實踐方法就是基於樣本的總量計算所需最小效果,並在開始試驗之前就想好你要運行多久。
試驗給出的p-value值是基於認為你設計的試驗是已知樣本和效應大小的,所以單純使用p-value作為停止試驗的準則是不太正確的。以及,如果你持續的監控試驗的發展和p-value,就比較容易看到真實的效果。
以上,就是在做A/B測試時比較容易遇到的坑。還是文章開頭說過的那句話,如果剛才說到的那些坑真實反映了你當前的狀況,就請儘快修正測試方案,跳出陷阱才能得到更為科學可信的結果。當然,你也可以選擇AppAdhoc A/B Testing(點擊進入官網),幫助你更加專業、快捷的實現A/B測試驅動的產品優化:) 。
寫在最後:如果你對A/B測試背後的原理知識感興趣,歡迎關注吆喝科技AppAdhoc在知乎的專欄。我們會在之後的一段日子裡,定期更新關於A/B測試的演算法介紹。
推薦閱讀:
※柱形圖,百分比堆積柱形圖,簇狀柱形圖等圖表統統「一網打盡」!
※【學習心法】一張圖了解數據分析/挖掘的精髓
※大數據精準營銷|如何與用戶談一場不分手的戀愛?
※Python數據分析之基情的擇天記
※數據 | 沒錢沒資源,怎麼做調研(一)