我目前正在处理一些时间序列数据,我知道我可以使用LOESS / ARIMA模型。
数据被写入长度为1000的向量(它是一个队列),每15分钟更新一次,
因此,当新数据推入向量时,旧数据将弹出。
我可以在调度程序上重新运行整个模型,例如,每15分钟重新训练一次模型,也就是使用整个1000值来训练LOESS模型,但是它效率很低,因为每次只插入一个值,而另一个999个值则被插入仍与上次相同。
那么如何才能获得更好的性能呢?
非常感谢
我目前正在处理一些时间序列数据,我知道我可以使用LOESS / ARIMA模型。
数据被写入长度为1000的向量(它是一个队列),每15分钟更新一次,
因此,当新数据推入向量时,旧数据将弹出。
我可以在调度程序上重新运行整个模型,例如,每15分钟重新训练一次模型,也就是使用整个1000值来训练LOESS模型,但是它效率很低,因为每次只插入一个值,而另一个999个值则被插入仍与上次相同。
那么如何才能获得更好的性能呢?
非常感谢
Answers:
让我将其重新构造为我更熟悉的东西。ARIMA是PID近似的模拟。我是不可或缺的。MA是P。AR可以表示为D项的差分方程。LOESS是最小二乘拟合的模拟(实际上是高科技的老大哥)。
因此,如果我想改善二阶模型(PID),该怎么办?
我未能提出的问题之一是“性能是什么意思?”。如果我们没有明确规定善良程度,那么就无法判断候选方法是否“有所改进”。似乎您想要更好的建模,更短的计算时间和更有效的信息使用。关于实际数据的星历表也可以告知这一点。如果要对风进行建模,则可以知道在哪里寻找增强模型,或为有用的数据找到转换。
根据您使用的是黄土还是ARIMA模型,这是一个不同的问题。我现在仅回答黄土问题,因为我怀疑ARIMA案例中的效率几乎没有,可能还有一套很好的初始值。
黄土模型通过将加权回归拟合到数据的不同子集来工作。每次拟合仅使用一部分数据。因此,每次您重新拟合从一端删除一个数据点并在另一端添加另一个数据点的模型时,从技术上讲,您只需要拟合使用第一个和最后一个点的局部回归即可。它们之间的所有局部回归将是相同的。这些未受影响的局部回归到底有多少,将取决于您在黄土中的平滑参数。
您可以破解用于拟合模型的任何软件包,以便它可以吸收以前拟合的大部分局部回归,而仅拟合数据开始和结束时所需的那些。
但是,在我看来,这仅是值得的,如果额外的编程时间的成本大大低于仅每15分钟从头开始拟合模型的计算机时间的成本。当然,只有1000个数据点,每次从头开始拟合模型并不是一件大事。