聊聊AA實驗的波動性
當我們在實驗評估系統上開啟一個實驗組和對照組配置一摸一樣的實驗時,我們稱之為AA實驗 。AA實驗通常用來輔助觀察指標在產品不做改變時的偏差範圍。我們通常會在實驗里加一個和對照組一模一樣的實驗組來觀察這個偏差,而如果這個偏差很大,通常你的AB實驗也容易結果不置信。
本文的目標受眾是需要在實驗評估系統上做實驗,發現AA實驗的指標差異很大,又懶的再回去翻大學概率論課本的同學們。以最低的學習成本使用實驗評估系統拿到高效的產出,也是實驗評估組的願景,所以我們會用盡量通俗的語言展開描述,如果你看不懂,隨時拿著你的水杯來砍我(別忘了先把熱水倒掉);當然,記得先留言指出沒有說清楚的地方,我們會改正。
閒話少說,我們開始:
波動?啥叫波動?為啥我的AA實驗指標會有波動?
舉個例子。假設我在實驗評估系統上開了一個AA實驗。實驗開啟一段時間之後我們去看產出的實驗指標Read/U(平均每個使用者每天會有多少次閱讀),雖然分配到兩個組的使用者使用的是完全一樣的產品,但是兩個組彙總到的 Read/U 均值總是有多多少少的差別。如果你重複開這個實驗很多次,你會發現每次兩個組上的差別都不太一樣。
這種出現在AA實驗上的不穩定的指標差,就是我們說的波動
產生波動的原因很好理解,一句話來說就是“隨機性”。下一秒開啟頭條的那個使用者今天會讀幾篇文章這完全是隨機的,不可預知的。所以當你開兩個完全相同的實驗組的時候,因為每個組裡的使用者今天會讀的文章數完全隨機,所以最終我們拿到的兩個 Read/U 指標的差別也是隨機的。
怎麼描述AA實驗指標的波動呢?
描述波動的方法很多,對應AB實驗這個應用場景,我們用置信度和置信區間來描述波動性。如果你忘掉這兩個統計學概念的話,就不要去網上查了,簡單說就是:
你做無數多次AA實驗,指標的差落在某個範圍內(置信區間)的概率有多大(置信度)
假如我們知道頭條主app的 Read/U 指標,200W入組使用者的AA實驗在置信度為95%的時候上下波動0.62%,說明大概率下,我們做一個AA實驗,Read/U 指標的變化比例會在正負0.62%以內。
如果你做的AB實驗預期 Read/U 會上升 1%,那麼恭喜你,做實驗驗證去吧;如果你做的AB實驗預期 Read/U 會上升 0.1%,那麼不好意思,這個變化太不明顯了,假如最終實驗結果真的上升了0.1%,我們很難判斷這是策略生效導致的還是波動導致的。
那麼問題來了:
-
【問】你告訴我的波動在0.62%,為啥我的AA波動出現了0.78%? 【答】因為你有95%的概率波動在0.62%以內,還有5%的概率你會遇到指標超過0.62%。出現這種意外的概率(5%)還是要比買彩票中獎高太多。最簡單的辦法就是重新再開一次實驗。
-
【問】5%的意外概率我無法承受,怎麼辦?【答】那就看看置信度為99%的波動值吧。當然,這個數字一定會比95%的波動值大,比如說0.81%。也就是說只有1%的概率,你的AA實驗波動會超出0.81%。
-
【問】可是我的預期變化只有0.68%,不要說0.81%,就是0.62%,變化也不夠明顯啊!【答】加流量吧。試想一下你在擲硬幣,你拋硬幣的次數越多,拿到正面的次數越接近0.5, 這說明 實驗的越多(進組使用者數越大),指標的結果越穩定(波動越小) 。當入組使用者數升高到800W時,你會發現95%的置信度下,波動會降低到0.31%。【是的,你猜對了,波動與使用者數的平方根呈反比,所以使用者數升4倍,波動會降一半,如果感興趣,回去複習概率論吧】
分流不是均勻的嗎?怎麼入組使用者數也有波動?
使用者的潛臺詞是:“你們在逗我嗎?”還真沒有。再舉拋硬幣的例子,分流的時候一個使用者會進入哪個組就好比拋硬幣時會出現哪個面。因為進入哪個組和出現哪個面一樣,都是 隨機的 。所以無論分流策略多麼完美,入組使用者數和其他指標一樣,都存在波動性。
什麼影響波動性?不同產品的相同指標波動為何不同?
入組使用者數
入組使用者數對波動的影響前面說過,這個不難理解。入組使用者數越多,波動性越小。所以當做實驗的同 學發現AA波動很大時,可以考慮一下提高實驗流量來提高入組使用者數數量,從而降低AA波動。
指標穩定性(標準差或方差)
指標標準差描述的是指標取值的穩定程度。舉一個射箭的例子。如果有小張小王兩個人射箭,平均都拿8環,小張比較穩定,大多數時候都射中8環,少數時候射中7環和9環;小王發揮很不穩定,大部分時候要麼10環要麼6環。如果小張先射100次算平均分,再射100次算平均分(等價於我們在小張這裡做了一次AA實驗),兩個平均分的差別體現的就是波動性。很顯然,小王指標的波動性要大很多,因為他本身射箭不穩定。
類似的,例如 Comment/U 指標,因為它的取值穩定性特別差,所以我們總是能看到這個指標的波動要大於 Read/U 這些穩定性稍好的指標。怎麼描述指標的穩定性呢?算個標準差吧。
有同學曾經問過為什麼相同的指標相近的入組使用者數,在同一個產品的國內版本和國外版本波動不一樣。可以簡單的看看這個指標在兩個版本上的標準差,如果不出意外,波動大的那個版本的標準差也會較大。
你們是怎麼計算波動性的呢?
先輩們提出並證明了一條統計學公式,簡單且不嚴謹的說就是,如果已知母本的期望與方差,那麼從該母本上的任意樣本數量為N的取樣得到的期望滿足正態分佈;正態分佈的引數與母本的期望,方差和樣本數量N有關。
如果我們把某個app一整天全量的日誌資料作為母本,AA實驗不過是在考察兩個取樣樣本的期望的變化比。期望和方差我們都有,套入公式,我們就能得到發生在這一天的所有指標的波動性,並以此推測明天這些指標在相同app下的波動性。
其他資料
如果週末不需要陪男/女朋友,而且上面那些看得不過癮的話,請閱讀《概率論與數理統計》,隨便誰出版的哪個版本都可以。