马尔可夫链+R语言:归因方式是什么,如何监控广告效果?
什么是渠道归因以及它与马尔可夫链概念的关系。我们还将通过电子商务公司的案例研究来了解这个概念在理论上和实践上(使用 R)如何运作。作者:拓端数据科技
什么是渠道归因?
Google Analytics 提供了一套标准的归因建模规则。根据 Google 的说法,“归因模型是一个规则或一组规则,用于确定如何将销售和转化分配给转化路径中的接触点。例如,Google Analytics 中的最后一个交互模型为接触点(即点击)分配 100% 的功劳相比之下,它将第一个交互模型 100% 的功劳分配给启动转化路径的接触点。”
我们将在本文后面看到最后一个交互模型和第一个交互模型。在此之前,我们先通过一个小例子来进一步了解渠道归因。假设我们有一个如下所示的转化图: ![]()
在上述场景中,客户可能通过渠道“C1”或渠道“C2”开始他们的旅程。从 C1 或 C2 开始的概率是 50%(或 0.5)。我们首先计算总体转化概率,然后更仔细地研究每个渠道的影响。
P(转换) = P(C1→C2→C3→转换)+ P(C2→C3→转换)
= 0.5 * 0.5 * 1 * 0.6 + 0.5 * 1 * 0.6
= 0.15 + 0.3i Mar 0.
马尔可夫链是一个映射活动并提供从一种状态移动到另一种状态的概率分布的过程 马尔可夫链由三个属性定义:
状态空间 - 所有状态的集合可以存在的状态
转换操作 - 从一种状态移动到另一种状态的概率
当前状态的概率分布 - 在过程中从任何状态开始的概率分布
我们知道我们可以通过的阶段,从每条路径移动的概率,我们知道当前状态的概率。这类似于马尔可夫链。
其实这是马尔可夫链的一个应用。如果我们要找出渠道 1 在客户旅程自始至终的贡献,我们将使用影响消除原则。移除效应原则指出,如果我们想要找到每个渠道在客户旅程中的贡献,我们可以通过移除每个渠道来实现,并查看如果没有该渠道会发生多少转化。
例如,假设我们需要计算通道 C1 的贡献。我们将从模型中删除通道 C1,并查看图像中没有 C1 时发生的转换次数,即所有通道完好无损时的转换总数。我们计算通道C1: ![]()
P(去除C1后的转化)= P(C2→C3→转化)
= 0.5 * 1 * 0.6
= 0.3%的客户操作可以在没有0.3的情况下执行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) 18,19) | 其他,比如异地促销 |
现在需要帮助电子商务公司确定投资营销渠道的正确策略。您应该关注哪些渠道?企业应该投资哪些渠道?我们将在下一节中使用 R 来解决这个问题。
使用 R 实现
我们读取数据,尝试在 R 中实现它并检查结果。
> head(channel)输出:
- R05A.01 R05A.02 R05A.03 R05A.04 ..... R05A.18 R05A.19 R05A.20
- 16 NA 16 2 1 9 10NA NA NA
- 9 13 20 16 NA NA ITA 我们需要进行一些数据处理,使其达到可以将其用作模型输入的阶段。然后我们确定哪些客户进行了最终转化。
以特定格式创建一个变量“路径”,可用作模型的输入。此外,我们将使用“dplyr”包来查找每个路径出现的总数。
路径交叉口
路径 交叉口 1 > 1 > 1 > 20 1 1 > 1 > 12❙ > 1 > 12 > 12 > 2 0 1 1 > 1 > 3 > 13 > 3 > 20 1 1 > 1 > 3 > 17 > 17 1 > 1 > 6 > 1 > 12 > 20 > 12 通道,~finchannel _d 路径,汇总,转换= sum(convert ) ) - > head(channel_fin)
输出:
路径转换
路径1 >❀ 0 1 1 > 1 > 12 > 12 13 > 12 > 20 1 1 > 1 > 3 > 13 > 3 > 20 1 1 > 17 > 1 > 1 1 > 1 > 6 > 1 > 12 > 20 > 12 1 现在我们要创建一个启发式模型和一个马尔可夫模型,将两者结合并检查最终结果。
输出:
输出:
通道名称 第一个接触的转换 …..arararararar-contact值 10 547 73。 773661- 6.335744 56.335744 13 320 20 4.039552 204.039552 3 168 117.60967769179 .5 83847 • 22393' 11668 94.111668 250.784033 250.784033 7 26 33.435991❀34❙3343。 900402- 5.026587 5.026587 19 10 12.676375 12.676375 输出:♺: ❓❓O82.482961
432.40615 432.40615 12 83.942587 83.942587 14 63.08676 63.086765 * 63.280828 • 8.563707 158.692238 15 8.692238 2 98.067199 98.067199 4 223.709091 223.709091 7 41.919248 41.91924881.865473 8 1.865473 9 179.48337670.360777 70.360777 18 5.950827 5.950827 19 15.545424 15.545424 在继续之前,我们首先了解一下上面看到的一些术语
首次接触转化:当渠道是客户的第一次接触点时,通过渠道发生转化。第一个接触点获得 100% 的功劳。
最后一次接触转化:当某个渠道是客户的最后一个接触点时,通过该渠道发生的转化。 100% 归功于最后一个接触点。
回到 R 代码,让我们将两个模型合并在一起并直观地表示输出。
- # 绘制总变换
- ggplot(R1, aes(channelname, value, fill = variable)) +
- geom_bar(stat='identity',position='dodge') +来自上图 结果中可以清楚地看到。从第一触摸转换的角度来看,通道10、通道13、通道2、通道4和通道9非常重要;而从最终接触的角度来看,Channel 20 是最重要的(因为在我们的案例中,客户决定购买哪种产品)。就线性开关转换而言,通道20、通道4和通道9很重要。从总转化角度来看,通道 10、13、20、4 和 9 非常重要。
结束
在上图中,我们已经能够找出哪些渠道对我们来说很重要,哪些渠道可以忽略。这种情况让我们很好地理解了马尔可夫链模型在客户分析中的应用。电子商务企业现在可以更精确地制定营销策略,并使用数据驱动的见解来分配营销预算。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网