Python 中的自动 ARIMA
在本文中,我们将了解 Python 中的 Auto ARIMA 及其工作原理。
Python 中的自动 ARIMA
pmdarima 库中的 auto_arima() 函数有助于确定 ARIMA 模型的最佳参数,并提供拟合的 ARIMA 模型作为结果。
请注意,该软件包在更名为“pmdarima”之前曾被称为“Pyramid”。 确保正在安装“pmdarima”软件包。
如果您没有该软件包,请通过在终端中运行以下命令来安装它。
pip install pmdarima
使用以下命令测试包是否创建成功。
from pmdarima.arima import auto_arima
在 Python 中使用 auto_arima() 函数
在以下代码中,data.csv 是包含数据的 CSV 文件,用于自动 ARIMA。 输出将是数据帧,其值在索引 p 和 q 中 order=(P,D,Q)。
代码示例:
import pmdarima as pm
import pandas as pd
df1 = pd.read_csv('data.csv', names=['value'], header=0)
model_1 = pm.auto_arima(df1.value, start_p=1, start_q=1,
test='adf',
max_p=3, max_q=3,
m=1,
d=None,
seasonal=False,
start_P=0,
D=0,
trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
print(model_1.summary())
输出:
Performing stepwise search to minimize aic
ARIMA(1,1,1)(0,0,0)[0] intercept : AIC=1605.366, Time=0.09 sec
ARIMA(0,1,0)(0,0,0)[0] intercept : AIC=1660.860, Time=0.01 sec
ARIMA(1,1,0)(0,0,0)[0] intercept : AIC=1619.269, Time=0.04 sec
ARIMA(0,1,1)(0,0,0)[0] intercept : AIC=1604.209, Time=0.04 sec
ARIMA(0,1,0)(0,0,0)[0] : AIC=1658.968, Time=0.01 sec
ARIMA(0,1,2)(0,0,0)[0] intercept : AIC=1605.215, Time=0.08 sec
ARIMA(1,1,2)(0,0,0)[0] intercept : AIC=1606.845, Time=0.12 sec
ARIMA(0,1,1)(0,0,0)[0] : AIC=1603.295, Time=0.02 sec
ARIMA(1,1,1)(0,0,0)[0] : AIC=1604.373, Time=0.03 sec
ARIMA(0,1,2)(0,0,0)[0] : AIC=1604.196, Time=0.04 sec
ARIMA(1,1,0)(0,0,0)[0] : AIC=1617.588, Time=0.04 sec
ARIMA(1,1,2)(0,0,0)[0] : AIC=1605.883, Time=0.04 sec
Best model: ARIMA(0,1,1)(0,0,0)[0]
Total fit time: 0.580 seconds
SARIMAX Results
==============================================================================
Dep. Variable: y No. Observations: 173
Model: SARIMAX(0, 1, 1) Log Likelihood -799.648
Date: Sat, 03 Sep 2022 AIC 1603.295
Time: 23:15:18 BIC 1609.590
Sample: 0 HQIC 1605.849
- 173
Covariance Type: opg
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ma.L1 -0.5856 0.056 -10.478 0.000 -0.695 -0.476
sigma2 637.6579 54.893 11.616 0.000 530.069 745.247
===================================================================================
Ljung-Box (L1) (Q): 0.54 Jarque-Bera (JB): 24.81
Prob(Q): 0.46 Prob(JB): 0.00
Heteroskedasticity (H): 0.18 Skew: 0.41
Prob(H) (two-sided): 0.00 Kurtosis: 4.67
===================================================================================
Process finished with exit code 0
总结
ARIMA 模型广泛地估计了未来几天的股票表现。 Python 的 auto_arima()
函数用于确定拟合 ARIMA 模型的最佳参数。
auto_arima()
函数可以从名为 pmdarima 的 Python 库导入。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串