前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「经验」指标异动排查中,3种快速定位异常维度的方法

「经验」指标异动排查中,3种快速定位异常维度的方法

作者头像
小火龙说数据
发布2022-06-30 16:04:54
1K0
发布2022-06-30 16:04:54
举报
文章被收录于专栏:小火龙说数据

预计阅读时间:10min

阅读建议:本文偏干货类文章,对于从事数据分析同学,建议整段时间完整阅读;对于数据分析爱好者,可考虑直接阅读案例分析。

解决痛点:指标异动归因,各维度均有变化,如何快速定位最有可能出现问题的维度?

00

序言

上一期,小火龙和大家分享了一种相对通用的「指标异动排查思路」,不知是否对你有所帮助。本期会接着上期的内容,在排查问题的过程中,解决遗留的第一个问题「如何快速定位异常维度」。

有的小伙伴可能会有疑问:

  • 什么是定位异常维度?
  • 定位异常维度与指标异动排查有什么关系?

针对类似问题,小火龙在这里给大家举一个栗子▼

大盘量级:pv+100w

性别维度:男性 pv+50w ,女性 pv+50w

消费维度:高消用户pv+100w,中消用户pv+0w,低消用户pv+0w

大家觉得问题可能出现在哪个维度上呢?

是不是「消费维度」问题可能会大一些,而「性别维度」变化可能是被带动的。

由此可见,指标变化分歧较大的维度,更有可能是异动问题的本质。

下面会和大家分享三种之前应用过的方式,快速定位分歧维度。各方式均有一定适用场景,大家可以参考比较,并在实际工作中给予应用。

01

基于「卡方检验」的异常维度挖掘

1、方法介绍

首先向大家介绍基于卡方检验的方式。提到卡方检验大家应该都不陌生,卡方检验是一种用途很广的假设检验方式,属于非参检验范畴,其目的是比较理论频次与实际频次是否吻合,是否属于同一分布。核心步骤如下:

首先:设定假设检验的 原假设H0 和 备选假设H1。

  • 原假设H0:实际频次与期望频次没有差别。
  • 备选假设H1:实际频次与期望频次有差别。

其次:假设H0是成立的,基于假设计算出x2值(卡方值),x2值代表了实际频次与期望频次的偏离程度。

▲卡方值计算公式

再次:根据x2分布及自由度确定在H0假设成立情况下,获得当前统计量及更加极端情况下的概率P。

最后:如果P很小(理论小于0.05),则说明实际与期望偏离程度较大,分布不同。

2、案例分析

回到业务上,需要检验「now周期维度值分布」与「before周期维度值分布」,是否存在差异。以pv变化为案例向大家介绍如何应用。

步骤一:假设某产品now pv=5610,对比before pv=5750,以「城市」维度为例,通过卡方检验来验证城市维度值分布前后是否一致。

▲城市维度中维度值pv量级

步骤二:设置零假设H0:假设now pv和before pv分布一致。

步骤三:分别计算每个维度值的卡方检验值,并将其求和,计算得出整体X2值=41.4,如下图。

D2 = (C2-B2)^2 / B2

D8 = SUM(D2:D7)

▲城市维度中维度值卡方值计算

步骤四:计算自由度 df = (6-1) × (2-1) = 5,根据自由度及显著性水平0.05查询对应临界值11.070。

步骤五:比较临界值与统计值大小,41.4 > 11.070,即统计量大于临界值,认为差异较显著,其他维度也采用同样的方式进行计算。

3、方法优势

优势1:相对其他方式,验证分布是否一致较为敏感。

4、方法劣势

劣势1:卡方检验的频数只能以整数形式出现,相对指标不可用。

劣势2:由于维度变化存在波浪效应,不同维度下的指标,很难源于同一分布。

劣势3:不适合进行分布差异的量化。

5、方法总结

该方法仅可用于判断两绝对指标的分布是否有差异,但如果需要量化度量各差异的程度,以及在各维度间进行比较,此方式不太适用。「推荐指数:2星」

02

基于「决策树」的异常维度挖掘

1、方法介绍

由于卡方检验无法具体量化度量,因此需要一种方式来进行补充,而决策树则是一种相对好用的方式。

决策树的原理相信大家都有一定的了解,在网络上也有很多相应的资料,决策树的核心在于:利用熵来度量事物的不确定性,事物的不确定性越大,熵越大;不确定性越小,熵越小。

决策树从根节点开始分裂,目的在于通过不断地分裂,减少整颗树熵的大小;按照决策树的分裂理论,越靠近根节点的分裂维度,对于熵减少的贡献值越大。

