【问题标题】:Interpolate a high frequency time series插值高频时间序列
【发布时间】:2019-09-18 16:48:03
【问题描述】:

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

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

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

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

更新:

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

【问题讨论】:

  • 看起来底层模式有很多变化。您是否正在寻找“看起来真实”的插值?似乎有点像“增强!”电视节目中的功能。也许你可以做某种 FFT 滤波器来挑选信号的主要频率并将它们添加到线性插值?
  • 有趣,您能否提供此方法的源代码/示例? (注意我更新了有关底层模式的更多信息)

标签: r time-series interpolation forecast


【解决方案1】:

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

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

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

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

na_seasplit(yourData)

na_kalman(yourData)

na_seadec(yourData)

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

仍然可能根本行不通,您将不得不尝试。 (如果你能提供数据我也试试)

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2019-08-02
    相关资源
    最近更新 更多