產(chǎn)品設(shè)計必不可少的A/B測試,真相在這里

1 評論 4218 瀏覽 16 收藏 15 分鐘

A/B測試在產(chǎn)品優(yōu)化中的應(yīng)用方法是:在產(chǎn)品正式迭代發(fā)版之前,為同一個目標(biāo)制定兩個(或以上)方案,將用戶流量對應(yīng)分成幾組,在保證每組用戶特征相同的前提下,讓用戶分別看到不同的方案設(shè)計,根據(jù)幾組用戶的真實數(shù)據(jù)反饋,科學(xué)的幫助產(chǎn)品進(jìn)行決策。

是什么

生物學(xué)以及其他學(xué)科中,總是會出現(xiàn)「控制變量法」來驗證某種假設(shè)。通常有一組對照組、一組試驗組,比如:

證明:酶在加熱到一定溫度后會失活。

第一次向反應(yīng)體系中加入加熱后的酶;第二次加入沒加熱的,看反應(yīng)現(xiàn)象。其中,第一次為實驗組,第二次為對照組。

證明:吸煙會增大得肺癌的幾率。

我們可以選兩群位于同一地區(qū)、職業(yè)類似人,一群人吸煙,一群人不吸煙,進(jìn)行跟蹤調(diào)查,樣本容量要足夠大。其中吸煙的那組為實驗組,不吸煙的為對照組。

以上算是A/B實驗的引子和簡單案例。到了真正的科研領(lǐng)域中,會有更嚴(yán)謹(jǐn)?shù)膽?yīng)用方法。而A/B測試被應(yīng)用到產(chǎn)品設(shè)計上,最早可查的是在2000年開始,Google的工程師才開始使用A/B測試進(jìn)行產(chǎn)品設(shè)計。

在產(chǎn)品設(shè)計中如何應(yīng)用,直接引用一段:

A/B測試在產(chǎn)品優(yōu)化中的應(yīng)用方法是:在產(chǎn)品正式迭代發(fā)版之前,為同一個目標(biāo)制定兩個(或以上)方案,將用戶流量對應(yīng)分成幾組,在保證每組用戶特征相同的前提下,讓用戶分別看到不同的方案設(shè)計,根據(jù)幾組用戶的真實數(shù)據(jù)反饋,科學(xué)的幫助產(chǎn)品進(jìn)行決策。

「將用戶隨機(jī)均質(zhì)分組后,應(yīng)用不同的方案,觀察各組的數(shù)據(jù)反饋,以指標(biāo)的高低衡量方案的好壞。」

聽起來沒什么問題,對嗎?

說實話,對于A/B測試是什么,大部分人對它的理解就停留在這個層面上,誤以為這就是A/B測試的全部了。這就跟梅超風(fēng)僅偷了《九陰真經(jīng)》的下冊一樣,真本是真本,就是不知道怎么打基礎(chǔ)結(jié)果路子全歪了。

我們可以用Excel來模擬試試,用隨機(jī)生成1000個樣本,再隨機(jī)分成對照組和試驗組2組,然后去比較這2組的平均值——你會發(fā)現(xiàn)2組之間一定會有差異,不信你可以親自試試。

但這能說明其中一組比另一組要好嗎?當(dāng)然不能。如果你把用戶分成兩組,用不同的方案監(jiān)測轉(zhuǎn)化率差別,并且試驗組正巧比對照組效果好一點(diǎn),那你如何能證明,試驗組更好不是因為這種隨機(jī)波動產(chǎn)生的呢?

我曾經(jīng)不只一次聽到過類似「指標(biāo)一會兒高一會兒低,測不出來效果」或者「跑了很久匯總比較,指標(biāo)變高了效果不錯」這樣的說法,甚至還是出自專業(yè)人士之口,實在讓人目瞪口呆,感嘆原來A/B居然還能這么做。

法 → 為什么

我們什么都沒干、什么方案都沒有實施,只是隨機(jī)分了一下組,試驗組就比對照組更好或者更壞了。所以很顯然我們不能直接以結(jié)果指標(biāo)的高低衡量方案的好壞。因為無論怎么隨機(jī)分組,都會因為分組產(chǎn)生一定的選擇偏差,導(dǎo)致數(shù)據(jù)出現(xiàn)波動,那我們應(yīng)該如何驗證不同方案的好壞呢?

這時候,就輪到統(tǒng)計學(xué)的「假設(shè)檢驗」出場了,這才是《九陰真經(jīng)》的上冊,是練就絕世武功的基礎(chǔ)。

我們從最簡單的拋硬幣的實驗說起。不過這次不是一個硬幣,是有兩枚硬幣。

