结论先行:加法型指标(订单量/DAU 这类可按维度求和的)维度贡献度,用**「绝对贡献 = 该维度值 Δ = 当期值 − 基期值」+「贡献占比 = 维度值Δ / 全量Δ」,不要再用「降幅占比」;维度组合爆炸用「先单维 top-K、再两两组合、按信息增益/边际贡献剪枝」;重复计数用「固定一个根因归属维度(最小维度优先)」去重**。下面给公式 + 可跑例子。
一、贡献度公式(加法型,可直接落地) 设指标 X = Σ x_i(按某维度 i 求和),基期 X₀、当期 X₁,总变化 ΔX = X₁−X₀。
- 单维贡献:c(i) = x₁(i) − x₀(i)
- 贡献占比:c(i)/ΔX(注意分母是带符号的 ΔX,所以下降维度贡献为负、上升维度贡献为正,加总恒等于 100%,不会扯皮)
- 头号根因 = |c(i)| 最大的维度值。 为什么比"降幅占比"好:降幅占比只算下降的那部分,多个下降维度之间加总不一定=100%,会上必然对不齐;用带符号 Δ 做分母,所有维度值贡献加总恒等于总变化,口径唯一。
二、2 维度 × 3 取值数值例子(你可直接拿去对齐) 维度 A={a1,a2,a3},基期 [100, 80, 60]=240;当期 [90, 70, 30]=190,ΔX=−50。
- c(a1)=−10 → 占比 20%
- c(a2)=−10 → 占比 20%
- c(a3)=−30 → 占比 60% 头号根因 a3(贡献 60%)。再交叉看 A×B 时,a3 那格若占 a3 降幅的 80%,则定位到 (a3,b2) 这一格。
三、组合爆炸的剪枝策略(伪代码)
- 单维扫描:每个维度算 top-K 贡献值(K=3),记录 |c| 最大的维度值集合 S;
- 两两组合:只在 S×S 里展开组合(不是全排列),算组合格贡献,取 top-N;
- 信息增益选维:对每个维度算 H(ΔX|dim),增益大的维度优先下钻,增益≈0 的维度直接剪掉;
- 早停:当 top-N 组合累计贡献占比 > 90% 就停,不再展开更高维。 这样 4 维 × 20 取值从上万格降到几十格,且优先看"单维就异常"的,"单维正常、组合才掉"的靠 S×S 组合那一步兜住。
四、重复计数(同一根因拆到多维) 固定最小维度优先归属:一个组合格的贡献只记在它最细的那个维度值上;或在报表里加"根因维度"字段,按 (维度名, 取值) 去重保留 |c| 最大的一条。
小结:贡献度统一成"带符号 Δ / 全量 Δ",加总恒=100%;组合用 top-K + 信息增益剪枝;重复计数用最小维度归属去重。这套口径固定后,会上不再扯皮。