Skip to content
All library documents

Simulating ARMA-GARCH Returns with Gaussian Shocks

Article Quant Q&A · Author: Masher

Summary

The document asks how to simulate future stock returns from an ARMA(1,0)-GARCH(1,1) model when the conditional mean and volatility are forecast. Its proposed one-step approach draws standard normal shocks and scales them by the forecast conditional standard deviation, then adds the forecast conditional mean. Under the stated Gaussian-shock assumption, this describes draws from the model’s conditional return distribution.

An included R example simulates Gaussian shocks, updates conditional variance recursively using squared shocks and the prior variance, and aggregates simulated returns across a horizon. However, the example does not include the lagged-return term in the question’s model, and it returns summed horizon returns. It therefore illustrates a related GARCH simulation rather than a complete implementation of the stated ARMA-GARCH process. The document gives no fitted parameters, empirical validation, or discussion of how simulation uncertainty affects asset allocation decisions.

Key ideas

  • One-step return draws can be formed by adding a scaled random shock to the forecast conditional mean.
  • The shock distribution and conditional volatility determine the simulated conditional return distribution.
  • GARCH simulations update future variance recursively using prior shocks and variance.
  • The supplied example omits the lagged-return component of the stated ARMA-GARCH model.

Tags

Full text
# Simulating returns from ARMA(1,0)-GARCH(1,1) model


# Simulating returns from ARMA(1,0)-GARCH(1,1) model












I want to obtain a simulation of one-step ahead forecasts of stock returns process governed by ARMA(1,0)-GARCH(1,1) process. The returns are of form:

$x_t = \mu + \delta x_{t-1} + \sigma_t z_t$

From my GARCH model I can forecast the conditional mean $\mu + \delta x_{t-1}$ and the conditional standard deviation $\sigma_t$. Let's assume that the distribution of $z_t$ is Gaussian.

So now I am wondering how to obtain the simulation of the stock returns using the above-described approach. My initial solution would be to simulate a number of random variables from the Gaussian distribution $N(0,1)$ and then create my one-step ahead forecast simulations as:

conditional mean (from time $t+1$) + $N(0,1)$ random variable * conditional standard deviation (from time $t+1$)

edit: what is in case of the Gaussian distribution equivalent to: $x_{t+1} \sim N((\mu + \delta x_{t}) ,\sigma_{t+1})$

Is this approach for simulating one-step ahead forecasts of stock returns appropriate? I need those simulations to create asset allocation strategies.

## Answer by Neeraj (score 3, accepted)

https://quant.stackexchange.com/a/24707

This question has already been answered on Stack Overflow. As it is important to Quant Finance, so I have added R code here. Others users may add code of other programming software to simulate ARMA(1,0)-GARCH(1,1) model.

```
sim.GARCH <- function(
  horizon=5, N=1e4, 
  h0 = 2e-4, 
  mu = 0, omega=0,
  alpha1 = 0.027,
  beta1  = 0.963
){
  ret <- zt <- et <- ht <- matrix(NA, nc=horizon, nr=N)
  ht[,1] <- h0
  for(j in 1:horizon){
    zt[,j]   <- rnorm(N,0,1)
    et[,j]   <- zt[,j]*sqrt(ht[,j])
    ret[,j]  <- mu + et[,j]
    if( j < horizon )
      ht[,j+1] <- omega+ alpha1*et[,j]^2 + beta1*ht[,j]
  }
  apply(ret, 1, sum)
}
x <- sim.GARCH(N=1e5)
```

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.