# arima.sim

0th

Percentile

##### 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/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. 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 (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.
##### 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".

##### concept

autoregression

arima
library(stats) 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)