Project Icon

pmdarima

Python时间序列分析库 支持自动ARIMA建模和多种统计测试

pmdarima是一个Python统计库,旨在增强时间序列分析能力。它实现了类似R语言auto.arima的功能,提供多种统计测试、时间序列工具、转换器和特征提取器。该库支持季节性分解、交叉验证,并包含丰富的内置数据集。基于statsmodels构建,pmdarima采用类scikit-learn的接口设计,便于用户构建和部署时间序列模型。

pmdarima

PyPI版本 CircleCI Github Actions状态 codecov 支持版本 下载量 每周下载量

Pmdarima(最初名为pyramid-arima,是'py'和'arima'的字母重组)是一个统计库,旨在填补Python时间序列分析能力的空白。其功能包括:

  • 相当于R语言中auto.arima的功能
  • 一系列平稳性和季节性的统计检验
  • 时间序列工具,如差分和逆差分
  • 多种内生和外生变量转换器和特征提取器,包括Box-Cox和傅里叶变换
  • 季节性时间序列分解
  • 交叉验证工具
  • 丰富的内置时间序列数据集,用于原型设计和示例
  • 类似scikit-learn的管道,用于整合估计器并促进生产化

Pmdarima在底层封装了statsmodels,但设计了一个对有scikit-learn背景的用户来说更熟悉的接口。

安装

pip

Pmdarima在pypi上为Windows、Mac和Linux(manylinux)提供了二进制和源代码分发版本,包名为pmdarima,可以通过pip下载:

pip install pmdarima

conda

Pmdarima也为Mac和Linux提供了通过conda安装的版本,可以按以下方式安装:

conda config --add channels conda-forge
conda config --set channel_priority strict
conda install pmdarima

**注意:**我们不维护自己的Conda二进制文件,它们由https://github.com/conda-forge/pmdarima-feedstock维护。有关在Conda上使用Pmdarima的更多文档,请参见该仓库。

快速入门示例

wineind 数据集上拟合一个简单的自动 ARIMA 模型:

import pmdarima as pm
from pmdarima.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt

# 加载并分割数据
y = pm.datasets.load_wineind()
train, test = train_test_split(y, train_size=150)

# 拟合模型
model = pm.auto_arima(train, seasonal=True, m=12)

# 进行预测
forecasts = model.predict(test.shape[0])  # 预测未来 N 步

# 可视化预测结果(蓝色=训练数据,绿色=预测)
x = np.arange(y.shape[0])
plt.plot(x[:150], train, c='blue')
plt.plot(x[150:], forecasts, c='green')
plt.show()
Wineind 示例

sunspots 数据集上拟合一个更复杂的管道,将其序列化,然后从磁盘加载以进行预测:

import pmdarima as pm
from pmdarima.model_selection import train_test_split
from pmdarima.pipeline import Pipeline
from pmdarima.preprocessing import BoxCoxEndogTransformer
import pickle

# 加载并分割数据
y = pm.datasets.load_sunspots()
train, test = train_test_split(y, train_size=2700)

# 定义并拟合管道
pipeline = Pipeline([
    ('boxcox', BoxCoxEndogTransformer(lmbda2=1e-6)),  # lmbda2 避免负值
    ('arima', pm.AutoARIMA(seasonal=True, m=12,
                           suppress_warnings=True,
                           trace=True))
])

pipeline.fit(train)

# 像在 scikit-learn 中一样序列化模型:
with open('model.pkl', 'wb') as pkl:
    pickle.dump(pipeline, pkl)
    
# 加载并无缝进行预测:
with open('model.pkl', 'rb') as pkl:
    mod = pickle.load(pkl)
    print(mod.predict(15))
# [25.20580375 25.05573898 24.4263037  23.56766793 22.67463049 21.82231043
# 21.04061069 20.33693017 19.70906027 19.1509862  18.6555793  18.21577243
# 17.8250318  17.47750614 17.16803394]

可用性

pmdarima 在 PyPi 上提供了预构建的 Wheel 文件,适用于 Python 3.7+ 的以下平台:

  • Mac(64 位)
  • Linux(64 位 manylinux)
  • Windows(64 位)
    • 32 位 wheel 文件适用于 pmdarima 2.0.0 以下版本和 Python 3.10 以下版本

如果您的平台没有对应的 wheel 文件,您仍然可以通过 pip install 安装,它将从源代码分发包构建,但您需要 cython>=0.29gcc(Mac/Linux)或 MinGW(Windows)来从源代码构建包。

请注意,旧版本(<1.0.0)以 "pyramid-arima" 的名称提供,可以通过以下方式使用 pip 安装:

# 旧版警告:
$ pip install pyramid-arima
# python -c 'import pyramid;'

但不推荐使用这种方式。

文档

您的所有问题以及更多内容(包括示例和指南)都可以在 pmdarima 文档 中找到答案。如果没有,随时可以提出问题。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号