摘要:確定分流方案使用各類平臺(tái)分配流量。備擇假設(shè)與零假設(shè)相反,即實(shí)驗(yàn)者希望證實(shí)的假設(shè)。雖然該數(shù)據(jù)集的統(tǒng)計(jì)結(jié)果與支付寶的實(shí)際規(guī)模有偏差,但不影響解決方案的適用性。選定統(tǒng)計(jì)方法由于樣本較大,故采用檢驗(yàn)。
本文全程干貨,建議朋友們收藏后慢慢閱讀!
另外,我主頁上還有不少與ABTest和數(shù)據(jù)分析相關(guān)的博客,感興趣的朋友可以再去看看,希望能給你帶來收獲!
ABTest類似于以前的對(duì)比實(shí)驗(yàn),是讓組成成分相同(相似)的群組在同一時(shí)間維度下去隨機(jī)的使用一個(gè)方案(方案A、或者B、C…),收集各組用戶體驗(yàn)數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù),最后分析出哪個(gè)方案最好。
PS: 先說一下,這里的實(shí)現(xiàn)步驟并非權(quán)威步驟,不是一定要這么劃分。
要想充分搞懂ABTest,必須理解它的原理——假設(shè)檢驗(yàn)。
在一個(gè)設(shè)計(jì)適當(dāng)?shù)?ABTest中,處理 A 和處理 B 之間任何可觀測到的差異,必定是由下面兩個(gè)因素之一所導(dǎo)致的。
假設(shè)檢驗(yàn)是對(duì) ABTest(或任何隨機(jī)實(shí)驗(yàn))的進(jìn)一步分析,意在評(píng)估隨機(jī)性是否可以合理地解釋 A 組和 B 組之間觀測到的差異。
這里需要介紹一下幾個(gè)專業(yè)術(shù)語:
假設(shè)檢驗(yàn)的基本思想是“小概率事件”原理,其統(tǒng)計(jì)推斷方法是帶有某種概率性質(zhì)的反證法。小概率思想是指小概率事件在一次試驗(yàn)中基本上不會(huì)發(fā)生。反證法思想是先提出檢驗(yàn)假設(shè),再用適當(dāng)?shù)慕y(tǒng)計(jì)方法,利用小概率原理,確定假設(shè)是否成立。對(duì)于不同的問題,檢驗(yàn)的顯著性水平α不一定相同,一般認(rèn)為,事件發(fā)生的概率小于0.1、0.05或0.01等,即“小概率事件”。但是,如果說你犯下第一類錯(cuò)誤(即拒絕正確的假設(shè): H 0 H_0 H0?是真,但拒絕 H 0 H_0 H0?)的成本越高,你的α值就要設(shè)置得越小。
接下來介紹假設(shè)檢驗(yàn)的基本步驟:
如何選定統(tǒng)計(jì)方法?那就得判斷你的樣本統(tǒng)計(jì)量符合什么分布了。
上圖就是判斷一個(gè)樣本統(tǒng)計(jì)量符合什么分布的流程圖,非常nice!
下面呢,則是關(guān)于Z分布,T分布,卡方分布的簡單了解,其中注意考慮多個(gè)總體問題時(shí)如何計(jì)算處理。
接下來再看一下這幾種分布的概率密度分布圖。
可以看出,T分布與標(biāo)準(zhǔn)正態(tài)分布(Z分布)都是以0為對(duì)稱的分布,T分布的方差大所以分布形態(tài)更扁平些。
雙側(cè)檢驗(yàn):
單側(cè)檢驗(yàn):
卡方分布:
拒絕域:
(卡方分布在左側(cè)的拒絕域特別小,所以拒絕的區(qū)間的值也比較少),所以卡方檢驗(yàn)的拒絕域一般
放在右側(cè)。F分布同理。
項(xiàng)目來源:
https://tianchi.aliyun.com/dataset/dataDetail?dataId=50893
數(shù)據(jù)介紹:
從支付寶的兩個(gè)營銷活動(dòng)中收集的真實(shí)數(shù)據(jù)集。該數(shù)據(jù)集包含支付寶中的兩個(gè)商業(yè)定位活動(dòng)日志。由于隱私問題,數(shù)據(jù)被采樣和脫敏。雖然該數(shù)據(jù)集的統(tǒng)計(jì)結(jié)果與支付寶的實(shí)際規(guī)模有偏差,但不影響解決方案的適用性。
主要提供了三個(gè)數(shù)據(jù)集:
本分析報(bào)告的主要使用廣告點(diǎn)擊情況數(shù)據(jù),涉及字段如下:
接下來正式開始實(shí)戰(zhàn)。
import pandas as pdimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlinedata = pd.read_csv("effect_tb.csv",header = None)data.columns = ["dt","user_id","label","dmp_id"] # 文件中沒有字段名# 日志天數(shù)屬性用不上,刪除該列data = data.drop(columns="dt")data
data.info(null_counts = True)
查看數(shù)據(jù)統(tǒng)計(jì)情況,主要是看dmp_id。
data.describe()
接下來查看數(shù)據(jù)重復(fù)情況。
data[data.duplicated(keep = False)]
存在重復(fù)項(xiàng),需要進(jìn)行去重。
data = data.drop_duplicates()# 檢查是否還有重復(fù)項(xiàng)data[data.duplicated(keep = False)]
從先前操作已知數(shù)據(jù)類型正常,接下來利用透視表來看各屬性是否存在不合理情況。
data.pivot_table(index = "dmp_id",columns = "label",values = "user_id",aggfunc = "count")
從以上看出屬性字段無異常取值,無需進(jìn)行處理。
在進(jìn)行ABTest前,需檢查樣本容量是否滿足試驗(yàn)所需最小值。
這里需要借助樣本量計(jì)算工具:https://www.evanmiller.org/ab-testing/sample-size.html
首先需要設(shè)定點(diǎn)擊率基準(zhǔn)線以及最小提升比例,我們將對(duì)照組的點(diǎn)擊率設(shè)為基準(zhǔn)線。
data[data["dmp_id"] == 1]["label"].mean()
對(duì)照組的點(diǎn)擊率為1.26%,假設(shè)我們希望新的營銷策略能夠讓廣告點(diǎn)擊率至少提升一個(gè)百分點(diǎn),則算得所需最小樣本量為2167。
data["dmp_id"].value_counts()
可得411107和316205遠(yuǎn)大于2167,滿足最小樣本量需求。
我們先查看一下這三種營銷策略的點(diǎn)擊率情況。
print("對(duì)照組: " ,data[data["dmp_id"] == 1]["label"].describe())print("策略一: " ,data[data["dmp_id"] == 2]["label"].describe())print("策略二: " ,data[data["dmp_id"] == 3]["label"].describe())
可以看到策略一和策略二相比對(duì)照組在點(diǎn)擊率上都有不同程度的提升。
其中策略一提升0.2個(gè)百分點(diǎn),策略二提升1.3個(gè)百分點(diǎn),只有策略二滿足了前面我們對(duì)點(diǎn)擊率提升最小值的要求。
接下來需要進(jìn)行假設(shè)檢驗(yàn),看策略二點(diǎn)擊率的提升是否顯著。
設(shè)對(duì)照組點(diǎn)擊率為 p 1 p_1 p1?,策略二點(diǎn)擊率為 p 2 p_2 p2?,則:
由備擇假設(shè)可以看出,檢驗(yàn)方向?yàn)閱雾?xiàng)檢驗(yàn)(左)。
由于樣本較大,故采用Z檢驗(yàn)。此時(shí)檢驗(yàn)統(tǒng)計(jì)量的公式如下: z = p 1 ? p 2 ( 1 n 1 + 1 n 2 ) × p c × ( 1 ? p c ) z= /frac{p_1-p_2}{/sqrt{( /frac{1}{n_1}+/frac{1}{n_2})/times p_c /times (1-p_c)}} z=(n1?1?+n2?1?)×pc?×(1?pc?)?p1??p2??其中 p c p_c pc?為總和點(diǎn)擊率。
# 用戶數(shù)n1 = len(data[data.dmp_id == 1]) # 對(duì)照組n2 = len(data[data.dmp_id == 3]) # 策略二# 點(diǎn)擊數(shù)c1 = len(data[data.dmp_id ==1][data.label == 1])c2 = len(data[data.dmp_id ==3][data.label == 1])# 計(jì)算點(diǎn)擊率p1 = c1 / n1p2 = c2 / n2# 總和點(diǎn)擊率(點(diǎn)擊率的聯(lián)合估計(jì))pc = (c1 + c2) / (n1 + n2)print("總和點(diǎn)擊率pc:", pc)
# 計(jì)算檢驗(yàn)統(tǒng)計(jì)量zz = (p1 - p2) / np.sqrt(pc * (1 - pc)*(1/n1 + 1/n2))print("檢驗(yàn)統(tǒng)計(jì)量z:", z)
這里我去 α /alpha α為0.05,此時(shí)我們利用python提供的scipy模塊,查詢 α = 0.5 /alpha=0.5 α=0.5時(shí)對(duì)應(yīng)的z分位數(shù)。
from scipy.stats import normz_alpha = norm.ppf(0.05)# 若為雙側(cè),則norm.ppf(0.05/2)z_alpha
z α = ? 1.64 z_/alpha = -1.64 zα?=?1.64, 檢驗(yàn)統(tǒng)計(jì)量z = -59.44,該檢驗(yàn)為左側(cè)單尾檢驗(yàn),拒絕域?yàn)閧z< z α z_/alpha zα?},z=-59.44落在拒絕域。
所以我們可以得出結(jié)論:在顯著性水平為0.05時(shí),拒絕原假設(shè),策略二點(diǎn)擊率的提升在統(tǒng)計(jì)上是顯著的。
假設(shè)檢驗(yàn)并不能真正的衡量差異的大小,它只能判斷差異是否比隨機(jī)造成的更大。因此,我們?cè)趫?bào)告假設(shè)檢驗(yàn)結(jié)果的同時(shí),應(yīng)給出效應(yīng)的大小。對(duì)比平均值時(shí),衡量效應(yīng)大小的常見標(biāo)準(zhǔn)之一是Cohen’d,中文一般翻譯作科恩d值: d = 樣 本 1 平 均 值 ? 樣 本 2 平 均 值 標(biāo) 準(zhǔn) 差 d=/frac{樣本_1平均值-樣本_2平均值}{標(biāo)準(zhǔn)差} d=標(biāo)準(zhǔn)差樣本1?平均值?樣本2?平均值?
這里的標(biāo)準(zhǔn)差,由于是雙獨(dú)立樣本的,需要用合并標(biāo)準(zhǔn)差(pooled standard deviations)代替。也就是以合并標(biāo)準(zhǔn)差為單位,計(jì)算兩個(gè)樣本平均值之間相差多少。雙獨(dú)立樣本的合并標(biāo)準(zhǔn)差可以如下計(jì)算: s = ( ( n 1 ? 1 ) × s 1 2 + ( n 2 ? 1 ) × s 2 2 ) n 1 + n 2 ? 2 s=/frac{((n_1-1)/times s^2_1+(n_2-1)/times s^2_2)}{n_1+n_2-2} s=n1?+n2??2((n1??1)×s1
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/122018.html
摘要:且本小白也親身經(jīng)歷了整個(gè)從小白到爬蟲初入門的過程,因此就斗膽在上開一個(gè)欄目,以我的圖片爬蟲全實(shí)現(xiàn)過程為例,以期用更簡單清晰詳盡的方式來幫助更多小白應(yīng)對(duì)更大多數(shù)的爬蟲實(shí)際問題。 前言: 一個(gè)月前,博主在學(xué)過python(一年前)、會(huì)一點(diǎn)網(wǎng)絡(luò)(能按F12)的情況下,憑著熱血和興趣,開始了pyth...
摘要:整合起來,這就是平臺(tái)廣告商業(yè)形態(tài)的市場形態(tài)平衡用戶服務(wù)體驗(yàn)廣告主實(shí)質(zhì)訴求及平臺(tái)的最大營收三方關(guān)系,追求各自最大收益。 文章目錄 廣告商業(yè)形態(tài)深思廣告到底是什么?互...
摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:財(cái)富管理專場上,螞蟻金服微貸事業(yè)群高級(jí)前端技術(shù)專家王卓做了主題為螞蟻微貸互動(dòng)營銷技術(shù)體系實(shí)踐的精彩分享。通過互動(dòng)技術(shù),最終實(shí)現(xiàn)拉新,留存和促活等目標(biāo)。營銷技術(shù)方案對(duì)接研發(fā)平臺(tái),通過鳳蝶系統(tǒng)和研發(fā)管理體系進(jìn)行打通。 摘要:以數(shù)字金融新原力(The New Force of Digital Finance)為主題,螞蟻金服ATEC城市峰會(huì)于2019年1月4日上海如期舉辦。財(cái)富管理專場上,螞...
摘要:月日,第六屆大會(huì)在深圳召開。這是這次大會(huì)的第二站活動(dòng),第一站已在上海成功舉辦。深圳站視頻及,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù),獲取分享鏈接。據(jù)介紹,目前支持多種開發(fā)庫,如內(nèi)置和等。該協(xié)議的推出,是為了統(tǒng)一標(biāo)準(zhǔn),提高效率。 本文為 PyChina 和「編程派」聯(lián)合首發(fā),作者為 EarlGrey。「編程派」是一個(gè)專注 Python 學(xué)習(xí)交流的微信公眾號(hào)。 9 月 25 日,第六屆 PyCon China...
閱讀 1004·2023-04-25 19:35
閱讀 2665·2021-11-22 09:34
閱讀 3693·2021-10-09 09:44
閱讀 1726·2021-09-22 15:25
閱讀 2941·2019-08-29 14:00
閱讀 3376·2019-08-29 11:01
閱讀 2602·2019-08-26 13:26
閱讀 1740·2019-08-23 18:08