始める無料で始める

モデル次数の推定:情報量基準

モデルの次数を特定するもう一つの方法は、赤池情報量規準(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()
コードを編集して実行