【问题标题】:How to interpolate non linearly missing data in time series taking account the past?考虑到过去,如何在时间序列中插入非线性缺失数据?
【发布时间】:2019-11-28 04:23:03
【问题描述】:

我正在处理缺少数据的时间序列。时间序列只是升序。它是每小时时间序列。

我想在考虑过去值的情况下插入缺失的数据。插值不应该是线性的

我正在使用 Python 和 Pandas。我使用了以下方法:

data.interpolate(method="time",limit_area="inside")

这是应用于我的时间序列之一的结果:

插值是蓝色的。但是,我们可以看到它是线性的,这不是我所期望的。我尝试将每小时数据重新采样为每日数据,但仍然无法正常工作。

是否有另一种方法可以在考虑过去值的情况下插入时间序列中的缺失数据(过去趋势)?

谢谢。

【问题讨论】:

  • 有大量不同的插值算法,它们可能会有很大的不同。您的数据似乎远非平滑,这使我相信获得实际曲线的良好近似值将很困难。

标签: python pandas time-series interpolation missing-data


【解决方案1】:

您是否尝试过多项式插值?在你这样做之前不要忘记按日期排序。

data.interpolate(method='polynomial', order=2)

更多参考请见Link

【讨论】:

  • 是的,我尝试了这个函数提出的所有方法。我的数据已排序。但是,这些方法效率不高,因为它们对时间序列进行了过于平滑的插值,因此没有考虑过去,而且多项式插值并不意味着升序插值。
  • 如果插值太平滑,我认为你应该尝试建立一个时间序列模型来填补空白。
猜你喜欢
  • 2020-04-12
  • 1970-01-01
  • 2016-01-16
  • 2019-09-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多