KalmanLike               package:stats               R Documentation

Kalman Filtering

Description:

     Use Kalman Filtering to find the (Gaussian) log-likelihood, or for
     forecasting or smoothing.

Usage:

     KalmanLike(y, mod, nit = 0, fast=TRUE)
     KalmanRun(y, mod, nit = 0, fast=TRUE)
     KalmanSmooth(y, mod, nit = 0)
     KalmanForecast(n.ahead = 10, mod, fast=TRUE)
     makeARIMA(phi, theta, Delta, kappa = 1e6)

Arguments:

       y: a univariate time series.

     mod: A list describing the state-space model: see 'Details'.

     nit: The time at which the initialization is computed. 'nit = 0'
          implies that the initialization is for a one-step prediction,
          so 'Pn' should not be computed at the first step.

 n.ahead: The number of steps ahead for which prediction is required.

phi, theta: numeric vectors of length >=0 giving AR and MA parameters.

   Delta: vector of differencing coefficients, so an ARMA model is
          fitted to 'y[t] - Delta[1]*y[t-1] - ...'.

   kappa: the prior variance (as a multiple of the innovations
          variance) for the past observations in a differenced model.

    fast: If 'TRUE' the 'mod' object may be modified.

Details:

     These functions work with a general univariate state-space model
     with state vector 'a', transitions 'a <- T a + R e', e ~ N(0,
     kappa Q) and observation equation 'y = Z'a + eta', eta ~ N(0,
     kappa h). The likelihood is a profile likelihood after estimation
     of kappa.

     The model is specified as a list with at least components

     'T' the transition matrix

     'Z' the observation coefficients

     'h' the observation variance

     'V' 'RQR''

     'a' the current state estimate

     'P' the current estimate of the state uncertainty matrix

     'Pn' the estimate at time t-1 of the state uncertainty matrix

     'KalmanSmooth' is the workhorse function for 'tsSmooth'.

     'makeARIMA' constructs the state-space model for an ARIMA model.

Value:

     For 'KalmanLike', a list with components 'Lik' (the log-likelihood
     less some constants) and 's2', the estimate of of kappa.

     For 'KalmanRun', a list with components 'values', a vector of
     length 2 giving the output of 'KalmanLike', 'resid' (the
     residuals) and 'states', the contemporaneous state estimates, a
     matrix with one row for each time.

     For 'KalmanSmooth', a list with two components. Component 'smooth'
     is a 'n' by 'p' matrix of state estimates based on all the
     observations, with one row for each time. Component 'var' is a 'n'
     by 'p' by 'p' array of variance matrices.

     For 'KalmanForecast', a list with components 'pred', the
     predictions, and 'var', the unscaled variances of the prediction
     errors (to be multiplied by 's2').

     For 'makeARIMA', a model list including components for its
     arguments.

Warning:

     These functions are designed to be called from other functions
     which check the validity of the arguments passed, so very little
     checking is done.

     In particular, 'KalmanLike' alters the objects passed as the
     elements 'a', 'P' and 'Pn' of 'mod', so these should not be
     shared. Use 'fast=FALSE' to prevent this.

References:

     Durbin, J. and Koopman, S. J. (2001) _Time Series Analysis by
     State Space Methods._  Oxford University Press.

See Also:

     'arima', 'StructTS'. 'tsSmooth'.

