Shapley Value与马尔科夫链归因模型实战对比:如何为你的业务选择最佳方案
在数据驱动的营销时代,归因分析已经成为优化广告预算分配的关键技术。面对众多归因模型,数据团队常常陷入选择困境——Shapley Value和马尔科夫链作为两种主流的数据驱动方法,各自有着独特的理论背景和适用场景。本文将深入剖析这两种方法的本质差异,并通过Python实战案例展示如何根据业务特点做出明智选择。
1. 核心概念与理论差异
1.1 Shapley Value:合作博弈的公平分配
源自博弈论的Shapley Value由诺贝尔奖得主Lloyd Shapley提出,其核心思想是通过计算所有可能的渠道组合中每个渠道的边际贡献平均值,来公平分配转化价值。这种方法特别适合评估非序列性的渠道协作效果。
关键计算公式:
python复制# Shapley值基本计算逻辑
from math import factorial
from collections import defaultdict
def calculate_shapley(channels, conversion_values):
n = len(channels)
shapley_values = defaultdict(float)
for channel in channels:
for subset in power_set(channels - {channel}):
weight = (factorial(len(subset)) * factorial(n - len(subset) - 1)) / factorial(n)
marginal_contribution = conversion_values[subset | {channel}] - conversion_values[subset]
shapley_values[channel] += weight * marginal_contribution
return shapley_values
典型特征:
- 不考虑渠道出现的顺序
- 计算所有可能的渠道组合(幂集)
- 结果具有可加性(所有渠道贡献之和等于总转化值)
1.2 马尔科夫链:序列依赖的状态转移
马尔科夫链模型将用户转化路径视为状态转移过程,通过计算移除某个渠道前后转化概率的变化来评估其贡献。这种方法天然适合分析序列敏感的营销场景。
状态转移矩阵示例:
| 当前状态 \ 下一状态 | 渠道A | 渠道B | 转化 | 流失 |
|---------------------|-------
