跳转到主要内容

基于统计模型的时序预测套件

项目描述

Nixtla   Tweet  Slack

All Contributors

统计 ⚡️ 预测

使用统计和计量模型进行闪电般快速预测

CI Python PyPi conda-nixtla License docs Downloads

StatsForecast 提供了一组广泛使用的单变量时间序列预测模型,包括自动 ARIMAETSCESTheta 模型,通过使用 numba 优化性能。它还包括大量基准模型。

安装

您可以使用以下方式安装 StatsForecast

pip install statsforecast

conda install -c conda-forge statsforecast

访问我们的安装指南以获取更多说明。

快速入门

最小示例

from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA
from statsforecast.utils import AirPassengersDF

df = AirPassengersDF
sf = StatsForecast(
    models = [AutoARIMA(season_length = 12)],
    freq = 'M'
)

sf.fit(df)
sf.predict(h=12, level=[95])

通过此 快速指南 开始。

按照此 端到端演练 进行最佳实践。

为什么?

当前 Python 的统计模型替代方案速度慢、不准确且扩展性不好。因此,我们创建了一个库,可用于生产环境中的预测或作为基准。 StatsForecast 包含了一组广泛的模型,可以有效地拟合数百万个时间序列。

功能

  • Python 中 AutoARIMAAutoETSAutoCESMSTLTheta 的最快和最精确实现。
  • 与 Spark、Dask 和 Ray 无缝兼容。
  • 概率预测和置信区间。
  • 支持外生变量和静态协变量。
  • 异常检测。
  • 熟悉的 sklearn 语法:.fit.predict

亮点

  • 包含 ARIMA 的 外生变量预测区间
  • pmdarima 快 20 倍。
  • 比 R 快 1.5 倍。
  • Prophet 快 500 倍。
  • statsmodels 快 4 倍。
  • 通过 numba 编译成高性能机器代码。
  • 使用 ray30 分钟 内处理 1,000,000 个序列。
  • 在两行代码中替换 FB-Prophet 并获得速度和准确性。请参阅实验 此处
  • 5 分钟 内对 1,000,000 个序列上的 10 个基准模型进行拟合。

缺少什么?请提交问题或在 Slack 中给我们留言。

示例和指南

📚 端到端演练:多时间序列的模型训练、评估和选择

🔎 异常检测:使用样本预测区间检测时间序列中的异常

👩‍🔬 交叉验证:稳健的模型性能评估

❄️ 多重季节性:如何使用 MSTL 预测具有多重季节性的数据

🔌 预测需求峰值:用于检测每日峰值并降低电费的电力负荷预测。

📈 间歇性需求:预测具有非常少非零观测值的序列。

🌡️ 外生回归因子:如天气或价格

模型

自动预测

自动预测工具搜索最佳参数,并为一组时间序列选择最佳模型。这些工具对于大量单变量时间序列集合非常有用。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
AutoARIMA
AutoETS
AutoCES
AutoTheta

ARIMA系列

这些模型利用时间序列中现有的自相关。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
ARIMA
自回归

Theta系列

对去季节化时间序列拟合两条theta线,使用不同的技术获得并组合这两条theta线以生成最终的预测。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
Theta
优化Theta
动态Theta
动态优化Theta

多重季节性

适用于具有一个以上明显季节性的信号。对于电力和日志等低频数据非常有用。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
MSTL 如果趋势预测器支持

GARCH和ARCH模型

适用于对时间序列进行建模,这些时间序列在时间上表现出非恒定的波动性。ARCH模型是GARCH的一个特例。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
GARCH
ARCH

基线模型

用于建立基线的经典模型。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
历史平均值
天真
随机游走
季节性天真
窗口平均值
季节性窗口平均值

指数平滑

使用所有过去观测值的加权平均值,其中权重以指数方式减少到过去。适用于具有明显趋势和/或季节性的数据。对于没有明显趋势或季节性的数据,请使用SimpleExponential系列。

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
简单指数平滑
优化简单指数平滑
季节性指数平滑
优化季节性指数平滑
Holt
HoltWinters

稀疏或间歇性

适用于具有非常少非零观测值的序列

模型 点预测 概率预测 样本内拟合值 概率拟合值 外生特征
ADIDA
CrostonClassic
CrostonOptimized
CrostonSBA
IMAPA
TSB

🔨 如何贡献

查看CONTRIBUTING.md

引用

