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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to