如何让 tsclean 处理具有多个时间序列的数据框
how to get tsclean working on data frame with multiple time series
我正在基于 hts 包创建预测,但在此之前我需要清理数据中的异常值和缺失值。
为此我想到了使用 forecast 包中的 tsclean 函数。我将我的数据存储在具有多列(时间序列)的数据框中,我希望对其进行清理。我可以在只有一次系列赛的情况下使该功能正常工作,但由于我确实有很多时间,所以我正在寻找一种聪明的方法来做到这一点。
当运行代码:
SFA5 <- ts(SFA4, frequency=12, start=c(2012,1), end=c(2017,10))
ggt <- tsclean(SFA5[1:70, 1:94], replace.missing = TRUE)
我收到此错误消息:
Error in na.interp(x, lambda = lambda) : The time series is not univariate.
数据在这里:
https://www.dropbox.com/s/dow2jpuv5unmtgd/Data1850.xlsx?dl=0
我的问题是:我做错了什么或者是执行循环序列的唯一解决方案
错误消息表明该函数仅将单变量时间序列作为其第一个参数。因此,您可能已经猜到了,您需要对每一列应用 tsclean
。
library(forecast)
ggt <- sapply(X = SFA5[1:70, 1:94], FUN = tsclean)
我正在基于 hts 包创建预测,但在此之前我需要清理数据中的异常值和缺失值。
为此我想到了使用 forecast 包中的 tsclean 函数。我将我的数据存储在具有多列(时间序列)的数据框中,我希望对其进行清理。我可以在只有一次系列赛的情况下使该功能正常工作,但由于我确实有很多时间,所以我正在寻找一种聪明的方法来做到这一点。
当运行代码:
SFA5 <- ts(SFA4, frequency=12, start=c(2012,1), end=c(2017,10))
ggt <- tsclean(SFA5[1:70, 1:94], replace.missing = TRUE)
我收到此错误消息:
Error in na.interp(x, lambda = lambda) : The time series is not univariate.
数据在这里:
https://www.dropbox.com/s/dow2jpuv5unmtgd/Data1850.xlsx?dl=0
我的问题是:我做错了什么或者是执行循环序列的唯一解决方案
错误消息表明该函数仅将单变量时间序列作为其第一个参数。因此,您可能已经猜到了,您需要对每一列应用 tsclean
。
library(forecast)
ggt <- sapply(X = SFA5[1:70, 1:94], FUN = tsclean)