始める無料で始める

モデル次数の推定:PACF

AR モデルの次数を特定するのに役立つ方法の一つが、偏自己相関関数(PACF)を見ることです。この演習では、AR(1) と AR(2) の 2 つの時系列をシミュレーションし、それぞれの標本 PACF を計算します。AR(1) では、PACF のラグ 1 が有意で、その後はおおむね 0 に近くなるはずです。AR(2) では、標本 PACF のラグ 1 とラグ 2 が有意で、その後は 0 に近くなるはずです。

前の演習で plot_acf 関数を使ったのと同様に、ここでは statsmodels モジュールの plot_pacf 関数を使います。

この演習はコースの一部です

Pythonで学ぶ時系列解析

コースを見る

演習の手順

  • データのシミュレーション用モジュールと PACF をプロットするためのモジュールをインポートします
  • \(\small \phi=0.6\) の AR(1) をシミュレーションします(AR パラメータの符号が反転することを思い出してください)
  • plot_pacf 関数を使って simulated_data_1 の PACF をプロットします
  • \(\small \phi_1=0.6, \phi_2=0.3\) の AR(2) をシミュレーションします(こちらも符号を反転します)
  • plot_pacf 関数を使って simulated_data_2 の PACF をプロットします

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import the modules for simulating data and for plotting the PACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_pacf

# Simulate AR(1) with phi=+0.6
ma = np.array([1])
ar = np.array([1, -0.6])
AR_object = ArmaProcess(ar, ma)
simulated_data_1 = ___.generate_sample(nsample=5000)

# Plot PACF for AR(1)
plot_pacf(___, lags=20)
plt.show()

# Simulate AR(2) with phi1=+0.6, phi2=+0.3
ma = np.array([1])
ar = np.array([1, ___, ___])
AR_object = ArmaProcess(ar, ma)
simulated_data_2 = ___.generate_sample(nsample=5000)

# Plot PACF for AR(2)
plot_pacf(___, lags=20)
plt.show()
コードを編集して実行