arima0
ARIMA Modelling of Time Series  Preliminary Version
Fit an ARIMA model to a univariate time series, and forecast from the fitted model.
 Keywords
 ts
Usage
arima0(x, order = c(0, 0, 0), seasonal = list(order = c(0, 0, 0), period = NA), xreg = NULL, include.mean = TRUE, delta = 0.01, transform.pars = TRUE, fixed = NULL, init = NULL, method = c("ML", "CSS"), n.cond, optim.control = list())
"predict"(object, n.ahead = 1, newxreg, se.fit = TRUE, ...)
Arguments
 x
 a univariate time series
 order
 A specification of the nonseasonal part of the ARIMA model: the three components $(p, d, q)$ are the AR order, the degree of differencing, and the MA order.
 seasonal
 A specification of the seasonal part of the ARIMA
model, plus the period (which defaults to
frequency(x)
). This should be a list with componentsorder
andperiod
, but a specification of just a numeric vector of length 3 will be turned into a suitable list with the specification as theorder
.  xreg
 Optionally, a vector or matrix of external regressors,
which must have the same number of rows as
x
.  include.mean
 Should the ARIMA model include
a mean term? The default is
TRUE
for undifferenced series,FALSE
for differenced ones (where a mean would not affect the fit nor predictions).  delta
 A value to indicate at which point ‘fast recursions’ should be used. See the ‘Details’ section.
 transform.pars
 Logical. If true, the AR parameters are
transformed to ensure that they remain in the region of
stationarity. Not used for
method = "CSS"
.  fixed
 optional numeric vector of the same length as the total
number of parameters. If supplied, only
NA
entries infixed
will be varied.transform.pars = TRUE
will be overridden (with a warning) if any ARMA parameters are fixed.  init
 optional numeric vector of initial parameter
values. Missing values will be filled in, by zeroes except for
regression coefficients. Values already specified in
fixed
will be ignored.  method
 Fitting method: maximum likelihood or minimize conditional sumofsquares. Can be abbreviated.
 n.cond
 Only used if fitting by conditionalsumofsquares: the number of initial observations to ignore. It will be ignored if less than the maximum lag of an AR term.
 optim.control
 List of control parameters for
optim
.  object
 The result of an
arima0
fit.  newxreg
 New values of
xreg
to be used for prediction. Must have at leastn.ahead
rows.  n.ahead
 The number of steps ahead for which prediction is required.
 se.fit
 Logical: should standard errors of prediction be returned?
 ...
 arguments passed to or from other methods.
Details
Different definitions of ARMA models have different signs for the AR and/or MA coefficients. The definition here has
$$X_t = a_1X_{t1} + \cdots + a_pX_{tp} + e_t + b_1e_{t1} + \dots + b_qe_{tq}$$
and so the MA coefficients differ in sign from those of
SPLUS. Further, if include.mean
is true, this formula
applies to $Xm$ rather than $X$. For ARIMA models with
differencing, the differenced series follows a zeromean ARMA model.
The variance matrix of the estimates is found from the Hessian of the loglikelihood, and so may only be a rough guide, especially for fits close to the boundary of invertibility.
Optimization is done by optim
. It will work
best if the columns in xreg
are roughly scaled to zero mean
and unit variance, but does attempt to estimate suitable scalings.
Finitehistory prediction is used. This is only statistically
efficient if the MA part of the fit is invertible, so
predict.arima0
will give a warning for noninvertible MA
models.
Value

For
 coef
 a vector of AR, MA and regression coefficients,
 sigma2
 the MLE of the innovations variance.
 var.coef
 the estimated variance matrix of the coefficients
coef
.  loglik
 the maximized loglikelihood (of the differenced data), or the approximation to it used.
 arma
 A compact form of the specification, as a vector giving the number of AR, MA, seasonal AR and seasonal MA coefficients, plus the period and the number of nonseasonal and seasonal differences.
 aic
 the AIC value corresponding to the loglikelihood. Only
valid for
method = "ML"
fits.  residuals
 the fitted innovations.
 call
 the matched call.
 series
 the name of the series
x
.  convergence
 the value returned by
optim
.  n.cond
 the number of initial observations not used in the fitting. For
