日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

支付宝营销策略效果分析(AB测试原理与流程)

發布時間:2024/1/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付宝营销策略效果分析(AB测试原理与流程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

案例文件與代碼下載地址:DataScience

目標:以支付寶某次營銷活動的數據為例,通過分析廣告點擊率,比較兩組營銷策略的廣告投放效果

數據準備

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns

數據描述

  • dmp_id:營銷策略編號(源數據文檔未作說明,這里根據數據情況設定為1:對照組,2:營銷策略一,3:營銷策略二)
  • user_id:支付寶用戶ID
  • label:用戶當天是否點擊活動廣告(0:未點擊,1:點擊)
data = pd.read_csv('data/effect_tb.csv') data.columns = ["dt","user_id","label","dmp_id"] data.head() dtuser_idlabeldmp_id01234
1100000401
1100000402
1100000601
1100000603
1100000701
data.drop(['dt'],axis=1,inplace=True) data.shape (2645957, 3)

刪除重復行

重復的多條數據,會影響最終的計算比例,對結果造成干擾

data.drop_duplicates(inplace=True) data.shape (2632974, 3)

查看是否有缺失值

data.isnull().sum() user_id 0 label 0 dmp_id 0 dtype: int64

處理重復用戶

可能存在一個用戶多次點擊的情況,這種情況下,多次點擊的用戶的用戶群體的權重就會增大,導致結果出現誤差。

(data.user_id.value_counts() > 1).sum() 201265 data = data.drop_duplicates(subset=['user_id'])

確定樣本量

計算對照組的廣告點擊率

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

計算樣本量:網頁鏈接

輸入:

  • 對照組的效果
  • 期望提升的效果
  • 置信度α和β
  • 不同營銷組的樣本量

    data.dmp_id.value_counts() 1 1905662 2 411107 3 316205 Name: dmp_id, dtype: int64

    可以看到樣本量均符合要求

    方法1:假設檢驗

    不同策略的廣告點擊率

    data.groupby(['dmp_id'])['label'].mean().plot(kind='bar') <matplotlib.axes._subplots.AxesSubplot at 0x1bfbfee9280>

    假設檢驗

    當樣本量>30時,均可認為樣本為大樣本,使用Z檢驗

    H 0 : p 對 照 組 ≥ p 實 驗 組 H0:p_{對照組}\ge p_{實驗組} H0:p?p?

    H 1 : p 對 照 組 < p 實 驗 組 H1:p_{對照組}\lt p_{實驗組} H1:p?<p?(我們想證明的結論)

    # 對照組樣本數量 n_control = data[data.dmp_id==1].shape[0] # 營銷活動二的樣本數量 n_test = data[data.dmp_id==3].shape[0]c_control = data[(data.dmp_id==1) & (data.label==1)].shape[0]c_test = data[(data.dmp_id==3) & (data.label==1)].shape[0]# 對照組的廣告點擊率 r_control = c_control/n_control # 營銷活動二樣本數量 r_test = c_test/n_test from statsmodels.stats.proportion import proportions_ztestz_score,p = proportions_ztest([c_control,c_test],[n_control,n_test])print("檢驗統計量z:",z_score,",p值:", p) 檢驗統計量z: -59.44164223047762 ,p值: 0.0

    結論

    計算得到P值為0.0<0.05,因此否定原假設,認為備擇假設成立,營銷活動對廣告點擊率有明顯的提升。

    方法二:蒙特卡洛法

    通過假設對照組和實驗組之間的廣告點擊率不存在差異,按照樣本數量進行多次抽樣模擬,從而得到一個新的樣本,然后計算實驗組和對照組的指標差,得到一個指標差的分布。

    通過判斷原始樣本中實驗組和對照組的指標差,在生成樣本之間的罕見比例,從而可以判斷A/B測試的結果是否顯著。

    # 假設所有策略的點擊率一樣 p_all = data.label.mean() p_all 0.014620729259005216

    模擬抽樣

    diff = []for i in range(1000):p_new_diff = np.random.choice(2,size = n_test,p=[1-p_all,p_all]).mean()p_old_diff = np.random.choice(2,size = n_control,p=[1-p_all,p_all]).mean()diff.append(p_old_diff - p_new_diff) diffs = np.array(diff) plt.hist(diffs) plt.axvline(r_control-r_test) <matplotlib.lines.Line2D at 0x1bfc798b250>

    (diffs < r_control-r_test).mean() 0.0

    結果

    如上圖所示,柱狀圖部分是蒙特卡洛方法模擬出來的 ( p 對 照 組 ? p 實 驗 組 ) (p_{對照組}-p_{實驗組}) (p??p?)的分布情況,左邊的線表示了實際測驗時的 ( p 對 照 組 ? p 實 驗 組 ) (p_{對照組}-p_{實驗組}) (p??p?),可以看到只有0%的樣本落在了垂線的左邊,因此可以認為實驗結果顯著

    A/B測試的其他知識

    A/B測試流程

    一個完整的A/B test主要包括如下幾部分:

    1、分析現狀,建立假設:分析業務,確定最高優先級的改進點,作出假設,提出優化建議。

    2、設定指標:設置主要指標來衡量版本的優劣;設置輔助指標來評估其他影響。

    3、設計與開發:設計優化版本的原型并完成開發。

    4、確定測試時長:確定測試進行的時長。

    5、確定分流方案:確定每個測試版本的分流比例及其他分流細節。

    6、采集并分析數據:收集實驗數據,進行有效性和效果判斷。

    7、給出結論:①確定發布新版本;②調整分流比例繼續測試;③優化迭代方案重新開發,回到步驟1。

    A/B注意點

    注意點:

  • 測試時長:測試的時長不宜過短,否則參與試驗的用戶幾乎都是產品的高頻用戶。
  • 分流(或者說抽樣):應該保證同時性、同質性、唯一性、均勻性。
    • 同時性:分流應該是同時的,測試的進行也應該是同時的。

    • 同質性:也可以說是相似性,是要求分出的用戶群,在各維度的特征都相似。可以基于用戶的設備特征(例如手機機型、操作系統版本號、手機語言等)和用戶的其他標簽(例如性別、年齡、新老用戶、會員等級等)進行分群,每一個A/B測試試驗都可以選定特定的用戶群進行試驗。

      • 判斷同質性的方法:
        • AAB測試,對兩組對照組的結果進行方差檢驗,判斷結果是否存在差異
    • 唯一性:即要求用戶不被重復計入測試。

    • 均勻性:要求各組流量是均勻的。

    參考資料:

    Analyse ab testing results

    一文入門A/B測試(含流程、原理及示例) - 寐語的文章 - 知乎

    總結

    以上是生活随笔為你收集整理的支付宝营销策略效果分析(AB测试原理与流程)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。