R: Kalman Filtering

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 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 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`.

[Package stats version 2.15.1 Index]