成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分享一個超詳細的數(shù)據(jù)分析案例【Python】附ABTest詳細介紹

3fuyu / 3701人閱讀

摘要:確定分流方案使用各類平臺分配流量。備擇假設(shè)與零假設(shè)相反,即實驗者希望證實的假設(shè)。雖然該數(shù)據(jù)集的統(tǒng)計結(jié)果與支付寶的實際規(guī)模有偏差,但不影響解決方案的適用性。選定統(tǒng)計方法由于樣本較大,故采用檢驗。

必須看的前言

本文全程干貨,建議朋友們收藏后慢慢閱讀!

另外,我主頁上還有不少與ABTest和數(shù)據(jù)分析相關(guān)的博客,感興趣的朋友可以再去看看,希望能給你帶來收獲!

一、ABTest

ABTest類似于以前的對比實驗,是讓組成成分相同(相似)的群組在同一時間維度下去隨機的使用一個方案(方案A、或者B、C…),收集各組用戶體驗數(shù)據(jù)和業(yè)務數(shù)據(jù),最后分析出哪個方案最好。

實現(xiàn)步驟

  1. 現(xiàn)狀分析:分析業(yè)務數(shù)據(jù),確定當前最關(guān)鍵的改進點。
  2. 假設(shè)建立:根據(jù)現(xiàn)狀分析作出優(yōu)化改進的假設(shè),提出優(yōu)化建議。
  3. 設(shè)定目標:設(shè)置主要目標,用來衡量各優(yōu)化版本的優(yōu)劣;設(shè)置輔助目標,用來評估優(yōu)化版本對其他方面的影響。
  4. 設(shè)計開發(fā):制作若干個優(yōu)化版本的設(shè)計原型。
  5. 確定分流方案:使用各類ABTest平臺分配流量。初始階段,優(yōu)化方案的流量設(shè)置可以較小,根據(jù)情況逐漸增加流量。注意分流時要盡可能做到?jīng)]有區(qū)別。
  6. 采集數(shù)據(jù):通過各大平臺自身的數(shù)據(jù)收集系統(tǒng)自動采集數(shù)據(jù)。
  7. 分析ABTest結(jié)果:統(tǒng)計顯著性達到95%或以上并且維持一段時間,實驗可以結(jié)束;如果在95%以下,則可能需要延長測試時間;如果很長時間統(tǒng)計顯著性不能達到95%甚至90%,則需要決定是否中止試驗或重新設(shè)計方案。

PS: 先說一下,這里的實現(xiàn)步驟并非權(quán)威步驟,不是一定要這么劃分。

假設(shè)檢驗

要想充分搞懂ABTest,必須理解它的原理——假設(shè)檢驗。
在一個設(shè)計適當?shù)?ABTest中,處理 A 和處理 B 之間任何可觀測到的差異,必定是由下面兩個因素之一所導致的。

  • 分配對象中的隨機可能性
  • 處理 A 和處理 B 之間的真實差異

假設(shè)檢驗是對 ABTest(或任何隨機實驗)的進一步分析,意在評估隨機性是否可以合理地解釋 A 組和 B 組之間觀測到的差異。

這里需要介紹一下幾個專業(yè)術(shù)語:

  • 零假設(shè):完全歸咎于偶然性的假設(shè),即各個處理是等同的,并且組間差異完全是由偶然性所導致的。
    事實上,我們希望能證明零假設(shè)是錯誤的,并證明 A 和 B 結(jié)果之間的差異要比偶然性可能導致的差異更大。
  • 備擇假設(shè):與零假設(shè)相反,即實驗者希望證實的假設(shè)。
  • 單向檢驗:在假設(shè)檢驗中,只從一個方向上計數(shù)偶然性結(jié)果。簡單來講就是最終只需判斷大于或者只需判斷小于。
  • 雙向檢驗:在假設(shè)檢驗中,從正反兩個方向上計數(shù)偶然性結(jié)果。

假設(shè)檢驗的基本思想是“小概率事件”原理,其統(tǒng)計推斷方法是帶有某種概率性質(zhì)的反證法。小概率思想是指小概率事件在一次試驗中基本上不會發(fā)生。反證法思想是先提出檢驗假設(shè),再用適當?shù)慕y(tǒng)計方法,利用小概率原理,確定假設(shè)是否成立。對于不同的問題,檢驗的顯著性水平α不一定相同,一般認為,事件發(fā)生的概率小于0.1、0.05或0.01等,即“小概率事件”。但是,如果說你犯下第一類錯誤(即拒絕正確的假設(shè): H 0 H_0 H0?是真,但拒絕 H 0 H_0 H0?)的成本越高,你的α值就要設(shè)置得越小。

