Conformal Time Series Forecasting — 共形时序预测:有覆盖保证的需求预测区间
Skill-Conformal-Time-Series-Forecasting · 03-时间序列
experimentforecastingrag供应链与补货知识图谱与RAGWF-A 智能补货
年化 ROI200 万元
实现难度⭐⭐☆☆☆
业务优先级⭐⭐☆☆☆
业务视角
适用角色供应链负责人 / 采购负责人 · 运营负责人 · 财务负责人
适用平台Amazon FBA · 海外仓 · 多市场多仓
什么情况下用大促前备货总是不是多了就是少了;新品上线第一个月断货,再补又积压;年底预算不知道各月目标怎么定
成功是什么样的提前 4-8 周准确预判各 SKU 需求峰值,库存积压减少 30%,断货率降低 50%
业务痛点
1. 解决的问题
标准共形预测(Conformal Prediction)要求数据可交换性(exchangeability):校准集和测试集的样本可以任意排列而不影响分布。但时间序列违反这个假设——序列存在自相关性,昨天的销量影响今天的需求。
2. 核心算法逻辑
时序共形预测的挑战
3. 业务应用场景
业务问题:WF-A 工作流每周生成补货计划。点预测告诉运营"下周需求 1000 件",但这个数字没有置信度信息:是±50件的高置信度,还是±400件的高不确定度?不同置信度对应完全不同的补货策略。
共形预测应用: 1. 用历史28天的预测残差构建滚动校准窗口 2. 输出预测区间:`[800, 1200]`(90% 覆盖) 3. 业务决策规则: - 补货量 = P10(悲观量),避免过度库存 - 仓储预留 = P90(乐观量),避免仓储不足 - 加急物流触发 = 若当前库存 < P10,立即触发加急补货
关键指标验证:回测28天,90%区间的实际覆盖率应在 85-95% 之间(容忍±5%)。
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- 易处:纯 Python 实现,无依赖;滚动校准概念简单;任意预测模型均可使用
- 难处:窗口大小需要业务标定(推荐 2×预测周期);强季节性数据需要季节性分层校准
- 前提:需要已有点预测模型(任意模型均可,本技能仅添加区间保证)
7. 代码模板
代码块数量:1 · 路径:未检测到
"""
Conformal Time Series Forecasting — 共形时序预测
滚动校准窗口 + EnbPI 集成引导预测区间
纯 Python 标准库 + statistics,无 sklearn/pandas 依赖
Python 3.14 兼容
"""
from __future__ import annotations
import math
import random
import statistics
from dataclasses import dataclass
# ─── 数据结构 ────────────────────────────────────────────────────────────────
@dataclass
class TimeSeriesRecord:
"""单步时序观测记录"""
timestamp: int # 时间步(整数索引或 Unix 时间戳)
actual: float # 真实值
predicted: float # 点预测值(来自任意预测模型)
@property
def residual(self) -> float:
return self.actual - self.predicted
@dataclass
class PredictionInterval:
"""共形预测区间"""
timestamp: int
point_forecast: float
lower: float # 下界(P_alpha/2)
upper: float # 上界(P_{1-alpha/2})
alpha: float # 显著性水平(0.10 = 90% 区间)
calibration_size: int # 实际使用的校准样本数
@property
def width(self) -> float:
return round(self.upper - self.lower, 4)
@property
def coverage_ratio(self) -> float:
"""P90/P10 比值(越接近1越确定)"""
if self.lower <= 0:
return float("inf")
return round(self.upper / self.lower, 4)
def contains(self, actual: float) -> bool:
return self.lower <= actual <= self.upper
# ─── 滚动共形预测器 ──────────────────────────────────────────────────────────
class RollingConformalForecaster:
"""
滚动校准窗口共形预测器
每步接收新的真实值,更新残差队列,输出下一步的预测区间
8. 论文来源
未自动抽取;请查看原始 Skill 卡片。