arima.sim {stats} | R Documentation |

## Simulate from an ARIMA Model

### Description

Simulate from an ARIMA model.

### 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. |

`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"`

.

### See Also

`arima`

### Examples

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)

[Package

*stats* version 2.5.0

Index]