本文へ移動
cccskills
無料GitHub で公開

bi-time-impact-attribution

将累加型量值指标的周期波动拆解为结构变动、趋势变动和事件影响。当需要量化时间因素对指标变动的影响时调用。

インストール方法を見る

含まれるファイル(2)

  • SKILL.md6.9 KB
  • scripts/time_impact_attribution.py17.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

bi-time-impact-attribution

将指标周期波动拆解为结构变动、趋势变动和事件影响,量化各时间因素对指标变化的贡献。典型场景:拆解本周期 vs 上周期的指标变动来源,量化节假日、营销活动、产品发布等事件对指标的影响度。

适用范围:

  • 仅适用于累加型量值指标:各时间点的值可直接求和得到周期总量,如 DAU、访问量、GMV、订单量。率值指标(留存率、转化率等)不适用
  • 时间粒度:通常适用于周度或月度对比

执行步骤

1:数据准备

需要两份数据:

指标数据:包含本周期和上周期日粒度数据的 CSV 文件,至少包含以下两列:

列说明示例
日期列时间标识日期
指标列指标值访问用户数

示例:

日期,访问用户数
2025-01-01,10000
2025-01-02,10500
...

事件信息(可选):本周期和上周期内发生的事件列表(CSV),包含事件名称和起止日期。不提供则只拆解结构变动和趋势变动,不计算事件影响:

列说明示例
事件名称事件描述春节
开始日期事件起始2025-01-28
结束日期事件结束2025-02-04

示例:

事件名称,开始日期,结束日期
春节,2025-01-28,2025-02-04
元旦,2025-01-01,2025-01-01

若上游步骤已产出可用数据文件则直接使用,否则自行取数并按上述格式组织。若未提供事件信息,跳过步骤 2 和 3,直接进入步骤 4。

2:确定事件影响时间区间

每个事件需确定其影响的时间区间:

  • 已指定:若外部已提供事件影响区间,按以下优先级取值,命中即停:
    优先级来源示例
    1用户显式指定用户要求"春节影响区间为 1.25-2.05"
    2域知识包(若存在)域知识包指定各事件的影响区间
    3语义层接口(若可用)通过接口查询到的事件影响区间配置
  • 未指定:若没有外部来源提供,按以下默认规则推断:
    事件类型时间区间范围默认值
    节假日假期开始前 N 天 ~ 假期结束N=1
    事件波动事件开始当天 ~ 事件开始后 M 天M=2

3:确定事件影响度阈值

事件影响度阈值用于计算指标基线:影响度超过阈值的事件视为"大事件",其事件日将被剔除后计算基线,以获得更准确的非事件日基线水平。低于阈值的"小事件"不剔除。

  • 已有阈值:若外部已提供阈值,按以下优先级取值,命中即停:
    优先级来源示例
    1用户显式指定用户要求"影响度阈值设为 5%"
    2域知识包(若存在)域知识包指定事件影响度阈值为 10%
    3语义层接口(若可用)通过接口查询到的阈值配置
  • 未提供阈值:若没有任何外部来源提供阈值,尝试从历史事件影响度数据中自适应计算阈值

4:执行时间归因

按以下优先级选择计算方式,命中即停:

方式一:使用脚本

路径:scripts/time_impact_attribution.py

原理:先排除事件干扰建立纯净指标基线,再将总变动拆解为结构变动、趋势和事件影响三部分:

  1. 动态基线构建:先计算非事件日的“初始基线”作为裁判,评估各事件偏离度;剔除影响度超过阈值的大事件后,重算得到反映业务自然水平的最终基线
  2. 基于最终基线拆解总变动:
    • 结构变动:用上周期基线衡量两个周期工作日/非工作日天数分布差异带来的变动
    • 趋势变动:用当周期天数结构衡量基线本身的升降(当周期基线 - 上周期基线),反映业务自然增长
    • 事件影响(有事件信息时):分别计算双向影响。当周期事件计算其相对于基线的正向/负向冲击;上周期事件计算其消除效应(基数回落带来的同比影响)

若脚本适用于当前场景,按以下方式调用:

参数:

参数说明
--input-file日粒度指标数据文件路径(必填)
--date-col日期列名(必填)
--metric-col指标列名(必填)
--events-file事件信息文件路径(可选,不提供则不计算事件影响)
--current-month当前周期,格式 YYYY-MM 或 YYYY-WXX(必填)
--prev-month上周期,格式同上(必填)
--impact-threshold事件影响度阈值,超过则剔除该事件日重算基线
--holiday-lead-days节假日前置天数
--event-lag-days事件后置天数
--output-file波动拆解结果输出路径(可选)

调用示例:

# 有事件信息
python scripts/time_impact_attribution.py \
  --input-file data.csv \
  --date-col "日期" \
  --metric-col "访问用户数" \
  --events-file events.csv \
  --current-month 2025-02 \
  --prev-month 2025-01

# 无事件信息(只拆解结构变动和趋势变动)
python scripts/time_impact_attribution.py \
  --input-file data.csv \
  --date-col "日期" \
  --metric-col "访问用户数" \
  --current-month 2025-02 \
  --prev-month 2025-01

输出格式:

同时输出绝对影响值与相对占比(占比 = 单项影响 / 总变动量):

有事件时:

 影响因素   绝对值    占比
 总变动    +15000   100.0%
 结构变动   +3000    20.0%
 趋势变动   +8000    53.3%
 事件影响   +4000    26.7%
   春节     +5000    33.3%
   元旦     -1000    -6.7%

无事件时:

 影响因素   绝对值    占比
 总变动    +11000   100.0%
 结构变动   +3000    27.3%
 趋势变动   +8000    72.7%

方式二:自行实现

若脚本不适用于当前场景,参考上述原理自行实现时间归因计算。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

将用户的数据分析需求转化为结构化的分析计划并与用户确认。用户提出 BI 业务分析、数据探索、统计建模等需要规划的分析任务时使用。简单数据查询、公式明确的定量计算等流程简单、无需规划的任务不使用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

通过量化历史数据的自然波动幅度,自适应计算判定阈值。当需要从数据本身确定阈值(如波动阈值、影响度阈值等)、而非使用固定值时调用。仅适用于日/周粒度阈值确定。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

基于阈值检测时间序列中的显著异常波动点。当需要找出指标异常波动日期、识别数据异动时调用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

计算各维度(组)值对指标变动的贡献度,支持可加型量值指标和加权平均型/率值指标。当需要计算贡献度、解释指标"为什么涨/跌"时调用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

从运营周报、活动文档、对话输入或文档工具 API 中提取业务事件,与指标异常时间窗口对齐,生成有证据支撑的因果归因假设并排序。当已知指标存在异常波动、需要从外部文档证据中解释"为什么"时调用。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

对用户、产品等业务对象做分群:用波士顿矩阵法做象限分群,或用分层聚类、K-means、DBSCAN 等聚类技术分群。当需要做客群/产品分群、象限策略、画像或密度型子结构发现时调用。触发条件:当对话中出现“分群”、“分类”、“聚类”、“不同类型”、“不同场景”等体现分群分析词语时触发。

日本語の概要は準備中です。原文の説明を表示しています。

agentscope-ai/QwenPaw-Data1312026年10月5日 更新

agentscope-ai のスキルをすべて見る

このスキルの問題を報告する