怎麼樣在AB測試中盡量排除兩批樣本用戶的屬性干擾?

比如選擇AB兩撥用戶,怎樣篩選才更合理?直接隨機的話,會不會出現用戶性別分布或者地域分布不均勻的情況,這種差異肯定會影響測試結果,因為男女用戶的行為本身就是存在差異的。

有沒有什麼好的用戶分流策略?


比如根據手機設備判斷,取設備id後兩位,將用戶分為100份。

做ab測試時,id區間在00-49的用戶按鈕顯示為橙紅色,50-99的用戶顯示為藍色,對比哪個區間的用戶點擊按鈕的比例更好。


建議先學一些社會心理學實驗與計量經濟學的基礎,因為AB組實驗的基本原理與分析方法都來自於上述兩門課程。即使隨機分組,兩組中還有某些變數會存在顯著差異,這個差異是要用統計檢驗的(方差分析、t檢驗等),p值&<0.05。這種現象很普遍。所以,你只要把存在顯著差異的因素作為控制變數控制住就行了。做回歸分析,就直接作為控制變數加入。做方差分析也是一樣作為控制變數加入即可。


@劉澤軍 感謝小夥伴們對我們信任,一個勁兒的丟問題到我這裡,感覺知識被掏空了~

這是一個基礎性的問題,即便不是技術人員,也會有這樣的擔心。但是,請大家確定一個基本的認知,A/B測試不是隨隨便便的拉兩組人做測試,而是每一步都有邏輯和演算法的支撐,實際上,是最科學,干擾最少的方式。

下面,我從原理上證明一下剛才的這個說法:

從統計學角度考慮,要得到可信的數據結論需要滿足一定的樣本量,通常我們認為產品日活達到1000左右即可,日活越高統計結果收斂的速度越快。根據吆喝科技服務過的客戶經驗,如果日活能夠達到一萬,那麼5天之內就能完成一次樣本量充足、統計結果充分可信的A/B測試。

A/B測試應用控制變數的思想,除了要對照的產品方案之外,要求其他的環境因素完全一致,也就是說對於樣本間的分流,要儘可能使用戶的組成成分完全一樣,例如所使用的設備類型、新老用戶佔比等等。

橫向去看,需要保證兩批樣本中,各種特徵用戶所佔總用戶比一致。

縱向去看,需要保證兩批樣本不會出現交叉——對於某個用戶,如果在首次啟動時進入了A版本,那麼之後再次啟動時依然要確保展示A版本。這說起來理所當然,卻是很多開發者經常忽略的一件事。

從實踐的角度上來講,此前開發者比較常見的簡易方法是使用不同的渠道對比測試,這樣做的好處是成本極低,只需要打兩個不同的app包分別投放到兩個市場渠道,然後對比數據;壞處也十分明顯,就是無法控制樣本組成,有可能兩個渠道的用戶質量差別很大,這樣得出的結論幾乎是不可信的。

同樣,某個渠道的用戶不能代表所有用戶,有可能在單個渠道上獲得數據提升,推廣到全渠道上卻沒有效果,甚至會產生反效果。

然而要達到令人滿意的效果,就不得不考慮自建服務端控制分流的系統,通過自己的服務端腳本來控制每台設備要展示哪一種試驗版本。可想而知實現成本頗高,除了開發量之外,還要消耗大量的api請求。

除此之外,能否保證同一台設備每次都能夠展示同一個版本、如何判斷用戶到底有沒有受到試驗方案的影響、如何靈活的隨時調整樣本數量等等,越是考慮到這些細節問題,就越會發現實現成本幾乎高到不可行。

然而這並不是說科學的A/B測試無路可走,目前市場上已經出現了一批專為產品迭代中的A/B測試服務的企業,例如吆喝科技,完美解決了樣本分流的痛點:核心的分流演算法可以保證樣本間的一致性,並且規避了自建分流系統的成本,只需要集成SDK調用若干api即可。之


可以通過 AA Test來去除樣本本身屬性差異的干擾。

在樣本很大的情況下,隨機劃分在大多數情況下是能夠去除用戶本身屬性干擾的。、

