R語言使用馬爾可夫鏈對(duì)營銷中的渠道歸因建模|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=5383
最近我們被客戶要求撰寫關(guān)于馬爾可夫鏈的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
在這篇文章中,我們看看什么是渠道歸因,以及它如何與馬爾可夫鏈的概念聯(lián)系起來
我們還將通過一個(gè)電子商務(wù)公司的案例研究來理解這個(gè)概念如何在理論上和實(shí)踐上運(yùn)作(使用R)。
什么是渠道歸因?
Google Analytics為歸因建模提供了一套標(biāo)準(zhǔn)規(guī)則。根據(jù)Google的說法,“歸因模型是決定銷售和轉(zhuǎn)化如何分配給轉(zhuǎn)化路徑中的接觸點(diǎn)的規(guī)則或一組規(guī)則。例如,Google Analytics中的最后一次互動(dòng)模型會(huì)為緊接銷售或轉(zhuǎn)化之前的最終接觸點(diǎn)(即,點(diǎn)擊次數(shù))分配100%的功勞。相比之下,第一個(gè)互動(dòng)模型為啟動(dòng)轉(zhuǎn)化路徑的接觸點(diǎn)分配100%的功勞?!?/p>
我們將在本文后面看到最后一個(gè)交互模型和第一個(gè)交互模型。在此之前,讓我們舉一個(gè)小例子,進(jìn)一步了解渠道歸因。假設(shè)我們有一個(gè)轉(zhuǎn)換圖,如下所示:

在上述情況下,客戶可以通過渠道'C1'或渠道'C2'開始他們的旅程。以C1或C2開始的概率為50%(或0.5)。我們首先計(jì)算轉(zhuǎn)換的總體概率,然后進(jìn)一步查看每個(gè)渠道的影響。
P(轉(zhuǎn)換)= P(C1→C2→C3→轉(zhuǎn)換)+ P(C2→C3→轉(zhuǎn)換)
= 0.5 * 0.5 * 1 * 0.6 + 0.5 * 1 * 0.6
= 0.15 + 0.3
= 0.45
馬爾可夫鏈
馬爾可夫鏈?zhǔn)且粋€(gè)過程,它映射活動(dòng)并給出概率分布,從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)。馬爾可夫鏈由三個(gè)屬性定義:
狀態(tài)空間 - 處理可能存在的所有狀態(tài)的集合
轉(zhuǎn)換操作?- 從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)的概率
當(dāng)前狀態(tài)概率分布 - 在過程開始時(shí)處于任何一個(gè)狀態(tài)的概率分布
我們知道我們可以通過的階段,從每條路徑移動(dòng)的概率以及我們知道當(dāng)前狀態(tài)的可能性。這看起來與馬爾可夫鏈相似。
事實(shí)上,這是一個(gè)馬爾可夫鏈的應(yīng)用。如果我們要弄清楚渠道1在我們的客戶從始至終轉(zhuǎn)換的過程中的貢獻(xiàn),我們將使用去除效果的原則。去除效果原則說,如果我們想要在客戶過程中找到每個(gè)渠道的貢獻(xiàn),我們可以通過刪除每個(gè)渠道并查看在沒有該渠道的情況下發(fā)生了多少次轉(zhuǎn)化。
例如,我們假設(shè)我們必須計(jì)算通道C1的貢獻(xiàn)。我們將從模型中刪除通道C1,并查看圖片中沒有C1的情況下發(fā)生了多少次轉(zhuǎn)換,即所有渠道完好無損時(shí)的總轉(zhuǎn)換次數(shù)。我們計(jì)算渠道C1:

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)

左右滑動(dòng)查看更多

01


02

03

04

