[R] question about ar1 time series
Josué Polanco
jomopo at gmail.com
Mon Jul 16 15:50:41 CEST 2007
Hello everybody,
I recently wrote a "program" that to generate AR1 time series, here the code:
#By Jomopo. Junio-2007, Leioa, Vizcaya
#This program to create the AR1 syntetic series (one by one)
#Where the mean is zero, but the variance of the serie AR1 and
#the coef. of AR1 are be changed. If var serie AR1 = 1 then is standarized!
#Final version for AR1 time series program
#Mon Jul 16 11:58:03 CEST 2007 Checked again in R-prompt, and it's OK!
#Creating the sintetic AR1 series... where the "white-noise"
#has a mean = 0, and the var = sigmaz_c = stand_dev^2 is whatever value,
#if sigmaz_c = 1 then this "white-noise" is a "Gaussian-noise."
#rho1 (or alpha in another text-books ;-)) < 1 (in fact 0 < rho1 < 1) so that
#the system can be stationary.
#Where var_serie is the variance of the serie
cat("\n Hello, this is creat_AR1_synt_ser.R. \n These are the input
parameters: synt_series(ar1_length, rho1, ...), where rho1 is the
correlat. coef.\n")
ar1 <- function(x, rho1, af)
{
return(x*rho1 + runif(1, -af, af))
}
#Spin-up for the AR1 series. For this case is enough with this amount
spinup <- function(x0, rho1, af)
{
xt <- x0
for (i in 1:100) {
xtp1 <- ar1(xt, rho1, af)
xt <- xtp1
}
return(xt)
}
#Wherein "ar1_length" is the number of data in AR1 series
#rho1 is a correlation coef.
#sigmaz_c is optional
synt_series <- function(ar1_length, rho1, var_serie)
{
if( (var_serie <= 0) || rho1 <= -1 || rho1 >= 1 )
stop("The variance of the serie should be > 0, or the rho1
parameter should be between (-1, 1) for that the serie can be
stationary, be careful with this, bye. \n")
syntdata <- rep(0, ar1_length)
#af = adjustement factor, i.e. for that the var of random numbers =
var of white noise (check the manual of runif)
af <- sqrt( 3 * var_serie * (1 - rho1) * (1 + rho1) )
x0 <- runif(1, -af, af)
syntdata[1] <- spinup(x0, rho1, af)
for (i in 2:ar1_length) {
syntdata[i] <- ar1(syntdata[i - 1], rho1, af)
}
return(syntdata)
}
I would like some suggestions and hints.
Thanks a lot for your help!
--
Josué Mosés Polanco Martínez
Correo-e alternativo jomopo at linuxmail.org
----
It is a wasted day unless you have learned something new and made
someone smile -Mark Weingartz.
More information about the R-help
mailing list