arima0                 package:stats                 R Documentation

ARIMA Modelling of Time Series - Preliminary Version

Description:

     Fit an ARIMA model to a univariate time series, and forecast from
     the fitted model.

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())

     ## S3 method for class 'arima0':
     predict(object, n.ahead = 1, newxreg, se.fit = TRUE, ...)

Arguments:

       x: a univariate time series

   order: A specification of the non-seasonal 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 components 'order' and 'period', but a
          specification of just a numeric vector of length 3 will be
          turned into a suitable list with the specification as the
          'order'.

    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 in
          'fixed' 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
          sum-of-squares.

  n.cond: Only used if fitting by conditional-sum-of-squares: 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
          least 'n.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[1]X[t-1] + ... + a[p]X[t-p] + e[t] + b[1]e[t-1] + ... + b[q]e[t-q]'


     and so the MA coefficients differ in sign from those of S-PLUS. 
     Further, if 'include.mean' is true, this formula applies to X-m
     rather than X.  For ARIMA models with differencing, the
     differenced series follows a zero-mean ARMA model.

     The variance matrix of the estimates is found from the Hessian of
     the log-likelihood, 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.

     Finite-history 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 non-invertible MA models.

Value:

     For 'arima0', a list of class '"arima0"' with components:

    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 log-likelihood (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 non-seasonal and seasonal
          differences.

     aic: the AIC value corresponding to the log-likelihood. 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 '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.

Fitting methods:

     The exact likelihood is computed via a state-space 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
     speed-up 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').

     As from R 1.5.0 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 sum-of-squares 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 log-likelihood'
     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.

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 S-PLUS'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.

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
     autoregressive-moving average models by means of Kalman filtering.
     _Applied Statistics_ *29*, 311-322.

     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*, 180-187.

     Jones, R. H. (1980) Maximum likelihood fitting of ARMA models to
     time series with missing observations. _Technometrics_ *20*
     389-395.

See Also:

     'arima', 'ar', 'tsdiag'

Examples:

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