2、案例分析

回归业务上,我们可以通过决策树,找出影响整体指标变动的最重要维度,并将其绘制成树型图,以下仍然以pv变化为案例,为大家介绍一下此种方式。

树模型搭建的核心在于特征和label,各维度作为模型的特征、指标的涨降作为label。

步骤一:选择核心维度作为模型特征。例如:用户基础属性、用户行为属性、商品属性等。将所选维度的所有组合cross生成底层数据表。

▲维度特征cross表

步骤二:label赋值。label这里为二分类,某交叉维度相对diff >大盘相对diff,赋值1,反之赋值0。

例如:大盘pv相对提升20%,“男性 + 30岁 + 广州 + ……“相对提升50%,由于50%>20%,判断此样本为正样本,赋值1。

步骤三:设置样本权重。为每个交叉维度样本设置权重,这主要是由于pv从10涨到50,同1000涨到5000,明显是不同的,对于流量较高的样本,需给予更高的权重,用于在计算模型损失函数的时候,赋予更高的“话语权”。

步骤四:搭建决策树模型,根据模型输出树的结构。这里要注意一点,由于决策树有大量的节点,如果我们将所有节点均输出,量级会非常大,以3个维度 + 每个维度10个维度值为例,则最终的叶子节点有1000个。

因此这里我们需要对树进行剪枝,通过维度值对大盘指标变化贡献度来筛选,挑TopN的树节点,至于贡献度的量化方式将在下期进行详解。

最终涵盖「主要变化维度」及其「贡献程度」(如下图)。

▲生成树结果

3、方法优势

优势1:树模型可解释能力相对较强。

优势2:可以很清晰的绘制维度拆分图,展现形式较为友好。

4、方法劣势

劣势1:样本权重需要手动干预,设置的是否合理,对结果有影响。

劣势2:无法给出维度的量化变化程度。

5、方法总结

该方式可以较好地挖掘异常维度及可视化展示,在日常核心指标的例行化监控中,是一个比较好的方式。「推荐指数:4星」

03

基于「相对熵」的异常维度挖掘

1、方法介绍

在决策树的基础上,我们想出利用另外一种基于「相对熵」的挖掘方式。此种方式核心是通过计算JS散度(度量两分布的差异程度),取值范围在[0,1],两分布完全一致则为0,完全相反则为1。简单附上JS散度计算公式,具体公式计算流程,这里不多介绍,如果感兴趣可以私信我。

2、案例分析

我们仍然以pv波动作为案例,选择「城市等级」和「性别」作为维度进行拆解,度量其中维度值的变化程度,如下图。

▲维度及相对熵计算内容

步骤一:生成各维度指标聚合数据表。如图:维度历史和当前的pv量级。

步骤二:计算维度值在维度中的指标占比情况。如图:维度历史和当前的pv分布P(x)和Q(x)。

步骤三:根据JSD散度公式,计算维度中各维度值的JSD得分,并将同维度进行相加。如图:城市等级JSD=0.00065,性别JSD=0.00184。

步骤四:由于JSD较小的维度,其内部维度值的分布变化程度不大,因此在排查维度问题的过程当中,可以将这类维度的排查优先级降低,甚至直接剔除在异常监控中。因此,可根据对于业务的理解,选择阈值,这里有一点需要注意,阈值设定需要划分等级。

例如:日常波动中,流量变化相对较小,阈值可以设置的稍微小一些,比如0.0001;而针对某些产品,各种节假日或者双十一会使得流量发生较大变化,这种我们可以适当增加阈值,例如0.001,从而能更有针对性的挖掘真正异常维度。

3、方法优势

相对熵的优势除了决策树优势外,另外还有两点:

优势1:无需人工干预权重,置信度相对更高

优势2:流程相对较短,效率较高

4、方法总结

该方式无论是在挖掘的准确度上,还是展示的量化程度上,都相对不错,大家在日常分析异常波动问题中,可以适当尝试应用。「推荐指数:5星」

以上就是本期的内容分享,码字不易,如果觉得对你有一点点帮助,欢迎「关注」「点赞」「分享」哦~~

END

【下期预告】本期解决了上期遗留的第一个问题「如何快速定位异常维度」,下期将解决上期遗留的另外一个问题「针对不同类型指标,如何给出量化结论」,静待下期分享~~

【作者简介】互联网大厂数据分析专家,本系列「经验」类文章,会和大家分享一些近些年从事数据分析工作的一些心得体会,希望能够帮助到同行的同学,同时也渴望和大家在此沟通探讨。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小火龙说数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档