StatsForecast ⚡️
StatsForecast 提供了一系列流行的单变量时间序列预测模型,这些模型经过优化,可实现高性能和可扩展性。
安装
您可以使用以下命令安装 StatsForecast
或
访问我们的安装指南以获取更多说明。
快速入门
最小示例
通过这份快速指南开始使用。
遵循这份端到端演练以获取最佳实践。
为什么?
目前 Python 中统计模型的替代方案速度慢、准确性差且扩展性不好。因此,我们创建了一个库,可用于在生产环境中进行预测或作为基准。StatsForecast 包含大量模型,可以高效地拟合数百万个时间序列。
特性
- 在 Python 中最快、最准确地实现了 AutoARIMA、AutoETS、AutoCES、MSTL和Theta模型。
- 开箱即用,兼容 Spark、Dask 和 Ray。
- 概率预测和置信区间。
- 支持外部变量和静态协变量。
- 异常检测。
- 熟悉的 sklearn 语法:.fit和.predict。
亮点
- 在 ARIMA 中包含了外部变量和预测区间。
- 比 pmdarima快 20 倍。
- 比 R快 1.5 倍。
- 比 Prophet快 500 倍。
- 比 statsmodels快 4 倍。
- 通过 numba编译为高性能机器代码。
- 使用 ray 在 30 分钟内处理 1,000,000 个序列。
- 只需两行代码即可替换 FB-Prophet,并提高速度和准确性。请在此处查看实验结果。
- 在不到 5 分钟内,在 1,000,000 个序列上拟合 10 个基准模型。
遗漏了什么?请提出问题或在 Slack 联系我们。
示例和指南
📚 端到端演练:多时间序列的模型训练、评估和选择
🔎 异常检测:使用样本内预测区间检测时间序列中的异常。
👩🔬 交叉验证:稳健的模型性能评估。
❄️ 多重季节性:如何使用 MSTL 预测具有多重季节性的数据。
🔌 预测需求高峰:电力负荷预测,用于检测每日高峰并降低电费。
📈 间歇性需求:预测非零观测值很少的序列。
🌡️ 外部回归变量:例如天气或价格
模型
自动预测
自动预测工具会搜索最佳参数,并为一组时间序列选择最佳模型。这些工具对于处理大量单变量时间序列非常有用。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ | 
| AutoETS | ✅ | ✅ | ✅ | ✅ | |
| AutoCES | ✅ | ✅ | ✅ | ✅ | |
| AutoTheta | ✅ | ✅ | ✅ | ✅ | |
| AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ | 
| AutoTBATS | ✅ | ✅ | ✅ | ✅ | 
ARIMA 系列
这些模型利用时间序列中存在的自相关性。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ | 
| AutoRegressive | ✅ | ✅ | ✅ | ✅ | ✅ | 
Theta 系列
将两条 theta 线拟合到去季节化的时间序列,使用不同的技术获取并组合这两条 theta 线以产生最终预测。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| Theta | ✅ | ✅ | ✅ | ✅ | |
| OptimizedTheta | ✅ | ✅ | ✅ | ✅ | |
| DynamicTheta | ✅ | ✅ | ✅ | ✅ | |
| DynamicOptimizedTheta | ✅ | ✅ | ✅ | ✅ | 
多重季节性
适用于具有多个明显季节性的信号。对于电力和日志等低频数据非常有用。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| MSTL | ✅ | ✅ | ✅ | ✅ | 如果趋势预测器支持 | 
| MFLES | ✅ | ✅ | ✅ | ✅ | ✅ | 
| TBATS | ✅ | ✅ | ✅ | ✅ | 
GARCH 和 ARCH 模型
适用于对随时间变化表现出非恒定波动性的时间序列进行建模。ARCH 模型是 GARCH 的特例。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| GARCH | ✅ | ✅ | ✅ | ✅ | |
| ARCH | ✅ | ✅ | ✅ | ✅ | 
基线模型
用于建立基线的经典模型。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| HistoricAverage | ✅ | ✅ | ✅ | ✅ | |
| Naive | ✅ | ✅ | ✅ | ✅ | |
| RandomWalkWithDrift | ✅ | ✅ | ✅ | ✅ | |
| SeasonalNaive | ✅ | ✅ | ✅ | ✅ | |
| WindowAverage | ✅ | ||||
| SeasonalWindowAverage | ✅ | 
指数平滑
使用所有过去观测值的加权平均值,其中权重随时间指数衰减。适用于具有明显趋势和/或季节性的数据。对于没有明显趋势或季节性的数据,请使用 SimpleExponential 系列。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| SimpleExponentialSmoothing | ✅ | ||||
| SimpleExponentialSmoothingOptimized | ✅ | ||||
| SeasonalExponentialSmoothing | ✅ | ||||
| SeasonalExponentialSmoothingOptimized | ✅ | ||||
| Holt | ✅ | ✅ | ✅ | ✅ | |
| HoltWinters | ✅ | ✅ | ✅ | ✅ | 
稀疏或间歇性
适用于非零观测值非常少的序列
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| ADIDA | ✅ | ✅ | ✅ | ||
| CrostonClassic | ✅ | ✅ | ✅ | ||
| CrostonOptimized | ✅ | ✅ | ✅ | ||
| CrostonSBA | ✅ | ✅ | ✅ | ||
| IMAPA | ✅ | ✅ | ✅ | ||
| TSB | ✅ | ✅ | ✅ | 
机器学习
利用外部特征。
| 模型 | 点预测 | 概率预测 | 样本内拟合值 | 概率拟合值 | 外部特征 | 
|---|---|---|---|---|---|
| SklearnModel | ✅ | ✅ | ✅ | ✅ | 
如何贡献
请参阅 CONTRIBUTING.md。

