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。