pmdarima
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()
在 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.29
和 gcc
(Mac/Linux)或 MinGW
(Windows)来从源代码构建包。
请注意,旧版本(<1.0.0)以 "pyramid-arima
" 的名称提供,可以通过以下方式使用 pip 安装:
# 旧版警告:
$ pip install pyramid-arima
# python -c 'import pyramid;'
但不推荐使用这种方式。
文档
您的所有问题以及更多内容(包括示例和指南)都可以在 pmdarima
文档 中找到答案。如果没有,随时可以提出问题。