天天看點

如何做一次完美的 ABTest?

在我們進行ABTest的時候,必備的基礎知識有哪些?該如何一步一步的進行AB實驗呢?本文将根據 AB 實驗的流程帶領大家一窺究竟。

本文首發于 vivo網際網路技術 微信公衆号 

連結: https://mp.weixin.qq.com/s/mO5MdwG7apD6RzDhFwZhog 

作者:DuZhimin

越來越多的公司都在嘗試 ABTest,要麼是自己搭建系統,要麼依賴于第三方的系統。那麼在我們進行ABTest的時候,必備的基礎知識有哪些?該如何一步一步的進行AB實驗呢?本文将根據 AB 實驗的流程帶領大家一窺究竟。

一、引言

在網際網路公司的業務發展過程中,使用者增長是永恒的主題,因為沒有增長也就沒有發展,是以在業務發展的早期産品疊代速度往往是越快越好,總之一句話:“怎麼快怎麼來”。

而當業務發展到一定階段後,野蠻生長的紅利逐漸消退,使用者增長空間在可見政策下變得不那麼明顯的情況下,如何合理地規劃産品疊代政策就顯得尤為重要了,而具體如何判斷産品政策是否有效,往往就需要資料說話,其結果決定了該産品或政策的生命力以及與之配套的各類資源的調配,畢竟我們都不會将資源浪費在無效的産品和政策上。

那麼通過什麼樣的工具或手段才能確定資料驅動政策的有效落地和實施呢?很多公司都是通過ABTest及建設與之相适配的實驗基礎設施平台來實作這樣的目标。

2019年我們搭建了vivo的ABTest實驗平台(霍金實驗平台),到目前為止台累計接入業務方14個業務方進行了40個實驗,在與業務方溝通過程中發現我們對ABTest的了解還不夠,是以在這裡我們一起學習一下相關的知識點,加深對ABTest的了解。

ABTest通常是比較産品的某一個變量在不同的版本裡面設定不同的值帶來的作用以及影響(比如一個頁面用紅色的按鈕、另一個用藍色的按鈕),其中版本A是目前正在使用的版本,而版本B是改進版。在進行實驗時一般是比較實驗組和對照組在某些名額上是否存在差異,當然更多時候是看實驗組相比對照組某個名額表現是否更好。這樣的對比在統計學上叫做兩樣本假設檢驗,即實驗組和對照組為兩樣本,假設檢驗的原假設H0:實驗組和對照組無顯著差異;備擇假設H1:實驗組和對照組存在顯著差異。

更多時候我們關注的比例類的數值,如點選率、轉化率、留存率等。這類比例類數值的特點是,對于某一個使用者(樣本中的每一個樣本點)其結果隻有兩種,“成功”或“未成功”;對于整體來說,其數值為結果是“成功”的使用者數所占比例。如轉化率,對于某個使用者隻有成功轉化或未成功轉化。比例類數值的假設檢驗在統計學中叫做兩樣本比例假設檢驗。

下面我們以賬号裝置登入率實驗來進行講解。

二、實驗前準備

1、做實驗之前,我們先來回答下面幾個問題:

1.1、你進行實驗是想證明什麼?

答:我想通過改變裝置登入按鈕的顔色來提高賬号的裝置登入率

1.2、你的對照組和實驗組将是什麼樣子?

答:對照組就是目前的樣子,請看下圖,登入的按鈕是藍色的背景,實驗組我想把登入的按鈕背景改成橙色,進而看看裝置登入率是否有提升。

【完美第一步:确定實驗組和對照組】

1.3、如何避免混雜因素?

(混雜因素就是研究對象的個體差異,它們不是你試圖進行比較的因素,但卻最終導緻分析結果的敏感度變差,比如不同城市的人,不同年齡段的人,性别……,進行實驗的時候要盡量避免混雜因素對結果的影響)

答:你這裡問的就是我們在做實驗的時候,如何确定對照組和實驗組的樣本吧,就是要使實驗組和對照組的樣本個體差異盡量相同。如何配置設定每個實驗方案的使用者霍金實驗平台已經幫我們做了,我了解到實驗平台可以支援很多種劃分使用者的政策(唯一辨別符哈希,指定特定使用者,根據使用者标簽……),我們準備采用唯一辨別符哈希的政策,它是從請求的使用者中随機選擇來避免混雜因素的極好辦法:因為可能成為混雜因素的那些因素最終在對照組和實驗組中具有同票同權。

下圖是實驗平台支援的分流政策:

【完美第二步:排除混雜因素】

