arima.sim
Simulate from an ARIMA Model
Simulate from an ARIMA model.
- Keywords
- ts
Usage
arima.sim(model, n, rand.gen = rnorm, innov = rand.gen(n, …),
n.start = NA, start.innov = rand.gen(n.start, …),
…)
Arguments
- model
A list with component
ar
and/orma
giving the AR and MA coefficients respectively. Optionally a componentorder
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. A strictly positive integer.
- 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 (andn.start
is by default computed inside the function).- …
additional arguments for
rand.gen
. Most usefully, the standard deviation of the innovations generated byrnorm
can be specified bysd
.
Details
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
.
Value
A time-series object of class "ts"
.
See Also
Examples
library(stats)
# NOT RUN {
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)
# }