AR(auto regresssion)過程
date: 2021-08-29 excerpt: AR(auto regression, 自己回帰)過程について
AR(auto regression, 自己回帰)過程について
概要
- 自己回帰モデルの一つ
- 前の状態にホワイトノイズを足して表現するモデル
- 時系列の予測などに用いる
数式
\[X_t = c + \sum_{i=1}^{p} \phi_{i} X_{t-i} + \epsilon\]- \(\epsilon\); ホワイトノイズで独立
- \(c\); 定数
特に\(p=1\)で一次の自己回帰のとき
\[X_t = c + \phi X_{t-1} + \epsilon\]具体的なpの求め方
- 赤池情報量やvalidationなどで最適なパラメータを決定する
平均の期待値
- \(c\)と\(\phi\)のみに依存した値になる
定義式の期待値を取る \(E[X_t]= E[c] + \phi E[X_{t-1}] + E[\epsilon]\)
すると以下になるから\(\mu\)について解くと期待値が得られる
\[\mu = c + \phi \mu\] \[E[X_t] = \frac{c}{1-\phi}\]分散
- \(\epsilon\)の分散と\(\phi\)のみに依存した値になる
\(\phi\)がマイナスのときの特徴
- 振動したようなグラフになる
AR過程の生成
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0)
c = 5.
phi = np.array([0, 0.5, 0.7])
x = np.arange(0., 100., 1.)
y = np.zeros([100,3])
y[0,:] = np.array([1, 1, 1]) # 初期値を1に設定
for i in range(1, y.shape[0]):
y[i, :] = c + phi*y[i-1, :] + np.random.normal(0, 1, (3))
for i, color in zip(range(3), ["blue", "orange", "green"]):
plt.plot(x, y[:,i], color=color)
plt.show()