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

`arima`, `StructTS`. `tsSmooth`.