始める無料で始める

AR(1) と MA(無限) の同等性

MAモデルとARモデルの関係をよりよく理解するために、適切なパラメータを用いると AR(1) モデルが MA(\(\small \infty\)) モデルと同等であることを示します。

30期という大きなラグ数で、パラメータが \(\small 0.8, 0.8^2, 0.8^3, \ldots \) の MA モデルをシミュレーションし、\(\small \phi=0.8\) の AR(1) モデルと自己相関関数(ACF)が同じになることを確認します。

補足: 数 x を指数 n 乗するには、x**n の形式を使います。

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

Pythonで学ぶ時系列解析

コースを見る

演習の手順

  • statsmodels からデータのシミュレーションと ACF のプロットに必要なモジュールをインポートします
  • リスト内包表記を使って、指数的に減衰する MA パラメータのリストを作成します:\(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
  • MA(30) モデルの観測値を 5000 個シミュレーションします
  • シミュレーションした系列の ACF をプロットします

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

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

# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf

# Build a list MA parameters
ma = [___ for i in range(30)]

# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)

# Plot the ACF
plot_acf(___, lags=30)
plt.show()
コードを編集して実行