常見的A/B測試誤區分析:重複檢驗顯著性

2020-12-06 人人都是產品經理

避免重複檢驗顯著性錯誤的最好方式就是不去重複地檢驗顯著性。

一、一種常見的A/B測試誤區

如果網頁正在運行A/B測試的時候,你時不時地去查看試驗結果的顯著性,你就會陷入誤區。

統計學上,重複檢驗顯著性是錯誤的行為。這樣做的後果是,即使數據報告顯示統計顯著,實際上仍有較大可能性非統計顯著。下面解釋原因。

二、背景

當A/B測試的數據面板顯示「95%可能性比原版本有提升」,或者「90%可能統計顯著」,需要考慮如下的問題:假如A版本和B版本沒有潛在的差別,我們能看到數據中顯示出區別的可能性有多大?

這個問題的答案就是顯著性水平,「統計顯著的結果」意味著顯著性水平數值比較小,5%或1%。數據面板一般會取補集(95%或99%),作為「優於原版本的概率」或類似的東西來報告。

然而,顯著性水平的計算有嚴格的假設:樣本數量的多少是事先指定的。你很可能違反了該假設而不自知。如果開始試驗之前你沒有「本次試驗將採集1000個樣本」這樣的預期,而是打算「一看到統計顯著的結果就結束」,那麼上報的顯著性水平將毫無意義。這一結論完全反直覺,大量A/B測試工具忽略了這一點。下面會用一個例子解釋問題出在哪裡。

三、例子

假設你在樣本量達到200和500時對試驗進行分析,4個可能發生情景如下:

假設AB版本效果相同,顯著性水平為5%,那試驗結束時,我們有5%的可能性得到統計顯著的結果。

而如果我們一觀察到顯著結果就停止試驗,事情會像下面這樣發展:

第一行和之前一樣,收集200個樣本之後報告的顯著性水平沒啥問題。然而問題出在第三行,試驗結束時,假設AB兩個版本實際效果相同,我們得到統計顯著結論的比例上升了。因此,顯著性水平——用來衡量因為運氣因素觀察到區別的概率,將是錯誤的。

四、問題有多嚴重?

如果你的轉化率是50%,想測試一下新的logo是否能把轉化率提升到50%以上。你打算觀察到5%級別的統計顯著性就停止試驗,否則在收集150個樣本後停止試驗。

假設新logo沒有任何影響,得到錯誤的統計顯著結果的概率有多大?不過5%?根據前面的分析,也許是6%?

結果是26.1%——比你預計的顯著性水平的5倍還多。這是最差的情況,因為我們每收集一個新樣本都檢查統計顯著性(也不是沒有這樣先例)。至少有一家A/B測試平臺確實提供在出現統計顯著就停止試驗的功能。聽起來這是個巧妙的花招,直到你意識到在統計學上這是惡習。

重複進行顯著性檢查總會增加虛報概率,也就是說會把許多本來非顯著的結果變成顯著(而不是反之)。只要你有「偷窺」數據,發現統計顯著就結束試驗的行為,該問題就會存在。偷窺地越頻繁,顯著性水平偏差越大。

例如,在試驗過程中偷窺10次,表面上是1%的顯著性實際上僅是5%的顯著性。下面的表格展示了在有偷窺的情況下,數據報表中的顯著性需要達到多少才能有實際上的5%顯著性。

偷窺次數達到實際顯著性水平5%時,所需要的報告顯著性水平:

看一下自己犯了多大的錯誤,如果你在A/B測試過程中不時地查看統計結果並快速的做決定,上面的表格會讓你起雞皮疙瘩。

五、應該如何做

避免重複檢驗顯著性錯誤的最好方式就是不去重複地檢驗顯著性。

事先決定樣本數量,等試驗結束後再去A/B測試軟體中查看「優於原版本的概率」。如果你能抑制提前結束試驗的想法,那中途偷窺數據也無妨。這有些反人性,所以最佳建議還是不要偷窺。

既然要事先決定樣本數量,應該取多少呢?下面是經驗公式:

δ是能檢測到的最小變化,σ是樣本的標準差。樣本的標準差可能不好預知,但是如果參與計算的樣本取值是2值的(比如統計轉化率),則有:

保證樣本的規模就能避免問題。

對A/B測試軟體的建議:在試驗結束之前不要報告顯著性水平,不要用顯著性水平來決定是繼續試驗還是停止試驗。試驗進行中不報告顯著性水平而是報告目前樣本數量能檢測出多大的差別,計算公式為:

兩個t是給定顯著性水平α/2和統計功效1-β的t統計量。

聽起來痛苦,你甚至可以考慮把試驗效果的「當前估計值」去除掉,直到試驗結束再顯示。如果該信息用於提前結束試驗,則報告的顯著性水平毫無意義。

如果你真想把這事做對:事先固定樣本大小可能令人沮喪,如果改動後效果確實不錯,難道不應該立刻部署嗎?

這個問題長期困擾著醫學界,因為醫學研究人員通常希望在新的療法看起來有效時停止臨床試驗,但是他們還需要對其數據進行有效的統計推斷。下面是兩種用於醫學試驗設計的方法,有些部分應該也適用於網頁試驗:

