新同学 点击上方蓝字关注我哦~~
预计阅读时间:10min
解决痛点:指标异动归因,各维度均有变化,如何快速定位最有可能出现问题的维度?
00
序言
有的小伙伴可能会有疑问:
什么是定位异常维度?
定位异常维度与指标异动排查有什么关系?
针对类似问题,小火龙在这里给大家举一个栗子▼
下面会和大家分享三种之前应用过的方式,快速定位分歧维度。各方式均有一定适用场景,大家可以参考比较,并在实际工作中给予应用。
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,以「城市」维度为例,通过卡方检验来验证城市维度值分布前后是否一致。
步骤二:设置零假设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。
最终涵盖「主要变化维度」及其「贡献程度」(如下图)。
▲生成树结果
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
往期推荐
点个在看你最好看
Send to Author