P(去除C1后的轉(zhuǎn)換)= P(C2→C3→轉(zhuǎn)換)
= 0.5 * 1 * 0.6
= 0.3
30%的客戶互動(dòng)可以在沒有C1渠道的情況下進(jìn)行轉(zhuǎn)換; 而C1完好無損,45%的互動(dòng)可以轉(zhuǎn)換。所以,C1的去除效果是
0.3 / 0.45 = 0.666。
C2和C3的去除效果為1(您可以嘗試計(jì)算,但直覺地認(rèn)為,如果我們要?jiǎng)h除或者C2或C3,我們將能夠完成任何轉(zhuǎn)換?)。
這是馬爾可夫鏈的一個(gè)非常有用的應(yīng)用。在上述情況下,所有渠道--C1,C2,C3(在不同階段)被稱為轉(zhuǎn)換狀態(tài) ; 而從一個(gè)渠道移動(dòng)到另一個(gè)渠道的概率稱為轉(zhuǎn)移概率。
客戶旅程是一系列渠道,可以看作是一個(gè)有向馬爾可夫圖中的一個(gè)鏈,其中每個(gè)頂點(diǎn)都是一個(gè)狀態(tài)(渠道/接觸點(diǎn)),每條邊表示從一個(gè)狀態(tài)移動(dòng)到另一個(gè)狀態(tài)的轉(zhuǎn)移概率。由于到達(dá)狀態(tài)的概率僅取決于之前的狀態(tài),因此可以將其視為無記憶馬爾可夫鏈。
電子商務(wù)公司案例研究
讓我們進(jìn)行真實(shí)案例研究,看看我們?nèi)绾螌?shí)施渠道歸因建模。
一家電子商務(wù)公司進(jìn)行了一項(xiàng)調(diào)查并收集了客戶的數(shù)據(jù)。這可以被認(rèn)為是具有代表性的人群。在調(diào)查中,公司收集了有關(guān)客戶訪問各種觸點(diǎn)的數(shù)據(jù),最終在其網(wǎng)站上購買該產(chǎn)品。
總共有19個(gè)渠道,客戶可以遇到產(chǎn)品或產(chǎn)品廣告。在19個(gè)渠道之后,還有三種情況:
#20 - 客戶決定購買哪種設(shè)備;
#21 - 客戶已經(jīng)做出最終購買;
#22 - 客戶尚未決定。
渠道的總體分類如下:
類別渠道網(wǎng)站(1,2,3)公司的網(wǎng)站或競(jìng)爭(zhēng)對(duì)手的網(wǎng)站研究報(bào)告(4,5,6,7,8)行業(yè)咨詢研究報(bào)告在線/評(píng)論(9,10)自然搜索,論壇價(jià)格比較(11)聚合渠道朋友(12,13)社交網(wǎng)絡(luò)專家(14)在線或離線專家零售店(15,16,17)實(shí)體店其他 (18,19)其他,例如在各地的促銷活動(dòng)
現(xiàn)在,我們需要幫助電子商務(wù)公司確定投資營銷渠道的正確策略。應(yīng)該關(guān)注哪些渠道?公司應(yīng)該投資哪些渠道?我們將在下一節(jié)中使用R來解決這個(gè)問題。
使用R的實(shí)現(xiàn)
我們讀取數(shù)據(jù),嘗試在R中實(shí)現(xiàn)并檢查結(jié)果。
>?head(channel)
輸出:
1. ?R05A.01 ? ?R05A.02 ? ?R05A.03 ? ?R05A.04 ? ?….. ? ?R05A.18 ? ?R05A.19 ? ?R05A.202. ?16 ? ?4 ? ?3 ? ?5 ? ? ? ?NA ? ?NA ? ?NA3. ?2 ? ?1 ? ?9 ? ?10 ? ? ? ?NA ? ?NA ? ?NA4. ?9 ? ?13 ? ?20 ? ?16 ? ? ? ?NA ? ?NA ? ?NA5. ?8 ? ?15 ? ?20 ? ?21 ? ? ? ?NA ? ?NA ? ?NA6. ?16 ? ?9 ? ?13 ? ?20 ? ? ? ?NA ? ?NA ? ?NA7. ?1 ? ?11 ? ?8 ? ?4 ? ? ? ?NA ? ?NA ? ?NA
我們將進(jìn)行一些數(shù)據(jù)處理,將其帶入一個(gè)階段,我們可以將其用作模型中的輸入。然后,我們將確定哪些客戶已進(jìn)行最終轉(zhuǎn)換。
創(chuàng)建一個(gè)特定格式的變量'路徑',可以作為模型的輸入。另外,我們將使用“dplyr”包找出每條路徑的總發(fā)生次數(shù)。
路徑轉(zhuǎn)變
?
?
路徑轉(zhuǎn)換1 > 1 > 1 > 2011 > 1 > 12 > 1211 > 1 > 14 > 13 > 12 > 2011 > 1 > 3 > 13 > 3 > 2011 > 1 > 3 > 17 > 171> 1 > 6 > 1 > 12 > 20 > 121
?
1. ?> channel_fin = ddply(channel_fin,~path,summarise, conversion= sum(convert))2. ?> head(channel_fin)
輸出:
路徑轉(zhuǎn)變
?
路徑轉(zhuǎn)換1 > 1 > 1 > 2011 > 1 > 12 > 1211 > 1 > 14 > 13 > 12 > 2011 > 1 > 3 > 13 > 3 > 2011 > 1 > 3 > 17 > 1711 > 1 > 6 > 1 > 12 > 20 > 121
?
?
現(xiàn)在,我們將創(chuàng)建一個(gè)啟發(fā)式模型和一個(gè)馬爾科夫模型,將兩者結(jié)合起來,然后檢查最終結(jié)果。
輸出:
Output:
Output:
渠道名稱首次接觸轉(zhuǎn)換…..線性接觸轉(zhuǎn)換線性接觸值113073.77366173.773661200473.998171473.998171127576.12786376.127863143456.33574456.33574413320204.039552204.0395523168117.609677117.609677173176.58384776.58384765054.70712454.70712485653.67786253.67786210547211.822393211.8223931166107.109048107.10904816111156.049086156.049086219994.11166894.1116684231250.784033250.78403372633.43599133.43599156274.90040274.9004029250194.07169194.07169152265.15922565.1592251845.0265875.026587191012.67637512.676375
?
輸出:
:
:
渠道名稱總體轉(zhuǎn)換總體轉(zhuǎn)換值182.48296182.48296120432.40615432.406151283.94258783.9425871463.0867663.0867613195.751556195.7515563122.973752122.9737521783.86672483.866724663.28082863.280828861.01611561.01611510209.035208209.03520811118.563707118.56370716158.692238158.692238298.06719998.0671994223.709091223.709091741.91924841.919248581.86547381.8654739179.483376179.4833761570.36077770.360777185.9508275.9508271915.54542415.545424
?
在進(jìn)一步討論之前,我們先來了解一下我們上面看到的一些術(shù)語的含義。
第一次接觸轉(zhuǎn)換:當(dāng)該渠道是客戶的第一個(gè)觸點(diǎn)時(shí),通過渠道進(jìn)行的轉(zhuǎn)換。第一個(gè)觸點(diǎn)獲得100%的功勞。
上次接觸轉(zhuǎn)換:當(dāng)該渠道是客戶的最后一個(gè)接觸點(diǎn)時(shí),通過渠道發(fā)生的轉(zhuǎn)化。100%功勞給予最后的接觸點(diǎn)。
回到R代碼,讓我們合并這兩個(gè)模型,并以可視化方式表示輸出。
1. ?# 繪制總轉(zhuǎn)換2. ?ggplot(R1, aes(channel_name, value, fill = variable)) +
3. ? ?geom_bar(stat='identity', position='dodge')

