You need to enable JavaScript to run this app.
导航

指标归因-算法

最近更新时间2024.02.22 14:46:45

首次发布时间2024.02.22 14:46:45

1. 乘法公式

1.1 简介

Log Mean Divisia Index,对数平均迪氏指数法。
LMDI可以计算 乘法公式 中,每个因子对整体变动的贡献度:即将变动分解到因子

1.2 计算方法

1.2.1 加法分解

(1)思路

(2)公式

1.2.2 乘法分解

(1)思路

(2)公式

2. 非乘法公式

2.1 简介

一个主要指标(亦称北极星指标)一般和若干个相关指标的波动有联系。Shapley 回归方式,通过计算了每个子指标对于主指标的贡献程度,说明了子指标的波动和主指标的波动相关联及其关联程度。这种方式的一个优点在于,可以支持用户把所有相关指标的贡献加和进而得到主指标的波动程度 (Additive Property),以此增加了可解释性。所以本产品首先对主指标和子指标拟合了一个模型,然后利用 Shapley 的回归值解释每一个子指标的贡献。

2.2 模型挑选

本产品将 Xgboost 作为使用的基本模型,把历史数据切割成训练和验证集合。如果训练的模型在测试集上表现良好,则认为**模型预测效果好并且归因结果可靠;**否则本产品会提示用户归因结果不可靠,请考虑提供更多的数据或者增加相关性指标。

2.3 Shapley值进行归因解释

请参考2017年 Neurips 的文章,他们统一了特征贡献可加和的模型可解释性方法。 相关链接
(1)Shapley归因 (Shapley Regression Values in a nutshell)
考虑这样一个问题,在NBA的球场上,我们如何评价一个球员对比赛的贡献。其中一个方式就是把该球员换下,置换一个联盟平均水平的球员看比赛结果。例如,史蒂芬 库里是联盟顶顶大名的球员,如何评价他的贡献呢?我们可以把他换下,让一个联盟一般水平的球员替代他。在一段时间内看球队的表现,如果球队表现低于库里在场上的表现,那么我们认为库里对球队的贡献大,反之则认为库里的贡献小。
(2)Shapley回归值
研究一个特征,在模型和与不在模型当中的预测结果反映了该变量的贡献程度(影响程度)。

Shapley sampling values:主要解决了上面方法计算复杂度的问题:

  • 通过采样的方式来近似上面的公式,即不需要遍历所有的 S。

  • 通过将某个特征维度取值设为样本平均值的方式来剔除某个特征,避免了重复训练模型。

在 Additive feature attribution methods 的基础上,作者进一步提出了对于归因模型的一些合理要求:

  • 局部准确性【Local accuracy】:归因的模型在局部要和原模型得到同样的值【参考LIME】

  • 归零性:如果某个特征值为0,那么它应该不会产生贡献

  • 一致性: 对于两个不同的函数 f 和 f', 引入特征 i 之前之后 差别 与 特征 i 的 归因一致。


当给出上面的合理要求和 Additive feature attribution methods 的定义之后,作者得到一个重要的结论,即同时满足这些合理要求的 Additive feature attribution methods 只有一个,就是类似 Shapley regression values 的形式。

(3)归因力推图

2.4 时间线上的相关指标归因

针对主指标环比的变化在多大程度上是由各个子指标贡献而来的问题,本产品也支持相关指标归因的算法。
如:某北极星指标 A 这周相对上周变化了 20%,这百分之二十多大程度由各个子指标贡献而来。
算法设计
首先,分别计算在期望值的基础上看各个 Feature 的重要性对于这周和上周的贡献度。

基期当期

利用归因的可加性,我们可以首先计算指标y变化的来源, 举个例子,左上的第一幅图是这样解释的
  • filling main information number 贡献为 -16.3% * max_ticket_number,

  • filling ops passing number 贡献率为 -7.25% * max_ticket_number ...

所以左图 48.13% * max_ticket_number = (75.13% -16.3% -7.25% ... ) * max_ticket_number ,48.13% 是当周值,75.13%是基准值/平均值。
同理对右图 82.3% * max_ticket_number = (75.13% + 4.17% + 2.95% ... ) * max_ticket_number,82.3% 是当周值,75.13%是基准值/平均值。
总结上述结论:

最终,得到结果图: