A/B實驗是一種用數據驅動產品迭代的解決方案,使用A/B實驗驅動產品業績增長的方法,深受 Google,Facebook,微軟,百度,騰訊,阿里等眾多公司青睞。
1、什麼是A/B實驗
A/B 實驗,簡單來說,就是為同一個目標制定兩個版本或多個版本的方案,在同一時間維度,分別讓組成成分相同(相似)的 A/B 群組分別採用這些版本,收集各群組的體驗數據和業務數據,最後分析、評估出最好版本,正式採用。其中 A 方案為現行的設計(稱為控制組), B 方案是新的設計(稱為實驗組)。分析 A/B 實驗的定義,要實現科學權威的評估,最重要的兩點在於:
無論是實驗前確保實驗組和對照組流量無顯著性差異,還是實驗後新策略較舊策略的指標變動是否具有統計上的顯著性,無一例外,它們都蘊含著統計學的知識。接下來,我們重點論述一下 A/B 實驗所依賴的統計學基礎以及如何依據統計學理論做出科學評估。
2、統計的基本術語總體 (Population): 我們最終關注的全部對象。例如,如果我們的實驗對象是10%的用戶,那麼它與剩下90%用戶組成的全部用戶是總體。
樣本 (Sample): 總體中的小部分用戶,這是我們的實驗對象。例如,如果我們的實驗對象是10%的用戶,那麼樣本就是這10%的用戶。
樣本量 (Sample Size): 樣本的總個數。
樣本統計量 (Sample Statistics): 它本身是個很寬泛的概念,可以是樣本均值,可以是比率, 可以是方差。但是在A/B實驗中,由於我們目標是了解實驗組和對照組方案的好壞,樣本統計量特指這兩組的差異, 如實驗組和對照組的轉化率之差,用p2-p1表示。
抽樣 (Sampling): 採用某種特定的方法,從總體中選取一部分有代表性樣本的方法,比如隨機抽樣。
分布 (Distribution): 你可以把分布想像成一個橫軸為觀測值,縱軸為出現頻率的圖,比如扔骰子只可能出現1-6這6種可能,重複扔50次骰子,它的分布也許如下:
正態分布 (Normal Distribution): 又叫高斯分布。它的分布圖是一個兩頭少/中間多的對稱的鐘形曲線。自然界的許多隨機事件都服從這種分布,如人的身高,體重。對於正態分布的數據,有68.2%個落在距離總體均值1個標準差 (σ) 的範圍內,95.4%個落在距離總體均值2個標準差 (σ) 的範圍內,99.7%個落在距離總體均值3個標準差 (σ) 的範圍內(中心極限定理和正態分布的運用),有95%個落在距離總體均值1.96倍個標準差 (σ) 的範圍內。
伯努利分布 (Binomial Distribution): 只有0和1兩種取值。都可以表達為是或否的問題。例如,拋一次硬幣是正面向上嗎?新出生的小孩是女孩嗎?廣告轉化率就滿足這種分布。
中心極限定理 (Central Limit Theorem):隨著抽樣次數增多,樣本均值的抽樣分布趨向於服從正態分布。抽樣次數並不是樣本量,一次實驗只是一次抽樣,只能得到一個樣本均值。而n次抽樣會得到n個值,這些值的分布才是正態分布。舉個例子,在下圖中當抽樣次數達到30次時,樣本均值的分布逐漸呈一個對稱的鐘形曲線。中心極限定理是概率論的重要定理,它是接下來談到的顯著性檢驗的基礎。如果一組數據屬於正態分布,我們可以根據正態分布的概率密度函數推算出置信區間或p-value,當一組數據不屬正態分布時,我們仍然可以依據中心極限定理和正態分布的函數推導出置信區間和p-value。
2.1 兩個假設
假設檢驗是利用樣本統計量估計總體參數的方法,在假設檢驗中,先對總體均值提出一個假設,然後用樣本信息去檢驗這個假設是否成立。我們把提出的這個假設叫做原假設,與原假設對立的結論叫做備擇假設,如果原假設不成立,就要拒絕原假設,進而接受備擇假設。
2.2 兩類錯誤
對於原假設提出的命題,我們需要作出判斷,要麼原假設成立,要麼原假設不成立。因為基於樣本對總體的推斷,會面臨著犯兩種錯誤的可能:第一類錯誤,原假設為真,我們卻拒絕了;第二類錯誤,原假設為偽,我們卻接受了。顯然,我們希望犯這兩類錯誤的概率越小越好,但對於一定的樣本量 n,不能同時做到犯這兩類錯誤的概率很小。
2.3 T檢驗
常見的假設檢驗方法有 Z 檢驗、T 檢驗和卡方檢驗等,不同的方法有不同的適用條件和檢驗目標。Z 檢驗和 T 檢驗都是用來推斷兩個總體均值差異的顯著性水平,具體選擇哪種檢驗由樣本量的大小、總體的方差是否已知決定。在樣本量較小且總體的方差未知的情況下,這時只能使用樣本方差代替總體方差,樣本統計量服從 T 分布,應該採用 T 統計量進行檢驗。
2.4 p-vaule
P 值是當原假設為真時,所得到的樣本觀察結果或更極端的結果出現的概率。如果 P 值很小,說明這種情況發生的概率很小,但是在這次試驗中卻出現了,根據小概率原理,我們有理由拒絕原假設,P 值越小,我們拒絕原假設的理由越充分。P 值可以理解為犯棄真錯誤的概率,在確定的顯著性水平下(α一般取 0.05),P 值小於顯著性水平,則拒絕原假設。
1、案例
案例:如果有兩個機器學習模型正在做實驗,哪個模型最轉化率有提升,隨機選取10000個用戶做實驗,對5000個用戶採用第一個模型,另外5000個用戶採用第二個模型,經過一周的的觀察,得到第一個組轉化率為40%,第二個組轉化率為41%。理想狀態中,抽取100個用戶做實驗,那麼一定有41個用戶轉化。在這個例子中,樣本的轉化率41%是嚴格等於總體轉化率41%的。但是現實沒有這麼完美。現實情況下,在這100個樣本中,也許只有30個人轉化,也許有50個人轉化。這就是樣本之間的波動。由於樣本的隨機性,樣本的觀測值(如轉化率)和總體的真實參數(如總體轉化率)存在差距。這種差距能用抽樣誤差衡量。 抽樣誤差越大,用樣本估計總體的結果就越不準確。我們需要置信區間和p-value來描述這次抽樣用樣本估計總體的準確程度。
2、如何理解置信區間和抽樣誤差
由此得出的實驗結論:實驗組對轉化率有提升,因為實驗組轉化率比對照組高了1%。但是由於抽樣誤差的存在,這樣的描述也許並不準確。更精確的表述可能是這樣的:實驗組轉化率相比對照組轉化率高0.8-1.2%(1% ± 0.2 %), 置信度為95%。置信區間的上界是樣本均值+抽樣誤差,下界是樣本均值-抽樣誤差,95%置信度下的抽樣誤差是1.96*樣本標準差。
1%(41%-40%)是實驗組和對照組的絕對差異(p2-p1), ± 0.2 % 是抽樣誤差,絕對差異±抽樣誤差給出了置信區間的範圍為0.8%-1.2%。置信度95%說的是我們95%確信實驗組轉化率相比對照組轉化率高0.8-1.2%。從概率論的角度解釋,就是在其他參數不變的情況下,如果我們重複做同樣的實驗100次,那麼有95次得出的實驗組和對照組的轉化率差異都在0.8%-1.2%這個區間內。因此置信區間是一個區間使得重複實驗n次具有一定概率(這個概率就是置信度)的結果都落在此區間內。而置信度是人為給定的,我們需要在實驗開始前選定一個置信度(工業屆常用95%),它會影響這個實驗所需的樣本量大小和顯著性檢驗的結果。
在A/B實驗中一般有兩種假設:
原假設 (H0):反對的假設。
備擇假設 (H1, or Ha):支持的假設。
假設檢驗的目標是拒絕原假設,它的核心是證偽。一般來說我們在多個備選項中選出其中的某一個有兩種思考過程,一種是基於滿意法的思考,也就是找到那個看上去最可信的假設;另一種是證偽法,即剔除掉那些無法證實的假設。滿意法的嚴重問題是,當人們在沒有對其他假設進行透徹分析的情況下就堅持其中一個假設,當反面證據如山時往往也視而不見。而證偽法能克服人們專注於某一個答案而忽視其他答案,減少犯錯誤的可能性。證偽法的思考過程類似於陪審團審判,首先假定一個人無罪,然後收集證據證明他有罪,如果有足夠證據說明他有罪,就拒絕他無罪的假設。
A/B實驗的估計量不再是p,而是p2-p1 (實驗組和對照組的轉化率之差)。原假設是p2-p1=0 (即兩者沒有差異),因為只有當我們懷疑實驗組和對照組的結果不一樣, 才有實驗的動機,而我們支持的備擇假設是 p2-p1≠0(兩者有差異)。如果p2-p1≠0,在此基礎上我們還需要確定這種差異是否具有統計上的顯著性以支撐我們全量上線實驗組方案。
由於抽樣誤差的存在,A/B實驗可能出現四種結果,而這四種結果中存在兩種假設檢驗錯誤:當原假設H0為真,卻拒絕原假設;和當H0為假,卻沒有拒絕原假設H0。這兩種錯誤分別用 α (alpha) 和 β (beta) 表示,相應的,做出正確假設檢驗判斷的概率分別是1-α 和 1-β。
一類錯誤(Type I Error)指錯誤地拒絕原假設為真的情況。對於A/B實驗來說就是實驗組相比對照組有提升,然而實際卻沒有差別。這裡所說的有提升,是相對於樣本而言的,在總體上實驗組是否相比對照組有提升,這是我們關心卻無從知曉的。也許對於樣本用戶,實驗組存在提升,但對於總體用戶而言,這樣的提升並不存在。當我們想知道這次實驗的提升,是否適用於總體,是否能使假設檢驗犯一類錯誤的概率保持在非常低的水平(概率α=5%)時,我們就需要特別關注實驗是否具有統計顯著性 (Statistical Significance)。要想判斷實驗是否具有統計顯著性,p-value至關重要。
以萬能的扔硬幣為例。我們的原假設是硬幣是均勻的,備擇假設是硬幣不均勻。下表為扔硬幣的次數和出現正面朝上的概率。
當扔硬幣1次,正面朝上了,如果硬幣是均勻的,那麼發生這件事的概率是0.5;當扔硬幣2次,兩次正面都朝上,如果是均勻的硬幣,那麼發生這件事的概率是0.5*0.5=0.25;接著你扔了3次,4次,每次都正面朝上。當扔硬幣5次的時候,仍然是正面朝上,如果硬幣是均勻的,那麼發生這件事的概率只有0.5^5=0.03。這是一個非常小的概率,因為如果硬幣是均勻的,是不太可能發生這樣極端的事情的。但是這樣極端的事情卻發生了,這使你懷疑原假設的正確性,因為一枚不均勻的硬幣極有可能投出這樣的結果,因此你拒絕了原假設,接受了備擇假設,認為這是一枚不均勻的硬幣。
另外,對於很多實驗,在實驗前段時期的顯著性是在顯著和不顯著之間上下波動的,我們需要足夠多的樣本量和更長的實驗周期來涵蓋前期的波動直到顯著性趨於平穩。
上圖為統計顯著性的波動隨樣本量增大的變化情況。在實驗剛開始時,統計顯著性的波動是非常明顯的,這可能受到新奇效應 (Novelty Effect) 的影響。對於用戶存在感知的A/B實驗,如UI的改版、運營方案的更新、新功能的上線等,實驗組所做的任何改變都可能引起用戶的注意,好奇心會驅使他們先體驗一番,從而導致A/B實驗中實驗組效果一開始優於對照組,p-value極小,實驗效果非常顯著。但是一段時間過去後,用戶對於新的改變不再敏感,實驗組效果回落,顯著性可能會下降,最後趨於穩定。足夠的樣本量能保證一個合理的實驗周期,從而避免這種新奇效應的影響。
二類錯誤 (Type II Error)是指錯誤地接受了原假設為假的情況,犯這種錯誤的概率為β。對於A/B實驗來說就是實驗組和對照組沒有差異,但實際實驗組和對照組有差異。
一類錯誤和統計顯著性有關;二類錯誤則和統計功效 (Power) 有關。統計功效是正確的拒絕原假設的概率, 即1-β。為了讓實驗結果更準確,實驗需要提高統計功效, 一般來說提升到80%以上,犯二類錯誤的概率控制到20%以下,實驗結果就比較可信了。
更大的樣本量和更長的實驗周期能獲得更高的統計功效和更準確的測試。通過給定的統計功效值(如80%)和預期提升幅度(最小預期提升幅度MDE,>=2%),可以推導出一個實驗需要的最小樣本量值。
五、參考資料
1、獲得更好用戶體驗的必殺器——A/B實驗統計學秘籍(上)
https://mp.weixin.qq.com/s/hseqdsyjRt-fJ2W2l_fpug
2、獲得更好用戶體驗的必殺器——A/B實驗統計學秘籍(下)
https://mp.weixin.qq.com/s/NNjTq8chqeC96yz4VNiDjA
3、美團配送 A/B 評估體系建設與實踐
https://mp.weixin.qq.com/s/v3Fvp6Hed7ZGoE8FGlGMvQ