预测曲线拟合matlab

Predictive curve fitting matlab

我有一个关于曲线拟合的问题,我有很多曲线像图片中的那样。

X轴:时间 Y 轴:温度

每个样本每 30 秒出现一次。

目标:预测瞬态结束时的值

遇到这种情况你会怎么做? 我正在做的是: 对于每个新样本,我都会开始一个新的拟合(因此每个拟合都独立于前一个)并在测量开始后 2 小时(我在 2 小时之前设置的所有曲线)检查拟合曲线的值。如果对于后续拟合的数字(假设为 5),未来的值或多或少保持不变(+-0.2°C),我假设估计是正确的。

这种方法在我看来太简单了,我认为我没有利用所有信息。例如,我准时犯错的信息(例如,我在 4:00 分钟预测,在 4:30 我发现我犯了一个错误)。

图中红色部分的曲线被排除了(但以后的真实数据会从中穿过)。估计是蓝色的。你看在这种情况下我没有很好的预测......一般来说我也有更多平坦的曲线。

根据上面的评论,我试图制定一个答案,因为没有其他人提供一些意见

我认为您使用的基本程序很好。使用更合适的拟合曲线可以获得更好的结果,该曲线包括所有主要动态,但避免了数据的 overfitting。根据你的图,我能想到的最简单的形式是:

s + a(1-e^(-t/tau))

带有参数 s(初始温度)、a(振幅 = 稳态值)和 tau(显性时间常数)。正如您自己提到的,限制参数的允许范围可能会避免过度拟合并提高估计质量。

使用随机高阶函数,就像您现在使用的那样,可能会得到良好的插值结果,但用于外推是危险的,因为在拟合区域之外可能会出现奇怪的效果。

备选方案

使用错误(例如,更正外推错误)可能是可行的,但很棘手,而且不一定总能得到好的结果。

训练 神经网络 来执行估计可能有点矫枉过正,但如果应用得当可能会得到更好的结果。请注意,您需要大量训练数据,这些数据应该能够代表您稍后将使用神经网络的数据。