【实战】如何做归因分析?——以断货率变化为例详解三种常用方法(贡献度分析,因素分解分析,变量影响分析,差分法)
一、引言:什么是归因分析?
在电商、零售、供应链等业务场景中,我们经常需要回答这样的问题:
某个指标发生了变化,是哪些因素导致的?每个因素的贡献度是多少?
这类问题在数据分析中被称为 归因分析(Attribution Analysis) 或 因素分解分析(Factor Decomposition Analysis)。它广泛应用于销售增长、用户活跃、库存周转、断货率等指标变动的解释中。
归因分析 也被称为:
- 贡献度分析(Contribution Analysis)
- 因素分解分析(Factor Decomposition Analysis)
- 变量影响分析(Impact Analysis / Driver Analysis)
- 在经济学中也称为 增长核算(Growth Accounting)
本文将以一个实际案例为基础,介绍三种常用的归因分析方法:
- 差分法(Differential Method)
- 固定变量法 / 替换法(Counterfactual Replacement Method)
- Shapley 值法(Shapley Value Method)
并通过 断货率变化 的具体数据,展示每种方法的实现逻辑和计算过程。
二、案例背景与数据说明
1. 指标定义
断货率 = 断货天数总和 ÷ (Asin数量 × 时间周期)
时间周期设为30天。
2. 数据概览
| 指标 | 初始值(20250501) | 最终值(20250518) | 变化量 |
|---|---|---|---|
| Asin数量 A | 8155 | 8253 | +98 |
| 断货天数 D | 29430 | 23950 | -5480 |
| 断货率 R | 12.03% | 9.67% | -2.36% |
目标:分析 Asin 数量增加 和 断货天数减少 各自对断货率下降的贡献。
三、方法一:差分法(Differential Method)
1. 原理简介
差分法基于微分思想,适用于连续可导的目标函数。假设目标函数为:
R=DA×30 R = \frac{D}{A \times 30} R=A×30D
其全微分为:
ΔR≈∂R∂D⋅ΔD+∂R∂A⋅ΔA
\Delta R \approx \frac{\partial R}{\partial D} \cdot \Delta D + \frac{\partial R}{\partial A} \cdot \Delta A
ΔR≈∂D∂R⋅ΔD+∂A∂R⋅ΔA
其中偏导数分别为:
- ∂R∂D=1A×30\frac{\partial R}{\partial D} = \frac{1}{A \times 30}∂D∂R=A×301
- ∂R∂A=−DA2×30\frac{\partial R}{\partial A} = -\frac{D}{A^2 \times 30}∂A∂R=−A2×30D
2. 计算步骤
(1) 偏导数计算
- ∂R∂D=18155×30≈0.000004087\frac{\partial R}{\partial D} = \frac{1}{8155 \times 30} \approx 0.000004087∂D∂R=8155×301≈0.000004087
- ∂R∂A=−29430(8155)2×30≈−0.00001475\frac{\partial R}{\partial A} = -\frac{29430}{(8155)^2 \times 30} \approx -0.00001475∂A∂R=−(8155)2×3029430≈−0.00001475
(2) 变化量代入
- ΔD=−5480\Delta D = -5480ΔD=−5480
- ΔA=+98\Delta A = +98ΔA=+98
(3) 贡献计算
-
断货天数贡献:
ΔRD≈0.000004087×(−5480)≈−2.24% \Delta R_D \approx 0.000004087 \times (-5480) \approx -2.24\% ΔRD≈0.000004087×(−5480)≈−2.24% -
Asin数量贡献:
ΔRA≈−0.00001475×98≈−0.1446% \Delta R_A \approx -0.00001475 \times 98 \approx -0.1446\% ΔRA≈−0.00001475×98≈−0.1446%
(4) 总贡献验证
ΔRtotal≈−2.24%−0.1446%=−2.3846% \Delta R_{\text{total}} \approx -2.24\% - 0.1446\% = -2.3846\% ΔRtotal≈−2.24%−0.1446%=−2.3846%
与实际变化 -2.36% 接近,误差来源于线性近似。
3. 小结
- 断货天数减少 贡献约 94.7%
- Asin数量增加 贡献约 5.3%
四、方法二:固定变量法 / 替换法(Counterfactual Replacement Method)
1. 原理简介
该方法通过保持一个变量不变,只改变另一个变量来观察结果的变化,从而衡量每个变量的独立影响。
2. 计算步骤
(1) 假设 Asin 不变(保持 A₁ = 8155)
Rhypothetical1=239508155×30≈9.79% R_{\text{hypothetical1}} = \frac{23950}{8155 \times 30} \approx 9.79\% Rhypothetical1=8155×3023950≈9.79%
ΔRD=9.79%−12.03%=−2.24% \Delta R_D = 9.79\% - 12.03\% = -2.24\% ΔRD=9.79%−12.03%=−2.24%
(2) 假设断货天数不变(保持 D₂ = 23950)
Rhypothetical2=239508253×30≈9.67% R_{\text{hypothetical2}} = \frac{23950}{8253 \times 30} \approx 9.67\% Rhypothetical2=8253×3023950≈9.67%
ΔRA=9.67%−9.79%=−0.12% \Delta R_A = 9.67\% - 9.79\% = -0.12\% ΔRA=9.67%−9.79%=−0.12%
3. 小结
- 断货天数减少 贡献约 94.9%
- Asin数量增加 贡献约 5.1%
五、方法三:Shapley 值法(Shapley Value Method)
1. 原理简介
Shapley 值来自博弈论,用于公平分配多个参与者对整体成果的贡献。在数据分析中,可用于评估不同变量对目标指标变化的“公平”贡献。
2. 计算步骤
(1) 定义四个状态
| 状态 | A | D | R |
|---|---|---|---|
| Base | 8155 | 29430 | 12.03% |
| A only | 8253 | 29430 | 11.91% |
| D only | 8155 | 23950 | 9.79% |
| Final | 8253 | 23950 | 9.67% |
(2) 枚举所有排列顺序并计算边际贡献
| 排列顺序 | A 贡献 | D 贡献 |
|---|---|---|
| A → D | -0.12% | -2.24% |
| D → A | -0.12% | -2.24% |
(3) 计算 Shapley 值(平均值)
| 变量 | Shapley 值 |
|---|---|
| Asin数量 A | -0.12% |
| 断货天数 D | -2.24% |
3. 小结
- 断货天数减少 贡献约 94.9%
- Asin数量增加 贡献约 5.1%
六、总结对比
| 方法 | 断货天数贡献 | Asin数量贡献 | 是否考虑交互作用 |
|---|---|---|---|
| 差分法 | -2.24% | -0.1446% | 否 |
| 固定变量法 | -2.24% | -0.12% | 否 |
| Shapley 值法 | -2.24% | -0.12% | 是 |
所有方法得出的结论一致:断货天数的减少是断货率下降的主要原因。
七、应用场景
- 销售额变化归因(价格 vs 销量)
- 用户留存率变化(新客减少 or 老客流失)
- 库存周转率提升(出库增加 or 库存积压减少)
- 广告转化率波动(点击率 or 转化率)

5575

被折叠的 条评论
为什么被折叠?



