Utility functions of package robKalman

Description

These functions are used internally by package robKalman

Usage

1
2
3
EuclideanNorm(x)
Huberize(x, b, norm=EuclideanNorm, ...)
limitS(S, F, Z, Q, V, tol = 10^-4, itmax = 1000)#

Arguments

x

a numeric vector

b

clipping bound for Huberize

norm

a function with a numeric vector x as first argument, returning a norm of x - not necessarily, but defaulting to, Euclidean norm

...

additional arguments to function in argument norm

S

initial state covariance (see below)

Z

observation matrix (see below)

V

observation error covariance (see below)

F

innovation transition matrix (see below)

Q

innovation covariance (see below)

tol

a tolerance bound for determining when the sequence S_{t|t-1} has stabilized

itmax

a maximal number of iterations for limitS.

Details

We work in the setup of the time-invariant, linear, Gaussian state space model (ti-l-G-SSM) with p dimensional states x_t and q dimensional observations y_t, with initial condition

x_0 ~ N_p(a,S),

state equation

x_t = F x_{t-1} + v_t, v_t ~ N_p(0,Q), t>=1,

observation equation

y_t = Z x_t + e_t, e_t ~ N_q(0,V), t>=1,

and where all random variable x_0, v_t, e_t are independent.

In this setup, in most cases (confer, e.g., Anderson and Moore (Appendix)) the prediction error covariances of the classical Kalman filter converge.

Value

EuclideanNorm(x) returns the Euclidean norm of x, Huberize(x,b,norm) huberizes x to length b measured in norm norm, limitS(S, F, Z, Q, V) returns the limiting prediction error covariance of the classical Kalman Filter, in the time-invariant state space model (S,F,Z,Q,V).

Note

limitS does no dimension checking!

Author(s)

Peter Ruckdeschel Peter.Ruckdeschel@itwm.fraunhofer.de,

References

Anderson, B.D.O. and More, J.B. (1979): Optimal filtering. Information and System Sciences Series. Prentice Hall.
Ruckdeschel, P. (2001) Ans\"atze zur Robustifizierung des Kalman Filters. Bayreuther Mathematische Schriften, Vol. 64.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
require(robKalman)
x <- matrix(1:4)

EuclideanNorm(x)

Huberize(x,b=5) ## does clipping
Huberize(x,b=11) ## does no clipping

##Hyper parameter of a lin. time-inv. Gaussian SSM
SS0  <- matrix(0, 2, 2)
F0   <- matrix(c(.7, 0.5, 0.2, 0), 2, 2)
Q0   <- matrix(c(2, 0.5, 0.5, 1), 2, 2)
Z0   <- matrix(c(1, -0.5), 1, 2)
V0i  <- 1

SS <- limitS(S = SS0, F = F0, Q = Q0, Z = Z0, V = V0i)