序貫分析試驗設計:序貫分析試驗設計讓你可以預先設定檢查點,決定是否繼續試驗,給出正確的顯著性水平。貝葉斯試驗設計:貝葉斯試驗設計讓你可以隨時停止試驗並給出正確推斷。實時反映網頁試驗的狀態,貝葉斯方案看起來是未來發展方向。

六、結論

雖然數據面板看起來很強大和方便,但在進行中的A/B測試中被濫用。任何時候,當它們與手動或自動的「停止規則」結合使用時,顯著性檢驗結果會無效。除非在軟體中實現序貫分析或貝葉斯實驗設計,否則任何運行網頁試驗的試驗者都應該只在樣本量已經提前固定的情況下進行試驗,並且像虔誠的教徒一樣堅持該樣本量。

本文由 @祁永輝 原創發布於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

相關焦點

  • 檢驗回歸係數的顯著性excel_excel相關係數顯著性檢驗 - CSDN
    即回歸模型中只有一個自變量和一個因變量,其回歸方程可以表示為:Y=a+bx+其中,Y表示因變量,x表示自變量,a是 常數,b是斜率 2、最小二乘法:如何確定參數a和b,則要用最小二乘法來實現。通過最小化誤差的平方和尋找數據的最佳函數匹配,即使得觀測點和估計點的距離的平方和最小。
  • 一元線性回歸顯著性檢驗專題及常見問題 - CSDN
    回歸方程的顯著性檢驗  t 檢驗(回歸係數的檢驗)  F 檢驗(回歸方程的檢驗)  相關係數的顯著性檢驗  樣本決定係數  三種檢驗的關係採用的假設如下:原假設     H0 : β1 = 0   (x 與 y 不存在線性關係)對立假設  H1 : β1 ≠ 0  回歸係數的顯著性檢驗就是要檢驗自變量 x 對因變量 y 的影響程度是否顯著。下面我們分析接受和拒絕原假設的意義。
  • 顯著性檢驗的計算 - CSDN
    轉自個人微信公眾號【Memo_Cleon】的統計學習筆記:R筆記:兩配對樣本的顯著性檢驗。跟兩獨立樣本相對應的是兩配對樣本,生物醫學中常見的案例是治療前後的比較,兩種檢測方法的比較(同一樣本接受不同的檢驗方法)、配對的對象接受不同的處理。
  • 回歸方程的顯著性檢驗 - CSDN
    回歸方程的顯著性檢驗  t 檢驗(回歸係數的檢驗)  F 檢驗(回歸方程的檢驗)  相關係數的顯著性檢驗  樣本決定係數  三種檢驗的關係採用的假設如下:原假設     H0 : β1 = 0   (x 與 y 不存在線性關係)對立假設  H1 : β1 ≠ 0  回歸係數的顯著性檢驗就是要檢驗自變量 x 對因變量 y 的影響程度是否顯著。下面我們分析接受和拒絕原假設的意義。
  • 一文帶你輕鬆掌握,重複測量方差分析
    數據格式常見的重複測量數據格式,一般記錄成下圖格式:常見格式在上傳SPSSAU分析時,需要先進行整理。上傳格式如上圖,將三次測量的結果,整理到同一列中,並單獨設置一列用於識別測量時間。比如上圖有12個樣本(12個ID號),並且測量3個時間點。那麼就一定會有12*3=36行數據。同一個ID號會重複3次,同一個時間點會重複12次。
  • 回歸係數顯著性t檢驗 - CSDN
    回歸方程的顯著性檢驗  t 檢驗(回歸係數的檢驗)  F 檢驗(回歸方程的檢驗)  相關係數的顯著性檢驗  樣本決定係數  三種檢驗的關係採用的假設如下:原假設     H0 : β1 = 0   (x 與 y 不存在線性關係)對立假設  H1 : β1 ≠ 0  回歸係數的顯著性檢驗就是要檢驗自變量 x 對因變量 y 的影響程度是否顯著。下面我們分析接受和拒絕原假設的意義。
  • 【Matlab】柵格數據相關分析及顯著性檢驗
    相關分析就是對總體中確實具有聯繫的標誌進行分析,其主體是對總體中具有因果關係標誌的分析。
  • 顯著性檢驗與作用大小
    假設檢驗,或者更準確地說是「零假設的顯著性檢驗」,告訴我們的是:1.如果零假設是對的,那麼出現這個數據中的變量關係的概率有多大?但我們希望知道的是另一個問題的答案:2.給定這些數據,我們零假設是對的可能性有多大?
  • 回歸係數顯著性t檢驗_多元線性回歸方程及回歸係數的顯著性檢驗...
    2、標準誤差(Standard error)【反映的是均值的波動情況】:指在抽樣試驗(或重複的等精度測量)中,常用到樣本平均數的標準差;反映樣本平均數對總體平均數的變異程度,從而反映抽樣誤差的大小,是量度結果精密度的指標。
  • 【R語言】相關性分析、相關係數的顯著性檢驗及可視化
    本篇文章介紹基於R語言的相關性分析、相關係數的顯著性檢驗及可視化,該教程為個人筆記,大家也可參考學習,不足之處也歡迎大家批評指正!相關性分析用於評估兩個或多個變量之間的關聯,能通過定量指標描述變量之間的強弱、直接或間接聯繫。
  • spss做顯著性檢驗_spss對回歸估計值和回歸方程進行顯著性檢驗...
    那麼如何用SPSS做T檢驗呢,看一下下面的做法吧~1.單樣本T檢驗,我們要做的其實主要就是求數據的置信區間以及數據是否有顯著性差異,而我們生物醫學上面基本都是要求95%的置信區間的,當然有一些特殊情況下面,這個區間也是會變的,首先,我們先導入數據樣本,小編會以「身高」為例,求取身高的這個區間以及確定它是否有顯著性差異
  • 線性回歸方程的顯著性驗證,總體驗證的F檢驗與個體驗證的t檢驗
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第8章,顯著性驗證,總體驗證的F檢驗與個體驗證的t檢驗。上一章,我講述了回歸方程的精度,在回歸分析中,我們求出回歸方程後,除了確認回歸方程的精度外,我們要需要對回歸方程進行顯著性驗證,以確認回歸方程的有效性。本章,我同樣分如下三個小節對顯著性驗證進行講解,歡迎閱讀與探討。我的《線性回歸分析》專欄總目錄見下圖。1、什麼是顯著性驗證?
  • 【方法】相關係數的計算與顯著性檢驗
    這些信息可供讀者進行後續分析。樣本相關係數可以用來對論文中建立的統計模型進行驗證,也可以用來進行元分析。相關係數的計算和顯著性檢驗是一個很輕鬆的工作——通常情況下,研究者會使用SPSS計算SPSS中各變量的相關,SPSS也直接提供了對相關係數的顯著性檢驗,研究者需要做的就是點點滑鼠,然後將結果抄寫在論文中。
  • 回歸分析檢驗_回歸分析中f檢驗和t檢驗 - CSDN
    此時,可以利用卡方分布分析結果,排除可疑結果。『卡方檢驗』卡方檢驗是一種基於卡方分布的常用的統計(顯著性)檢驗,其統計量在原假設成立時服從卡方分布。不同的卡方檢驗使用不同的計算公式計算統計量,卡方檢驗都假設其使用的統計量服從卡方分布。對分類數據進行分析的統計方法主要是利用卡方分布,也被稱作卡方檢驗。
  • python 顯著性水平專題及常見問題 - CSDN
    在之前我們利用線性回歸來分析葡萄酒的質量以及股票市場,但在這個任務中,我們將學習如何理解關鍵的統計學概念。Statsmodels是Python中進行嚴格統計分析的一個庫,對於線性模型,Statsmodels提供了足夠多的統計方法以及適當的評估方法。sm.OLS這個類用於擬合線性模型,採取的優化方法是最小二乘法。
  • 通靈、模式錯覺和顯著性檢驗
    而是試圖證明它是正確的,不但會偏向性的努力尋找證據來證實,而且會對有歧義的證據偏向性的理解;假如你的小米手機有點缺陷,湊巧另外一個朋友告訴你,他的小米手機也不好時,你就會形成小米手機不靠譜的結論,而不管它比大多數手機都靠譜的事實;顯著性檢驗
  • 一元回歸t檢驗與f檢驗_多元回歸模型的r檢驗f檢驗與t檢驗 - CSDN
    變量的顯著性檢驗變量的顯著性檢驗的目的:剔除回歸係數中不顯著的解釋變量(也就是X),使得模型更簡潔。在一元線性模型中,我們只有有一個自變量X,就是要判斷X對Y是否有顯著性的影響;多元線性回歸中,驗證每個Xi自身是否真的對Y有顯著的影響,不顯著的就應該從模型去掉。
  • 三種中介效應檢驗方法及操作步驟
    介紹三種常見中介效應檢驗方法,分別是因果逐步回歸檢驗法、係數乘積法、改良後的因果逐步回歸法,以及如果使用SPSSAU進行操作。什麼是中介效應中介效應:如果自變量X通過影響變量M而對因變量Y產生影響,則稱M為中介變量。
  • t檢驗回歸方程專題及常見問題 - CSDN
    回歸方程的顯著性檢驗  t 檢驗(回歸係數的檢驗)  F 檢驗(回歸方程的檢驗)  相關係數的顯著性檢驗  樣本決定係數  三種檢驗的關係採用的假設如下:原假設     H0 : β1 = 0   (x 與 y 不存在線性關係)對立假設  H1 : β1 ≠ 0  回歸係數的顯著性檢驗就是要檢驗自變量 x 對因變量 y 的影響程度是否顯著。下面我們分析接受和拒絕原假設的意義。
  • CFA教材輔導:測試多元回歸的顯著性/修正R方
    測試多元回歸的顯著性之前,我們說明了如何分別對回歸係數進行假設檢驗。如果我們現在想測試整個回歸的顯著性應該怎麼辦?作為一個整體,自變量是否有助於解釋因變量?為了解決這個問題,我們檢驗了回歸中所有斜率係數同時等於0的原假設。