[Rd] using innov in arima.sim
Hjellvik Vidar
Vidar.Hjellvik at imr.no
Mon Oct 10 17:23:04 CEST 2005
Hello,
I have used the arima.sim function to generate a lot of time series, but to day I got som results that I didn't quite understand. Generating two time series z0 and z1 as
eps <- rnorm(n, sd=0.03)
z0 <- arima.sim(list(ar=c(0.9)), n=n, innov=eps)
and
z1 <- arima.sim(list(ar=c(0.9)), n=n, sd=0.03),
I would expect z0 and z1 to be qualitatively similar. However, with n=10 the two series could look like this:
z0 = -4.1258 -3.7326 -3.3269 -2.9813 -2.7314 -2.4416 -2.2223 -2.0083 -1.7848 -1.6016
z1 = -0.1001 -0.0885 -0.0767 -0.0531 -0.0647 -0.0268 -0.0118 -0.0153 0.0038 -0.0364
Using a larger n, z0 converges to the right level after some time, but it would have been nice to have it there from the first observation... I took a look into the code for arima.sim, and I think I found the reason for this behaviour in the line
x <- ts(c(rand.gen(n.start, ...), innov[1:n]), start = 1 - n.start)
It seems like the "warming up" innovations are standard normal, and that that's why the first observations of z0 are so large in magnitude. So one solution is to generate
z0 <- arima.sim(list(ar=c(0.9)), n=n, innov=eps, sd=sd(eps)),
but I didn't figure out this before having taken a look at the code. So my question is:
Wouldn't it be a good idea to have the calculation of the standard deviation of the "warming up" observations done in arima.sim? Or maybe that the "warming up" observations were sampled from innov, in case the innovations are not gaussian?
Best regards,
Vidar Hjellvik
More information about the R-devel
mailing list