IORKF_huber {RobKF}R Documentation

A huberisation based innovative outlier robust Kalman filter

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

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

Ruckdeschel P, Spangl B, Pupashenko D (2014). “Robust Kalman tracking and smoothing with propagating and non-propagating outliers.” Statistical Papers, 55(1), 93–123.

Examples

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)


[Package RobKF version 1.0.2 Index]