<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AB 測試中的假設(shè)檢驗(yàn)與分層抽樣?。ǜ酱a和數(shù)據(jù)集)

          共 3244字,需瀏覽 7分鐘

           ·

          2020-10-29 06:53

          今天由優(yōu)秀的蘿卜同學(xué)給大家分享一篇AB測試干貨~


          本文會將原理知識穿插于代碼段中,相關(guān)代碼和數(shù)據(jù)集空降文末可以獲取。


          前言


          電商網(wǎng)站 AB 測試非常常見,是將統(tǒng)計(jì)學(xué)與程序代碼結(jié)合的經(jīng)典案例之一。盡管如此,里面還是有許多值得學(xué)習(xí)和注意的地方。


          A/B 測試用于測試網(wǎng)頁的修改效果(瀏覽量,注冊率等),測試需進(jìn)行一場實(shí)驗(yàn),實(shí)驗(yàn)中控制組為網(wǎng)頁舊版本,實(shí)驗(yàn)組為網(wǎng)頁新版本,實(shí)驗(yàn)還需選出一個指標(biāo) 來衡量每組用戶的參與度,然后根據(jù)實(shí)驗(yàn)結(jié)果來判斷哪個版本效果更好。


          通過這些測試,我們可以觀察什么樣的改動能最大化指標(biāo),測試適用的改動類型十分廣泛,上到增加元素的大改動,下到顏色小變動都可使用這些測試。


          背景


          在本次案例研究中,我們將為教育平臺 “ 不吹牛分析網(wǎng) ” 分析 A/B 測試的結(jié)果,以下是該公司網(wǎng)站的客戶漏斗模型:瀏覽主頁 > 瀏覽課程概述頁面(課程首頁) > 注冊課程 > 付費(fèi)并完成課程



          越深入漏斗模型,不吹牛分析網(wǎng)就會流失越多的用戶(正?,F(xiàn)象),能進(jìn)入最后階段的用戶寥寥無幾。為了提高參與度,提高每個階段之間的轉(zhuǎn)化率,z哥試著做出一些改動,并對改動進(jìn)行了 A/B 測試,我們將幫z哥分析相關(guān)測試結(jié)果,并根據(jù)結(jié)果建議是否該實(shí)現(xiàn)頁面改版。


          因?yàn)槔?Python 進(jìn)行 A/B 測試在每個數(shù)據(jù)集上的使用大同小異,所以我們這里只展示課程首頁的A/B測試過程,其余頁面的數(shù)據(jù)集會一并提供給大家作為練習(xí)。


          Python實(shí)戰(zhàn)

          ? 數(shù)據(jù)讀入

          import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsplt.rc('font',**{'family':'Microsoft YaHei, SimHei'})
          # 設(shè)置中文字體的支持# 實(shí)現(xiàn) notebook 的多行輸出from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity ='all' #默認(rèn)為'last'course = pd.read_csv('course_page_actions.csv')course.info(); course.sample(5)

          參數(shù)說明:

          • timestamp:瀏覽時間

          • id:用戶 id

          • group:用戶所屬組別

          • action:用戶行為,view--僅瀏覽;enroll--瀏覽并注冊

          • duration:瀏覽界面時長(瀏覽越久,可能越感興趣,就越有可能注冊)

          ? 注冊率分析


          點(diǎn)擊率 (CTR: click through rate)通常是點(diǎn)擊數(shù)與瀏覽數(shù)的比例。因?yàn)榫W(wǎng)站頁面會使用 cookies,所以我們可以確認(rèn)單獨(dú)用戶,確保不重復(fù)統(tǒng)計(jì)同一個用戶的點(diǎn)擊率。為了進(jìn)行該實(shí)驗(yàn),我們對點(diǎn)擊率作出如下定義:CTR: 單獨(dú)用戶點(diǎn)擊數(shù) / ?單獨(dú)用戶瀏覽數(shù),這一需要注意的點(diǎn)可以使用 pandas 中的 nunique() 函數(shù)來快捷完成



          同理,實(shí)驗(yàn)組的計(jì)算方式相同,結(jié)果分析如下:



          根據(jù)已有數(shù)據(jù),我們通常會猜測會不會是新界面更加能夠吸引用戶停留并瀏覽,從而達(dá)到用戶瀏覽時間越長,就越有可能注冊課程



          ? 瀏覽時長分析


          可視化分析


          這里的我們將使用 seaborn 結(jié)合 markdown 公式的方式來實(shí)現(xiàn)快捷又強(qiáng)大的數(shù)據(jù)可視化


          結(jié)果分析

          • 新界面的注冊率有所提高,而瀏覽時長方面均呈現(xiàn)輕微的右偏

          • 實(shí)驗(yàn)組的瀏覽時長平均值比控制組高 15mins 左右,方差差別不大


          所以我們可以初步判斷新改版的課程首頁更吸引用戶,后續(xù)將進(jìn)行假設(shè)檢驗(yàn)來進(jìn)一步驗(yàn)證我們的猜想


          ? 假設(shè)檢驗(yàn)


          我們將從控制組和實(shí)驗(yàn)組中各抽取一定數(shù)量的樣本來進(jìn)行假設(shè)檢驗(yàn),下面是置信水平 α 的選擇經(jīng)驗(yàn):


          樣本量

          α-level

          ≤ 100

          10%

          100 < n ≤ 500

          5%

          500 < n ≤ 1000

          1%

          n > 2000

          千分之一


          樣本量過大,α-level 就沒什么意義了。為了使假設(shè)檢驗(yàn)的數(shù)據(jù)樣本更加合理,我們可以使用分層抽樣。Python 沒有現(xiàn)成的庫或函數(shù),可以使用前人的輪子。

          from mysampling import get_sample# df: 輸入的數(shù)據(jù)框 pandas.dataframe 對象
          #?sampling:抽樣方法?str ## 可選值有 ["simple_random","stratified","systematic"] ## 按順序分別為: 簡單隨機(jī)抽樣、分層抽樣、系統(tǒng)抽樣 # stratified_col: 需要分層的列名的列表 list,只有在分層抽樣時才生效
          # k: 抽樣個數(shù)或抽樣比例 int or float ## (int, 則必須大于0; float,則必須在區(qū)間(0,1)中) ## 如果 0< k <1, 則 k 表示抽樣對于總體的比例 ## 如果 k >=1, 則 k 表示抽樣的個數(shù);當(dāng)為分層抽樣時,代表每層的樣本量
          data =get_sample(df=course, sampling='stratified', stratified_col=['group'], k=300)data.sample(4); data.info()



          因?yàn)榭傮w未知,所以我們可以使用兩獨(dú)立樣本 T 檢驗(yàn),其實(shí)雙樣本 Z 檢驗(yàn)也能達(dá)到類似的效果

          # 總體未知,可采用兩獨(dú)立樣本T檢驗(yàn)from scipy import stats
          exp_duration = data.query('group == "experiment"')['duration']con_duration = data.query('group == "control"')['duration']
          print('兩獨(dú)立樣本 T 檢驗(yàn)...')stats.ttest_ind(a=exp_duration, b=con_duration)print('-'*45)print('雙樣本 Z 檢驗(yàn)...')import statsmodels. api as smsm.stats.ztest(x1=exp_duration, x2=con_duration)


          不難發(fā)現(xiàn),有時雙樣本 Z 檢驗(yàn)同樣可以達(dá)到兩獨(dú)立樣本 T 檢驗(yàn)的效果。



          綜述,我們將拒絕零假設(shè),接受 “ 新界面的瀏覽時長顯著不同于(高于)舊界面 ” 的這個假設(shè)。


          AB測試的不足


          但 A/B 測試也有不足之處。雖然測試能幫你比較兩種選擇,但無法告訴你你還沒想到的選擇,在對老用戶進(jìn)行測試時,抗拒改變心理、新奇效應(yīng)等因素都可能使測試結(jié)果出現(xiàn)偏差。


          • 抗拒改變心理:老用戶可能會因?yàn)榧兇獠幌矚g改變而偏愛舊版本,哪怕從長遠(yuǎn)來看新版本更好。

          • 新奇效應(yīng):老用戶可能會覺得變化很新鮮,受變化吸引而偏愛新版本,哪怕從長遠(yuǎn)看來新版本并無益處。


          所以在設(shè)計(jì) A/B 測試、基于測試結(jié)果得出結(jié)論時都需要考慮諸多因素。下面總結(jié)了一些常見考慮因素:


          • 老用戶第一次體驗(yàn)改動會有新奇效應(yīng)和改變抗拒心理;

          • 要得到可靠的顯著結(jié)果,需要有足夠的流量和轉(zhuǎn)化率;

          • 要做出最佳決策,需選用最佳指標(biāo)(如營收 vs 點(diǎn)擊率);

          • 應(yīng)進(jìn)行足夠的實(shí)驗(yàn)時長,以便解釋天/周/季度事件引起的行為變化;

          • 轉(zhuǎn)化率需具備現(xiàn)實(shí)指導(dǎo)意義(推出新元素的開支 vs 轉(zhuǎn)化率提高帶來的效益);

          • 對照組和實(shí)驗(yàn)組的測試對象要有一致性(兩組樣本數(shù)失衡會造成辛普森悖論等現(xiàn)象的發(fā)生)。


          今天的案例就到這里,相關(guān)代碼和數(shù)據(jù)集:

          完整案例數(shù)據(jù)和代碼

          鏈接:?

          https://pan.baidu.com/s/16GPrkrf4Bb6NAwOGInoEJA??

          提取碼:v8bq

          瀏覽 79
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产麻豆成人品免费观看 | 粉嫩视频在线观看 | 无码在线国产 | www8050午夜 | 亚洲AV成人无码精品直播在线 |