深度講解「AB實驗」
在數據驅動的商業世界中,AB實驗已成為驗證產品策略和優化決策的關鍵工具。本文深入探討了AB實驗的科學性和重要性,揭示了實驗設計中的常見誤區,并提供了實用的操作指南。
在《鵝廠人的用戶增長方法論與實踐》這篇文章里,我分享了如何通過用戶增長6步法探索互聯網產品用戶增長的策略方向,其中最后一步是通過AB實驗驗證增長策略,寫這篇文章的時候,因為篇幅有限沒有圍繞AB實驗過多展開分享,今天這篇文章就專門針對AB實驗這個話題深度展開分享,爭取一篇文章講清楚AB實驗的要點;
1.我將分享哪些內容?
- 認知部分:我將分享AB實驗的重要性,以及常見的誤區,以及學習AB實驗后的好處,了解這些可以幫助大家對AB實驗建立一些基礎認知;
- 實操部分:我將以一個實際案例,實際分享AB實驗的實操過程,手把手教大家怎么做AB實驗;
- 進階部分:我將深入分享AB實驗中的分流原理,把其中一些復雜的原理通過更簡單的方式描述清楚;
2. 文適合哪些朋友?
- 產品經理人員:互聯網產品的產品經理,了解怎么通AB實驗驗證產品策略;
- 用戶增長運營人員:負責產品用戶增長的運營人員,了解怎么在運營工作中合理的設計用戶增長實驗;
- 初級數據分析人員:負責企業產品、用戶增長相關業務的初級數據分析人員,快速了解AB實驗;
聲明:由于個人知識水平有限,其中如有描述不對或者認知錯誤的,歡迎各位高手給與指出和批評,我將虛心向大家求證學習,共同進步。
一、“科學”的AB實驗的重要性?
在標題里面,我強調了”科學“兩個字,為什么要著重強調這兩個字,其主要原因有如下2個:
1. 大部分人的所謂AB實驗是不科學的
在很多互聯網公司,大家都知道通過AB實驗去驗證結論和做數據決策,但是實際上我發現絕大多數運營人員只是在做實驗,并不是做真正的AB實驗,比如很多人都知道AB實驗的核心是要控制變量法和人群同質,但是他們的實際操作并沒有真正做到控制變量和實驗人群同質;他們并沒有掌握如何嚴謹和科學的去設計一門AB實驗;而不嚴謹、不科學的AB實驗往往給出的是錯誤的決策和結論;
2. 有些業務數據提升的結論并不嚴謹
我以前服務過的公司里面經常會出現一種好玩的現象,各個業務在年度復盤的時候,都會說自己做了哪些策略,然后帶來了百分之幾的提升,所有業務都說自己有提升,然后最后老板發現公司最終的業績營收并沒有看到提升,其中有些數據,現在看來并不嚴謹;
以上兩個問題,包括我自己之前在認知水平不夠的情況下也存在(當然,我沒有造假修飾過數據),我也曾經做過一些現在看來并不嚴謹科學的實驗,以及基于實驗數據得出一些現在看來是不嚴謹的數據,在鵝廠工作的經歷里,我從很多資深的AB實驗專家中學習了如何科學的設計AB實驗和看待實驗結果數據后,才意識到過去存在的問題。
二、AB實驗的常見誤區
舉個例子,當有人告訴你說:”我設計了一個策略,并做了AB實驗測試,上線之后,付費轉化率從53%提升到55%,這個是非常顯著的提升效果“,你覺得這句話會有什么潛在的不夠嚴謹和科學問題?比如,53%到55%的提升,能否算的上是顯著的效果提升,有沒有可能僅僅是正常的數據波動;又比如對方是如何設計這個實驗得到這個結論的,有沒有可能實驗設計本身存在問題;
以下我總結一下常見的誤區:
1. 實際數據提升并不顯著?
影響數據提升結論是否顯著的主要因素是你的實驗的樣本量,比如如果你前面的結論,如果你的實驗樣本量也就只有10個,你說你提升了這么多,結論可靠嗎,顯然是不可靠的,但是如果你說你的樣本量AB組各有500萬用戶,那這可能是足夠顯著的;
從統計學的角度上看,如果你的樣本量不夠大,那你的數據指標提升需要足夠大,才能稱得上顯著;如果你的樣本量足夠大,那么即使你的數據指標提升并沒有那么大,也可能是顯著的;
那么當樣本量一定的情況下,我的提升幅度需要到多少,才算顯著呢?統計學提供了一些工具,可以幫助大家解決這個問題,這個會在后續分享到;
2. 實驗變量沒有統一
比如對方可能是基于時間的對比,例如同一個人群第一季度的平均付費轉化率是53%,第二季度的平均轉化率是55%,那這樣可能是有問題的,因為第一季度和第二季度,時間本身就是一個不同的變量,有可能你不做這個策略,也能得到這幾個結果;所以你需要先證明這一點,比如你說去年第一季度的數據和第二季度的數據是一樣的沒有發生變化,并且在這整個時間段里面,你并沒有做任何其他的事情;
3. 可能存在幸存者偏差
比如對方有可能實驗組用了一個優質一點的人群,對照組用了一個普通的人群,這樣的話,提升效果自然是比較明顯,這種情況非常的常見,我們把這種問題,稱為幸存者偏差;
4. 實驗人群分包不均勻,不夠隨機
即使你嚴格控制了人群的變量,比如實驗組和對照組的人群條件都是最近7天活躍的用戶,然后假如你的用戶id是按照活躍時間從近到遠排布的,而你并不知道,然后你按照順序從前到后分人群包,扎樣就可能導致實驗組都是7天里面最近幾天活躍度的,而對照組里面都是后面幾天活躍的,所以你以為你控制變量了,實際上因為分包不均勻,存在問題;
三、如何科學的設計一門AB實驗?
1. AB實驗流程概括
AB實驗的整個過程包括三部分:實驗設計、實驗分析、實驗決策,其中各個部分的具體流程如下:
1.實驗設計:實驗假設→實驗指標設計→設計實驗方案(包括設定人群條件、最小提升目標、樣本量)→配置實驗(包括人群分組、AA空跑實驗、上線配置)→數據回收;
2.實驗分析:P值檢驗→MDE(最小提升效果)檢驗;
3.實驗決策:實驗結論和決策、設置長期對照;
2. 設計AB實驗的關鍵要點
1.合理的計算實驗樣本量:實驗的樣本量應該達到多少才合適?
2.嚴格控制實驗變量:如何控制實驗變量?
3.實驗人群分組足夠均勻和隨機,確?!巴|”:如何分包均勻和確保隨機性?
4.實驗結果是否顯著:如何判斷數據提升是否顯著?
3. 從0到1實戰完成一個AB實驗
接下來我們以如下的一個實驗場景為例,對比在引導用戶打開APP PUSH通知開關場景是,圖片彈窗和文字彈窗兩種彈窗方式,哪種的點擊率更好為例,設計一門AB實驗:
3.1 實驗假設
從電商行業的經驗,我們了解到,對于營銷類的場景,圖片彈窗的效果會比文字彈窗的效果會更好,但是考慮到我們的運用場景是一個引導用戶打開PUSH開關的功能性的場景,用戶會不會對文字類型的彈窗有更高的接受度和點擊欲望,反而圖片型彈窗因為存在營銷嫌疑,用戶反而不想點擊,所以我們的假設是對于該場景:文字彈窗的點擊效果會明顯比圖片彈窗的好;
3.2 實驗指標設計
假設我們用于衡量實驗效果的關鍵指標選擇點擊“去開啟”按鈕的點擊率,也就是按鈕點擊量/彈窗的曝光量,當然,實際情況下,可能我們不僅僅只是關注這個指標,可能還需要關注后續鏈路的指標,但是這里為例避免過于復雜,讓大家更聚焦在實驗流程本身,我們只設定這個關鍵指標;
3.3 設計實驗方案
接下來,我們需要設計一下AB實驗的方案,例如以下我們設計了行動組A和對照組B兩個實驗組,用于實驗對比,具體設計實驗方案的步驟如下:
步驟1:設定實驗組數量和人群條件,比如這次我們涉及2組實驗,實驗人群比如我們選擇最近7天活躍的用戶,這個環節切記行動組和對照組的人群條件一定要一致,保持實驗只有彈窗樣式這一個變量
步驟2:設定一個行動組預期的最小效果提升目標(MDE),比如預期點擊率最小的提升目標是提升10%,預計點擊率提升到5.5%,比對照組圖片型彈窗點擊率提升5%;設定MDE的時候,主要根據業務的預期來自己判斷;
步驟3:預估實驗最小樣本量,也就是說,如果我要達到10%的提升幅度,且該提升幅度可以認定為顯著提升,我的實驗組樣本量最低需要到多少;如果實驗樣本量過低,則實驗最后的結果可能不合理,但是究竟樣本量設計多少才比較合適,該問題在統計學上是有相應的計算公式的,但是我們這里不需要太去深究,我們直接使用一個現成的工具來計算就好;個人推薦的工具如下工具:https://www.evanmiller.org/ab-testing/sample-size.html,根據這個工具可以計算到,如果點擊率要從5%提升到5.5%并目表現為顯著提升,則該實驗每組實驗組需要的最小樣本量是30244,假設用戶從實驗投放,到曝光彈窗的曝光率是10%,那就意味著你的每個實驗組需要的用戶量至少是302440以上,因此,我們在提取人群包的時候,每個實驗組至少需要一個30萬左右的人群包;
3.4 配置實驗
設計好方案之后,接著就是按照實驗方案取人群包,以及配置AB實驗,通常這樣的配置需要搭配一個AB實驗平臺,或者是企業內部的推送管理后臺,用于控制觸達渠道的分發,配置實驗的具體步驟如下:
步驟1:根據人群條件跑人群包,通過切包工具切分人群,構建兩個實驗組的人群包,對于中小企業而言,可能不一定有相應的切包工具,個人分享一個常用的切包工具(公眾號回復關鍵詞“切包工具”后領取),切包工具主要用于解決切人群包的時候的隨機性問題,如果切包不均勻,可能會導致兩個實驗組的人群包不同質,會影響最后實驗的結果的準確性;
步驟2:AA空跑實驗,空跑實驗的意思是設計一個空跑周期,兩個人群都不做任何動作,看兩個人群的數據表現是否一致,比如可以看著這兩個人群自然打開push開關的數據情況;空跑實驗的目的,是用于檢驗你的兩個實驗組,是否真的足夠隨機和同質,可以提前排除實驗人群不同質導致的對實驗結果的影響;
步驟3:創建實驗和上線配置實驗,按照實驗方案的設計,對行動組A人群采用文字彈窗,對對照組B人群采用圖片彈窗,并實驗運行一段周期;
3.5 回收數據
實驗周期結束之后,開始回收兩個實驗組的效果數據情況,假如我們最后回收的數據表現如下:實際回收的數據,行動組A的點擊率是5.4%,對照組的點擊率是5.0%,點擊率提升幅度8%;那么對于這個提升結果,我們應該如何去看待,接下來我們看如下實驗結果分析部分內容;
3.6 實驗結果分析
對于最終的實驗結果,我們需要評估的是該實驗的提升效果是否顯著,以下我們通過P值和MDE兩個維度判斷:
1.計算該實驗結果的P值,如果P值<5%,則該實驗的提升結果顯著;我們通過https://www.evanmiller.org/ab-testing/chi-squared.html 這個在線工具統計一下目前實驗結果的P值如何,如下計算可得該實驗結果下統計的P值是2.7%,低于5%,則可以說明該實驗的提升結果是顯著的,文字彈窗的效果明顯比圖片彈窗效果更好;
2.如果計算P值>5%,接下來需要對比一下提升幅度和原來我們設定的最小效果提升目標(MDE)的關系;
假如實際提升幅度大于最小提升效果目標,則說明實際提升比我們的預期還好,則可能需要再重新加大實驗樣本量,然后繼續實驗觀察;假如實際提升幅度小于最小提升效果目標,則說明該提升結果確實不顯著,實驗結束;
3.7 實驗決策
1.實驗結論和決策
AB實驗的最終目的是決策,通過實驗之后,你的產品和運營策略最終選擇使用什么方案,這是實驗應該帶給你的結論;
以我們前面的實驗為例,我們可以發現,采用文本彈窗的觸達效果,可能對于提升用戶APP PUSH開關打開率的效果更好,所以那么我們應該放量更多的用戶通過文本彈窗的方式觸達;
2.設置長期對照實驗
但是到此實驗并不是就結束了,最后我們還是需要保留一個長期對照組用于持續的觀測對比效果,因為短期的實驗結果,不一定會是長期的結果,所以我們需要保持觀察,因此這時候建議設置一個長期對照實驗就有必要,比如你可以90%的用戶全部使用文本彈窗,然后剩余的10%,各設置5%vs 5%,用戶持續對比兩種彈窗樣式的效果,以觀測實驗提升的情況;
設置對照是運營和產品衡量自己的策略是否有產生價值的重要的方式,甚至在字節等大廠,還會設置好一個全局對照,預留一部分用戶什么策略都不要觸達,去對比業務經過一系列動作之后和什么策略都不做的人群的效果對比如何;
四、學會科學設計AB實驗有什么好處?
1. 避免陷入自以為是的錯誤決策,減少試錯成本;
現實的企業決策里面,有些人習慣憑感覺拍腦袋決策的,這種顯然不太可取,不過也存在一部分人知道不能拍腦袋決策,他們知道應該要做實驗嘗試,但是往往因為實驗的方法不對,最終得到了錯誤的實驗結果,然后他們會拿著實驗數據跟別人說:“這事我們實驗測試過,這樣做是能有效提升的”,但是最終可能全量上線策略的時候,并沒有看到顯著的效果差異;
AB實驗最終的目標是要帶來實際的效果的提升的,如果因為實驗方式不對,導致按照錯誤的決策執行,并不能給業務帶來最終想要的效果;
2. 學會更加嚴謹的看待實驗結果,洞察數據結論背后的隱藏條件,避免被不嚴謹的數據結論誤導;
當你知道一個嚴格的AB實驗的要求之后,如果有人告訴你“我做了一個策略,讓我們轉化率提升10%,提升效果很明顯”這個結論,你可能不會一下子就反應覺得“哇,10%好像很厲害的樣子”,反而你會首先思考如下幾個問題:
- 10%是一個顯著的提升嗎?按照你的實驗結果,最終的P值是多少?
- 你的實驗樣本量是多少?你不會就只實驗了幾個用戶就得到這個結論吧!
- 你的行動組和對照組怎么設計的,你怎么確保兩個實驗組的人群是足夠同質的?
- 你是如何控制這兩個實驗組不被其他策略影響的?
如果一個實驗結論是草率的得出來的,對方基本上無法很好的回答你以上的問題,說明對方根本不知道如何做一個科學的AB實驗,那么對于他的結論,你可以認為并不太靠譜;而對于能夠充分的解釋以上問題,并且還能告訴你具體的數據以及實驗方法,那么對方的結論則是有更高的可信度的;
3.學會通過數據科學決策,形成個人和企業的決策習慣和文化
AB實驗是一門通過數據科學決策的思維,學會AB實驗之后,可以形成自己個人判斷和決策的方式習慣,同時這種方式也可以作為企業做決策的一種方式和文化,凡是決策不了的問題,那就AB實驗一下吧;
五、AB實驗中如何解決實驗分流問題?
1. 如何實現實驗人群的分流?
通過“分桶”方式實現單層分流
通常做一個實驗可能不止需要2組實驗人群,有時候可能需要比如10組,那么這個時候,我們需要對一個人群做一個切割,比如我的目標人群有100萬,平均分配成10組,每組10萬,這就是最簡單的分桶的邏輯,也很好理解;業務發展的初期,通常實驗量也不多,通過簡單的分桶的方式基本能滿足業務的需求,其中需要重視的是不同分桶人群需要保證必須是隨機的,并且不同分桶之間不相交,確保他們在統計上是相似且具備可比較的;
單層分流的局限是實驗用戶無法重復利用
但是這里顯然會存在一個問題,假如你針對這一波人群,還需要同時做3個不一樣的實驗,而且每個實驗都需要10組,如果采用簡單分桶的方式,你需要將這100萬切分成40個分組,每組只有2.5萬用戶,最后可能會導致實驗樣本量不夠,那么你就無法在同一時間進行多個實驗;這個問題,我們通過第二部分分層的方式解決;
通過散列算法確保不同分桶人群的隨機性
不同分桶人群的隨機性,通常是通過散列算法來實現的,常用的散列算法包括MD、SHA、JDB等,不過這些對于產品經理和運營人員等而言相對過于復雜,我們也不需要過多去研究,只需要知道這個概念,如果企業內有專業的數據分析師,可以讓數據分析師處理,或者也可以使用一些現成的切包工具,比如前面提到的直接切分人群,這些工具的切分原理也是基于這些散列算法實現的;
2. 如何提高實驗人群的利用率,在同一時間做大量的實驗?
用“分層”的方式提高實驗人群利用率
和桶不同的是,層的概念是用于提高同一撥實驗人群的利用率,讓你可以在同一撥人群里面做很多的實驗,并且不同的實驗之間能夠相互不影響,確保每個實驗中的實驗組都是只有一個變量;
通過分層的方式,可以在同一撥人群基礎上建立出很多的實驗分層,并且同一個用戶可以出現在不同的分層里面,這樣不同的分層就可以做不同的實驗,并且能夠確保不同的分層之間是互不影響的;
那么這里你必然會疑惑,不同的分層之間是如何實現互不影響的?我們通過如下這張圖可以看到,每一個實驗層的分一個分桶的人群,都會平均的分配到另一個實驗層的每一個分桶的人群,這樣的話就可以確保一個實驗層的人群,基本所有分桶的人群都具備其他實驗分層的策略,因此同一個分層的不同分桶之間,是基本同質,不受其他實驗影響的;
3. 如何實現實驗人群的隔離?
用“分域”的方式實現實驗人群隔離
前面我們講到分層的邏輯,是把每一分層里的每一個分桶的人群平均分配到下一個實驗層的不同分桶,但是這個方式最好是確保同一個分層里面只有同一類用戶,比如都是青銅等級的用戶,這樣把一個分桶平均分配到下一層的時候,下一層的每個分桶的用戶都是同質的,但是如果一個實驗分層的里的人群出現了兩個不同的人群,比如既有青銅等級的用戶,又有白銀等級的用戶,那么在平均分配的時候可能就出現問題,會導致下一個分層里,一部分分桶分配了青銅用戶,一部分分配了白銀用戶,這樣下一個分層不同分桶的用戶就會出現明顯的不同質,分層的效果就會失效;
因此,面對不同的實驗人群,比如不同的用戶等級、不同的活躍度等維度的用戶,我們需要通過“分域”的方式,將不同的人群隔離開,比如青銅、白銀、黃金等級的用戶分別在不同的實驗域,讓不同的人群在不同的域中進行實驗,這樣才能確保實驗之間不相互影響;
4. 桶、層、域之間的關系總結
1.域的作用是隔離人群還有實驗,確保不同實驗在不同實驗人群上的影響互不干擾,因此域是通過區分人群來實現隔絕分流的,不同的域代表不同的人群;
2.層屬于域的一部分,一個域內可以有多個分層;層的作用是實現該域內同一個實驗人群,可以同時做多個實驗,但是不管你怎么分層,最終只會作用到該域下的同一個實驗人群;
3.桶屬于層的一部分,一個層內可以用多個分桶,分桶的作用將該層的用戶實現切分分流,用于創建不同的實驗組;
5. 桶、層、域的應用
桶、層、域是實際在AB實驗運行的過程中會遇到的問題的解決方案,這些概念,是解決AB實驗問題的思路和方案,同時可以將這些方案設計到AB實驗的系統里面,目前市面上很多AB實驗的系統,都會對以上的概念有所體現,將桶、層、域的概念融入創建AB實驗的流程中;當然,對于運營人員和產品經理來說,我們也可以不需要太深入的了解他們,這部分屬于設計AB實驗系統的數據人員需要重點了解的,只是如果我們能理解他們的關系,這會更加有利于幫助自己快速的理解和使用實驗系統。
六、并不是所有的產品和業務都需要做AB實驗
在很多大廠的產品業務,為什么大家都提倡要做AB實驗?
一方面是因為這些產品的用戶體量較大,隨便一個策略的改動,影響的可能都是大規模的用戶,一旦策略失誤,造成的損失就不小,所以為了控制影響,大家更傾向于拿一小部分用戶先驗證測試策略,得到實驗結論之后再放大策略的灰度量,這樣即使策略是無效的也不會造成太大的影響;
另一方面大廠的產品,由于用戶體量較高,一個策略落地之后,不一定能夠顯而易見的看到數據變化,感知到策略帶來的影響,即使能感知到,也不一定能歸因定位到是哪個策略發揮了效果;基于以上兩點,所以AB實驗就非常重要;
然而,并不是所有的產品和業務都需要嚴格的去做AB實驗,AB實驗更加適用于規模相對較高的產品及業務,數據指標即使是檢測到較小的變化,也能夠帶來較大的價值貢獻;例如像淘寶等產品,轉化率哪怕只是提升0.5%,營收規模的增長可能都會超過1個億;
而對于用戶規模很小,業務發展還不成熟的產品,隨便一個優化策略可能都能帶來明顯的效果提升,則建議別花太多時間研究AB實驗,保持快速的策略迭代,在迭代的過程中,快速驗證效果,這樣的方式,實際上是通過對比不同時間段的策略的方式在做AB實驗,雖然不太嚴謹,但對于小產品而言,實驗策略有沒有效果,通常是顯而易見的,也容易快速的歸因;
作者:三白有話說,公眾號:三白有話說
本文由 @三白有話說 原創發布于人人都是產品經理。未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
寫得好誒,之前只聽說多鄰國AB測試做得好,我沒系統研究過,總算看到一篇不錯的好帖子
謝謝呀