聊聊AA實驗的波動性

2022-07-06 00:54:11 字數 2335 閱讀 3281

閒話少說,我們開始:

波動?啥叫波動?為啥我的aa實驗指標會有波動?

舉個例子。假設我在實驗評估系統上開了乙個aa實驗。實驗開啟一段時間之後我們去看產出的實驗指標read/u(平均每個使用者每天會有多少次閱讀),雖然分配到兩個組的使用者使用的是完全一樣的產品,但是兩個組彙總到的 read/u 均值總是有多多少少的差別。如果你重複開這個實驗很多次,你會發現每次兩個組上的差別都不太一樣。

這種出現在aa實驗上的不穩定的指標差,就是我們說的波動

產生波動的原因很好理解,一句話來說就是「隨機性」。下一秒開啟頭條的那個使用者今天會讀幾篇文章這完全是隨機的,不可預知的。所以當你開兩個完全相同的實驗組的時候,因為每個組裡的使用者今天會讀的文章數完全隨機,所以最終我們拿到的兩個 read/u 指標的差別也是隨機的。

怎麼描述aa實驗指標的波動呢?

描述波動的方法很多,對應ab實驗這個應用場景,我們用置信度置信區間來描述波動性。如果你忘掉這兩個統計學概念的話,就不要去網上查了,簡單說就是:

你做無數多次aa實驗,指標的差落在某個範圍內(置信區間)的概率有多大(置信度)

如果你做的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有關。

其他資料

如果週末不需要陪男/女朋友,而且上面那些看得不過癮的話,請閱讀《概率論與數理統計》,隨便誰出版的哪個版本都可以。

價格波動性創三個月低點,以太坊就要死了?

宣告 本文由程式設計客棧內容合作夥伴 巴位元 授權發布程式設計客棧。skew markets的資料顯示,與位元幣相比,以太坊市場波動性處於 3 個月低點。許多其他指標也預示著以太坊即將面臨 危險區 從某種程度上來說,波動性是一種必要之惡,是參與加密貨幣市場時需要接受的特點。波動性讓樂於承擔奉獻的交易...

Python 生成週期性波動的資料 可指定數值範圍

原文 import numpy as np import math import matplotlib.pyplot as plt python在指定的時間段生成週期性波動的資料 週期性 long 400 400個步長,x軸的總長度 base 3.2 均值 ybase np.zeros 1,long...

pod 的親和性,反親和性 實驗

pod 的親和性,反親和性 實驗 目錄 設定node01和node02節點,擁有標籤 test a root master demo kubectl label nodes node test a overwrite node node01 labeled node node02 labeled 檢...