Markets: A Rigorous Course

13.2 Linear time-series models: ARMA

Advanced about 25 min

Motivation

ARMA models are the baseline forecasters for any stationary series. For index returns they forecast almost nothing, and knowing why is the point. For spreads, basis and volatility proxies they forecast a great deal, and the same algebra gives half-lives of mean reversion.

Setup#

A process {Xt}\{X_t\} is weakly stationary if EXt=μ\mathbb E X_t = \mu and Cov⁡(Xt,Xt−k)=γk\operatorname{Cov}(X_t, X_{t-k}) = \gamma_k do not depend on tt. Its autocorrelation is ρk=γk/γ0\rho_k = \gamma_k/\gamma_0. White noise {et}\{e_t\} is uncorrelated with mean 0 and variance σ2\sigma^2. The lag operator is LXt=Xt−1L X_t = X_{t-1}.

An AR(1) is

Xt=c+ϕXt−1+et.(13.3)X_t = c + \phi X_{t-1} + e_t. \tag{13.3}

Proposition 13.3AR(1)

If ∣ϕ∣<1|\phi| < 1, (13.3) has a unique weakly stationary solution

Xt=μ+∑j=0∞ϕjet−j,μ=c1−ϕ,(13.4)X_t = \mu + \sum_{j=0}^{\infty} \phi^j e_{t-j}, \qquad \mu = \frac{c}{1-\phi}, \tag{13.4}

with γ0=σ2/(1−ϕ2)\gamma_0 = \sigma^2/(1-\phi^2) and ρk=ϕ∣k∣\rho_k = \phi^{|k|}. If ∣ϕ∣≥1|\phi| \ge 1 there is no stationary causal solution.

Proof

Iterate (13.3) kk times: Xt=c∑j=0k−1ϕj+ϕkXt−k+∑j=0k−1ϕjet−jX_t = c\sum_{j=0}^{k-1}\phi^j + \phi^k X_{t-k} + \sum_{j=0}^{k-1}\phi^j e_{t-j}. If ∣ϕ∣<1|\phi|<1 and XX is stationary, E[(ϕkXt−k)2]=ϕ2k(γ0+μ2)→0\mathbb E[(\phi^k X_{t-k})^2] = \phi^{2k}(\gamma_0 + \mu^2) \to 0, and the partial sums of ∑ϕjet−j\sum\phi^j e_{t-j} are Cauchy in L2L^2 because ∑ϕ2j<∞\sum \phi^{2j} < \infty. Letting k→∞k\to\infty gives (13.4). Then γ0=σ2∑jϕ2j=σ2/(1−ϕ2)\gamma_0 = \sigma^2\sum_j \phi^{2j} = \sigma^2/(1-\phi^2) and γk=σ2∑jϕjϕj+k=ϕkγ0\gamma_k = \sigma^2\sum_j \phi^j\phi^{j+k} = \phi^k\gamma_0. If ∣ϕ∣≥1|\phi| \ge 1, a stationary solution would need Var⁡(Xt)=ϕ2Var⁡(Xt−1)+σ2\operatorname{Var}(X_t) = \phi^2 \operatorname{Var}(X_{t-1}) + \sigma^2, i.e. γ0(1−ϕ2)=σ2>0\gamma_0(1-\phi^2) = \sigma^2 > 0, impossible for ϕ2≥1\phi^2 \ge 1.∎

An AR(pp) is Φ(L)Xt=c+et\Phi(L) X_t = c + e_t with Φ(z)=1−ϕ1z−⋯−ϕpzp\Phi(z) = 1 - \phi_1 z - \dots - \phi_p z^p.

Proposition 13.4AR(pp) stationarity

The AR(pp) has a stationary causal solution Xt=μ+∑j≥0ψjet−jX_t = \mu + \sum_{j\ge0}\psi_j e_{t-j} with ∑∣ψj∣<∞\sum|\psi_j|<\infty iff all roots of Φ(z)=0\Phi(z) = 0 lie outside the unit circle; equivalently, all eigenvalues of the companion matrix

