IORKF_huber {RobKF} | R Documentation |
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.
IORKF_huber(
Y,
mu_0,
Sigma_0 = NULL,
A,
C,
Sigma_Add,
Sigma_Inn,
h = 2,
epsilon = 1e-06
)
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. |
An rkf S3 class.
Ruckdeschel P, Spangl B, Pupashenko D (2014). “Robust Kalman tracking and smoothing with propagating and non-propagating outliers.” Statistical Papers, 55(1), 93–123.
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)