想象一下:这是意大利北部一个炎热的夏日,我在一间汗流浃背的机房里参加最后一场考试,这也是我即将结束学业的考试。显然,我把统计学(“脑和认知科学”)放在最后,因为我非常讨厌它。R 是一种深奥的语言,到底是什么?为什么我还要关心?
我几乎不知道,在发誓不再接触统计(或 R)几年后,我不得不违背诺言,向我的利益相关者展示我作为 SEO 专业人士的工作的影响。
是的,因为您知道同时在多个页面上实施更改的那种很棒的感觉吗?这很棒,但在企业界,这种情况并不经常发生——除非你通过测试和预测影响来证明这一点。您知道,就像您在 LinkedIn 或 Twitter 上看到的那些漂亮图表一样,这些图表明确地显示了在发生变化(或“处理”,我们从现在起将其称为“处理”)后上升或下降的趋势线一组页面,显示它对性能的影响。
资料来源:SearchPilot
那么,如果我告诉您,您可以免费创建自己的分析并使用其中一张图表让利益相关者惊叹不已呢?
做好准备,因为在本文中,您将学习如何使用因果影响来做到这一点,因果影响是 Google 开发的一个数据分析包,可让您清楚地显示更改对变量的影响,并帮助您制定业务案例和决策。别担心,您不需要成为统计或编程天才。Casual Impact on R 实际上很容易理解,在本文中您将找到入门所需的所有内容:
什么是因果影响?
为什么以及何时应该使用因果影响?
如何在 R Studio 上使用因果影响进行分析
现实世界数据统计的局限性
那么让我们开始吧。
什么是因果影响?
因果影响是 R 的一个包,它允许我们分析时间序列数据集,并与没有变化的情况下的预测结果相比,得出干预对变量的因果影响的推论。它还确定效果是否具有统计显着性。
它基于称为贝叶斯结构时间序列(简称 BSTS)的统计模型,该模型使用先验信息来预测在没有治疗的情况下变量的结果。这种预测称为反事实预测。
然后,它将预期结果(反事实)与实际结果进行比较,并使用差异来估计治疗的效果。
让我们看一个实践中的例子:
假设您正在页面上运行简单的标题更改测试,例如添加价格指示,并假设它将提高点击次数:
应用更改后,您手头的数据很可能来自 Google Search Console、Google Analytics 或其他一些跟踪工具,虽然我们有时可以在这些平台上看到更改后的趋势,但这可能很困难准确量化我们的更改对感兴趣变量的影响程度(在本例中为点击次数)
因果影响在实践中所做的就是帮助克服这一挑战,通过获取我们的数据,分析实施变更之前和之后的绩效,为您提供一个图表,让您很容易理解变更的影响您对测试组采用的治疗方法:
通过因果影响分析的阳性测试示例
每个面板的含义如下:
1)第一个面板显示原始数据以及未经处理的预测:
A。完整的黑线是实际结果(获得的真实点击次数)。
b. 水平虚线代表反事实预测根据前一时期的表现来确定后处理期。这是如果测试页面没有进行任何更改的话,根据更改之前的点击次数和对照组的点击次数。
C。垂直虚线代表发射日期,即实施治疗或改变的时间。在此示例中,是新标题在页面上上线的日期。
d. 线条周围的蓝色区域是波动,误差范围,正如模型预测的那样。
2)在第二个面板中,我们可以看到观察到的数据与反事实预测之间的差异。这是逐点因果效应,由模型估计。在我们的示例中,这就是实际点击次数和预测点击次数之间的差异。
3) 第三个面板将第二个面板的逐点贡献相加,以计算变化的累积效应。这是你的因果影响影响。
该图非常适合视觉效果,但真正的价值是由我们另外获得的详细摘要给出的:
如果报告的简易性还没有说服您尝试一下,让我们看看更多尝试的理由。
为什么应该使用因果影响?
量化效果并了解其统计显着性对于我们的工作有很多好处,特别是可以简化决策,从而充满信心地扩大我们的变革。
毕竟,运行测试本身就已经够困难的了。当我刚开始谈论测试时,我在 Twitter 和 LinkedIn 上进行了一项民意调查,询问我的同行认为运行测试中最具挑战性的部分是什么:12% 的人表示选择测试组是最困难的部分,38% 的人表示他们难以分析和信任测试结果,25% 的人表示他们很难大规模应用他们的发现,25% 的人表示了其他一些事情,其中包括“资源、成本和商业支持”——所有这些都是因果影响可以提供帮助的。
(请记住:当时我没有大量的关注者,所以对这些数字持保留态度,但尽管如此,我认为结果表明了我们在运行测试时遇到的挑战数量) 。
因此,我建议您尝试一下因果影响的三个主要原因:
很可靠
无论您是在内部还是在代理机构工作,您的利益相关者很可能会在花费金钱、时间和资源进行任何计划之前要求对预计的收益进行预测,而作为 SEO,提供明确的答案可能很棘手。
然而,借助因果影响,您可以摆脱笼统的“视情况而定”的答案,并根据您获得的结果提供具有一定置信度的基于数据的预测,以便您可以大规模推动变革。
它用途广泛
您可以对许多其他数据集使用因果影响,只要它们位于时间序列中即可。例如,伦敦大学学院的威廉·马丁用它来估计应用程序更改对安装的影响,播客 DataSkeptic 的主持人分析了阿黛尔出现在周六夜现场对她的维基百科页面访问的因果影响。
您还可以尝试因果影响来衡量有影响力的活动和其他类型的举措的效果,而无需明确的跟踪来帮助您量化结果。(注意,虽然您可以对几乎任何时间序列数据进行因果影响,但您可能希望重点关注网站浏览量、会话和用户等上层漏斗指标,因为对于更深层次的指标,有许多层可能会影响性能很难排除。)
免费!
运行测试的最大障碍之一是成本和资源。现在有一些(很棒的)工具可以集成贝叶斯统计来衡量对分割测试的影响,虽然它们运行速度更快,但如果预算是一个问题,这是一个很好的解决方法,可以让您进行测试正在进行中。
以下是使用因果影响可以帮助我们的一些场景:
它可以用在任何需要的地方策略的改变需要验证首先通过测试结果。能清楚地讲真好向利益相关者展示影响
- 我们团队的工作,特别是当他们衡量 SEO 成功的标准是在 Google 所有关键字中排名第一时。它可以帮助预报
- 规模变化的方向和争取更多资源
- (特别是当测试呈阳性或“获胜者”时)。
即使测试结果是否定的(或“失败者”),它也可以有助于我们了解受众,并帮助我们更有策略地指导未来的工作。
如何在 R Studio 上使用因果影响进行分析
希望我现在已经说服您亲自尝试一下,所以是时候进行演示了!
步骤1.下载软件
首先,您需要下载 R,然后下载 RStudio。它们都是免费和开源的,因此您可以在网上找到大量指导,并且不同的贡献者对脚本进行不断的改进。
完成后,打开软件,您将看到一个看起来有点像这样的屏幕:
右侧有一个包选项卡。转到“安装”并搜索因果影响。安装后,您需要的所有库都将就在那里,因此您可以使用该平台与您选择的数据集。
步骤 2. 准备数据
为简单起见,我在这里使用 Google Search Console 中的示例数据,但您可以使用任何常用来源来提取感兴趣的数据。如果您无法访问自己的数据,您还可以创建合成数据进行练习(Marco Giordano有关于如何操作的指南)。
由于模型需要足够的时间来根据之前的性能可靠地估计反事实(在没有变化的情况下对性能的预测),因此您至少需要
发布前期间数据量的两倍
比您的实施后期限。
让我们以您想要在两周标记后分析的标题更改测试为例:您需要导出 6 周的数据(发布前 4 周和发布后 2 周)以允许脚本运行才能正确运行。
从 GSC 下载的内容将如下所示:
对于我正在使用的脚本,您需要一次关注一个特定变量。在此示例中,我正在查看点击次数,并且由于 GSC 也导出有关其他指标的报告,因此我需要做一些事情才能让我的数据集准备好进行分析:
A)将日期按升序排序,因此最近的日期是底部的日期。
b)删除不是您感兴趣的指标的列,在本例中为展示次数、点击率和平均排名(这样您就只剩下日期和点击次数列)
C)可选步骤:如果您有另一个可以用作控制组,包括该选择中的点击次数作为第三列。您可以添加任意数量的控件,只要它们合适即可(例如,不同区域设置中未得到处理的相同页面、整个网站的总体性能等)。
d)检查数据列是否有 0 值:如果有零,您在尝试运行脚本时可能会收到错误消息。如果您最终找到了一些,您可以选择以下两个选项:
更正零:只有当数据集中有一两个实例时,这才可行。在这种情况下,您可以从之前或之后的行中“借用”一个单位,确保它不会与您的测试启动日期重叠(因为您将在两个不同的时期内移动值)。这将允许脚本以最少的数据操作运行。
选择不同的感兴趣指标或测试组:如果有多个零,则测试组可能还不太适合分析。不值得使用这些数据来运行测试,因为模型没有足够的数据来处理,并且纠正所有实例将涉及大量数据操作,这违背了在图中获得可靠输出的目的。
e)重命名列这样它们就不会包含特殊字符,根据我的经验,这往往会破坏脚本。
你的最终结果应该是这样的:
困难的部分已经结束了。将其保存为 Excel 文件后,您就可以运行该脚本了!
步骤 3. 运行脚本
导入 Excel 文件并检查预览以确保所有数据看起来正确。
将数据加载到主环境后,找到您的测试启动日期(例如 5 月 1 日),以便您可以映射与前周期和后周期相对应的行。
为简单起见,我将使用一个运行超过 6 周的示例(4 周为前期,2 周为后期),以便您可以按照脚本进行操作。在我的数据集中,启动日期对应于第 29 行,因此我知道我的前期是从第 1-28 行,后期是从第 29 行到第 42 行。
笔记:
对于具有直接影响的变更的测试(例如 CRO、CRM、社交),最好在后期包含发布日期,以充分了解变更的影响并避免“损失”一天,就像我们在示例中所做的那样前。通过 SEO 测试,您可能希望将发布日期保留为独立的一天,并使后期从发布后的第二天开始,此时爬虫有足够的时间来处理更改。然而,对于在一周中不同日期表现出巨大差异的变量来说,这可能会产生误报,因为发布后的几周不会与发布前的同一天完美重叠。您可以根据业务模型、测试类型和所做的更改来评估最适合您的分析的方法。
现在,我们将移动到 R Studio 环境左下角的工作区,我们将在其中执行此脚本:
首先输入第一个命令来说明前后周期的开始和结束位置:
前期
后期
此时,您可以删除日期列,因为您不再需要它来映射启动前后的时间段。这会将您的测试组列带到前面,准备好进行分析并与对照组进行比较。
测试示例$日期
现在,是时候绘制影响并观看奇迹发生了!
影响
情节(影响)
现在您已经有了我向您保证的漂亮图表,接下来的命令可以通过量化统计推断的影响和置信水平来实际理解它的含义。
总结(影响)
对于可在报告中使用的上述值的书面摘要,您可以输入以下行:
摘要(影响,“报告”)
最后,如果您在分析中包含一个或多个控制组,则可以使用此命令来了解模型使用它们的概率,以及它们与模型的拟合程度。
绘图(影响$模型$bsts.模型,“系数”)
条形越接近 1,模型将控件用作预测变量的机会就越高。控制值越接近 0,模型的信息量就越少。
颜色表示系数的方向:
白色表示负(系数与您感兴趣的变量方向相反)
黑色表示正(系数与您感兴趣的变量方向相同)
灰色表示相同的负数或正数概率。
虽然控制组并不是强制完成您的分析,但我发现它们有助于强化您的更改所产生的影响(特别是在系数接近 1 且为负数的情况下,表明影响更可能是由于的处理而不是网站的总体趋势)。
这就是您完成的第一个分析!以下是我们见过的所有命令的摘要(红色字段必须替换为您自己的数据):
请记住,虽然此脚本是一个很好的起点,但您可以在整个网络上找到因果影响脚本的版本,因此一旦您熟悉了该脚本,您就可以探索 RStudio 提供的所有其他功能。
我从一遍又一遍地运行这个脚本中学到了一些东西:
这日期栏
- 如果您使用此脚本,则应始终将其删除。我喜欢在终端中设置前和后后删除它,这样我就可以在删除引用之前检查它们是否位于正确的位置。但您也可以直接在电子表格上将其删除,请记住
在数据集的 Excel 中,第一行将是标签,但在 R 中,第一行是第一个数字数据输入。
如果您的计算机上没有 Excel,您可以将导出的数据另存为 CSV 并以文本形式导入 R Studio。
- 请记住,在这种情况下,您需要指示表格已经有标题,以便列标题不会被误认为是您正在分析的值的第一行。
列标题有时会出错
- 如果它们包含:
特殊字符
空间
大写字母
同样,如果列中的值包含逗号(例如 1,204),则通常不会被识别,因此如果出现错误,请确保替换单元格中的数字格式(例如 1204)。
从小处开始,然后扩展(这样您就可以从没有控制组的简单预发布开始,只是为了熟悉分析,然后您可以添加控制组,使用更高级的脚本等)。
现实世界数据统计的局限性
现在您已经学会了如何使用因果影响,我需要警告您一件事:统计数据并非绝对可靠。这句话总结了鲁莽地使用统计数据来解释现实世界数据的危险:
“统计数据可以证明任何事情——甚至是事实。”——诺埃尔·莫伊尼汉
通过营销测试,我们并不是在大多数变量都受到控制的无菌实验室环境中工作 - 我们正在使用现实世界的数据,并且在数字环境中,很多因素可以(并且将会!)影响您的数据,因此有一个您需要注意以下几点:
外部事件
Google 算法更新(官方更新现已在Google 搜索状态仪表板中报告)
工具跟踪失败(专有工具和第三方工具都可能出现服务中断)
工程版本与测试日期重叠,这使得很难将更改对感兴趣的变量的影响隔离出来
我的建议是与团队的其他成员保留一份工作文档,您可以在其中映射所有已知的内部更改(测试日期、其他计划和工程版本的日期)以及可能影响数据的外部事件。这将使您能够在测试期间考虑任何已知因素,并最大限度地隔离治疗对您想要分析的变量的影响。
注意异常值!
异常值会极大地影响您的数据。举个例子:
从理论上讲,这是一个非常积极的结果。但是,您可以从第一个面板中非常清楚地看到数据有些不太正确,并且该峰值可能是由一个或多个异常值引起的。
异常值可能源自多种情况,但最常见的是:
·测试组内推出新产品
·假期和季节性活动(例如,黑色星期五)
·结果仅来自测试组中的一页
·跟踪错误
·机器人访问您的页面
您可以采取以下一些措施来最大程度地减少它们的发生:
· 增加测试组的规模:这将有助于使数据集更加可靠,并且减少对一页性能的依赖。
·添加对照组
· 预处理您的原始数据:虽然我总是提倡透明数据,但异常值是进行一些操作以保存分析的一个很好的例子。例如,如果您发现像我们上面看到的那样的异常峰值,并且无法用其他已知举措来解释,则可能与机器人在几天内访问您的页面有关。在这种情况下,您可以从分析中剔除这些天(因为即使在治疗之前它们也不能代表正常表现),虽然它可能不是最好的解决方案,但它仍然让您对分析有一点信任更多的。
从数据集中删除异常值后的先前测试示例:它是不确定的。
确认偏差不是你的朋友
我们都经历过这样的情况:你提出了测试的想法,你对你的假设和你正在实施的改变有强烈的感觉——因此你真的希望测试能够成功并证明你的观点。但如果没有呢?如果它是一个不确定的——或更糟糕的——一个失败者怎么办?
不要绝望。我们仍然可以从失败的测试中学习(我认为至少我的星座运势每隔一天都是这么说的)。在这种情况下,您有几个选择:您可以让测试运行更长时间,或者使用更大的组重复测试。两者都允许收集更多数据来查看效果。
然而,如果在这些调整之后测试仍然没有结论或是否定的,那么你就必须承受你的损失(和你的教训),恢复改变并将你的精力集中在其他测试上。毕竟,这就是他们称之为“测试和学习”的原因。
就是这样!
我希望您发现因果影响和我一样有用。它对你有用吗?我想说这取决于情况,但我真的不认为这取决于情况。


财经自媒体联盟

4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有