| name | bi-dimension-drilldown |
| description | 对指标按维度逐层下拆,通过单维度扫描、交叉分析和层级下钻定位关键维度(组)值。当需要知道"从哪些维度拆解、按什么顺序拆解来定位指标变动来源"时调用。 |
bi-dimension-drilldown
对指标按归因维度逐层下拆,通过单维度扫描、交叉分析和层级下钻,定位驱动指标变动的关键维度(组)值。
典型场景:
- 用户要求"按渠道拆一下 DAU 的贡献度"
- 异动分析流程中,异常检测发现异常后需要定位原因
前置检查
开始前确认以下信息已明确:
- 下拆指标:需要下拆的指标及其类型(量值 / 率值 / 加权平均)
- 归因拆解维度:下拆的维度列表及其层级关系(哪些是 0 级平级维度,哪些有父子关系)
- 分布指标(可选):需要展示分布占比的重点指标
执行步骤
1:数据准备
根据前置检查确认的指标和维度,准备包含往期和当期数据的 CSV 文件,至少包含以下列:
| 列 | 说明 | 示例 |
|---|
| 维度列 | 所有涉及的归因拆解维度(每个维度一列,可能多列) | 渠道、端类型 |
| 往期值列 | 下拆指标的往期值 | DAU_往期 |
| 当期值列 | 下拆指标的当期值 | DAU_当期 |
| 分布指标列 | 分布指标值(可选,有分布指标时需要) | 访问用户数 |
若上游步骤已产出可用数据文件则直接使用,否则自行取数。
2:维度下拆
在每一步下拆中,针对当前拆解的维度(组),计算:
- 贡献度(相对于下拆指标):各维度(组)值对该下拆指标整体变动的贡献大小
- 分布占比(相对于需要展示占比的分布指标):各维度(组)值在分布指标整体中的比例
按以下步骤逐步拆解:
2.1 单维度扫描
对每个 0 级归因维度逐一执行贡献度计算和分布占比计算,筛选贡献度 Top-N 的维度值,记异常维度值集合为 D1。
2.2 交叉分析(平级维度)
若 D1 中多个平级维度同时出现异常维度值:
- 将 D1 中的异常维度两两组合
- 对每个组合执行贡献度计算和分布占比计算,筛选贡献度 Top-N 的维度组合,记异常维度组合集合为 D2
若只有一个维度出现异常,跳过此步。
2.3 层级下钻(层级维度)
取 D2(若存在)或 D1 中的异常维度(组),沿层级关系逐级向下拆解:
- 对异常维度值,找到其下一级子维度
- 在该异常维度值的数据范围内,执行贡献度计算和分布占比计算,筛选 Top-N
- 继续向下拆解(0 级 → 1 级 → 2 级 → ...),直到无更下级维度
每一级的下拆结果都保留,用于最终汇总。
补充说明:
- 默认参数:若用户未要求或其他源未指定,默认 N = 3
- 正负分离判断:默认按整体贡献度排序;当某方向变动量超过整体变动的 30% 时,说明正负抵消严重,需分别筛选正/负贡献度 Top-N
示例:下拆指标为 DAU(日活跃用户数),分布指标为访问用户数,0 级归因维度有"渠道"和"端类型","渠道"下有 1 级子维度"子渠道"。
- 单维度扫描:分别按"渠道"和"端类型"下拆 DAU,发现"渠道=自然流量"贡献度 +45%、"端类型=APP"贡献度 +30%,同时计算各维度值的访问用户数分布占比。两个维度均出现异常 → D1 = {渠道:自然流量, 端类型:APP}
- 交叉分析:"渠道"与"端类型"是平级维度,按"渠道 × 端类型"组合下拆,发现"自然流量 × APP"组合贡献度 +38% → D2 = {自然流量 × APP}
- 层级下钻:"渠道"下有子维度"子渠道",在"自然流量 × APP"这个组合下继续按"子渠道"下拆,发现"子渠道=搜索引擎"贡献度 +32%,最终定位到异常来源
3:汇总下拆结果
将各层级的下拆结果汇总输出。示例:
单维度扫描(渠道):
维度值 DAU贡献度 访问用户数占比
自然流量 +45% 52.3%
付费投放 -12% 28.1%
单维度扫描(端类型):
维度值 DAU贡献度 访问用户数占比
APP +30% 61.5%
Web +15% 38.5%
交叉分析:
维度组合 DAU贡献度 访问用户数占比
自然流量 × APP +38% 35.2%
自然流量 × Web +7% 17.1%
层级下钻:
父维度值 子维度 DAU贡献度 访问用户数占比
自然流量 × APP 搜索引擎 +32% 22.8%
自然流量 × APP 社交分享 +6% 12.4%