Next: arimahelp() Up: Arima Macros Help File Previous: acfarma()   Contents

arima()

Usage:
arima(y [,pdq:vector(p,d,q)] [,PDQ:vector(P,D,Q),seasonal:period]\
  [,x:x,fitmean:T, start:b0,active:active,cast:n, cycles:m,mle:T,\
  mlecycles:m1, masign:Masign, arsign:Arsign, maxit:itmax, minit:itmin,\
  crit:vector(numsig, nsigsq, delta), print:T,keep:T,quiet:T]),
  REAL vector y, REAL variable x, nonnegative integers p, d, q, P, D, Q,
  period > 1, cast, n, m, m1, REAL vector b0, LOGICAL vector active with
  length(active) = length(b0), Masign and Arsign +1 or -1, integers
  itmax, itmin, numsig, nsiqsq, REAL scalar delta >= 0



Keywords: arima models, time domain, nonlinear fitting
arima(y [,pdq:vector(p,d,q)] [,PDQ:vector(P,D,Q),seasonal:Period]),
where y is a REAL vector with no MISSING values and p, d, q, P, D, Q
are non-negative integers and Period > 1 is an integer, uses
unconditional least squares to estimate the parameters of an
ARIMA(p,d,q)x(P,D,Q) time series model, with season length Period.

When d = D = 0, a non-zero mean is fit; otherwise no mean is fit.
Keyword 'seasonal' is required when keyword 'PDQ' is used.

arima(y, x:x [,pdq:vector(p,d,q)] [,PDQ:vector(P,D,Q),seasonal:Period])
does the same, except a linear regression with ARIMA errors of y on the
columns of REAL matrix x is carried out.  x must have no MISSING
elements and nrows(x) = nrows(y).  It should not include a constant
column.

arima(y [, x:x], pdq:pdq, PDQ:PDQ, mle:T) does the same, except maximum
likelihood estimation is used instead of unconditional least squares.

You can use keywords 'minit', 'maxit', 'cast', 'cycles', and 'mlecycles'
to control certain details of the estimation algorithm.  See below for
more information.

You can use keywords 'masign' and 'arsign' or define variables MASIGN
and ARSIGN to control the sign conventions assumed for moving average
and autoregressive coefficients.  See below and topic 'MASIGN' for
details.

The model coefficients estimated include some or all of the following:
   mu     mean (of differenced data when d > 0 or D > 0)
   beta   vector of coefficients of columns of x, if any
   phi    vector of AR coefficients
   theta  vector of MA coefficients
   phiS   vector of seasonal AR coefficients
   thetaS vector of seasonal MA coefficients.

They are grouped in a coefficient vector b = vector(mu, beta, phi,
theta, phiS, thetaS), omitting any coefficients not in the model.

You can provide starting values using keyword 'start'; see below.

To force inclusion of mu when d > 0 or D > 0, use 'fitmean:T' as an
argument.  To force exclusion of mu when d = D = 0, use 'fitmean:T'.
See below.

You can omit certain coefficients from being included in the estimation
algorithm using keyword 'active'; see below.  This is useful when
fitting models using a subset of lags.  Any starting values you provide
for them (non-zero starting value for mu) using 'start' are not changed
but will be used in computing residuals.

When mu is in the model, but is not an active parameter, it is estimated
by the sample mean of the possibly differenced data unless a non-zero
starting value is given.

arima() prints a table of the estimated coefficients, their approximate
standard errors, t = coef/StdErr, and a nominal P-value based on the t
distribution.  It also prints the mean square error (MSE), its degrees
of freedom (DF), -2*log(L), where L = likelihood, a modification of
Akaike's information critirion (AICC), and the complete sum of squared
residuals, including backcast values, if any (RSS).  Printing can be
suppressed by either quiet:T or keep:T; see below.  Side effect
variables are always produced; see below.

DF = n - d - D*Period - (number of parameters being estimated).  When mu
is estimated by a sample mean, it counts as a parameter, even if it is
not active in the optimization (active[1] is false).

