sim_sarima | R Documentation |
Simulate trajectories of seasonal arima models.
sim_sarima(model, n = NA, rand.gen = rnorm, n.start = NA, x, eps,
xcenter = NULL, xintercept = NULL, ...)
model |
specification of the model, a list or a model object, see ‘Details’. |
rand.gen |
random number generator for the innovations. |
n |
length of the time series. |
n.start |
number of burn-in observations. |
x |
initial/before values of the time series, a list, a numeric vector or time series, see Details. |
eps |
initial/before values of the innovations, a list or a numeric vector, see Details. |
xintercept |
non-constant intercept which may represent trend or covariate effects. |
xcenter |
currently ignored. |
... |
additional arguments for |
The model can be specified by a model object, e.g., from class
SarimaModel. It can also be a list with elements
suitable to be passed to new("SarimaModel", ...)
, see the
description of class "SarimaModel"
. Here are some of the
possible components:
number of seasons in a year (or whatever is the larger time unit)
order of differencing, specifies the factor
(1-B)^{d1}
for the model.
order of seasonal differencing, specifies the factor
(1-B^{period})^{ds}
for the model.
ar parameters (non-seasonal)
ma parameters (non-seasonal)
seasonal ar parameters
seasonal ma parameters
Additional arguments for rand.gen
may be specified via the
"..." argument. In particular, the length of the generated series
is specified with argument n
. Arguments for rand.gen
can
also be passed via the "..." argument.
If the model is stationary the generated time series is stationary starting with the first value. In particular, there is no need for a ‘warm-up’ period.
Information about the model is printed on the screen if
info = "print"
. To suppress this, set info
to any other
value.
For multple simulations with the same (or almost the same) setup, it is
better to execute prepareSimSarima
once and call the
function returned by it as many times as needed.
an object of class "ts", a simulated time series from the given model
Georgi N. Boshnakov
require("PolynomF") # guaranteed to be available since package "sarima" imports it.
x <- sim_sarima(n=144, model = list(ma=0.8)) # MA(1)
x <- sim_sarima(n=144, model = list(ar=0.8)) # AR(1)
x <- sim_sarima(n=144, model = list(ar=c(rep(0,11),0.8))) # SAR(1), 12 seasons
x <- sim_sarima(n=144, model = list(ma=c(rep(0,11),0.8))) # SMA(1)
# more enlightened SAR(1) and SMA(1)
x <- sim_sarima(n=144,model=list(sar=0.8, nseasons=12, sigma2 = 1)) # SAR(1), 12 seasons
x <- sim_sarima(n=144,model=list(sma=0.8, nseasons=12, sigma2 = 1)) # SMA(1)
x <- sim_sarima(n=144, model = list(iorder=1, sigma2 = 1)) # (1-B)X_t = e_t (random walk)
acf(x)
acf(diff(x))
x <- sim_sarima(n=144, model = list(iorder=2, sigma2 = 1)) # (1-B)^2 X_t = e_t
x <- sim_sarima(n=144, model = list(siorder=1,
nseasons=12, sigma2 = 1)) # (1-B)^{12} X_t = e_t
x <- sim_sarima(n=144, model = list(iorder=1, siorder=1,
nseasons=12, sigma2 = 1))
x <- sim_sarima(n=144, model = list(ma=0.4, iorder=1, siorder=1,
nseasons=12, sigma2 = 1))
x <- sim_sarima(n=144, model = list(ma=0.4, sma=0.7, iorder=1, siorder=1,
nseasons=12, sigma2 = 1))
x <- sim_sarima(n=144, model = list(ar=c(1.2,-0.8), ma=0.4,
sar=0.3, sma=0.7, iorder=1, siorder=1,
nseasons=12, sigma2 = 1))
x <- sim_sarima(n=144, model = list(iorder=1, siorder=1,
nseasons=12, sigma2 = 1),
x = list(init=AirPassengers[1:13]))
p <- polynom(c(1,-1.2,0.8))
solve(p)
abs(solve(p))
sim_sarima(n=144, model = list(ar=c(1.2,-0.8), ma=0.4, sar=0.3, sma=0.7,
iorder=1, siorder=1, nseasons=12))
x <- sim_sarima(n=144, model=list(ma=0.4, iorder=1, siorder=1, nseasons=12))
acf(x, lag.max=48)
x <- sim_sarima(n=144, model=list(sma=0.4, iorder=1, siorder=1, nseasons=12))
acf(x, lag.max=48)
x <- sim_sarima(n=144, model=list(sma=0.4, iorder=0, siorder=0, nseasons=12))
acf(x, lag.max=48)
x <- sim_sarima(n=144, model=list(sar=0.4, iorder=0, siorder=0, nseasons=12))
acf(x, lag.max=48)
x <- sim_sarima(n=144, model=list(sar=-0.4, iorder=0, siorder=0, nseasons=12))
acf(x, lag.max=48)
x <- sim_sarima(n=144, model=list(ar=c(1.2, -0.8), ma=0.4, sar=0.3, sma=0.7,
iorder=1, siorder=1, nseasons=12))
## use xintercept to include arbitrary trend/covariates
sim_sarima(n = 144, model = list(sma = 0.4, ma = 0.4, sar = 0.8, ar = 0.5,
nseasons = 12, sigma2 = 1), xintercept = 1:144)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.