不使用阈值过滤掉时间序列的一部分

时间:2019-02-21 17:04:47

标签: python time-series lowpass-filter

我有以下时间序列: enter image description here

我想做的是过滤掉我用橙色圈出的点(也许给它们一个nan值)。假设将它们过滤掉的主要原因是因为它们不遵循其余时间序列的一般模式,并且它们具有非常不同的值。是否有任何滤波器,例如低通滤波器或其他可用于将其滤除的想法?

在这种情况下,一切都会正常,因此我不会过滤掉时间序列的任何部分:

enter image description here

由于我只对时间序列中有红点的部分感兴趣,所以显示特定模式的那部分,我不在乎是否在过滤掉橙色圆圈部分的过程中也时间序列的结尾将被过滤掉。

我不想使用阈值的原因是每个时间序列的值范围都不同。

1 个答案:

答案 0 :(得分:1)

因此,由于您的数据是周期性的,因此可以尝试拟合多种正弦to your data的组合。

就像here所示,任何振荡函数都可以通过组合正弦函数来近似。

因此,您基本上要做的是Fourier analysis


此外:

我能想到的是计算相对较长时间的均值。比您可以指定一个均值的间隔。将该时间间隔之外的所有内容都指定为离群值。

您还可以执行卡尔曼滤波方法。假设您的数据是恒定的+高斯噪声。然后它将始终适应新的水平并保持一段时间不变。

Tutorial on Kalman filter