2、樣本量

做A/B實驗需要多少樣本?這是我們在做實驗的時候都必須要回答的問題。(其實對于網際網路的應用來說,流量都非常大,樣本量很少是實驗中需要考慮的因素,不過這裡我們還是要講一講,因為還涉及到一些其他的概念,我們也需要了解了解)

2.1、為何要計算樣本量?

理論上,樣本量越多越好:

  • 從直覺上看,當樣本數量很少的時候,實驗容易被新的樣本點帶偏,造成了實驗結果不穩定,難以得出确信的結論。相反的,樣本數量變多,實驗則有了更多的“證據”,實驗的“可靠性”也就越強。

在現實操作中,樣本量應該越少越好,這是因為:

  1. 流量有限:大公司因為使用者數量足夠多,不用過于精打細算,同時跑幾十個甚至上百個實驗也沒問題。但小公司一共就那麼點流量,還要開發這麼多新産品。在保證不同實驗的樣本不重疊的情況下,産品開發的速度會大大降低。
  2. 試錯成本大:假設我們拿50%用的戶來跑實驗,但不幸的是,一周後結果表明實驗組的總收入下降了20%。算下來,你的實驗在一周内給整個公司帶來了10%的損失。這個試錯成本未免高了一些。

2.2、置信度和檢測效能

要搞清這兩個概念,我們了解一下A/B實驗的基本知識。

首先,A/B測試的兩個假設:

原假設(Null hypothesis, 也叫H0):我們希望通過實驗結果推翻的假設。在我們的例子裡面,原假設可以表述為“橙色按鈕和藍色按鈕的裝置登入率一樣”。

備擇假設(Alternative hypothesis, 也叫H1):我們希望通過實驗結果驗證的假設。在我們的例子裡面,可以表述為“橙色按鈕和藍色按鈕的裝置登入率不一樣”。

A/B測試的本質,就是通過實驗資料做出判斷:H0到底正不正确?那麼就會出現下面四種情況:

1、裝置登入率無差別(H0正确),實驗分析結果卻說有差別:

由于判斷錯了,我們把這類錯誤叫做第一類錯誤(Type I error),我們把第一類錯誤出現的機率用α表示。置信度 = 1-α 。第一類錯誤意味着新的産品對業務其實沒有提升,我們卻錯誤的認為有提升。這樣的分析結果,不僅浪費了公司的資源,而且可能對産品進行了負向引導。

是以,在做A/B測試的時候,我們希望第一類錯誤越低越好。實際操作中,我們人為的對α定了一個上限,一般是5%。也就是說,在做實驗的時候,我們都會保證第一類錯誤出現的機率永遠不超過5%。

2、裝置登入率有差別(H1正确),實驗分析結果卻說沒差別:

我們的判斷又錯了,這類錯誤叫做第二類錯誤(Type II error),用β表示。我們一般定義第二類錯誤β不超過20%。

3、情況2和情況3是兩種判斷正确的場景,我們把做出這類正确判斷的機率叫做檢測效能。

我們的做實驗的根本目的是為了檢測出橙色按鈕和藍色按鈕的裝置登入率的差别。如果檢測效能低,證明即使新産品真的有效果,實驗也不能檢測出來。換句話說,我們的實驗無卵用。

根據條件機率的定義,檢測效能 = 1 -β = 80%。

對兩類錯誤上限的選取(α是5%,β是20%)中我們可以了解到A/B實驗的重要理念:甯肯砍掉4個好的産品,也不應該讓1個不好的産品上線。

2.3、樣本量的計算公式

大部分情況下,我們不需要詳細了解樣本量的計算公式,這裡給出來公式,大家一起學習一下。

上面式子中p1我們稱為基礎值,是實驗關注的關鍵名額現在的數值(對照組);p2我們稱為目标值,是希望通過實驗将其改善至的水準;α和β分别稱為第一類錯誤機率和第二類錯誤機率,一般分别取0.05和0.2;Z為正态分布的分位數函數 。

因為 ABTest一般至少2組,是以實驗所需樣本量為2n。

2.4、這麼複雜的公式我不會算,咋辦?

如今霍金實驗平台已經提供了計算樣本量的小工具,隻需要填入幾個數字就可以了:

說明:

目前業務日常的比例(基線比率):比如目前我們進行的賬号裝置登入率實驗,那麼這個基線比率就是目前的裝置登入率,比如15%。

期望提升的最小比率(最小可探測效應):在我們的實驗中,我們標明期望提升的最小比率為5%。這意味着,如果粉色按鈕真的提高了5%的裝置登入率,我們希望實驗能夠有足夠把握檢測出這個差别。