有人宣稱他有特殊的拋硬幣技巧,應(yīng)用了他的技巧,可以讓硬幣更容易出現(xiàn)正面。那我們要如何才能證明他說的是真的呢?人家又沒有說次次都是正面,就算10次拋出來都是反面也可以說是狀態(tài)不好發(fā)揮失常。

怎么辦?我們可以用逆向思維反過來想,如果他說的是真的,那么用他的技巧拋硬幣就不太可能經(jīng)常拋出反面,更不可能拋100次都是反面。也就是說,不可能發(fā)生的事件發(fā)生了,那他就在說假話。

用統(tǒng)計學(xué)語言來描述,就是:對于一個假設(shè),在這個假設(shè)成立時,一個極小概率的事件發(fā)生了,就可以推翻這個這假設(shè),并選擇這個假設(shè)的反面。一般把待證偽的假設(shè)稱為「零假設(shè)H?」 ,把想要證明的假設(shè)叫做「對立假設(shè)H?」。

這就是「反證法」,一條假設(shè)永遠(yuǎn)不可能被證明,只可能被證偽。

我們想證明「他的技巧拋硬幣更容易出現(xiàn)正面(對立假設(shè))」,可以先假設(shè)「他的技巧不能讓拋硬幣更容易出現(xiàn)正面(零假設(shè))」,然后尋找在零假設(shè)成立時的極小概率事件(比如用他的技巧拋100次硬幣比正常拋硬幣,正面出現(xiàn)的頻次高30%),當(dāng)這個極小概率事件被我們觀測到的時候,就推翻了零假設(shè),從而證明對立假設(shè)。

這里對于多小的概率是「極小概率」,完全是人為規(guī)定的,一般常用的是5%和1%。這個值就是所謂的「顯著性水平」ɑ。假定我們拋10次,我們這一批10次觀測到的結(jié)果發(fā)生的概率就是p值,比如

拋10次結(jié)果都是正面,這種情況發(fā)生的概率是:

當(dāng)我們觀測到這樣一個 p ≤ ɑ 時,就可以推翻零假設(shè),從而證明「他的技巧拋硬幣更容易出現(xiàn)正面(對立假設(shè))」。

現(xiàn)在,重點(diǎn)來了:我們可以把「新的產(chǎn)品設(shè)計方案」當(dāng)作「他的特殊技巧」,把「每有一個用戶」當(dāng)作「每一次拋硬幣」,把「用戶被轉(zhuǎn)化」當(dāng)作「硬幣為正面」,把「用戶未被轉(zhuǎn)化」當(dāng)作「硬幣為反面」,瞬間就會理解如何在產(chǎn)品設(shè)計中進(jìn)行科學(xué)的A/B測試。

不同的是,我們已經(jīng)根據(jù)日常經(jīng)驗建立了對拋硬幣「轉(zhuǎn)化率」和「波動水平」的大致預(yù)期。簡單來講,就是如果特殊技巧拋硬幣的「轉(zhuǎn)化率」只是51%、52%的水平,我們顯然會懷疑特殊技巧的有效性,而如果能到60%,我們幾乎可以認(rèn)定特殊技巧確實有效。

而對于產(chǎn)品「轉(zhuǎn)化率」和「波動水平」很難建立同樣的預(yù)期?!皋D(zhuǎn)化率」從10%到12%,究竟是日常波動,還是巨大提升,在不進(jìn)行統(tǒng)計分析時是根本無法判斷的。

術(shù) → 怎么做

統(tǒng)計理論展開講就太復(fù)雜了,所以我只介紹如何應(yīng)用現(xiàn)成的理論和公式。

我們在產(chǎn)品設(shè)計時設(shè)計的A/B測試屬于「雙獨(dú)立樣本t假設(shè)檢驗」,「獨(dú)立」的意思是A方案下樣本和B方案下的樣本表現(xiàn)是各自獨(dú)立互不影響的。比如拋硬幣案例里普通人拋硬幣和他用特殊技巧拋硬幣,結(jié)果互不影響。t沒有什么特殊含義,如果是周樹人用筆名發(fā)表了這套檢驗理論,那t檢驗就會被叫做魯迅檢驗了。

按照「雙獨(dú)立樣本t假設(shè)檢驗」的方法,需要計算以下幾個統(tǒng)計量:

(1)每組樣本均值x

(2)每組樣本方差S

(3)計算自由度(基于雙樣本異方差假設(shè))

(4)查表取得ɑ/2(雙尾檢驗)下的t-value,我們當(dāng)然不會真去查表,直接使用Excel函數(shù)=T.INV.2T(ɑ/2,df)

然后就可以套公式計算置信區(qū)間了:

之所以用雙尾檢驗的t-value,是因為習(xí)慣做的零假設(shè)是「A和B之間沒有變化」,對立假設(shè)是「A和B之間有變化」,通過實驗判斷是否能推翻零假設(shè),再根據(jù)結(jié)果的正負(fù)判斷是變高還是變低。
看完上面的公式是不是感覺好復(fù)雜?沒關(guān)系,有簡單的方法。