接下來介紹假設(shè)檢驗的基本步驟

  1. 提出零假設(shè)和備擇假設(shè);
  2. 根據(jù)備擇假設(shè)確定檢驗方向;
    簡單來說含有不等號的是雙向檢驗,反之則是單向檢驗;
  3. 選定統(tǒng)計方法。根據(jù)資料的類型和特點,可分別選用Z檢驗、T檢驗,秩和檢驗和卡方檢驗等;
  4. 選定顯著性水平α。但記住判斷結(jié)論時不能絕對化,應注意無論接受或拒絕檢驗假設(shè),都有判斷錯誤的可能性。

如何判斷一個樣本統(tǒng)計量符合什么分布?

如何選定統(tǒng)計方法?那就得判斷你的樣本統(tǒng)計量符合什么分布了。


上圖就是判斷一個樣本統(tǒng)計量符合什么分布的流程圖,非常nice!

下面呢,則是關(guān)于Z分布,T分布,卡方分布的簡單了解,其中注意考慮多個總體問題時如何計算處理。




接下來再看一下這幾種分布的概率密度分布圖。



可以看出,T分布與標準正態(tài)分布(Z分布)都是以0為對稱的分布,T分布的方差大所以分布形態(tài)更扁平些。

不同分布的拒絕域

對稱型(Z分布、t分布)

雙側(cè)檢驗:

單側(cè)檢驗:

非對稱型(卡方分布、F分布)

卡方分布:

拒絕域:

(卡方分布在左側(cè)的拒絕域特別小,所以拒絕的區(qū)間的值也比較少),所以卡方檢驗的拒絕域一般
放在右側(cè)。F分布同理。




二、項目實戰(zhàn)

項目來源:
https://tianchi.aliyun.com/dataset/dataDetail?dataId=50893

數(shù)據(jù)介紹:
從支付寶的兩個營銷活動中收集的真實數(shù)據(jù)集。該數(shù)據(jù)集包含支付寶中的兩個商業(yè)定位活動日志。由于隱私問題,數(shù)據(jù)被采樣和脫敏。雖然該數(shù)據(jù)集的統(tǒng)計結(jié)果與支付寶的實際規(guī)模有偏差,但不影響解決方案的適用性。

主要提供了三個數(shù)據(jù)集:

  • emb_tb_2.csv: 用戶特征數(shù)據(jù)集。
  • effect_tb.csv: 廣告點擊情況數(shù)據(jù)集。
  • seed_cand_tb.csv: 用戶類型數(shù)據(jù)集。

本分析報告的主要使用廣告點擊情況數(shù)據(jù),涉及字段如下:

  • dmp_id:營銷策略編號(這里我們這么設(shè)置1為對照組,2為營銷策略一,3為營銷策略二)。
  • user_id:支付寶用戶ID。
  • label:用戶當天是否點擊活動廣告(0:未點擊,1:點擊)。

接下來正式開始實戰(zhàn)。

1 數(shù)據(jù)預處理

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)計情況,主要是看dmp_id。

data.describe()


接下來查看數(shù)據(jù)重復情況。

data[data.duplicated(keep = False)]


存在重復項,需要進行去重。

data = data.drop_duplicates()# 檢查是否還有重復項data[data.duplicated(keep = False)]


從先前操作已知數(shù)據(jù)類型正常,接下來利用透視表來看各屬性是否存在不合理情況。

data.pivot_table(index = "dmp_id",columns = "label",values = "user_id",aggfunc = "count") 


從以上看出屬性字段無異常取值,無需進行處理。

2 樣本容量檢驗

在進行ABTest前,需檢查樣本容量是否滿足試驗所需最小值。

這里需要借助樣本量計算工具:https://www.evanmiller.org/ab-testing/sample-size.html

首先需要設(shè)定點擊率基準線以及最小提升比例,我們將對照組的點擊率設(shè)為基準線。

data[data["dmp_id"] == 1]["label"].mean()


對照組的點擊率為1.26%,假設(shè)我們希望新的營銷策略能夠讓廣告點擊率至少提升一個百分點,則算得所需最小樣本量為2167。

data["dmp_id"].value_counts()


可得411107和316205遠大于2167,滿足最小樣本量需求。

3 假設(shè)檢驗

我們先查看一下這三種營銷策略的點擊率情況。

print("對照組: " ,data[data["dmp_id"] == 1]["label"].describe())print("策略一: " ,data[data["dmp_id"] == 2]["label"].describe())print("策略二: " ,data[data["dmp_id"] == 3]["label"].describe())


可以看到策略一和策略二相比對照組在點擊率上都有不同程度的提升。

其中策略一提升0.2個百分點,策略二提升1.3個百分點,只有策略二滿足了前面我們對點擊率提升最小值的要求。

接下來需要進行假設(shè)檢驗,看策略二點擊率的提升是否顯著。

3.1 提出零假設(shè)和備擇假設(shè)

設(shè)對照組點擊率為 p 1 p_1 p1?,策略二點擊率為 p 2 p_2 p2?,則:

  • 零假設(shè) H 0 H_0 H0? p 1 p_1 p1?>= p 2 p_2 p2?,即 p 1 p_1 p1?- p 2 p_2 p2?>=0;
  • 備擇假設(shè) H 1 H_1 H1? p 1 p_1 p1?< p 2 p_2 p2?,即 p 1 p_1 p1?- p 2 p_2 p2?<0。

