モデル次数の推定:情報量基準
モデルの次数を特定するもう一つの方法は、赤池情報量規準(AIC)とベイズ情報量規準(BIC)を見ることです。これらは推定されたパラメータで当てはまりの良さを評価しつつ、モデル中のパラメータ数に対して罰則を与えます。前の演習で得た AR(2) のシミュレーションデータ simulated_data_2 を使い、AR(p) の p を 0 から 6 まで変化させながら BIC を計算します。
この演習はコースの一部です
Pythonで学ぶ時系列解析
演習の手順
- パラメータ推定と BIC の計算のために ARIMA モジュールをインポートします。
- 各 AR(p) モデルの BIC を保存するための numpy 配列
BICを初期化します。 - p = 0,…,6 で次数 p をループします。
- 各 p について、次数 p の AR モデルをデータに当てはめます。
- 各 p について、
resの.bic属性(かっこは不要)を使って BIC の値を保存します。
- p に対する BIC のグラフを作成します(プロットでは p=0 を除外し、p=1,…,6 を描画します)。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA
# Fit the data to an AR(p) for p = 0,...,6 , and save the BIC
BIC = np.zeros(7)
for p in range(7):
mod = ARIMA(simulated_data_2, order=(___,___,___))
res = mod.fit()
# Save BIC for AR(p)
BIC[p] = res.___
# Plot the BIC as a function of p
plt.plot(range(1,7), BIC[1:7], marker='o')
plt.xlabel('Order of AR Model')
plt.ylabel('Bayesian Information Criterion')
plt.show()