=網絡
在這篇文章中,咱們看看什麼是渠道歸因,以及它如何與馬爾可夫鏈的概念聯繫起來。咱們還將經過一個電子商務公司的案例研究來理解這個概念如何在理論上和實踐上運做(使用R)。ide
Google Analytics爲歸因建模提供了一套標準規則。根據Google的說法,「歸因模型是決定銷售和轉化如何分配給轉化路徑中的接觸點的規則或一組規則。例如,Google Analytics中的最後一次互動模型會爲緊接銷售或轉化以前的最終接觸點(即,點擊次數)分配100%的功勞。相比之下,第一個互動模型爲啓動轉化路徑的接觸點分配100%的功勞。「網站
咱們將在本文後面看到最後一個交互模型和第一個交互模型。在此以前,讓咱們舉一個小例子,進一步瞭解渠道歸因。假設咱們有一個轉換圖,以下所示:spa
在上述狀況下,客戶能夠經過渠道'C1'或渠道'C2'開始他們的旅程。以C1或C2開始的機率爲50%(或0.5)。咱們首先計算轉換的整體機率,而後進一步查看每一個渠道的影響。code
P(轉換)= P(C1→C2→C3→轉換)+ P(C2→C3→轉換)blog
= 0.5 0.5 1 0.6 + 0.5 1 * 0.6圖片
= 0.15 + 0.3element
= 0.45rem
馬爾可夫鏈是一個過程,它映射活動並給出機率分佈,從一個狀態轉移到另外一個狀態。馬爾可夫鏈由三個屬性定義:get
狀態空間 - 處理可能存在的全部狀態的集合
轉換操做 - 從一個狀態轉移到另外一個狀態的機率
當前狀態機率分佈 - 在過程開始時處於任何一個狀態的機率分佈
咱們知道咱們能夠經過的階段,從每條路徑移動的機率以及咱們知道當前狀態的可能性。這看起來與馬爾可夫鏈類似。
事實上,這是一個馬爾可夫鏈的應用。若是咱們要弄清楚渠道1在咱們的客戶從始至終轉換的過程當中的貢獻,咱們將使用去除效果的原則。去除效果原則說,若是咱們想要在客戶過程當中找到每一個渠道的貢獻,咱們能夠經過刪除每一個渠道並查看在沒有該渠道的狀況下發生了多少次轉化。
例如,咱們假設咱們必須計算通道C1的貢獻。咱們將從模型中刪除通道C1,並查看圖片中沒有C1的狀況下發生了多少次轉換,即全部渠道無缺無損時的總轉換次數。咱們計算渠道C1:
P(去除C1後的轉換)= P(C2→C3→轉換)
= 0.5 1 0.6
= 0.3
30%的客戶互動能夠在沒有C1渠道的狀況下進行轉換; 而C1無缺無損,45%的互動能夠轉換。因此,C1的去除效果是
0.3 / 0.45 = 0.666。
C2和C3的去除效果爲1(您能夠嘗試計算,但直覺地認爲,若是咱們要刪除或者C2或C3,咱們將可以完成任何轉換?)。
這是馬爾可夫鏈的一個很是有用的應用。在上述狀況下,全部渠道--C1,C2,C3(在不一樣階段)被稱爲轉換狀態 ; 而從一個渠道移動到另外一個渠道的機率稱爲轉移機率。
客戶旅程是一系列渠道,能夠看做是一個有向馬爾可夫圖中的一個鏈,其中每一個頂點都是一個狀態(渠道/接觸點),每條邊表示從一個狀態移動到另外一個狀態的轉移機率。因爲到達狀態的機率僅取決於以前的狀態,所以能夠將其視爲無記憶馬爾可夫鏈。
讓咱們進行真實案例研究,看看咱們如何實施渠道歸因建模。
一家電子商務公司進行了一項調查並收集了客戶的數據。這能夠被認爲是具備表明性的人羣。在調查中,公司收集了有關客戶訪問各類觸點的數據,最終在其網站上購買該產品。
總共有19個渠道,客戶能夠遇到產品或產品廣告。在19個渠道以後,還有三種狀況:
#20 - 客戶決定購買哪一種設備;
#21 - 客戶已經作出最終購買;
#22 - 客戶還沒有決定。
渠道的整體分類以下:
類別
渠道
網站(1,2,3)
公司的網站或競爭對手的網站
研究報告(4,5,6,7,8)
行業諮詢研究報告
在線/評論(9,10)
天然搜索,論壇
價格比較(11)
聚合渠道
朋友(12,13)
社交網絡
專家(14)
在線或離線專家
零售店(15,16,17)
實體店
其餘 (18,19)
其餘,例如在各地的促銷活動
如今,咱們須要幫助電子商務公司肯定投資營銷渠道的正確策略。應該關注哪些渠道?公司應該投資哪些渠道?咱們將在下一節中使用R來解決這個問題。
咱們讀取數據,嘗試在R中實現並檢查結果。
> head(channel)
輸出:
R05A.01 R05A.02 R05A.03 R05A.04 ….. R05A.18 R05A.19 R05A.20 16 4 3 5 NA NA NA 2 1 9 10 NA NA NA 9 13 20 16 NA NA NA 8 15 20 21 NA NA NA 16 9 13 20 NA NA NA 1 11 8 4 NA NA NA
咱們將進行一些數據處理,將其帶入一個階段,咱們能夠將其用做模型中的輸入。而後,咱們將肯定哪些客戶已進行最終轉換。
建立一個特定格式的變量'路徑',能夠做爲模型的輸入。另外,咱們將使用「dplyr」包找出每條路徑的總髮生次數。
路徑
轉換
1 > 1 > 1 > 20
1
1 > 1 > 12 > 12
1
1 > 1 > 14 > 13 > 12 > 20
1
1 > 1 > 3 > 13 > 3 > 20
1
1 > 1 > 3 > 17 > 17
1
1 > 6 > 1 > 12 > 20 > 12
1
> channel_fin = ddply(channel_fin,~path,summarise, conversion= sum(convert)) > head(channel_fin)
輸出:
路徑
轉換
1 > 1 > 1 > 20
1
1 > 1 > 12 > 12
1
1 > 1 > 14 > 13 > 12 > 20
1
1 > 1 > 3 > 13 > 3 > 20
1
1 > 1 > 3 > 17 > 17
1
1 > 1 > 6 > 1 > 12 > 20 > 12
1
如今,咱們將建立一個啓發式模型和一個馬爾科夫模型,將二者結合起來,而後檢查最終結果。
輸出:
Output:
渠道名稱
首次接觸轉換
…..
線性接觸轉換
線性接觸值
1
130
73.773661
73.773661
20
0
473.998171
473.998171
12
75
76.127863
76.127863
14
34
56.335744
56.335744
13
320
204.039552
204.039552
3
168
117.609677
117.609677
17
31
76.583847
76.583847
6
50
54.707124
54.707124
8
56
53.677862
53.677862
10
547
211.822393
211.822393
11
66
107.109048
107.109048
16
111
156.049086
156.049086
2
199
94.111668
94.111668
4
231
250.784033
250.784033
7
26
33.435991
33.435991
5
62
74.900402
74.900402
9
250
194.07169
194.07169
15
22
65.159225
65.159225
18
4
5.026587
5.026587
19
10
12.676375
12.676375
輸出:
:
渠道名稱
整體轉換
整體轉換值
1
82.482961
82.482961
20
432.40615
432.40615
12
83.942587
83.942587
14
63.08676
63.08676
13
195.751556
195.751556
3
122.973752
122.973752
17
83.866724
83.866724
6
63.280828
63.280828
8
61.016115
61.016115
10
209.035208
209.035208
11
118.563707
118.563707
16
158.692238
158.692238
2
98.067199
98.067199
4
223.709091
223.709091
7
41.919248
41.919248
5
81.865473
81.865473
9
179.483376
179.483376
15
70.360777
70.360777
18
5.950827
5.950827
19
15.545424
15.545424
在進一步討論以前,咱們先來了解一下咱們上面看到的一些術語的含義。
第一次接觸轉換:當該渠道是客戶的第一個觸點時,經過渠道進行的轉換。第一個觸點得到100%的功勞。
上次接觸轉換:當該渠道是客戶的最後一個接觸點時,經過渠道發生的轉化。100%功勞給予最後的接觸點。
回到R代碼,讓咱們合併這兩個模型,並以可視化方式表示輸出。
# 繪製總轉換 ggplot(R1, aes(channel_name, value, fill = variable)) + geom_bar(stat='identity', position='dodge') + ggtitle('TOTAL CONVERSIONS') + theme(axis.title.x = element_text(vjust = -2)) + theme(axis.title.y = element_text(vjust = +2)) + theme(title = element_text(size = 16)) +
從上圖中能夠清楚地看到結果。從第一次接觸轉換角度來看,渠道10,渠道13,渠道2,渠道4和渠道9很是重要; 而從最後接觸的角度來看,第20渠道是最重要的(由於在咱們的例子中客戶決定購買哪一種產品)。就線性接觸轉換而言,渠道20、渠道4和渠道9是重要的。從總轉換角度來看,渠道10,13,20,4和9很是重要。
在上面的圖表中,咱們已經可以找出哪些是咱們關注的重要渠道,哪些能夠被忽略或忽視。這種狀況使咱們對客戶分析領域馬爾可夫鏈模型的應用有了很好的瞭解。電子商務公司如今能夠更準確地建立他們的營銷策略,並使用數據驅動的看法分配他們的營銷預算。