3.2 確定檢驗方向

由備擇假設(shè)可以看出,檢驗方向為單項檢驗(左)。

3.3 選定統(tǒng)計方法

由于樣本較大,故采用Z檢驗。此時檢驗統(tǒng)計量的公式如下: 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?為總和點擊率。

3.3.1 方法一:公式計算

# 用戶數(shù)n1 = len(data[data.dmp_id == 1])  # 對照組n2 = len(data[data.dmp_id == 3])  # 策略二# 點擊數(shù)c1 = len(data[data.dmp_id ==1][data.label == 1])c2 = len(data[data.dmp_id ==3][data.label == 1])# 計算點擊率p1 = c1 / n1p2 = c2 / n2# 總和點擊率(點擊率的聯(lián)合估計)pc = (c1 + c2) / (n1 + n2)print("總和點擊率pc:", pc)

# 計算檢驗統(tǒng)計量zz = (p1 - p2) / np.sqrt(pc * (1 - pc)*(1/n1 + 1/n2))print("檢驗統(tǒng)計量z:", z)


這里我去 α /alpha α為0.05,此時我們利用python提供的scipy模塊,查詢 α = 0.5 /alpha=0.5 α=0.5時對應的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, 檢驗統(tǒng)計量z = -59.44,該檢驗為左側(cè)單尾檢驗,拒絕域為{z< z α z_/alpha zα?},z=-59.44落在拒絕域。

所以我們可以得出結(jié)論:在顯著性水平為0.05時,拒絕原假設(shè),策略二點擊率的提升在統(tǒng)計上是顯著的。

假設(shè)檢驗并不能真正的衡量差異的大小,它只能判斷差異是否比隨機造成的更大。因此,我們在報告假設(shè)檢驗結(jié)果的同時,應給出效應的大小。對比平均值時,衡量效應大小的常見標準之一是Cohen’d,中文一般翻譯作科恩d值: d = 樣 本 1 平 均 值 ? 樣 本 2 平 均 值 標 準 差 d=/frac{樣本_1平均值-樣本_2平均值}{標準差} d=1??2??
這里的標準差,由于是雙獨立樣本的,需要用合并標準差(pooled standard deviations)代替。也就是以合并標準差為單位,計算兩個樣本平均值之間相差多少。雙獨立樣本的合并標準差可以如下計算: 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/122018.html

相關(guān)文章

  • 【小白+python+selenium庫+圖片爬取+反爬+資料】詳細新手實現(xiàn)(01)webdriv

    摘要:且本小白也親身經(jīng)歷了整個從小白到爬蟲初入門的過程,因此就斗膽在上開一個欄目,以我的圖片爬蟲全實現(xiàn)過程為例,以期用更簡單清晰詳盡的方式來幫助更多小白應對更大多數(shù)的爬蟲實際問題。 前言: 一個月前,博主在學過python(一年前)、會一點網(wǎng)絡(luò)(能按F12)的情況下,憑著熱血和興趣,開始了pyth...

    Half 評論0 收藏0
  • 廣告商業(yè)形態(tài)與應用架構(gòu)

    摘要:整合起來,這就是平臺廣告商業(yè)形態(tài)的市場形態(tài)平衡用戶服務體驗廣告主實質(zhì)訴求及平臺的最大營收三方關(guān)系,追求各自最大收益。 文章目錄 廣告商業(yè)形態(tài)深思廣告到底是什么?互...

    kel 評論0 收藏0
  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 螞蟻微貸互動營銷技術(shù)體系實踐

    摘要:財富管理專場上,螞蟻金服微貸事業(yè)群高級前端技術(shù)專家王卓做了主題為螞蟻微貸互動營銷技術(shù)體系實踐的精彩分享。通過互動技術(shù),最終實現(xiàn)拉新,留存和促活等目標。營銷技術(shù)方案對接研發(fā)平臺,通過鳳蝶系統(tǒng)和研發(fā)管理體系進行打通。 摘要:以數(shù)字金融新原力(The New Force of Digital Finance)為主題,螞蟻金服ATEC城市峰會于2019年1月4日上海如期舉辦。財富管理專場上,螞...

    aristark 評論0 收藏0
  • PyCon China 深圳站精彩回顧(PPT及視頻)

    摘要:月日,第六屆大會在深圳召開。這是這次大會的第二站活動,第一站已在上海成功舉辦。深圳站視頻及,請在公眾號后臺回復,獲取分享鏈接。據(jù)介紹,目前支持多種開發(fā)庫,如內(nèi)置和等。該協(xié)議的推出,是為了統(tǒng)一標準,提高效率。 本文為 PyChina 和「編程派」聯(lián)合首發(fā),作者為 EarlGrey?!妇幊膛伞故且粋€專注 Python 學習交流的微信公眾號。 9 月 25 日,第六屆 PyCon China...

    lykops 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<