實驗組數:正常進行AB實驗的時候,就是兩個,一個對照組,一個實驗組。

【完美第三步:計算最小樣本量】

3、确定名額

在進行實驗時一般是比較實驗組和對照組在某些名額上是否存在差異,當然更多時候是看實驗組相比對照組某個名額表現是否更好。是以我們在進行實驗之前就應該先确定好實驗中需要需要對比的名額,更多時候我們關注的比例類的名額,如點選率、轉化率、留存率等。後續我們做實驗的顯著性分析的時候,也是分析的比例類名額。

【完美第四步:确定實驗名額】

4、埋點

當我們确定了需要分析的具體名額之後,就需要我們進行埋點設計,把相關的使用者行為收集起來,供後續的流程進行資料分析,進而得出實驗結論。

對于 ABTest我們需要知道目前使用者是處于對照組還是實驗組,是以埋點中這些參數必須要有。

目前霍金實驗平台通過服務端埋點技術,支援業務方實驗的時候埋點資料不上報使用者是處于實驗組還是對照組的資訊,但是建議還是業務方把使用者處于的方案資訊埋進去,這樣資料更準确,分析的結果更可靠。

【完美第五步:收集實驗資料】

三、實驗中觀察

1、觀察樣本量是否符合預期,比如實驗組和對照組分流的流量是否均勻,正常情況下,分流的資料不會相差太大,如果相差太大,就要分析哪裡出現了問題。

2、觀察使用者的行為埋點是否埋的正确,很多次實驗之後,我們發現埋點埋錯了。

四、實驗後分析

1、當我們做過 ABTest之後,需要對資料進行分析來确定本次實驗的效果,這就需要進行實驗的顯著性分析,看看實驗的顯著性差異,如果結果不顯著,則不具備參考性。

2、顯著性差異是一個統計學名詞。它是統計學上對資料差異性的評價。在作結論時,通常情況下我們用 P>0.05 表示差異性不顯著;0.01<P<0.05 表示差異性顯著;P<0.01表示差異性極顯著。

3、當資料之間具有了顯著性差異,就說明參與比對的資料來自于具有差異的兩個不同總體,這種差異可能因參與比對的資料是來自不同實驗對象群體,比如把中年人和老年人相比,也可能來自于實驗處理對實驗對象造成了根本性狀改變(正是我們AB實驗期望的),因而實驗的資料會有顯著性差異。

4、下面給出比例類名額顯著性計算公式,供大家參考(獨立樣本t檢驗):要計算p值,我們需要先計算t值,公式如下:

計算出t值後,根據t值和自由度n =N1 + N2 - 2 将 t 值轉換成p值,

這裡給出Excel的計算公式:p =Tdist(t,n,1)

5、這麼複雜的顯著性計算需要我們業務方來計算嗎?

答:不需要,霍金實驗平台已經支援實驗名額的顯著性計算:

【完美第六步:名額顯著性計算】

6、從3可知,顯著性差異不一定就代表實驗是有效的,可能是因為混雜因素導緻的,這就需要做實驗樣本的進一步分析,确定是不是混雜因素的影響。

【完美第七步:确定顯著性根本原因】

7、最終通過分析,給出本次實驗是否有效,如果有效那麼本次實驗帶給業務方的提升是多少的結論。

【完美第八步:給出實驗結論】

8、聽說霍金實驗平台将會支援方案分流資料實時檢視和名額資料實時檢視 是嗎?

答:是的,是的,應該不會太久。

五、總結

如何做一次完美的 ABTest?

1、确定對照組和實驗組,最好是做單變量的實驗,一次隻改變一個變量。

2、分流時盡量排除混雜因素,一般情況下采用随機分流即可。

3、檢查流量是否達到最小樣本量要求,達不到要求則沒法進行後續的分析,實驗結果不可信。

4、确定本次實驗的對比名額,就是如果方案之間存在差别需要通過什麼來衡量?

5、準确收集使用者行為資料,這就要求埋點必須正确。

6、分析名額的顯著性,如果名額不顯著則表示實驗無效。

7、确定引起顯著性的根本原因,排除混雜因素導緻實驗結果的顯著性。

8、最終給出實驗結論:有效 or 無效。

更多内容敬請關注 vivo 網際網路技術 微信公衆号

注:轉載文章請先與微信号:Labs2020 聯系。

分享 vivo 網際網路技術幹貨與沙龍活動,推薦最新行業動态與熱門會議。

繼續閱讀