F=(ϕ1ϕ2⋯ϕp10⋯0⋮⋱⋮0⋯10)F = \begin{pmatrix} \phi_1 & \phi_2 & \cdots & \phi_p \\ 1 & 0 & \cdots & 0 \\ \vdots & \ddots & & \vdots \\ 0 & \cdots & 1 & 0 \end{pmatrix}

lie strictly inside it.

Sketch

Factor Φ(z)=∏i=1p(1−λiz)\Phi(z) = \prod_{i=1}^p (1 - \lambda_i z), where the λi\lambda_i are the reciprocals of the roots and are also the eigenvalues of FF (expand det⁡(λI−F)=λp−ϕ1λp−1−⋯−ϕp=λpΦ(1/λ)\det(\lambda I - F) = \lambda^p - \phi_1\lambda^{p-1} - \dots - \phi_p = \lambda^p \Phi(1/\lambda)). Each factor (1−λiL)(1-\lambda_i L) is invertible with absolutely summable inverse ∑jλijLj\sum_j \lambda_i^j L^j iff ∣λi∣<1|\lambda_i|<1, by Proposition 13.3. The product of absolutely summable filters is absolutely summable. The converse follows as in Proposition 13.3 applied to the state vector (Xt,…,Xt−p+1)′(X_t, \dots, X_{t-p+1})', which evolves as ξt=Fξt−1+(et,0,…,0)′\xi_t = F\xi_{t-1} + (e_t, 0, \dots, 0)'. Hamilton (1994, ch. 1 and 3.4) has the full argument.∎

For an MA(qq), Xt=μ+Θ(L)etX_t = \mu + \Theta(L)e_t is always stationary. It is invertible (expressible as an AR(∞\infty) in past XX) iff the roots of Θ(z)\Theta(z) lie outside the unit circle; this makes the forecast a function of observed data. An ARMA(p,qp,q) combines both, and the conditions apply to Φ\Phi and Θ\Theta separately.

Proposition 13.5Yule–Walker

For a stationary AR(pp) with μ=0\mu = 0,

ρk=∑j=1pϕjρk−j,k≥1,σ2=γ0(1−∑j=1pϕjρj).(13.5)\rho_k = \sum_{j=1}^p \phi_j \rho_{k-j}, \quad k \ge 1, \qquad \sigma^2 = \gamma_0\Big(1 - \sum_{j=1}^p \phi_j\rho_j\Big). \tag{13.5}

In matrix form, Rϕ=ρR\boldsymbol\phi = \boldsymbol\rho with Rij=ρ∣i−j∣R_{ij} = \rho_{|i-j|}, i,j=1..pi,j = 1..p, and ρ=(ρ1,…,ρp)′\boldsymbol\rho = (\rho_1, \dots, \rho_p)'.

Proof

Multiply Xt=∑jϕjXt−j+etX_t = \sum_j \phi_j X_{t-j} + e_t by Xt−kX_{t-k}, k≥1k\ge1, and take expectations. Causality means Xt−kX_{t-k} is a function of et−k,et−k−1,…e_{t-k}, e_{t-k-1},\dots, so E[etXt−k]=0\mathbb E[e_t X_{t-k}] = 0. This gives γk=∑jϕjγk−j\gamma_k = \sum_j\phi_j\gamma_{k-j}; divide by γ0\gamma_0. For k=0k=0: γ0=∑jϕjγj+E[etXt]=∑jϕjγj+σ2\gamma_0 = \sum_j \phi_j\gamma_j + \mathbb E[e_t X_t] = \sum_j\phi_j\gamma_j + \sigma^2, since E[etXt]=E[et2]\mathbb E[e_tX_t] = \mathbb E[e_t^2]. Rearrange.∎

The Yule–Walker estimator replaces ρk\rho_k by sample autocorrelations and solves the linear system. The second equation shows that the population one-step R2R^2 of an AR(pp) is 1−σ2/γ0=∑jϕjρj1 - \sigma^2/\gamma_0 = \sum_j \phi_j \rho_j. For an AR(1), R2=ϕ2R^2 = \phi^2.

Proposition 13.6AR(1) forecasts

For (13.3) with ∣ϕ∣<1|\phi|<1, the minimum-MSE hh-step forecast and its error variance are

