Python での自動 ARIMA
Zeeshan Afridi
2023年10月10日
この記事では、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 ファイルであり、Auto 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 ライブラリからインポートできます。
著者: Zeeshan Afridi
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn