| arima.sim {stats} | R Documentation |
Simulate from an ARIMA model.
arima.sim(model, n, rand.gen = rnorm, innov = rand.gen(n, ...),
n.start = NA, start.innov = rand.gen(n.start, ...),
...)
model |
A list with component ar and/or ma giving
the AR and MA coefficients respectively. Optionally a component
order can be used. An empty list gives an ARIMA(0, 0, 0)
model, that is white noise. |
n |
length of output series, before un-differencing. |
rand.gen |
optional: a function to generate the innovations. |
innov |
an optional times series of innovations. If not
provided, rand.gen is used. |
n.start |
length of ‘burn-in’ period. If NA, the
default, a reasonable value is computed. |
start.innov |
an optional times series of innovations to be used
for the burn-in period. If supplied there must be at least
n.start values (and n.start is by default computed
inside the function). |
... |
additional arguments for rand.gen. Most usefully,
the standard deviation of the innovations generated by rnorm
can be specified by sd. |
See arima for the precise definition of an ARIMA model.
The ARMA model is checked for stationarity.
ARIMA models are specified via the order component of
model, in the same way as for arima. Other
aspects of the order component are ignored, but inconsistent
specifications of the MA and AR orders are detected. The
un-differencing assumes previous values of zero, and to remind the
user of this, those values are returned.
Random inputs for the ‘burn-in’ period are generated by calling
rand.gen.
A time-series object of class "ts".
require(graphics)
arima.sim(n = 63, list(ar = c(0.8897, -0.4858), ma = c(-0.2279, 0.2488)),
sd = sqrt(0.1796))
# mildly long-tailed
arima.sim(n = 63, list(ar=c(0.8897, -0.4858), ma=c(-0.2279, 0.2488)),
rand.gen = function(n, ...) sqrt(0.1796) * rt(n, df = 5))
# An ARIMA simulation
ts.sim <- arima.sim(list(order = c(1,1,0), ar = 0.7), n = 200)
ts.plot(ts.sim)