KalmanLike {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 coeficients
`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 muliplied 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`.

[Package stats version 2.3.1 Index]