Back to skills
extension
Category: Data & AnalyticsNo API key required

供应链需求预测

供应链需求预测技能。当用户需要对历史销售/库存数据进行需求预测、库存优化建议、安全库存计算,或生成需求预测分析报告时,使用此技能。支持 Excel/CSV 本地文件、多种数据源混合输入。支持统计方法(移动平均、指数平滑、ARIMA)、机器学习(XGBoost、LightGBM)、深度学习(LSTM)以及 Prophet 自动化预测。适用于制造、零售、电商、物流等供应链场景。

personAuthor: user_ade1c2achubcommunity

供应链需求预测技能

技能概述

本技能提供端到端的供应链需求预测分析能力:从数据读取与清洗、特征工程、多模型预测,到库存优化建议与可视化报告输出。

触发条件

以下类型的用户请求应激活本技能:

  • "帮我预测下个季度的需求/销量"
  • "根据历史数据分析未来库存需求"
  • "我有销售数据,帮我做需求预测"
  • "计算安全库存和补货点"
  • "生成需求预测报告"
  • "供应链库存优化建议"
  • "这个 SKU 的销量趋势和预测"

数据输入规范

支持的数据格式

标准 CSV/Excel 格式(最常见):

| 字段名 | 说明 | 必选 | |--------|------|------| | date / 日期 | 日期(支持 YYYY-MM-DD, YYYY/MM/DD, YYYYMM) | 是 | | sku / 品号 / product_id | 产品编号 | 推荐 | | sales / 销量 / demand / 需求量 | 历史销售量 | 是 | | price / 价格 | 单价 | 否 | | promotion / 促销 | 促销标记(0/1 或 Y/N) | 否 | | stock / 库存 | 当前库存量 | 否 | | lead_time / 提前期 | 补货提前期(天) | 否 |

数据要求

  • 历史数据建议至少 12 个时间点(月/周/日均可)
  • 时间序列需连续,允许缺失值(脚本会自动填补)
  • 多 SKU 数据需包含产品标识列

预测方法选择指南

| 数据量 | 季节性 | 推荐方法 | |--------|--------|----------| | < 24 个时间点 | 无 | 移动平均 / 指数平滑 | | < 24 个时间点 | 有 | Prophet(自动处理季节性) | | 24–100 个时间点 | 可选 | ARIMA / Prophet | | > 100 个时间点 | 有 | Prophet / XGBoost / LightGBM | | > 200 个时间点 + 多特征 | 有 | XGBoost / LSTM |

默认策略: 当数据量不明确时,优先使用 Prophet(鲁棒性最强,对季节性和节假日处理友好)。

工作流程

Step 1:理解需求与数据

  1. 读取用户提供的数据文件(使用 Read 工具或 Python 脚本)
  2. 询问或识别以下关键信息:
    • 预测目标(SKU/产品/整体需求)
    • 预测粒度(日/周/月)
    • 预测周期(预测未来几期)
    • 是否有已知的促销/节假日计划
    • 业务关注重点(最小化缺货?最小化库存?)

Step 2:数据探索与清洗

执行 scripts/eda_and_clean.py 进行数据质量检查:

python scripts/eda_and_clean.py --input <数据文件路径> --output cleaned_data.csv

脚本会输出:

  • 数据基本统计(均值、标准差、缺失率)
  • 时间序列完整性检查
  • 异常值检测(IQR 方法)
  • 季节性分解图
  • 清洗后的数据文件

Step 3:运行预测

执行 scripts/forecast.py 进行多模型预测:

# 自动选择最优方法(推荐)
python scripts/forecast.py --input cleaned_data.csv --periods 12 --auto

# 指定方法
python scripts/forecast.py --input cleaned_data.csv --periods 12 --method prophet

# 可选方法: moving_average, exponential_smoothing, arima, prophet, xgboost, lightgbm, lstm

输出:

  • forecast_results.csv:预测值及置信区间
  • forecast_plot.html:交互式预测可视化

Step 4:库存优化计算(可选)

执行 scripts/inventory_optimizer.py 计算安全库存与补货建议:

python scripts/inventory_optimizer.py \
  --forecast forecast_results.csv \
  --lead-time 7 \
  --service-level 0.95

输出:

  • 安全库存量(各 SKU)
  • 再订货点(ROP)
  • 经济订货量(EOQ,需提供成本参数)
  • 补货建议表

Step 5:生成分析报告

执行 scripts/generate_report.py 生成完整 HTML 报告:

python scripts/generate_report.py \
  --cleaned cleaned_data.csv \
  --forecast forecast_results.csv \
  --output demand_forecast_report.html

报告包含:

  • 历史销售趋势分析
  • 季节性和周期性分解
  • 多模型预测结果对比
  • 预测准确率评估(MAPE、MAE、RMSE)
  • 库存优化建议(如提供相关参数)
  • 关键 SKU 预警(需关注的高风险品项)

依赖安装

首次使用前,运行以下命令安装依赖:

pip install pandas numpy matplotlib plotly scikit-learn xgboost lightgbm prophet statsmodels torch openpyxl

若安装 Prophet 遇到问题:

pip install prophet --no-build-isolation
# macOS: conda install -c conda-forge prophet

若不需要深度学习(LSTM),可跳过 torch:

pip install pandas numpy matplotlib plotly scikit-learn xgboost lightgbm prophet statsmodels openpyxl

输出文件说明

| 文件 | 说明 | |------|------| | cleaned_data.csv | 清洗后的标准化数据 | | forecast_results.csv | 预测结果(含置信区间) | | forecast_plot.html | 交互式预测图表 | | demand_forecast_report.html | 完整分析报告 | | inventory_recommendations.csv | 库存优化建议表 |

参考资料

  • references/methods_guide.md:各预测方法的原理、适用场景和参数调优指南
  • references/metrics_guide.md:预测准确率指标解释(MAPE、MAE、RMSE、Bias)
  • references/inventory_formulas.md:安全库存、EOQ、ROP 等公式说明
  • assets/sample_data.csv:标准输入格式示例数据

常见问题处理

数据量不足(< 12 个时间点): → 使用简单移动平均,明确告知用户预测置信度有限,建议收集更多数据

数据存在大量缺失值(> 30%): → 向用户确认缺失原因(停产?门店关闭?),根据业务逻辑决定是填补还是截断

存在明显异常值: → 展示给用户确认是真实业务事件(大促、疫情)还是数据错误,再决定是否保留

预测误差偏大(MAPE > 30%): → 检查是否有未纳入的外部影响因素,建议加入促销、节假日等特征变量