AB test 分析經驗

最近做了一個AB,有幾點經驗值得記錄一下。

背景

用戶每日都可以打卡到微信,引導關注公衆號。近期關注率有下降,懷疑與微信屏蔽有關,(微信抵制誘導分享引流到公衆號)。
因此申請一個新公衆號做測試,新老兩個公衆號內容均一致,觀測兩個公衆號的關注率是否有差異。
關注指標:關注用戶數/打卡用戶數

過程

AB實驗 1號上線,上線時全量切origin,2號開始1:1切

分析

step1
觀察當天新進入分組的用戶,在當天打卡發出的場景二維碼帶來的訂單。連續觀測多天數據,對每日即多日彙總數據進行假設檢驗
原假設: origin >= v2, 備則假設: origin < v2
p值 ≈ 0.002 <0.01,可以拒絕原假設,接受備則假設,即 新公衆號關注率高於老公衆號

##### 假設檢驗
n1 = c(3935,2329); d1 = c(304, 209)
n2 = c(2431,2538); d2 = c(180, 203)
n3 = c(2016,2015); d3 = c(146, 167)
n4 = c(1524,1475); d4 = c(122, 152)
alt = "less"
num_tests = 4
nt = 0; dt = 0;
for (i in 1:num_tests) {
        nx = eval(parse(text = paste0("n",i)))
        dx = eval(parse(text = paste0("d",i)))
        nt = nt + nx; dt = dt + dx;
        p = prop.test(n = nx, x = dx, conf.level = .9, alternative = alt)
        cat('test result', i, ':', p$p.value, '\n')
        if (i == num_tests) {
                pt = prop.test(n = nt, x = dt, conf.level = .9, alternative = alt)
                cat('test result for all :', pt$p.value)
        }
}

test result 1 : 0.04517291 
test result 2 : 0.2321899 
test result 3 : 0.1186704 
test result 4 : 0.01692163 
test result for all : 0.002388452

然而,發現ab結論是v2高於origin,但從大盤看自AB上線開始,整體大盤的關注率卻在下降,需要進一步排查。

step2
首先,看AB分組是否平均,用戶質量是否有差異
對進入分組的用戶進行維度拆分,查看各維度AB兩組分佈是否均勻。
觀察城市等級、平臺、年齡、性別等維度後分布都均勻

其次,這部分是重點
思考AB是否無偏差,而是真的AB
以這個案例來說,用戶每天都可以打卡,可能存在很多人關注過老的公衆號, 所以開新號的效率高一些。
爲驗證該想法,查看數據,發現關注新號的用戶中,12% 關注過老號 查詢SQL。對於這部分已關注老號的用戶,本身可能意願較強,看到新號也願意關注看看。
所以這個AB是有偏的,爲矯正這部分偏差,排除v2關注用戶中之前已關注過老號的用戶。
再將結果進行假設檢驗,發現兩組用戶無顯著差異.

發佈了22 篇原創文章 · 獲贊 27 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章