arima0
, a list of class "arima0"
with components:predict.arima0
, a time series of predictions, or if
se.fit = TRUE
, a list with components pred
, the
predictions, and se
, the estimated standard errors. Both
components are time series.
Note
This is a preliminary version, and will be replaced by arima
.
The standard errors of prediction exclude the uncertainty in the estimation of the ARMA model and the regression coefficients.
The results are likely to be different from SPLUS's
arima.mle
, which computes a conditional likelihood and does
not include a mean in the model. Further, the convention used by
arima.mle
reverses the signs of the MA coefficients.
Fitting methods
The exact likelihood is computed via a statespace representation of
the ARMA process, and the innovations and their variance found by a
Kalman filter based on Gardner et al (1980). This has
the option to switch to ‘fast recursions’ (assume an
effectively infinite past) if the innovations variance is close
enough to its asymptotic bound. The argument delta
sets the
tolerance: at its default value the approximation is normally
negligible and the speedup considerable. Exact computations can be
ensured by setting delta
to a negative value. If transform.pars
is true, the optimization is done using an
alternative parametrization which is a variation on that suggested by
Jones (1980) and ensures that the model is stationary. For an AR(p)
model the parametrization is via the inverse tanh of the partial
autocorrelations: the same procedure is applied (separately) to the
AR and seasonal AR terms. The MA terms are also constrained to be
invertible during optimization by the same transformation if
transform.pars
is true. Note that the MLE for MA terms does
sometimes occur for MA polynomials with unit roots: such models can be
fitted by using transform.pars = FALSE
and specifying a good
set of initial values (often obtainable from a fit with
transform.pars = TRUE
). Missing values are allowed, but any missing values
will force delta
to be ignored and full recursions used.
Note that missing values will be propagated by differencing, so the
procedure used in this function is not fully efficient in that case. Conditional sumofsquares is provided mainly for expositional
purposes. This computes the sum of squares of the fitted innovations
from observation
n.cond
on, (where n.cond
is at least the maximum lag of
an AR term), treating all earlier innovations to be zero. Argument
n.cond
can be used to allow comparability between different
fits. The ‘part loglikelihood’ is the first term, half the
log of the estimated mean square. Missing values are allowed, but
will cause many of the innovations to be missing. When regressors are specified, they are orthogonalized prior to
fitting unless any of the coefficients is fixed. It can be helpful to
roughly scale the regressors to zero mean and unit variance.
References
Brockwell, P. J. and Davis, R. A. (1996) Introduction to Time Series and Forecasting. Springer, New York. Sections 3.3 and 8.3.
Gardner, G, Harvey, A. C. and Phillips, G. D. A. (1980) Algorithm AS154. An algorithm for exact maximum likelihood estimation of autoregressivemoving average models by means of Kalman filtering. Applied Statistics 29, 311322.
Harvey, A. C. (1993) Time Series Models, 2nd Edition, Harvester Wheatsheaf, sections 3.3 and 4.4.
Harvey, A. C. and McKenzie, C. R. (1982) Algorithm AS182. An algorithm for finite sample prediction from ARIMA processes. Applied Statistics 31, 180187.
Jones, R. H. (1980) Maximum likelihood fitting of ARMA models to time series with missing observations. Technometrics 22 389395.
See Also
Examples
library(stats)
## Not run: arima0(lh, order = c(1,0,0))
arima0(lh, order = c(3,0,0))
arima0(lh, order = c(1,0,1))
predict(arima0(lh, order = c(3,0,0)), n.ahead = 12)
arima0(lh, order = c(3,0,0), method = "CSS")
# for a model with as few years as this, we want full ML
(fit < arima0(USAccDeaths, order = c(0,1,1),
seasonal = list(order=c(0,1,1)), delta = 1))
predict(fit, n.ahead = 6)
arima0(LakeHuron, order = c(2,0,0), xreg = time(LakeHuron)1920)
## Not run:
# ## presidents contains NAs
# ## graphs in example(acf) suggest order 1 or 3
# (fit1 < arima0(presidents, c(1, 0, 0), delta = 1)) # avoid warning
# tsdiag(fit1)
# (fit3 < arima0(presidents, c(3, 0, 0), delta = 1)) # smaller AIC
# tsdiag(fit3)## End(Not run)