如果只想知道p-value以驗證實驗結(jié)果是否統(tǒng)計顯著,而不需要計算置信區(qū)間,可以用Excel函數(shù)

=T.TEXT(array1, array2, 2, 3)

如果一定要計算置信區(qū)間,可以用RStudio:

t.test(array1, array2, conf.level = 0.95)

一步出結(jié)果,夠方便了吧。

應(yīng)用的前提條件:

應(yīng)用上述公式,是有前提條件的。簡單來講就是樣本獨(dú)立,且要服從正態(tài)分布,并且兩總體方差不等(異方差)。如果樣本不獨(dú)立,比如同一批病人用藥前和用藥后的效果檢驗,就要使用配對t檢驗。如果樣本獨(dú)立但總體方差相等,就要用另外的一套公式。

那豈不是應(yīng)用之前還要做很多分析判斷該用哪個公式?

其實不然。根據(jù)統(tǒng)計學(xué)的中心極限定理,在大樣本下,樣本均值的抽樣分布呈正態(tài)分布。而我們做的A/B測試,幾乎都是獨(dú)立的十幾萬、幾十萬的樣本,并且可以假定A/B總體異方差。

一點(diǎn)提示:

關(guān)于假設(shè)檢驗的計算,能很容易地找到很多資料。不過質(zhì)量參差不齊,可以用一個粗暴的辦法識別質(zhì)量過得去的:

  1. 統(tǒng)計學(xué)中的一般表示方法,樣本均值是x-bar,總體均值是μ,樣本標(biāo)準(zhǔn)差是S,總體標(biāo)準(zhǔn)差是σ,樣本個數(shù)是n,總體個數(shù)是N,用反了雖然不能算錯但就不專業(yè)了;
  2. 求樣本方差時分母是自由度n-1而不是樣本個數(shù)n,一般我們做的A/B試驗都是大樣本,用哪個當(dāng)分母沒什么區(qū)別,但如果真碰到小樣本(不足30個)的實驗,區(qū)別就很大了;
    能保證以上兩點(diǎn)都很嚴(yán)謹(jǐn)?shù)馁Y料,基本都是有統(tǒng)計學(xué)背景、可以確定質(zhì)量過得去了。

    道 → 憑什么

    為什么要進(jìn)行A/B試驗?如果最后都要A/B試驗來做決策,那還要產(chǎn)品經(jīng)理做什么?

一定會有老板喜歡這樣發(fā)問。對于這樣的老板,我們可以把俞軍大神請出來猛烈地拍回去。

受俞軍產(chǎn)品方法論的啟發(fā),我的理解是:

每一款產(chǎn)品,都有獨(dú)特的、與其他產(chǎn)品不完全相同的用戶群體,每一次A/B測試,都是對于當(dāng)下用戶更進(jìn)一步的理解,是對「用戶模型」的又一次完善。

一次與預(yù)期結(jié)果相悖的A/B實驗,也是成功的實驗,因為它讓我們能更加了解目標(biāo)用戶的偏好,了解他們喜歡什么、不喜歡什么。說白了,A/B測試是讓我們深刻理解用戶的科學(xué)工具,而不單單只是衡量產(chǎn)品方案好壞的天平。

而這一點(diǎn),是用戶訪談所回答不了的,也不是產(chǎn)品經(jīng)理和設(shè)計師們靠個體的經(jīng)驗和認(rèn)知能回答的。因為「用戶不是自然人,是需求的集合」。只有在統(tǒng)計結(jié)果下,我們才能認(rèn)清「用戶群體」的真面目。對于C端用戶,應(yīng)該用統(tǒng)計的思維去理解。不要「你覺得」,也不要「我覺得」。

參考資料:

  1. 概率論與數(shù)理統(tǒng)計,陳希孺
  2. 面向數(shù)據(jù)科學(xué)家的實用統(tǒng)計學(xué),[美] 彼得·布魯斯 / 安德魯·布魯斯
  3. 俞軍產(chǎn)品方法論,俞軍
  4. 數(shù)據(jù)驅(qū)動設(shè)計:A/B測試提升用戶體驗, [美]羅謝爾·肯
  5. https://zh.wikipedia.org/wiki/%E5%AD%B8%E7%94%9Ft%E6%AA%A2%E9%A9%97,學(xué)生t檢驗

 

本文由 @Guibin 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 需要頻繁對不停在迭代的算法模型搭載在產(chǎn)品后對產(chǎn)品的影響進(jìn)行評估,但是總是不是太得法,看到這篇文章后有很多啟發(fā),想進(jìn)一步再探討探討。

    來自廣東 回復(fù)