Python 平滑数据并预测下一个数据点

Python 平滑数据并预测下一个数据点,python,forecasting,smoothing,Python,Forecasting,Smoothing,我使用的是大致振荡的时间序列数据,大约有3000个数据点。我想完成两件事: 1) 平滑数据以删除锯齿边 2) 利用分布图中基于位置的权重预测下一个数据点 我已经包括了数据分布图和蓝色的数据样本图,数据点为黑色。黄线表示分数为4/len(df)的Lowess平滑数据点,因此局部回归窗口与其他数据保持一致。问题是,预测下一个数据点非常可怕。由于滞后,简单/指数移动平均线不是一个选项。我在信号和优化(如曲线拟合)下使用了几个scipy模块,但除了预测下一个数据点外,没有发现任何接近匹配statsmod

我使用的是大致振荡的时间序列数据,大约有3000个数据点。我想完成两件事: 1) 平滑数据以删除锯齿边 2) 利用分布图中基于位置的权重预测下一个数据点

我已经包括了数据分布图和蓝色的数据样本图,数据点为黑色。黄线表示分数为4/len(df)的Lowess平滑数据点,因此局部回归窗口与其他数据保持一致。问题是,预测下一个数据点非常可怕。由于滞后,简单/指数移动平均线不是一个选项。我在信号和优化(如曲线拟合)下使用了几个scipy模块,但除了预测下一个数据点外,没有发现任何接近匹配statsmodel的低精度模块。如果可能的话,我尽量不去ML

我的搜索一直指向使用高斯过程和贝叶斯优化,但这有点超出了我作为自己的自定义函数实现的能力

如果我在构建自己的自定义函数时遇到困难,请提供任何链接或如何继续的反馈,我们将不胜感激

c_list = [2.8, 2.1, 4.0, 4.7, 4.7, 3.0, 0.2, -0.4, -3.2, 1.0, 4.0, -3.7, -3.7, -4.3, -2.7, 0.2, 3.4, 4.3, 4.2, 3.8, -0.3, 2.4, -0.2, -0.2, -2.6, -3.3, -4.3, -3.6, 0.5, 0.3, 0.9, 3.3, 3.3, 3.6, 3.9, 4.1, -0.3, -0.9, -2.9, -0.9, 1.9, 2.8, 4.4, 3.9, 3.3, -2.6, -3.1, -3.2, -0.2, 3.2]

c_series = pd.Series(c_list)
x = c_series.index.values
y = c_series.values
window = 4/len(c_series)

l = lowess(y, x, window)

c_series.plot()
plt.scatter(x, y, s=9)
plt.plot(l[:,1])


但是ML可能是一个好的解决方案。它能做你想做的一切,并能轻松解决任何问题……至少你可能会在听buuuuuzzword people时得到这样的印象:)

仅使用值的分布可能不起作用。但是你可以尝试结合使用值的分布和梯度的分布来做出有根据的猜测

这可能是描述该方法的文献


我将查看链接。谢谢你,乔