归因分析计算因子贡献度常见的方法

2023-11-09

在归因分析中,我们一般都需要计算出每个因子的贡献度是多少,比如产品DAU上升,对年龄段维度进行拆解,看是不同年龄段的用户对DAU上升的贡献度是多少,一般根据指标的类型,计算贡献度的方法也不一样,下面就列出一些常见的归因分析贡献度的计算方法。

目录

1、指标类型

2、贡献度计算

2.1、替代法:A/B或者A*B*C类型指标

2.1.1、连环替代法

2.1.2、控制替代法

2.2、加法-直接拆解:M=A+B+C

2.3、乘法-log转化:M=A*B*C

2.4、超均贡献计算法:原子指标

2.5、加法-加权占比法:M=A+B+C(纵向对比,分解维度)

2.6、综合贡献计算法:均值指标,A/B指标

2.7、mdrca法:Multi-Dimensional Root Cause Analysis


1、指标类型

指标类型一般可以直接分为两类,原子指标和复合指标,原子指标就是DAU、GMV这种单值,不依赖其他变量独立统计的指标。复合指标是在原子指标上进行数学计算加工,需要通过两个或多个变量做除法计算的指标,比如购买率=购买人数/浏览商品人数。

2、贡献度计算

2.1、替代法:A/B或者A*B*C类型指标

2.1.1、连环替代法

公式定义:

假设核心经营指标及计算公式为:M = a * b *c,
对比周期指标值为 M1 = a1 * b1 * c1,本期指标值为 M2 = a2 * b2 * c2;本期对比上期的偏移量为 M2 - M1
确定先后替换顺序为:a、b、c,找出最大的核心指标影响因子
先替换a,得到Ma = a2 * b1 * c1,那么因子a对核心指标的影响为 Ha = Ma - M1
再替换b,得到Mb = a2 * b2 * c1,那么因子b对核心指标的影响为 Hb = Mb - Ma
再替换c,得到Mc = a2 * b2 * c2,那么因子c对核心指标的影响为 Hc = Mc - Mb
比较影响因子a、b、c对核心指标的影响值Ha、Hb、Hc的大小,其中各因子的差异值之和等于核心指标差异值(Ha + Hb + Hc = M2 - M1),从而找到影响核心指标最大的因素。
进一步Ha / (M2 - M1)可以表示a指标带来的影响比例大小。跟预期相比,M2 - M1这么大差额由于a指标降低(提升)的影响,对实际总指标M造成了Ha大小的损失(提高)

优势&局限性:
优势:通过上面的拆解可以发现,该方法满足所有下级指标的波动之和等于核心指标的波动,使得波动可以用瀑布图完美呈现。
局限:
● 贡献值的大小与替换顺序强相关,甚至会因为替换顺序的改变影响贡献值的排序结果;虽然理论上可以通过数量指标-质量指标-价值指标的顺序来尽量保证结果的可靠性,但对于大部分产品用户而言并不一定清楚了解内在逻辑并如此配置,会导致结论严谨性受损。
● 无法保证下级指标的贡献度在[-100%,100%]的范围,业务解释性较差

2.1.2、控制替代法

公式定义

控制其他指标不变,替换a指标,得到Ma = a2*b1*c1,那么因子a对核心指标的影响为 Ha = Ma - M1
控制其他指标不变,替换b指标,得到Mb = a1*b2*c1,那么因子b对核心指标的影响为 Hb = Mb - M1
控制其他指标不变,替换c指标,得到Mc = a1*b1*c2,那么因子c对核心指标的影响为 Hc = Mc - M1

a指标的贡献度可以计算为:Contri_a = Ha/|Ha|+|Hb|+|Hc|
b指标的贡献度可以计算为:Contri_b = Hb/|Ha|+|Hb|+|Hc|
c指标的贡献度可以计算为:Contri_c = Hc/|Ha|+|Hb|+|Hc|

优势&局限性:
● 替换顺序的影响被消除,无论先替换哪个指标,因子贡献值的组合唯一。
● 每个因子的贡献值均落在[-100%,100%]的范围,业务解释性更强。
● 无法保证各指标影响之和为指标本身偏差。

2.2、加法-直接拆解:M=A+B+C

公式定义

