令人困惑的结果来自tsclean(预测包)

时间:2018-01-10 16:01:54

标签: r

我正在尝试批量处理包含异常值和缺失值的大量时间序列。 tsclean函数非常有效,但偶尔会产生非常奇怪和有问题的结果,我想要理解,所以我可以包含逻辑来避免它们。这是一个结果:

data <- c(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4.3, NA, NA, 1, 1, 1, 1, 1, 1, NA, NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, NA)
ts <- ts(data, frequency = 52)
ts_cleaned <- tsclean(ts)

ts_cleaned的圆形输出:

0, -48, -35, -31, -27, -24, -20, -17, -14, -12, -10, -7, -6, -4, -2, -1, 0, 1, 2, 2, 3, 3, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, -7, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 1, 1, 1, 2, 3, 4, 6, 7, 9, 11, 13, 18, 19, 22, 24, 28, 31, 35, 39, 50, 90, 2

这显然与原始数据不同,在预测时会导致严重问题。我可以做些什么来避免这种程序化程度?

1 个答案:

答案 0 :(得分:0)

您可以尝试在tsclean()函数中使用Box-Cox参数:

data <- c(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4.3, NA, NA, 1, 1, 1, 1, 1, 1, NA, NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, NA)
ts <- ts(data, frequency = 52)
lambda <- BoxCox.lambda(data)
ts_cleaned <- tsclean(ts, lambda = lambda)
ts_cleaned