但是實際中,很多應用場景的AB test能獲得的樣本比較少。比如想只在某個城市測試一個新的功能,或者產品本身用戶較少,往往短期內能觸達的在線用戶有限。這種情況下兩批樣本用戶本身屬性差異有很大概率會很明顯。比如,在一個有20人(10男10女)的房間內隨機分開兩撥人,幾乎第一次劃分時兩組人的男女比例肯定是有很大差異的。

一個比較常用的方法是在AB Test之前先做一段時間的AA Test。大體思路是採用和AB Test一樣的分組,然後對兩組人投放同樣的用戶體驗(所以叫AA Test)。這時如果兩組人表現有統計顯著性的不一致,則說明兩組樣本本身屬性有差異。此時需要從新分組,在工程實現上通用辦法是再隨機設定一個hash seed。然後重複上述 AA Test,直到兩組樣本表現一致。

這時表明已經找到兩組本身屬性一樣的樣本用戶。隨便選其中一組的用戶做測試組,另一組做對照組,就可以放心的做AB Test啦!


ABTest的目的在於判斷方案A和方案B那個更有效。

比如說,對於app首頁的信息流的排版樣式修改,到底是A方案和B方案的訂單轉化率會高些呢,此時需要通過ABTest進行驗證。需要注意的幾點如下:

1)如何保證數據準確:並不對兩方案五五分成,而是對於同一個設備,在第一次獲取到A方案後,今後每次重新啟動app訪問那個頁面都一直保持a策略。這樣就避免了每次看到的頁面都是隨機出現的。

2)如何確保公平:

進入到首頁獲取到了A方案的用戶數為M,由A方案的頁面進入詳情頁的用戶數為N,

進入到首頁獲取到了B方案的用戶數為M1,由A方案的頁面進入詳情頁的用戶數為N1.

兩者相除(N/M和N1/M1)進行比較。誰的概率大則說明更優。

此方案從控制變數法的角度考慮,則是控制了概率是不變的。

3)如何高效:由於app發版比較慢,如果一旦確認了方案A更可行,價值更大,則需要立刻能夠更改到方案A,將ab測關閉。所以後端需要提供介面,可隨時修改選定的方案。


熱雲數據TrackingIO廣告與行為分析平台 ,一站式監測轉化分析平台,從用戶來源到用戶活躍,從用戶留存到行為分析,一站全部滿足。細分到用戶屬性和事件屬性,詳盡的留存轉化分析,為產品改進提供可靠的數據支撐,最大化的幫助客戶提升產品價值


先說個「抽樣方式」上面的問題,「抽用戶」和「抽session」兩種方式適用的場景是不同的,用錯了的話會得出錯誤結論,但某些情況也可以相互代替。

不知道題主具體是用在什麼實驗上,所以先默認「抽用戶」是唯一且合理的抽樣方式。

看問題描述,問題是隨機抽出來的結果讓題主感覺實驗組和對照組屬性差別太大。

解決問題的根本方法是加大樣本容量,抽到全集的各50%的情況下,你描述的這種差異就會變少了。

如果出於成本和技術約束,樣本容量抽不大,那就多隨機抽幾次,選一個你看著覺得看得過去兩組做實驗。

但本質上還是看樣本容量,如果實驗對照只抽得出10個人出來的話,就算肉眼可見的屬性很「均衡」,置信區間也沒法看,建議放棄A/B test。


前提是你已經有歷史的數據做參考,然後再用AB測試去尋找更正確的優化方向。

有這個前提的話,接下來就很簡單了。你只要把原有數據調出來,看一下哪些維度對數據是沒有顯著影響的,然後再根據結果去選測試樣本就好。

如果是新功能上線,不建議直接做AB測試。一方面你的結果說明不了什麼問題,另一方面也會拖上線的進度。


推薦閱讀:

當產品已經做的一塌糊塗時,應該從哪裡開始逆轉?
略曉如何做才能走上正軌?
運營的增長黑客之道
如何做好內容運營?能否舉例說明?
產品經理/產品運營/內容運營三者是什麼關係?

TAG:互聯網產品 | 產品運營 | 數據分析 | AB測試 |