StatsForecast ⚡️
StatsForecast 提供了一系列流行的单变量时间序列预测模型,这些模型经过优化可实现高性能和可扩展性。
安装
您可以使用以下命令安装 StatsForecast
:
pip install statsforecast
或者
-c conda-forge statsforecast conda install
请访问我们的安装指南以获取更多说明。
快速开始
最小示例
from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA
from statsforecast.utils import AirPassengersDF
= AirPassengersDF
df = StatsForecast(
sf = [AutoARIMA(season_length = 12)],
models = 'M'
freq
)
sf.fit(df)=12, level=[95]) sf.predict(h
通过这个 快速指南 开始。
请遵循这个 端到端的教程 来获取最佳实践。
为什么?
当前用于统计模型的Python替代品速度慢、准确性差且扩展性差。因此,我们创建了一个可以在生产环境中使用或作为基准的库。 StatsForecast
包括一整套可以高效拟合数百万个时间序列的模型。
特性
- Python中
AutoARIMA
、AutoETS
、AutoCES
、MSTL
和Theta
的最快和最精确的实现。 - 开箱即用兼容Spark、Dask和Ray。
- 概率预测和置信区间。
- 支持外生变量和静态协变量。
- 异常检测。
- 熟悉的sklearn语法:
.fit
和.predict
。
亮点
示例与指南
📚 端到端流程:多时间序列的模型训练、评估和选择
🔎 异常检测:使用样本内预测区间检测时间序列中的异常。
👩🔬 交叉验证:稳健模型的性能评估。
❄️ 多重季节性:如何使用MSTL对具有多重季节性的数据进行预测。
🔌 预测需求峰值:电力负荷预测以检测每日峰值并降低电费。
📈 间歇性需求:预测观察值非常少的序列。
🌡️ 外生回归变量:如天气或价格
模型
自动预测
自动预测工具搜索最佳参数并为一组时间序列选择最佳模型。这些工具对于大量单变量时间序列非常有用。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoETS | ✅ | ✅ | ✅ | ✅ | |
AutoCES | ✅ | ✅ | ✅ | ✅ | |
AutoTheta | ✅ | ✅ | ✅ | ✅ |
ARIMA 家族
这些模型利用时间序列中存在的自相关。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
自回归 | ✅ | ✅ | ✅ | ✅ | ✅ |
Theta 家族
为去季节化的时间序列拟合两条 theta 线,使用不同的技术获得并结合这两条 theta 线以生成最终预测。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
Theta | ✅ | ✅ | ✅ | ✅ | |
优化 Theta | ✅ | ✅ | ✅ | ✅ | |
动态 Theta | ✅ | ✅ | ✅ | ✅ | |
动态优化 Theta | ✅ | ✅ | ✅ | ✅ |
多重季节性
适合具有多个明显季节性的信号。对于像电力和日志这样的低频数据非常有用。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
MSTL | ✅ | ✅ | ✅ | ✅ | 如果趋势预测器支持 |
GARCH 和 ARCH 模型
适合建模随时间变化的非恒定波动的时间序列。ARCH 模型是 GARCH 的一个特例。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
GARCH | ✅ | ✅ | ✅ | ✅ | |
ARCH | ✅ | ✅ | ✅ | ✅ |
基准模型
用于建立基准的经典模型。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
历史平均 | ✅ | ✅ | ✅ | ✅ | |
天真预测 | ✅ | ✅ | ✅ | ✅ | |
带漂移的随机游走 | ✅ | ✅ | ✅ | ✅ | |
季节性天真预测 | ✅ | ✅ | ✅ | ✅ | |
窗口平均 | ✅ | ||||
季节性窗口平均 | ✅ |
指数平滑
使用所有过去观察值的加权平均,其中权重随时间指数下降。适合具有明显趋势和/或季节性的数据。对于没有明显趋势或季节性的数据,使用 SimpleExponential
家族。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
简单指数平滑 | ✅ | ||||
优化简单指数平滑 | ✅ | ||||
季节性指数平滑 | ✅ | ||||
优化季节性指数平滑 | ✅ | ||||
霍尔特 | ✅ | ✅ | ✅ | ✅ | |
霍尔特-温特斯 | ✅ | ✅ | ✅ | ✅ |
稀疏或间歇性
适合仅有极少非零观察值的序列。
模型 | 点预测 | 概率预测 | 样本拟合值 | 概率拟合值 | 外生特征 |
---|---|---|---|---|---|
ADIDA | ✅ | ✅ | ✅ | ||
Croston 经典 | ✅ | ✅ | ✅ | ||
Croston 优化 | ✅ | ✅ | ✅ | ||
Croston SBA | ✅ | ✅ | ✅ | ||
IMAPA | ✅ | ✅ | ✅ | ||
TSB | ✅ | ✅ | ✅ |
如何贡献
请参见 CONTRIBUTING.md。
引用
@misc{garza2022statsforecast,
author={Federico Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares},
title = {{StatsForecast}: 极速的统计与经济计量模型预测},
year={2022},
howpublished={{PyCon} 盐湖城, 犹他州, 美国 2022},
url={https://github.com/Nixtla/statsforecast}
}
Give us a ⭐ on Github