本文地址:
https://goodgoodstudy.blog.csdn.net/article/details/108693838
数据分析中经常需要针对指标异动定位问题根源,第一反应当然是做拆分,总体出了问题就去查到底是哪个子模块除了问题。
如果指标是表示一个具有可加性的总量,如总人数、总销量、总点击量,这时拆分到各个子模块上是没有问题的,因为总指标等于各个子模块的指标之和。
但是当指标是一个均值或比例时,子模块的指标变化可能和总体的变化不一致,比如子模块的指标上升了,总体的指标却下降了!
这就是 辛普森悖论。
举个例子,某APP的每日人均发帖量 = 每日总贴数 / 总人数。现在发现这个指标下降了,我们按用户的手机类型做个拆分:安卓客户端和苹果客户端,却发现:两个客户端的人均发帖量都上升了????
这是为什么呢?是统计出错了吗?还是计算公式抄错了?
为了方便大家理解,我先举个比较日常的例子。
我有一杯很浓的橙汁,一杯很淡的橙汁,把它们混到一起,变成一壶浓度为 C 1 C1 C1 的橙汁
我有一杯很浓的橙汁,一壶很淡的橙汁,把它们混到一起,变成一缸浓度为 C 2 C2 C2 的橙汁
大家想一想,
C
1
C_1
C1和
C
2
C_2
C2那个浓度大呢?
大家是不是发现了其中的奥秘,浓橙汁和淡橙汁的浓度都没变,但是混合到一起后,总浓度却发生了变化
对应到数据分析的情景,各个子模块的指标都没有变化,但是总指标却下降了,为什么呢?因为子模块中指标较低的模块的规模占比变大了,使得总指标被拉低。
下面用更严谨的数学公式来说明:
假设总指标的计算式为:
c
∗
=
m
∗
V
∗
c^* = \frac{m^*}{V^*}
c∗=V∗m∗
第
i
i
i个子模块的指标计算式为:
c
i
=
m
i
V
i
c_i = \frac{m_i}{V_i}
ci=Vimi
且满足:
m
∗
=
∑
i
m
i
,
V
∗
=
∑
i
V
i
m^* = \sum_i m_i, \quad V^* = \sum_i V_i
m∗=i∑mi,V∗=i∑Vi
那么总指标和各个子模块指标的关系为:
c
∗
=
m
∗
V
∗
=
∑
i
m
i
V
∗
=
∑
i
c
i
V
i
V
∗
=
∑
i
c
i
ω
i
c^* = \frac{m^*}{V^*} = \frac{\sum_i m_i}{V^*} = \frac{\sum_i c_i V_i}{V^*} = \sum_i c_i \omega_i
c∗=V∗m∗=V∗∑imi=V∗∑iciVi=i∑ciωi
其中,
ω
i
=
V
i
/
V
∗
\omega_i = V_i/V^*
ωi=Vi/V∗表示各个子模块分母的占比。
容易理解,即使各个子模块的指标 c i c_i ci 不变,各个模块的规模占比 ω i \omega_i ωi 发生变化,也会使总指标发生变化!
那如何理解各个子模块的指标上升,但是总指标却下降了呢?
举个极端的例子,以橙汁为例:
原来有一杯浓果汁和一滴淡果汁,混在一起,这杯浓果汁的浓度几乎不变
现在稍稍提高了浓果汁的浓度,也微微提高了淡果汁的浓度,但是把淡果汁的体积从一滴变成了一壶,这下可好,果汁全被冲稀了,得到的一缸果汁浓度要低于原来的那杯浓果汁。