arima() creates the following side effect variables
  COEF = bhat = vector(muhat,betahat,phihat,thetahat,phiShat,thetaShat),
    omitting any coefficients not in the model.  When coefficient b[i]
    is inactive (seek keyword 'active' below), COEF[i] = the starting
    value, if any, or 0.
  ALLRESIDUALS = residuals from fitted model including incomplete and
    backcast residuals
  RESIDUALS = ALLRESIDUALS, omitting backcast and incomplete residuals
  RSS = sum(ALLRESIDUALS^2)
  NEG2LOGL = -2*log(likelihood) assuming a Gaussian series.  The likeli-
    hood includes a factor of (2*PI)^((n-d-D*Period)/2)
  NPAR = number of active parameters plus 1 for the mean if estimated
    as sample mean.  The active parameters correspond to rows k of
    XTXINV with XTXINV[k,k] != 0
  JACOBIAN = REAL matrix of derivatives of ALLRESIDUALS with respect to
   active parameters.
  XTXINV = analogue of solve(X' %*% X) matrix in regression computed
   from JACOBIAN, with rows and columns corresponding to inactive
   parameters set to 0
  HII, REAL vector of leverages of length n - d - D*Period, computed
   from JACOBIAN
  GRADIENT = REAL gradient vector (approximation to to partial
   derivatives sum of squares or log likelihood with respect to the
   coefficients) with an element for each active parameter

The innovation variances is estimated as MSE = RSS/(n-d-D*Period-NPAR).
MSE is used to compute estimated standard errors as
sqrt(MSE*diag(XTXINV))

When there is no seasonal part to the model and no omitted lags, you may
be able to speed convergence by finding starting values using macros
hannriss() or innovest() and providing them to arima() using keyword
'start' (see below).

Other ARIMA estimation programs may differ in what is computed as the
estimated innovation variance.  Two alternatives to MSE as computed by
arima() are sum^2(ALLRESIDUALS)/DF and
sum(ALLRESIDUALS^2)/(n-d-D*Period), the maximum likelihood estimate.

Programs also may differ in sign conventions used for the autoregressive
and moving average coefficients.  In arima(), the signs are determined
either by variables MASIGN and ARSIGN (defaults are -1 and -1) or the
value of keywords 'arsign' and 'masign'.  See topic 'MASIGN'.

arima() allows you to choose among several conventions that have been
used for the signs of AR and MA coefficients.  These are specified by
numbers Arsign and Masign with values +1 or -1.  Either or both can be
set as values of keywords 'arsign' and 'masign'; see below.  If not set
by 'arsign', the default value for Arsign is the value of variable
ARSIGN if it exists, or -1 otherwise.  Similarly the default value for
Masign is MASIGN or -1.  For details, see topic 'MASIGN'.

To use the Brockwell and Davis convention, before you start your
analysis you should do the following:
  Cmd> MASIGN <- 1; ARSIGN <- -1

See topic 'MASIGN'.

                  Other Optional Keyword Phrases
  Keyword phrase               Explanation
  ---------------------------------------------------------------------
  fitmean:T or F Include mu in model when T, omit mu otherwise. Default
                 is T with d = D = 0 and F otherwise.  When d > 0 or D
                 > 0, mu is the mean of the differenced series
  active:active  LOGICAL vector with length(active) = npars = length(b)
                 where b = vector(mu, beta, phi, theta, phiS, thetaS).
                 When active[i] is F, b[i] is "inactive" and does not
                 change from its starting value.  If you want to
                 estimate mu by the sample mean rather than least
                 squares or MLE, use active[1] = F and b0[1] = 0
  start:b0       REAL vector b0 = vector(mu0, beta0, phi0, theta0,
                 phiS0, thetaS0) of starting values values for the
                 iteration.  Default is rep(0,npar).  b0 should include
                 values for "inactive" parameters.  When the mean is in
                 the model, b0[1] = 0 is equivalent to b0[1] = sample
                 mean.
  cast:nback     Residuals will be computed by "backcasting" for nback
                 >= 0 time points before the start of the series
  cycles:m       m (non-negative integer) cycles of forecasting/
                 backcasting cycles used in computing residuals; default
                 m = 1.
  masign:Masign  Alters definition of MA parameters.  Masign must be +1
                 or -1.  As an example, a MA(2) model is
                  Y(t) = Z(t) + Masign*(theta[1]*Z(t-1) +
                       theta[2]*Z(t-2))
                 instead of
                  Y(t) = Z(t) - theta[1]*Z(t-1) - theta[2]*Z(t-2)
  arsign:Arsign  Alters definition of AR parameters.  Arsign must be +1
                 or -1.  As an example, an AR(2) model is
                  Y(t) = Z(t) - Arsign*phi[1]*Y(t-1) -
                       Arsign*phi[2]*Y(t-2)
                 instead of
                  Y(t) = Z(t) + phi[1]*Y(t-1) + phi[2]*Y(t-2)
  maxit:itmax    Maximum number of iterations allowed (default 30, 0 is
                 ok).  With mle:T, when itmax < 0, no iterations of
                 least squares fitting is done and up to abs(itmax)
                 iterations of MLE using sigmahat based on coefficients
                 in b0.  When itmax = 0, no iteration is done at all,
                 but calculations are done using starting values.
  minit:itmin    Minimum number of iterations carried out (default = 0)
  crit:vector(numsig, nsigsq, delta)
                 Integer numsig >= 1 is the number of accurate digits
                 wanted in coefficients.
                 Integer nsiqsq >= 1 is the number of accurate digits
                 wanted in the residual sum of squares.
                 When delta > 0, iterations stop when the norm of the
                 gradient <= delta
                 Iteration terminates the first time any of these
                 criteria is met.  When any of numsig, nsigsq or delta
                 are 0, that criterion is ignored.
                 Example: crit:vector(6,0,0) specifies iteration
                 continues until the relative change in all
                 coefficients is less than 1e-6.
  print:T        Partial results are printed at each iteration
  keep:T         arima() returns a structure as value (see below).
  quiet:F        No summary results are printed, although side effect
                 variables are created.  Default is F except with keep:T

Without keyword phrase 'keep:T', arima() returns NULL as value.

With keyword phrase 'keep:T', arima() returns a structure with the
following components:
  Name           Contents
  coefs          vector(muhat,betahat,phihat,thetahat,phiShat,thetaShat)
                 with coefficients not in the model omitted.
  hessian        NPAR by NPAR matrix JACOBIAN %c% JACOBIAN
  gradient       Same as GRADIANT
  residuals      Same as ALLRESIDUALS
  nobs           length(y) - d - D*Period
  npar           number of active parameters
  pdq            zero padded value of keyword 'pdq' or rep(0,3)
  PDQ            zero padded value of keyword 'PDQ' or rep(0,3)
  seasonal       value of keyword 'seasonal' or 0
  active         logical vector the same length as coefs; active[i] is
                 True if and only if coefs[i] is an active parameter
  iter           Number of iterations to convergence or termination
  iconv          0: not converged by any criterion
                 1: converged by relative coefficient change criterion
                 2: converged by relative RSS or log L change criterion
                 3: changed by norm of gradient criterion
                 4: could not further reduce RSS or -2logL
  rss            Same as RSS
  neg2logL       Same as NEG2LOGL
  aicc           Same as AICC

See also hannriss(), innovest().


Gary Oehlert 2003-01-15