插入高频时间序列
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
参数)
也有可能根本行不通,你得试试。
(如果你能提供数据我也试试看)
我有一个 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
参数)
也有可能根本行不通,你得试试。 (如果你能提供数据我也试试看)