1、基期N=A+B+C,本期N'=A'+B'+C',差额=N'-N
2、计算不同因素单独变动带来的影响数:如A因素带来的变动Na=A'-A
3、总变动=N'-N=Na+Nb+Nc
4、确定每个因素的影响占比:Contri_a = Na/(N'-N);Contri_b=Nb/(N'-N);Contri_c = Nc/(N'-N)

GMV异动诊断 

总GMV

商品1

商品2

当前 (A)

20000

10000

10000

基期 (B)

18000

9500

8500

DIFF(A-B)

2000

500

1500

贡献度

/

25%

75%

2.3、乘法-log转化:M=A*B*C

公式定义:

1、基期N=A*B*C,本期N'=A'*B'*C',其中N'=N(1+n),A'=A(1+a),B'=B(1+b),C'=C(1+c)

2、对N'=A'*B'*C'取对数可得\Rightarrow logN+log(1+n)=logA+log(1+a)+logB+log(1+b)+logC+log(1+c)

3、因为logN=logA+logB+logC,所以上述公式抵消后可得:log(1+n)=log(1+a)+log(1+b)+log(1+c)

4、

推导确定每个因素影响占比:
Contri_a =log(1+a)/log(1+n)
Contri_b =log(1+b)/log(1+n)

Contri_c =log(1+c)/log(1+n)

2.4、超均贡献计算法:原子指标

超均贡献度的提出是为解决原子指标单看变化的绝对量级(偏移量、偏移量占比)和变化的相对快慢(波动率)导致的不准确问题:

  • 用变化的绝对量级进行根因定位:会导致量级较大的维度因子长期排在前列,可能无法识别非头部因子带来的影响。

  • 用变化的相对快慢进行根因定位:会导致量级较小但波动剧烈的因子排在前列,忽略了量级影响。

超均贡献度提供了一个综合变化量和波动率的量化依据,用于衡量维度因子对指标整体波动的贡献占比,较单独查看波动率和偏移量数值而言,综合两方面因素更为科学准确。

贡献度详细解释如下:

当前按超均法判断超过指标大盘的因子:
(1)计算超均贡献值=(因子波动率-指标波动率)* 因子本期值
(2)因子贡献度 = 因子贡献值/维度下所有因子贡献值绝对值之和
即将维度下所有因子的贡献值,进行归一化,量化为100%以下的百分数,作为贡献度

举个例子:

1、超均贡献值:I_i = (F_i - F_7)*(B_i), i = 2,3,..6

2、超均贡献度:J_i = I_i / SUM(ABS(I_i)), i = 2,3,..6

超均贡献度的解释性

超均贡献度可以理解为“因子波动与指标值(均值)波动差异的相对大小”,超均贡献度越大,说明因子的变化偏离均值变化越大,越有可能是根因。

指标波动有上升或下降,因此贡献度也有正和负之分,全部维度因子贡献度加总约为0%。在查看原因时,更关注与指标值同向变化的维度因子。

  • 当指标波动上涨时,例如指标波动率为 +20%,正向贡献较大的因子将会排在头部,如TOP1影响因子很可能为贡献度>30%的某因子。

  • 当指标波动下降时,例如指标波动率为 -20%,负向贡献较大的因子将会排在头部,如TOP1维度因子很可能为贡献度<-30%的某因子。

但是,超均贡献度主要的意义还是在于(排序)定位因子,数字本身实际的解释性还有待加强。

2.5、加法-加权占比法:M=A+B+C(纵向对比,分解维度)

 基本逻辑:逻辑与绝对值指标归因类似,但是要考虑维度权重。

1、基本逻辑:逻辑与绝对值指标归因类似,但是要考虑维度权重

2、计算每个子维度的加权本期和加权基期:如子维度a,加权基期=子维度a*权重a,加权本期=子维度a'*权重a'

3、计算每个子维度下的变动,Na=加权本期-加权基期

4、总变动=N'-N=Na+Nb+Nc

5、确定每个因素的影响占比:Contri_a =Na/(N'-N);Contri_b=Nb/(N'-N);Contri_c=Nc/(N'-N)

CTR异动诊断

整体

页面1

页面2

页面3

本期

曝光占比

100%

14.2%

32.3%

53.5%

ctr

13.0%

4.4%

17.9%

12.3%

加权本期(A)

13.0%

0.63%

5.78%

6.59%

基期

曝光占比

100%

15.0%

35.5%

49.5%

ctr

15.2%

5.1%

18.7%

15.8%

加权基期(B)

15.2%

0.76%

6.63%

7.8%

DIFF(A-B)

-2.2%

-0.13%

-0.85%

-1.22%

贡献度

/

6%

39%

55%

2.6、综合贡献计算法:均值指标,A/B指标

提出用综合贡献来度量维度因子对均值指标的影响大小的出发点有二:

  • 由于均值指标在不同维度上的不可加和性(比如各商品类目的客单价加和不等于总的客单价),无论是使用偏移量还是超均贡献度,均无法准确度量不同因子对均值指标的影响程度

  • 均值指标的波动分析往往存在“辛普森悖论”问题,比如指标整体下降但维度下各细分因子均上升,因此需要区分结构内和结构外两种变动的影响。

计算公式: 

可以发现,均值指标本身的变化可以拆解为三部分:

  • 组间贡献值:衡量结构变化(因子分母占比变化)对指标变化的影响。

  • 组内贡献值:衡量因子量级变化对指标变化的影响。

  • 交叉贡献值:衡量组间和组内交叉效应对指标带来的变化影响,属于高阶项,一般可忽略。

上述拆解方式存在以下优点:

  • 可同时衡量结构内和结构外的变动,避免分析均值指标波动时产生“辛普森悖论”。

  • 不同贡献值之间完全可加和,加和等于指标本身的变动,可量化为0-100%的贡献度,易于理解。

  • 无需单独查看分子和分母的变动影响,通过不同贡献值即可对均值指标进行维度拆解。

举个例子

2.7、mdrca法:Multi-Dimensional Root Cause Analysis

随着业务扩展,业务模块间的关系愈加复杂。通过单一对象的指标反映的状态已不能满足业务监控需求。业务异常往往体现在多个对象的指标异常,用户收到告警后需要在大量指标数据中剥丝抽茧般地分析异常原因。

由于该归因分析方法属于算法范畴,原理较为复杂且实现难度较高,感兴趣的同学可以去网上找相关的文章阅读。

这里给个参考文章:MDRCA 算法 - 多维智能监控实现思路_CWS_chen的博客-CSDN博客_mdrca

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

归因分析计算因子贡献度常见的方法 的相关文章

  • python库和模块的区别_python中模块、包、库的区别和使用

    模块 就是 py文件 里面定义了一些函数和变量 需要的时候就可以导入这些模块 包 在模块之上的概念 为了方便管理而将文件进行打包 包目录下第一个文件便是 init py 然后是一些模块文件和子目录 假如子目录中也有 init py 那么它就
  • Docker 数据迁移

    问题描述 docker存储目录磁盘空间不够了 需要迁移到新的磁盘 忒扣了 迁移分析 迁移数据前向客户说明时间 提前告知业务部门系统维护相关事宜 查看中间件状态 应用服务是否正常 正常情况下才可停止服务进行下一步 停止应用 中间件等程序 停止
  • 解决问题记录10:JAVA调用,kettle资源库连接mysql8小时后报错问题

    先说解决方法 最终我的解决方式是使用心跳机制 创建了一个很简单的查询作业 让它每3小时执行一次 这几天在凌晨1点是跑kettle作业时遇到了一个问题 报错如下 The last packet successfully received fr

随机推荐

  • Python爬取ppt工作项目模板

    前言 ppt模板爬取 大约有一百多套工作项目ppt模板 需要的小伙伴可以通过以下程序来下载 1 爬取程序 author 爱分享的山哥 import requests from bs4 import BeautifulSoup import
  • 服务器上的网站突然打不开了,网站突然打不开是什么情况!

    对于一个网站来说 宣传企业 发展业务是根本目的 保证网站能打开却是最基本的需求 如果一个网站隔三差五就打不开 对于用户体验和网站排名都有很大的影响的 也是让很多站长非常烦恼的地方 下面小编就来跟大家聊一下网站突然打不开是什么情况 第一 域名
  • 【译】无缓冲 I/O 会让你的 Rust 程序变慢

    文章标题 译 无缓冲 I O 会让你的 Rust 程序变慢 Unbuffered I O Can Make Your Rust Programs Much Slower 译文 原文链接 https era co blog unbuffere
  • WPFPasswordBox绑定问题

    PassWordBox的Password属性为什么不能绑定 Introduction WPF中的PassWordBox是用于输入密码的控件 它的Password属性是用于获取或设置PassWordBox中的密码 但是 有很多开发者在使用WP
  • 【CSS】回流/重排与重绘

    回流 重排与重绘 回流 重排 回流的基本概念 会引起浏览器回流的操作 重绘 重绘的概念 浏览器优化机制 如何减少回流和重绘 隐藏元素的方法 浏览器使用流式布局模型 Flow Based Layout 浏览器会把HTML解析成DOM 把CSS
  • 虹软24届校招--AIGC&;图像处理&;产品经理&;算法优化

    比亚迪求职意向分类 8 19美团笔试 外卖骑手一面面经 外卖骑手一面面经 比亚迪求职意向分类 比亚迪开了但没完全开 比亚迪已开 外卖骑手一面面经 比亚迪 地平线校招正式批 美团测开校招一面 2023 华为笔试题 0830 美团 测开 到店事
  • Python中的map()函数

    前言 今天做题时遇到了map 函数 来学习一下 如果感觉博主的文章还不错的话 还请关注 点赞 收藏三连支持一下博主哦 目录 map函数 描述 语法 返回值 实例 map函数 描述 map在这里不是地图的意思 在编程领域 map一般作 映射
  • 富文本组件VueQuill添加源代码编辑功能

    文章目录 前言 一 VueQuill地址 二 Module quill html edit button 的位置 二 使用步骤 1 安装依赖 2 修改富文本组件 src components Editor index vue 3 验证 总结
  • Linux生成dumpcore并进行调试,以及addr2line的用法

    1 在终端中输入ulimit c 如果结果为0 说明当程序崩溃时 系统并不能生成core dump 2 使用ulimit c unlimited命令 开启core dump功能 并且不限制生成core dump文件的大小 如果需要限制 加数
  • Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法

    转载时注明地址 http blog csdn net xiaanming article details 9344703 我们开发Android应用的时候 当出现Crash的时候 系统弹出一个警告框 如下图一 有些手机会黑屏几秒钟然后还伴随
  • C语言:分支语句和循环语句(超详解)

    目录 编辑 什么是语句 分支语句 选择结构 if语句 应该注意的是 switch语句 运用练习 循环语句 while循环 for循环 break和continue在for循环中 for循环的变换使用 do while 循环 do while
  • Eclipse的switch workspace删除多余workspace

    很多朋友很懊恼 如何删除eclipse里的switch workspace不要的workspace 这里来介绍一个简单的操作方法 方法 步骤 第一步 删除项目文件夹 找到目录下的项目文件夹 右键删除或者 Delete 按钮 第二步 修改or
  • 查看数据库某个schema下哪张表占的空间大

    为了查询schema下某个表占用的空间问题 以便处理分析问题 直接复制粘贴 改schema 即可 select TABLE NAME concat truncate data length 1024 1024 2 MB as data si
  • Cpu运作原理与机制,那么CPU如何跑的更快?

    前言 代码都是由 CPU 跑起来的 我们代码写的好与坏就决定了 CPU 的执行效率 特别是在编写计算密集型的程序 更要注重 CPU 的执行效率 否则将会大大影响系统性能 CPU 内部嵌入了 CPU Cache 高速缓存 它的存储容量很小 但
  • 数学建模中的常见模型

    数学建模中比较常见的几种模型 一 预测与预报 1 灰色预测模型 必须掌握 满足两个条件可用 数据样本点个数少 6 15个 数据呈现指数或曲线的形式 例如 可以通过极值点和稳定点来预测下一次稳定点和极值点出现的时间点 2 微分方程预测 高大上
  • 怎样改变input被选中时边框颜色

    1 当input获得焦点时 input focus outline 1px solid 000 2 输入合法时 input valid border 1px solid green 3 输入不合法时 input invalid border
  • ElasticSearch 入门教程笔记

    视频教程 狂神说Java ElasticSearch7 6 x最新完整教程通俗易懂 视频地址 https www bilibili com video BV17a4y1x7zq 拒绝白嫖 感谢狂神分享的视频教程 ElasticSearch
  • Echarts 给pie圆饼图series.data 赋值

    1 如何去掉字符串最外层的双引号 使其变成数组 var data id 32 wd 20 3 jd 113 3 id 321 wd 20 3 jd 113 3 var yy var mm yy data split for var i 0
  • 数据挖掘算法与现实生活中的应用案例

    如何分辨出垃圾邮件 如何判断一笔交易是否属于欺诈 如何判断红酒的品质和档次 扫描王是如何做到文字识别的 如何判断佚名的著作是否出自某位名家之手 如何判断一个细胞是否属于肿瘤细胞 等等 这些问题似乎都很专业 都不太好回答 但是 如果了解一点点
  • 归因分析计算因子贡献度常见的方法

    在归因分析中 我们一般都需要计算出每个因子的贡献度是多少 比如产品DAU上升 对年龄段维度进行拆解 看是不同年龄段的用户对DAU上升的贡献度是多少 一般根据指标的类型 计算贡献度的方法也不一样 下面就列出一些常见的归因分析贡献度的计算方法