從上圖中可以清楚地看到結(jié)果。從第一次接觸轉(zhuǎn)換角度來看,渠道10,渠道13,渠道2,渠道4和渠道9非常重要; 而從最后接觸的角度來看,第20渠道是最重要的(因?yàn)樵谖覀兊睦又锌蛻魶Q定購買哪種產(chǎn)品)。就線性接觸轉(zhuǎn)換而言,渠道20、渠道4和渠道9是重要的。從總轉(zhuǎn)換角度來看,渠道10,13,20,4和9非常重要。
結(jié)束
在上面的圖表中,我們已經(jīng)能夠找出哪些是我們關(guān)注的重要渠道,哪些可以被忽略或忽視。這種情況使我們對(duì)客戶分析領(lǐng)域馬爾可夫鏈模型的應(yīng)用有了很好的了解。電子商務(wù)公司現(xiàn)在可以更準(zhǔn)確地創(chuàng)建他們的營銷策略,并使用數(shù)據(jù)驅(qū)動(dòng)的見解分配他們的營銷預(yù)算。

點(diǎn)擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《R語言使用馬爾可夫鏈對(duì)營銷中的渠道歸因建模》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
隱馬爾可夫模型(HMM)識(shí)別不斷變化的股市狀況股票指數(shù)預(yù)測(cè)實(shí)戰(zhàn)
馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching
時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換MRS自回歸模型分析經(jīng)濟(jì)時(shí)間序列
馬爾可夫轉(zhuǎn)換模型研究交通傷亡人數(shù)事故時(shí)間序列預(yù)測(cè)
如何實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型、Metropolis算法?
Matlab用BUGS馬爾可夫區(qū)制轉(zhuǎn)換Markov switching隨機(jī)波動(dòng)率模型、序列蒙特卡羅SMC、M H采樣分析時(shí)間序列
R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉(zhuǎn)換隨機(jī)波動(dòng)率SV模型、粒子濾波、Metropolis Hasting采樣時(shí)間序列分析
matlab用馬爾可夫鏈蒙特卡羅 (MCMC) 的Logistic邏輯回歸模型分析汽車實(shí)驗(yàn)數(shù)據(jù)
stata馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
PYTHON用時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換(MRS)自回歸模型分析經(jīng)濟(jì)時(shí)間序列
R語言使用馬爾可夫鏈對(duì)營銷中的渠道歸因建模
matlab實(shí)現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計(jì)
R語言隱馬爾可夫模型HMM識(shí)別不斷變化的股票市場(chǎng)條件
R語言中的隱馬爾可夫HMM模型實(shí)例
用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計(jì)隨機(jī)波動(dòng)率(SV,Stochastic Volatility) 模型
MATLAB中的馬爾可夫區(qū)制轉(zhuǎn)移(Markov regime switching)模型
Matlab馬爾可夫區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型估計(jì)GDP增長(zhǎng)率
R語言馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching
stata馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
R語言如何做馬爾可夫轉(zhuǎn)換模型markov switching model
R語言隱馬爾可夫模型HMM識(shí)別股市變化分析報(bào)告
R語言中實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型