我有一些时间序列数据,我试图使用Numpy中的polyfit
函数来拟合曲线。我已使用date2num
函数将日期时间x值转换为数字,并绘制了原始数据,即大约600个数据点(01-01-2014 - 10-08-2015)。
我正在尝试为曲线推导出一个表达式,以便我可以近似预测未来的数据点,例如在我绘制的数据之后的30天内。然而,当以任何顺序绘制时,我的多项式表达式都是偏离的。我确信我正在做一些明显错误的事情,但似乎无法解决它。
x = df["dates"]
y= df["brand"]
poly = numpy.polyfit(x, y, 5)
polynomial = numpy.poly1d(poly)
xs = numpy.linspace(x[0], x[-1]+60, len(x)+60)
y_int = polynomial(xs)
plt.plot(x, y)
plt.plot(xs, y_int)
plt.show()
下图以蓝色显示原始曲线。
答案 0 :(得分:2)
尝试在75区间使用1度函数。真的使用多项式拟合而不是你想要的这种类型的函数。这看起来最像是连接在一起的2个线段,因此在某些点上的线性拟合将使您非常适合。