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)