Description Usage Arguments Details Value Author(s) See Also Examples
For testing purposes, with these routines, AO-contaminated observations from a multivariate time-invariant, linear, Gaussian state space model may be generated
1 2 3 | rcvmvnorm(runs, mi, Si, mc, Sc, r)
simulateState(a, S, F, Qi, mc=0, Qc=Qi, runs = 1, tt, r=0)
simulateObs(X, Z, Vi, mc=0, Vc=Vi, runs = 1, r=0)
|
runs |
number of runs to be generated |
mi |
mean of the ideal multivariate normal distribution |
mc |
mean of the contaminating multivariate normal distribution |
Si |
covariance of the ideal multivariate normal distribution |
Sc |
covariance of the contaminating multivariate normal distribution |
r |
convex contamination radius/probability |
a |
mean of the initial state |
S |
initial state covariance (see below) |
F |
innovation transition matrix (see below) |
Qi |
ideal innovation covariance (see below) |
Qc |
contaminating innovation covariance (see below) |
tt |
length of the simulated series of states/observations |
Z |
observation matrix (see below) |
Vi |
ideal observation error covariance (see below) |
mc |
contaminating observation error mean (see below) |
Vc |
contaminating observation error covariance (see below) |
X |
series of states on basis of which the observations are simulated |
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,
ideal observation equation
y_t = Z x_t + e_{t;id}, e_{t;id} ~ N_q(0,V_i), t>= 1,
realistic observation equation
y_t = Z x_t + e_{t;re}, e_{t;re} ~ (1-r) N_q(0,V_i) + r N_q(m_c,V_c), t>= 1,
and where all random variable x_0, v_t, e_{t;id} [respectively, e_{t;re}] are independent.
For notation, let us formulate the classical Kalman filter in this context:
(0) ininitial step
x_{0|0} = a
\code{ } with error covariance
S_{0|0} = Cov(x_0-x_{0|0}) = S
(1) prediction step
x_{t|t-1} = F x_{t-1|t-1}, t>=1
\code{ } with error covariance
S_{t|t-1} = Cov(x_t-x_{t|t-1}) = F S_{t-1|t-1} F' + Q
(2) correction step
x_{t|t} = x_{t|t-1} + K_t (y_t - Z x_{t|t-1}), t>=1
\code{ } for Kalman Gain
K_t = S_{t|t-1} Z' (Z S_{t|t-1} Z' + V )^-
\code{ } with error covariance
S_{t|t} = Cov(x_t-x_{t|t}) = S_{t|t-1} - K_t Z S_{t|t-1}
rcvmvnorm(mi, Si, mc, Sc, r)
returns a (pseudo) random variable drawn from
(1-r){\cal N}_q(m_i,S_i)+r {\cal N}_q(m_c,S_c)
simulateState
simulates a series of t=tt
states plus one initial state from the (ti-l-G-SSM) given by the Hyper parameters
— yielding a matrix p x (t+1)
simulateObs
, on bases of the series of states X
(initial state included) simulates a series of observations of length
tt
according to the Hyper parameters — giving a matrix q x t
Peter Ruckdeschel Peter.Ruckdeschel@itwm.fraunhofer.de,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | require(robKalman)
a0 <- c(1, 0)
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)
TT <- 100
Z0 <- matrix(c(1, -0.5), 1, 2)
V0i <- 1
m0c <- -30
V0c <- 0.1
ract <- 0.1
X <- simulateState( a = a0, S = SS0, F = F0, Qi = Q0, tt = TT)
Y <- simulateObs(X = X, Z = Z0, Vi = V0i, mc = m0c, Vc = V0c, r = ract)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.