@misc{garza2022statsforecast,
    author={Federico Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares},
    title = {{StatsForecast}: Lightning fast forecasting with statistical and econometric models},
    year={2022},
    howpublished={{PyCon} Salt Lake City, Utah, US 2022},
    url={https://github.com/Nixtla/statsforecast}
}

贡献者 ✨

感谢这些可爱的人(emoji key)

fede
fede

💻 🚧
José Morales
José Morales

💻 🚧
Sugato Ray
Sugato Ray

💻
Jeff Tackes
Jeff Tackes

🐛
darinkist
darinkist

🤔
Alec Helyar
Alec Helyar

💬
Dave Hirschfeld
Dave Hirschfeld

💬
mergenthaler
mergenthaler

💻
Kin
Kin

💻
Yasslight90
Yasslight90

🤔
asinig
asinig

🤔
Philip Gillißen
Philip Gillißen

💻
Sebastian Hagn
Sebastian Hagn

🐛 📖
Han Wang
Han Wang

💻
Ben Jeffrey
Ben Jeffrey

🐛
Beliavsky
Beliavsky

📖
Mariana Menchero García
Mariana Menchero García

💻
Nikhil Gupta
Nikhil Gupta

🐛
JD
JD

🐛
josh attenberg
josh attenberg

💻
JeroenPeterBos
JeroenPeterBos

💻
Jeroen Van Der Donckt
Jeroen Van Der Donckt

💻
Roymprog
Roymprog

📖
Nelson Cárdenas Bolaño
Nelson Cárdenas Bolaño

📖
Kyle Schmaus
Kyle Schmaus

💻
Akmal Soliev
Akmal Soliev

💻
Nick To
Nick To

💻
Kevin Kho
Kevin Kho

💻
Yiben Huang
Yiben Huang

📖
Andrew Gross
Andrew Gross

📖
taniishkaaa
taniishkaaa

📖
Manuel Calzolari
Manuel Calzolari

💻

本项目遵循all-contributors规范。欢迎所有形式的贡献!

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

statsforecast-1.7.8.tar.gz (2.9 MB 查看哈希值)

上传时间: 源代码

构建分布

statsforecast-1.7.8-cp312-cp312-win_amd64.whl (255.4 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

statsforecast-1.7.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (315.2 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

statsforecast-1.7.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (305.2 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ARM64

statsforecast-1.7.8-cp312-cp312-macosx_11_0_arm64.whl (274.2 kB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

statsforecast-1.7.8-cp312-cp312-macosx_10_13_x86_64.whl (289.0 kB 查看哈希值)

上传时间: CPython 3.12 macOS 10.13+ x86-64

statsforecast-1.7.8-cp311-cp311-win_amd64.whl (254.7 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

statsforecast-1.7.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (315.8 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

statsforecast-1.7.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (305.9 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

statsforecast-1.7.8-cp311-cp311-macosx_11_0_arm64.whl (275.1 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

statsforecast-1.7.8-cp311-cp311-macosx_10_9_x86_64.whl (289.4 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

statsforecast-1.7.8-cp310-cp310-win_amd64.whl (253.5 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

statsforecast-1.7.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.7 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

statsforecast-1.7.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (304.8 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

statsforecast-1.7.8-cp310-cp310-macosx_11_0_arm64.whl (273.9 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

statsforecast-1.7.8-cp310-cp310-macosx_10_9_x86_64.whl (288.1 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

statsforecast-1.7.8-cp39-cp39-win_amd64.whl (251.8 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

statsforecast-1.7.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (314.9 kB 查看哈希)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

statsforecast-1.7.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (305.0 kB 查看哈希)

上传时间: CPython 3.9 manylinux: glibc 2.17+ ARM64

statsforecast-1.7.8-cp39-cp39-macosx_11_0_arm64.whl (274.0 kB 查看哈希)

上传时间: CPython 3.9 macOS 11.0+ ARM64

statsforecast-1.7.8-cp39-cp39-macosx_10_9_x86_64.whl (288.3 kB 查看哈希)

上传时间: CPython 3.9 macOS 10.9+ x86-64

statsforecast-1.7.8-cp38-cp38-win_amd64.whl (253.6 kB 查看哈希)

上传时间: CPython 3.8 Windows x86-64

statsforecast-1.7.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (313.6 kB 查看哈希)

上传时间: CPython 3.8 manylinux: glibc 2.17+ x86-64

statsforecast-1.7.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (305.0 kB 查看哈希)

上传时间: CPython 3.8 manylinux: glibc 2.17+ ARM64

statsforecast-1.7.8-cp38-cp38-macosx_11_0_arm64.whl (273.7 kB 查看哈希)

上传时间: CPython 3.8 macOS 11.0+ ARM64

statsforecast-1.7.8-cp38-cp38-macosx_10_9_x86_64.whl (288.0 kB 查看哈希)

上传时间: CPython 3.8 macOS 10.9+ x86-64

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面