IORKF_huber: A huberisation based innovative outlier robust Kalman filter

Description Usage Arguments Value References Examples

View source: R/IORKF_huber.R

Description

An innovative outlier robust Kalman filter, based on the work by Ruckdeschel et al. (2014). This function assumes that the innovations are potentially polluted by a heavy tailed process. The update equations are made robust to these via huberisation.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
IORKF_huber(
  Y,
  mu_0,
  Sigma_0 = NULL,
  A,
  C,
  Sigma_Add,
  Sigma_Inn,
  h = 2,
  epsilon = 1e-06
)

Arguments

Y

A list of matrices containing the observations to be filtered.

mu_0

A matrix indicating the mean of the prior for the hidden states.

Sigma_0

A matrix indicating the variance of the prior for the hidden states. It defaults to the limit of the variance of the Kalman filter.

A

A matrix giving the updates for the hidden states.

C

A matrix mapping the hidden states to the observed states.

Sigma_Add

A positive definite matrix giving the additive noise covariance.

Sigma_Inn

A positive definite matrix giving the innovative noise covariance.

h

A numeric giving the huber threshold. It defaults to 2.

epsilon

A positive numeric giving the precision to which the limit of the covariance is to be computed. It defaults to 0.000001.

Value

An rkf S3 class.

References

\insertRef

ruckdeschel2014robustRobKF

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
library(RobKF)

set.seed(2019)

A = matrix(c(1), nrow = 1, ncol = 1)
C = matrix(c(1), nrow = 1, ncol = 1)

Sigma_Inn = diag(1,1)*0.01
Sigma_Add = diag(1,1)

mu_0 = matrix(0,nrow=1,ncol=1)

Y_list = Generate_Data(1000,A,C,Sigma_Add,Sigma_Inn,mu_0,anomaly_loc = c(100,400,700),
                       anomaly_type = c("Inn","Inn","Inn"),anomaly_comp = c(1,1,1),
                       anomaly_strength = c(50,80,-100))

Output = IORKF_huber(Y_list,mu_0,Sigma_0=NULL,A,C,Sigma_Add,Sigma_Inn,h=2)

plot(Output,conf_level = 0.9999)

RobKF documentation built on July 15, 2021, 5:06 p.m.