DLM filtering
Description
The functions applies Kalman filter to compute filtered
values of the state vectors, together with their
variance/covariance matrices. By default the function returns an object
of class "dlmFiltered"
. Methods for residuals
and tsdiag
for objects of class "dlmFiltered"
exist.
Usage
1 
Arguments
y 
the data. 
mod 
an object of class 
debug 
if 
simplify 
should the data be included in the output? 
Details
The calculations are based on the singular value decomposition (SVD) of the relevant matrices. Variance matrices are returned in terms of their SVD.
Missing values are allowed in y
.
Value
A list with the components described below. If simplify
is
FALSE
, the returned list has class "dlmFiltered"
.
y 
The input data, coerced to a matrix. This is present only if

mod 
The argument 
m 
Time series (or matrix) of filtered values of the state vectors. The series starts one time unit before the first observation. 
U.C 
See below. 
D.C 
Together with 
a 
Time series (or matrix) of predicted values of the state vectors given the observations up and including the previous time unit. 
U.R 
See below. 
D.R 
Together with 
f 
Time series (or matrix) of onestepahead forecast of the observations. 
Warning
The observation variance V
in mod
must be nonsingular.
Author(s)
Giovanni Petris GPetris@uark.edu
References
Zhang, Y. and Li, X.R., Fixedinterval smoothing algorithm
based on singular value decomposition, Proceedings of the 1996
IEEE International Conference on Control Applications.
Giovanni Petris (2010), An R Package for Dynamic Linear
Models. Journal of Statistical Software, 36(12), 116.
http://www.jstatsoft.org/v36/i12/.
Petris, Petrone, and Campagnoli, Dynamic Linear Models with R,
Springer (2009).
See Also
See dlm
for a description of dlm objects,
dlmSvd2var
to obtain a variance matrix from its SVD,
dlmMLE
for maximum likelihood estimation,
dlmSmooth
for Kalman smoothing, and
dlmBSample
for drawing from the posterior distribution
of the state vectors.
Examples
1 2 3 4 5 6 7 8 9 10 11  nileBuild < function(par) {
dlmModPoly(1, dV = exp(par[1]), dW = exp(par[2]))
}
nileMLE < dlmMLE(Nile, rep(0,2), nileBuild); nileMLE$conv
nileMod < nileBuild(nileMLE$par)
V(nileMod)
W(nileMod)
nileFilt < dlmFilter(Nile, nileMod)
nileSmooth < dlmSmooth(nileFilt)
plot(cbind(Nile, nileFilt$m[1], nileSmooth$s[1]), plot.type='s',
col=c("black","red","blue"), ylab="Level", main="Nile river", lwd=c(1,2,2))
