Time Series — Algebra dan Stasioneritas
AR, MA, ARMA, Unit Root, VAR
1 Kenapa Ini Penting?
Spurious regression, unit roots, kointegrasi — ini adalah jebakan klasik time series econometrics. Kalau kamu pernah menemukan \(R^2\) tinggi dan t-stats signifikan antara dua seri yang seharusnya tidak berkorelasi, itu kemungkinan besar spurious regression.
Math time series memberi kamu: - Pemahaman mengapa data non-stasioner menyebabkan masalah (distribusi OLS t-stat runtuh) - Alat formal untuk menguji stasioneritas (ADF, KPSS) - Kerangka VAR untuk multi-variable dynamics - Konsep kointegrasi — long-run equilibrium relationship
2 Stasioneritas
Strict stationarity: distribusi joint \((y_{t_1}, y_{t_2}, \ldots, y_{t_k})\) sama dengan \((y_{t_1+h}, \ldots, y_{t_k+h})\) untuk semua \(h\) — distribusi time-invariant.
Covariance/Weak stationarity: kondisi lebih lemah: 1. \(E[y_t] = \mu\) (mean konstan, tidak bergantung pada \(t\)) 2. \(\text{Var}(y_t) = \sigma^2 < \infty\) (variance finite dan konstan) 3. \(\text{Cov}(y_t, y_{t-h}) = \gamma(h)\) bergantung hanya pada lag \(h\), bukan \(t\)
Untuk proses Gaussian, weak = strict stationarity.
Autocovariance function: \(\gamma(h) = \text{Cov}(y_t, y_{t-h})\)
Autocorrelation function (ACF): \(\rho(h) = \frac{\gamma(h)}{\gamma(0)} \in [-1, 1]\)
Partial ACF (PACF): korelasi \(y_t\) dan \(y_{t-h}\) setelah mengontrol \(y_{t-1}, \ldots, y_{t-h+1}\).
ACF dan PACF adalah tools diagnostik utama untuk identifikasi model ARMA.
3 AR(1) Process
3.1 Definisi dan Stasioneritas
\[y_t = \phi y_{t-1} + \varepsilon_t, \quad \varepsilon_t \sim WN(0, \sigma^2)\]
Kapan stasioner? Perlu \(|\phi| < 1\).
Iterasi mundur: \[y_t = \varepsilon_t + \phi\varepsilon_{t-1} + \phi^2\varepsilon_{t-2} + \cdots = \sum_{j=0}^\infty \phi^j \varepsilon_{t-j}\]
Ini adalah MA(\(\infty\)) representation — konvergen jika \(|\phi| < 1\).
3.2 Momen AR(1)
Mean (dengan \(E[\varepsilon_t] = 0\)): \[E[y_t] = \phi E[y_{t-1}] + 0 \quad \Rightarrow \quad \mu(1-\phi) = 0 \quad \Rightarrow \quad \mu = 0\]
Variance (menggunakan stationarity \(\text{Var}(y_t) = \text{Var}(y_{t-1}) = \sigma_y^2\)): \[\sigma_y^2 = \phi^2 \sigma_y^2 + \sigma^2 \quad \Rightarrow \quad \sigma_y^2 = \frac{\sigma^2}{1 - \phi^2}\]
Perhatikan: variance meledak saat \(\phi \to 1\).
ACF: \[\gamma(h) = \text{Cov}(y_t, y_{t-h}) = \phi^h \cdot \frac{\sigma^2}{1-\phi^2} \quad \Rightarrow \quad \rho(h) = \phi^h\]
ACF dari AR(1) adalah geometric decay. Positif/negatif bergantung pada sign \(\phi\).
4 AR(p) Process dan Characteristic Equation
4.1 Setup
\[y_t = \phi_1 y_{t-1} + \phi_2 y_{t-2} + \cdots + \phi_p y_{t-p} + \varepsilon_t\]
Menggunakan lag operator \(L\) (di mana \(Ly_t = y_{t-1}\)):
\[(1 - \phi_1 L - \phi_2 L^2 - \cdots - \phi_p L^p)y_t = \varepsilon_t\] \[\Phi(L)y_t = \varepsilon_t\]
4.2 Characteristic Polynomial
\[\Phi(z) = 1 - \phi_1 z - \phi_2 z^2 - \cdots - \phi_p z^p\]
Kondisi stasioneritas: semua akar dari \(\Phi(z) = 0\) berada di luar unit circle \(|z| > 1\).
Contoh: AR(2) \(\Phi(z) = 1 - \phi_1 z - \phi_2 z^2 = 0\) punya dua akar. Proses stasioner jika kedua akar modulus \(> 1\).
4.3 Companion Matrix Form
Tulis AR(p) sebagai VAR(1) dengan state vector \(\mathbf{Y}_t = (y_t, y_{t-1}, \ldots, y_{t-p+1})^T\):
\[\mathbf{Y}_t = A\mathbf{Y}_{t-1} + \mathbf{u}_t\]
\[A = \begin{pmatrix} \phi_1 & \phi_2 & \cdots & \phi_{p-1} & \phi_p \\ 1 & 0 & \cdots & 0 & 0 \\ 0 & 1 & \cdots & 0 & 0 \\ \vdots & & \ddots & & \vdots \\ 0 & 0 & \cdots & 1 & 0 \end{pmatrix}\]
Kondisi stasioneritas ekivalen: semua eigenvalue dari companion matrix \(A\) memiliki modulus \(< 1\).
5 Unit Root: Random Walk dan Non-Stationarity
5.1 Random Walk
Kasus spesial AR(1) dengan \(\phi = 1\):
\[y_t = y_{t-1} + \varepsilon_t \quad \Rightarrow \quad y_t = y_0 + \sum_{j=1}^t \varepsilon_j\]
Properties: - \(E[y_t] = y_0\) (konstan tapi bergantung initial condition) - \(\text{Var}(y_t) = t\sigma^2\) — tumbuh tanpa batas! - \(\text{Cov}(y_t, y_s) = \min(t,s)\sigma^2\) — bergantung pada \(t,s\), bukan hanya \(|t-s|\)
Tidak stasioner — variance tidak finite.
5.2 Spurious Regression
Dua proses independent I(1) \(x_t\) dan \(y_t\):
\[y_t = y_{t-1} + u_t, \quad x_t = x_{t-1} + v_t, \quad \text{Cov}(u_t, v_t) = 0\]
OLS dari \(y_t\) pada \(x_t\) memberikan: - \(\hat{\beta} \xrightarrow{p}\) sesuatu selain 0 - t-statistic \(\to \infty\) (diverges!) - \(R^2 \to\) distribusi positif
Distribusi OLS runtuh — tidak lagi t-distributed! Ini karena asymptotics OLS bergantung pada stasioneritas.
Solusi: differencing. \(\Delta y_t = y_t - y_{t-1}\) menghapus unit root.
Seri I(1): integrated order 1, perlu di-difference satu kali untuk stasioner.
5.3 Dickey-Fuller Test
Test \(H_0: \phi = 1\) (unit root) vs \(H_1: |\phi| < 1\) (stasioner).
Augmented Dickey-Fuller (ADF) mengakomodasi serial correlation:
\[\Delta y_t = \delta y_{t-1} + \sum_{j=1}^{p-1} \psi_j \Delta y_{t-j} + \varepsilon_t\]
Test \(H_0: \delta = 0\) (unit root, \(\phi = 1 \Leftrightarrow \delta = 0\)).
Penting: distribusi t-stat di bawah \(H_0\) bukan normal atau t — ini adalah distribusi Dickey-Fuller (tabel critical values berbeda!).
Varian: - ADF tanpa intercept: untuk zero-mean random walk - ADF dengan intercept: untuk random walk with drift - ADF dengan trend: untuk deterministic trend + unit root
6 MA(q) dan ARMA(p,q)
6.1 MA(q)
\[y_t = \varepsilon_t + \theta_1\varepsilon_{t-1} + \cdots + \theta_q\varepsilon_{t-q} = \Theta(L)\varepsilon_t\]
Selalu stasioner (finite weighted sum of WN).
ACF: \(\rho(h) = 0\) untuk \(h > q\) — cuts off setelah lag \(q\).
6.2 ARMA(p,q)
\[\Phi(L)y_t = \Theta(L)\varepsilon_t\]
\[(1 - \phi_1 L - \cdots - \phi_p L^p)y_t = (1 + \theta_1 L + \cdots + \theta_q L^q)\varepsilon_t\]
Stasioner: roots dari \(\Phi(z) = 0\) di luar unit circle. Invertible: roots dari \(\Theta(z) = 0\) di luar unit circle (supaya MA\((\infty)\) converge).
6.3 Wold’s Theorem
Setiap proses covariance-stationary yang tidak deterministik dapat ditulis sebagai:
\[y_t = \sum_{j=0}^\infty c_j \varepsilon_{t-j} + \eta_t\]
di mana \(\sum c_j^2 < \infty\), \(\varepsilon_t \sim WN\), dan \(\eta_t\) adalah purely deterministic component.
Implikasi: setiap proses stasioner punya MA(\(\infty\)) representation — ARMA adalah parsimonious parametrization dari representasi ini.
7 VAR(p) System
7.1 Model Multivariate
\[\mathbf{y}_t = A_1\mathbf{y}_{t-1} + A_2\mathbf{y}_{t-2} + \cdots + A_p\mathbf{y}_{t-p} + \boldsymbol{\varepsilon}_t\]
- \(\mathbf{y}_t \in \mathbb{R}^K\): vektor \(K\) variabel
- \(A_j \in \mathbb{R}^{K \times K}\): coefficient matrices
- \(\boldsymbol{\varepsilon}_t \sim WN(0, \Sigma)\), \(\Sigma\) positive definite
Estimasi: OLS equation-by-equation (karena same regressors in each equation).
7.2 Granger Causality
\(x_t\) Granger-causes \(y_t\) jika past values of \(x\) help predict \(y\) beyond what past \(y\) alone provides.
Formal test dalam VAR: test \(H_0\) bahwa coefficients on lagged \(x\) in the \(y\)-equation are all zero.
\(F\)-test pada blok koefisien — bukan “true” causality, hanya predictive.
7.3 Impulse Response Functions (IRF)
Bagaimana \(\mathbf{y}_{t+h}\) merespons shock \(\boldsymbol{\varepsilon}_t\)?
VAR(1) companion form: \(\mathbf{y}_t = A\mathbf{y}_{t-1} + \boldsymbol{\varepsilon}_t\)
\[\frac{\partial \mathbf{y}_{t+h}}{\partial \boldsymbol{\varepsilon}_t} = A^h\]
Elemen \((i,j)\) dari \(A^h\) = efek shock ke variabel \(j\) pada variabel \(i\) setelah \(h\) periods.
7.4 Cholesky Identification
Masalah: \(\boldsymbol{\varepsilon}_t\) bisa berkorelasi — butuh “structural” shocks yang orthogonal.
Cholesky decomposition: \(\Sigma = PP^T\) (lower triangular \(P\)).
Structural shocks: \(\mathbf{u}_t = P^{-1}\boldsymbol{\varepsilon}_t\), \(E[\mathbf{u}_t\mathbf{u}_t^T] = I\).
Caveat: Cholesky imposes ordering — variabel yang diurut pertama tidak merespons variabel lain secara contemporaneous. Ordering harus justified by economic theory.
8 Cointegration
8.1 Definisi
Dua seri I(1) \(x_t\) dan \(y_t\) adalah cointegrated jika ada \(\alpha\) sehingga: \[y_t - \alpha x_t \sim I(0)\]
Ini berarti ada long-run equilibrium relationship: meskipun keduanya non-stasioner, perbedaannya stasioner.
8.2 Error Correction Model (ECM)
Jika \(y_t\) dan \(x_t\) cointegrated:
\[\Delta y_t = \gamma_0 + \gamma_1 \Delta x_t + \pi (y_{t-1} - \alpha x_{t-1}) + \varepsilon_t\]
- \((y_{t-1} - \alpha x_{t-1})\): error correction term — deviasi dari long-run equilibrium
- \(\pi < 0\): speed of adjustment back to equilibrium
- Short-run dynamics (\(\Delta x_t\)) + long-run correction
8.3 Engle-Granger Test
- Step 1: OLS \(y_t = \hat{\alpha} x_t + \hat{e}_t\)
- Step 2: ADF test pada residual \(\hat{e}_t\)
- \(H_0\): residual tidak stasioner (tidak ada cointegration)
Note: critical values berbeda dari standar ADF karena residual adalah estimated.
9 Worked Example: AR(2) Stability Analysis
library(tidyverse)
library(tseries) # for adf.test
library(vars) # for VAR
library(forecast) # for auto.arima
# ==========================================
# 1. AR(2) Stability Check
# ==========================================
# AR(2): y_t = 1.2*y_{t-1} - 0.5*y_{t-2} + eps_t
phi <- c(1.2, -0.5)
# Companion matrix
A <- matrix(c(phi[1], phi[2], 1, 0), nrow = 2, byrow = TRUE)
eigenvalues <- eigen(A)$values
cat("Eigenvalues of companion matrix:\n")
print(eigenvalues)
cat("Moduli:", Mod(eigenvalues), "\n")
cat("Stationarity:", all(Mod(eigenvalues) < 1), "\n")
# Characteristic polynomial roots
Phi_z <- function(z) 1 - phi[1]*z - phi[2]*z^2
roots <- polyroot(c(1, -phi[1], -phi[2]))
cat("\nRoots of characteristic polynomial:", roots, "\n")
cat("Moduli of roots:", Mod(roots), " (should be > 1 for stationarity)\n")
# ==========================================
# 2. Simulate and Test for Unit Root
# ==========================================
n <- 500
# Stationary AR(1)
y_stat <- arima.sim(model = list(ar = 0.7), n = n)
# Non-stationary (unit root)
set.seed(123)
y_nonstat <- cumsum(rnorm(n)) # random walk
# ADF tests
adf_stat <- adf.test(y_stat)
adf_nonstat <- adf.test(y_nonstat)
cat("\nADF test - Stationary series p-value:", adf_stat$p.value)
cat("\nADF test - Random walk p-value:", adf_nonstat$p.value)
# ==========================================
# 3. Spurious Regression Demo
# ==========================================
set.seed(42)
n <- 200
x_I1 <- cumsum(rnorm(n))
y_I1 <- cumsum(rnorm(n)) # independent!
# OLS akan memberikan "significant" result
spurious <- lm(y_I1 ~ x_I1)
cat("\nSpurious regression R^2:", summary(spurious)$r.squared)
cat("\nt-stat for x:", summary(spurious)$coefficients[2, 3])
# Very high R^2 and significant t-stat, but WRONG!
# Correct: difference both series
dy <- diff(y_I1)
dx <- diff(x_I1)
correct <- lm(dy ~ dx)
cat("\n\nCorrect regression (differenced) R^2:", summary(correct)$r.squared)
cat("\nt-stat for dx:", summary(correct)$coefficients[2, 3])
# ==========================================
# 4. VAR Example
# ==========================================
data("Canada", package = "vars")
plot(Canada)
# Select VAR order
VARselect(Canada, lag.max = 8, type = "const")$selection
# Estimate VAR(2)
var_model <- VAR(Canada, p = 2, type = "const")
summary(var_model)
# Impulse Response Functions
irf_result <- irf(var_model, impulse = "prod", response = "e",
n.ahead = 20, boot = TRUE)
plot(irf_result)
# Granger causality
causality(var_model, cause = "prod")10 Ringkasan: ACF/PACF Pattern untuk Identifikasi Model
| Model | ACF | PACF |
|---|---|---|
| AR(p) | Exponential/oscillating decay | Cuts off after lag \(p\) |
| MA(q) | Cuts off after lag \(q\) | Exponential/oscillating decay |
| ARMA(p,q) | Exponential/oscillating decay | Exponential/oscillating decay |
| Random Walk I(1) | Very slow decay | ~1 at lag 1, near 0 after |
Time series methods extend ke berbagai arah:
Panel unit root tests (Im-Pesaran-Shin, Levin-Lin-Chu): menggunakan cross-section power untuk test unit root. Lebih powerful dari individual ADF.
Long-run variance estimation: Newey-West HAC standard errors menggunakan kernel smoothing dari autocovariances — penting untuk inference dengan serial correlation.
Kalman filter: state-space models unify ARMA, unobserved components, time-varying parameters.
GARCH/Volatility models: conditional heteroskedasticity — variance juga memiliki dynamics.
Spatial-temporal: kombinasikan spatial weights matrix \(W\) dengan time series dynamics → space-time AR models.
11 Practice Problems
Problem 1: Tunjukkan bahwa AR(1) dengan \(|\phi| < 1\) adalah covariance-stationary.
Dari MA(\(\infty\)) representation: \(y_t = \sum_{j=0}^\infty \phi^j \varepsilon_{t-j}\).
\(E[y_t] = 0\) (konstan). \(\text{Var}(y_t) = \sigma^2 \sum_{j=0}^\infty \phi^{2j} = \sigma^2/(1-\phi^2) < \infty\) jika \(|\phi| < 1\). \(\text{Cov}(y_t, y_{t-h}) = \sigma^2 \phi^h/(1-\phi^2)\) bergantung hanya pada \(h\). QED.
Problem 2: Derive ACF dari AR(2).
Dari Yule-Walker equations: \(\rho(1) = \phi_1 + \phi_2\rho(1) \Rightarrow \rho(1) = \phi_1/(1-\phi_2)\) \(\rho(2) = \phi_1\rho(1) + \phi_2\) \(\rho(h) = \phi_1\rho(h-1) + \phi_2\rho(h-2)\) untuk \(h \geq 2\)
ACF memenuhi recursion yang sama dengan AR process itu sendiri — solusinya: kombinasi linear dari \(r_1^h\) dan \(r_2^h\) di mana \(r_1, r_2\) adalah inverse dari akar characteristic polynomial.
Problem 3: Mengapa t-statistic dalam spurious regression diverges?
Untuk dua independent I(1) series: OLS estimator \(\hat{\beta} \xrightarrow{d}\) ratio dari dua Brownian motions (Wiener processes), bukan \(N(0,\sigma^2/n)\). t-statistic \(\sim T^{1/2}\) times something nonzero → diverges.
Problem 4: Apa syarat perlu dan cukup untuk cointegration dalam sistem bivariate \((y_t, x_t)\)?
Perlu: keduanya I(1). Cukup: \(\exists \alpha\) sehingga \(y_t - \alpha x_t \sim I(0)\). Secara matrix: rank of cointegrating matrix \(\Pi\) dalam VECM \(\Delta\mathbf{y}_t = \Pi\mathbf{y}_{t-1} + \ldots\) harus antara 0 (no cointegration) dan \(K\) (all stationary).
Navigasi: ← Panel Data Math | Spatial Econometrics →