zoukankan      html  css  js  c++  java
  • R语言代写使用马尔可夫链对营销中的渠道归因建模

    原文链接:http://tecdat.cn/?p=5383

    介绍

    在一个典型的“从思考到购买”的顾客旅程中,顾客在购买最终产品之前要经过多个接触点。这在电子商务销售方面更为突出。跟踪哪些是客户在最终购买之前遇到的不同接触点相对更容易。

    随着市场营销越来越多地朝着消费者驱动的方向发展,确定正确的渠道来瞄准客户已经成为企业的关键。这有助于公司优化营销支出,并在合适的地点针对合适的客户。

    通常情况下,公司通常投资于最终购买前客户遇到的最后一个渠道。但是,这可能并不总是正确的做法。该频道之前有多个频道,最终推动客户转换。研究这种行为的基本概念被称为“多渠道归因建模”。

    在这篇文章中,我们看看什么是渠道归因,以及它如何与马尔可夫链的概念联系起来。我们还将通过一个电子商务公司的案例研究来理解这个概念在理论上和实践上如何运作(使用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.3

    = 0.45

    马尔可夫链

    马尔可夫链是一个过程,它映射运动并给出概率分布,从一个状态转移到另一个状态。马尔可夫链由三个属性定义:

    状态空间 - 处理可能存在的所有状态的集合

    转换操作符 - 从一个状态转移到另一个状态的概率

    当前状态概率分布 - 在过程开始时处于任何一个状态的概率分布

    我们知道我们可以通过的阶段,从每条路径移动的概率以及我们知道当前状态的可能性。这看起来与马尔可夫链相似,不是吗?

    事实上,这是一个马尔可夫链的应用。我们稍后会回来; 现在让我们坚持我们的例子。如果我们要弄清楚渠道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的实现

    让我们继续前进,尝试在R中的实现并检查结果。

    输出:

    R05A.01R05A.02R05A.03R05A.04... ..R05A.18R05A.19R05A.20

    1643五NANANA

    21910NANANA

    9132016NANANA

    8152021NANANA

    1691320NANANA

    11184NANANA

    我们将进行一些数据处理,将其带入一个阶段,我们可以将其用作模型中的输入。然后,我们将确定哪些客户旅程已进行最终转换(在我们的情况下,所有旅程都已达到最终转换状态)。

    我们将创建一个特定格式的变量'路径',可以作为模型的输入。另外,我们将使用“dplyr”包找出每条路径的总发生次数。

    路径转变

    1> 1> 1> 201

    1> 1> 12> 121

    1> 1> 14> 13> 12> 201

    1> 1> 3> 13> 3> 201

    1> 1> 3> 17> 171

    > 1> 6> 1> 12> 20> 121

    输出:

    路径转变

    1> 1> 1> 201

    1> 1> 12> 121

    1> 1> 14> 13> 12> 201

    1> 1> 3> 13> 3> 201

    1> 1> 3> 17> 171

    1> 1> 6> 1> 12> 20> 121

    现在,我们将创建一个启发式模型和一个马尔科夫模型,将两者结合起来,然后检查最终结果。

    输出:

    CHANNEL_NAMEfirst_touch_conversions... ..linear_touch_conversionslinear_touch_value

    113073.77366173.773661

    200473.998171473.998171

    127576.12786376.127863

    143456.33574456.335744

    13320204.039552204.039552

    3168117.609677117.609677

    173176.58384776.583847

    65054.70712454.707124

    85653.67786253.677862

    10547211.822393211.822393

    1166107.109048107.109048

    16111156.049086156.049086

    219994.11166894.111668

    4231250.784033250.784033

    72633.43599133.435991

    五6274.90040274.900402

    9250194.07169194.07169

    152265.15922565.159225

    1845.0265875.026587

    191012.67637512.676375

    输出:

    CHANNEL_NAMEtotal_conversiontotal_conversion_value

    182.48296182.482961

    20432.40615432.40615

    1283.94258783.942587

    1463.0867663.08676

    13195.751556195.751556

    3122.973752122.973752

    1783.86672483.866724

    663.28082863.280828

    861.01611561.016115

    10209.035208209.035208

    11118.563707118.563707

    16158.692238158.692238

    298.06719998.067199

    4223.709091223.709091

    741.91924841.919248

    五81.86547381.865473

    9179.483376179.483376

    1570.36077770.360777

    185.9508275.950827

    1915.54542415.545424

    在进一步讨论之前,我们先来了解一下我们上面看到的一些术语的含义。

    第一次触摸转换:当该频道是客户的第一个触摸点时,通过频道进行的转换。第一个触点获得100%的功劳。

    上次触摸转换:当该频道是客户的最后一个接触点时,通过频道发生的转化。100%信用给予最后的接触点。

    线性触控转换:所有通道/触控点在转换中均享有同等荣誉。

    回到R代码,让我们合并这两个模型,并以更容易理解的视觉吸引人的方式表示输出。

    从上图中可以清楚地看到情景。从第一次触摸转换角度来看,频道10,频道13,频道2,频道4和频道9非常重要; 而从最后接触的角度来看,第20频道是最重要的(在我们的例子中,应该是因为客户决定购买哪种产品)。就线性触摸转换而言,通道20,通道4和通道9是重要的。从总转换角度来看,频道10,13,20,4和9非常重要。

    结束

    在上面的图表中,我们已经能够找出哪些是我们关注的重要渠道,哪些可以被忽略或忽视。这种情况使我们对客户分析领域马尔可夫链模型的应用有了很好的了解。电子商务公司现在可以自信地创建他们的营销策略,并使用数据驱动的见解分配他们的营销预算。

    如果您有任何疑问,请在下面发表评论。

  • 相关阅读:
    微信消息类型和事件类型
    lnmp环境搭建脚本
    laravel框架踩过的坑
    vue结构详解
    PHP消息队列实现及应用
    laravel 运行错误
    笔记分享
    cf730e
    cf 730i
    cf 731f
  • 原文地址:https://www.cnblogs.com/tecdat/p/11064496.html
Copyright © 2011-2022 走看看