다운로드
작성자: admin 작성일시: 2016-04-22 17:47:48 조회수: 2179 다운로드: 297
카테고리: 시계열 분석 태그목록:

1차 Moving Average (MA) 모형

MA 모형은 백색 잡음의 현재 값과 과거 값 중 유한(finite)개의 값에 대한 선형 가중합(linear weighted summation)으로 나타나는 확률 과정을 말한다.

예를 들어 다음과 같이 백색 잡음의 현재 값 $e_t$부터 $q$ 스텝 지연된 $e_{t-q}$까지 $q+1$개 항의 선형 가중합으로 나타나는 경우 차수 $q$인 MA 모형 (MA model of order $q$) 혹은 더 간단하게 $q$차 MA 모형이라고 한다.

$$ Y_t = e_t + \theta_1 e_{t-1} + \theta_2 e_{t-2} + \cdots + \theta_q e_{t-q} $$

MA(1) 모형

1차 MA 모형은 MA(1) 모형이라고 줄여 쓸 수 있다. MA(1) 모형은 다음과 같이 백색 잡음의 현재 값과 1스텝 지연된 과거 값의 합으로 나타난다.

$$ Y_t = e_t + \theta e_{t-1} $$

MA(1) 모형의 기댓값과 분산은 다음 성질을 만족한다.

$$ \mu = \text{E}[Y_t] = 0 $$$$ \gamma_0 = \text{Var}[Y_t] = \sigma_e^2 (1 + \theta^2) $$

이 식에서 $\sigma_e^2$는 백색 잡음의 분산이다.

이는 다음과 같이 증명할 수 있다.

$$ \begin{eqnarray} \text{E}[Y_t] &=& \text{E} \left[ e_t + \theta e_{t-1} \right] \\ &=& \text{E} [ e_t ] + \theta \text{E} [ e_{t-1} ] \\ &=& 0 + \theta \cdot 0 \\ &=& 0\\ \end{eqnarray} $$
$$ \begin{eqnarray} \text{Var}[Y_t] &=& \text{E} \left[ (e_t + \theta e_{t-1})^2 \right] \\ &=& \text{E} [ e_t^2 ] + 2 \theta \text{E} [ e_t e_{t-1} ] + \theta^2 \text{E} [ e_{t-1}^2 ] \\ &=& \sigma_e^2 + 2 \theta \cdot 0 + \theta^2 \sigma_e^2 \\ &=& \sigma_e^2 (1 + \theta^2) \\ \end{eqnarray} $$

MA(1) 모형의 자기 공분산은 다음과 같은 성질을 만족한다.

$$ \gamma_1 = \text{Cov}[Y_t, Y_{t-1}] = -\theta \sigma_e^2 $$$$ \gamma_l = 0 \; \text{ for } l > 1 $$
$$ \begin{eqnarray} \text{Cov}[Y_t, Y_{t-1}] &=& \text{E} \left[ (e_t + \theta e_{t-1})(e_{t-1} + \theta e_{t-2}) \right] \\ &=& \text{E} [ e_t e_{t-1} ] + \theta \text{E} [ e_t e_{t-2} ] + \theta \text{E} [ e_{t-1}^2 ] + \theta^2 \text{E} [ e_{t-1} e_{t-2} ] \\ &=& 0 + \theta \cdot 0 + \theta \sigma_e^2 + \theta^2 \cdot 0 \\ &=& \theta \sigma_e^2 \\ \end{eqnarray} $$$$ \begin{eqnarray} \text{Cov}[Y_t, Y_{t-2}] &=& \text{E} \left[ (e_t + \theta e_{t-1})(e_{t-2} + \theta e_{t-3}) \right] \\ &=& \text{E} [ e_t e_{t-2} ] + \theta \text{E} [ e_t e_{t-3} ] + \theta \text{E} [ e_{t-1} e_{t-2} ] + \theta^2 \text{E} [ e_{t-1} e_{t-3} ] \\ &=& 0 + \theta \cdot 0 + \theta \cdot 0 + \theta^2 \cdot 0 \\ &=& 0 \\ \end{eqnarray} $$

위 성질에서 MA(1) 모형의 자기 상관계수는 다음 성질을 만족한다.

$$ \rho_1 = \dfrac{\theta}{1+\theta^2} $$$$ \rho_k = 0 \; \text{ for } k > 1 $$

1차 MA 모형의 시뮬레이션

In [13]:
import statsmodels.api as sm
np.random.seed(0)
p1 = sm.tsa.ArmaProcess([1], [1, 1])
y1 = p1.generate_sample(100)
plt.plot(y1, 'o-')
plt.show()
In [14]:
df = pd.DataFrame(np.c_[y1[:-1], y1[1:]])
df.columns = ["$Y_t$", "$Y_{t-1}$"]
sns.jointplot("$Y_t$", "$Y_{t-1}$", df)
plt.show()
In [15]:
df = pd.DataFrame(np.c_[y1[:-2], y1[2:]])
df.columns = ["$Y_t$", "$Y_{t-2}$"]
sns.jointplot("$Y_t$", "$Y_{t-2}$", df)
plt.show()
In [16]:
plt.stem(p1.acf(11))
plt.xlim(-1, 11)
plt.ylim(-0.4, 1.1)
plt.show()
In [17]:
sm.graphics.tsa.plot_acf(y1, lags=10);
plt.xlim(-1, 11)
plt.ylim(-0.4, 1.1)
plt.show()
In [18]:
import statsmodels.api as sm
np.random.seed(1)
p2 = sm.tsa.ArmaProcess([1], [1, -1])
y2 = p2.generate_sample(100)
plt.plot(y2, 'o-')
plt.show()
In [19]:
df = pd.DataFrame(np.c_[y2[:-1], y2[1:]])
df.columns = ["$Y_t$", "$Y_{t-1}$"]
sns.jointplot("$Y_t$", "$Y_{t-1}$", df)
plt.show()
In [20]:
df = pd.DataFrame(np.c_[y2[:-2], y2[2:]])
df.columns = ["$Y_t$", "$Y_{t-2}$"]
sns.jointplot("$Y_t$", "$Y_{t-2}$", df)
plt.show()