# How do I simulate $y_t$ with given information?

I want to simulate $y_t$ given a set of parameters $\theta = (\mu, \phi)$, where $y_t$ is given by

$y_t = \epsilon_texp(h_t/2)$,

$h_{t+1} = \mu + \phi(h_t - \mu) + \eta_t,\,\, t = 0,1,...,n.$

and

$\begin{pmatrix} \epsilon_t\\ \eta_t \end{pmatrix}\Bigg|(\rho, \sigma) \sim\,\,i.i.d.\,\,\mathcal{N}_2(0,\Sigma), \,\,\, \Sigma = \begin{pmatrix} 1 & \rho\sigma\\ \rho\sigma & \sigma^2 \end{pmatrix}$.

Before I had to simulate $y_t$ with $\rho = 0$ (meaning that there was no correlation between $\epsilon_t$ and $\eta_t$) which was pretty straightforward. I just simulated the vector h with the given parameters $\theta$ and then calculated the $y_t$ given the $h_{t+1}$. With $\rho\neq0$ however, I'm not so sure how to handle this problem.

Q: How do I simulate the $y_t$, taking the correlation between $\epsilon_t$ and $\eta_t$ into account?

• Does this require the self-study tag? Is it intentional that $\eta_t$ drives $h_{t+1}$ (i.e., with a lag)? – Christoph Hanck Jun 27 '17 at 11:10
• Yes that's intentional! – titusAdam Jun 27 '17 at 12:05

You could first generate the errors from a bivariate normal distribution, as in

library(MASS)
rho <- 0.5
sigma <- 1
Sigma <- matrix(c(1,rho*sigma,rho*sigma,sigma^2), nrow=2)
n <- 101
u <- mvrnorm(n,c(0,0),Sigma)
eps <- u[2:n,1]
eta <- u[1:(n-1),2]
mu <- 1
phi <- 0.5
h <- mu + arima.sim(n=n-1, list(ar=phi), innov = eps)
y <- eps*exp(h/2)


I haven't fully checked if that solution corresponds with how you aim to specify the lag structure.