插入高频时间序列

Interpolate a high frequency time series

我有一个 2 年样本数据范围内的物理时间序列,频率为 30 分钟,但如您所见,存在多个广泛的丢失数据间隔:

我尝试使用 forecast 包中的函数 na.interp,但结果不佳(如上所示):

sapply(dataframeTS[2:10], na.interp)

我正在寻找更有用的方法。

更新:

这里是关于我想要捕获的模式的更多信息,具体是行 data。此子样本属于 5 月。

您可能想尝试 **imputeTS** 包。这是一个专门用于时间序列缺失值插补的 R 包。

na_seadec()na_seasplit()na_kalman() 方法在这里可能很有趣

还有更多的算法选项 - 您可以在此 Paper 中找到有关程序包的列表。

在这种特定情况下,我会尝试:

na_seasplit(yourData)

na_kalman(yourData)

na_seadec(yourData)

请注意,您可能需要使用时间序列正确提供季节性信息。 (您必须创建一个时间序列(ts 对象)并设置 frequency 参数)

也有可能根本行不通,你得试试。 (如果你能提供数据我也试试看)