Et[Xt+h]=μ+ϕh(Xt−μ),Var⁡t(Xt+h)=σ2 1−ϕ2h1−ϕ2.(13.6)\mathbb E_t[X_{t+h}] = \mu + \phi^h (X_t - \mu), \qquad \operatorname{Var}_t(X_{t+h}) = \sigma^2\,\frac{1-\phi^{2h}}{1-\phi^2}. \tag{13.6}
Proof

Iterate: Xt+h−μ=ϕh(Xt−μ)+∑j=0h−1ϕjet+h−jX_{t+h} - \mu = \phi^h(X_t - \mu) + \sum_{j=0}^{h-1}\phi^j e_{t+h-j}. The first term is Ft\mathcal F_t-measurable; the sum has mean zero given Ft\mathcal F_t and variance σ2∑j=0h−1ϕ2j\sigma^2\sum_{j=0}^{h-1}\phi^{2j}. The conditional mean minimises MSE among Ft\mathcal F_t-measurable forecasts.∎

The deviation from the mean halves after h1/2=ln⁡0.5/ln⁡ϕh_{1/2} = \ln 0.5/\ln\phi periods. This is the half-life used for mean-reverting spreads (M10 (10.19); for an OU spread, M13A · 13A.7 gives the continuous-time version ln⁡2/κ\ln 2/\kappa and the precision of its estimate; Chan, Algorithmic Trading, ch. 2) and, with ϕ\phi replaced by α+β\alpha+\beta, for GARCH variance (13.4).

Worked example: Yule–Walker on daily index returns#

Suppose the sample autocorrelations of a large-cap Indian index's daily returns are ρ^1=0.06\hat\rho_1 = 0.06 and ρ^2=−0.03\hat\rho_2 = -0.03 (illustrative values of the size M02 reports for index data; measure your own). Solve

(10.060.061)(ϕ1ϕ2)=(0.06−0.03).\begin{pmatrix}1 & 0.06\\ 0.06 & 1\end{pmatrix}\begin{pmatrix}\phi_1\\ \phi_2\end{pmatrix} = \begin{pmatrix}0.06\\ -0.03\end{pmatrix}.

The determinant is 1−0.0036=0.99641 - 0.0036 = 0.9964. So ϕ1=(0.06−0.06⋅(−0.03))/0.9964=0.0618/0.9964=0.06202\phi_1 = (0.06 - 0.06\cdot(-0.03))/0.9964 = 0.0618/0.9964 = 0.06202 and ϕ2=(−0.03−0.06⋅0.06)/0.9964=−0.0336/0.9964=−0.03372\phi_2 = (-0.03 - 0.06\cdot 0.06)/0.9964 = -0.0336/0.9964 = -0.03372. The one-step R2R^2 is ϕ1ρ1+ϕ2ρ2=0.003721+0.001012=0.47%\phi_1\rho_1 + \phi_2\rho_2 = 0.003721 + 0.001012 = 0.47\%. With 2,500 days of data, the standard error of each ρ^k\hat\rho_k under the null of no autocorrelation is about 1/2500=0.021/\sqrt{2500} = 0.02, so ρ^1=0.06\hat\rho_1 = 0.06 is "significant" at 3 standard errors. It is also economically almost useless: a forecast with R2=0.5%R^2 = 0.5\% of a daily return with 1% volatility has a standard deviation of 0.0047×1%≈0.07%\sqrt{0.0047}\times 1\% \approx 0.07\%, or 7 basis points. M01 shows that a round trip in Indian intraday equity costs about 8 basis points. The forecast does not cover costs.

Practitioner notes

  • Positive lag-1 autocorrelation in index returns is partly an artefact of stale prices of less liquid constituents (nonsynchronous trading). An index future, which trades continuously, shows less of it. Fit models to what you can trade.
  • Where ARMA earns its keep: the futures basis (M07), calendar spreads, pairs spreads, and volatility proxies such as ln⁡∣rt∣\ln|r_t| or realised variance. These have large ϕ\phi and therefore large R2R^2.
  • Order selection by AIC/BIC on the full sample, followed by an "out-of-sample" test on the same sample, is a leak. Select within each training window (13.6).

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.