在拟合类高斯函数时,基线数据点的数量如何影响拟合?

计算科学 回归
2021-12-14 04:23:07

我正在拟合一些仪器数据的曲线。数据是具有特定功能形式的脉冲,它在脉冲前后开始并返回到恒定(有噪声)基线水平。

我发现如果我拟合整个数据集,我会得到一组拟合的脉冲参数,但如果我裁剪出包含脉冲的数据部分并只拟合它,我会得到一组不同的拟合参数。在这两种情况下,拟合看起来都很好,参数也很合理,但根本不等效。

这是否特别代表我的拟合函数或方法中的问题?还是这通常是可能的和预期的?

如果问题不在于我的拟合函数,那么我该如何改进我的拟合方法以使结果正确,并且对数据集中存在的基线样本量保持不变?

lsqcurvefit()在 Matlab 中使用,具有提供分析雅可比行列式的误差函数,因此在幕后使用的优化器是 Trust-Region 方法。我对这种算法并不完全熟悉,但据我所知,它与 BFGS 或其他准牛顿方法属于同一类别,具有一些额外的魔力来提高鲁棒性和效率。我与其他求解器(例如共轭梯度)得到了类似的结果。

2个回答

如果非常不同的参数集给出非常相似的曲线,则很可能拟合的参数太多,这意味着某些拟合参数将对数据的变化敏感。

查看两个拟合的目标函数的逆 Hessian 矩阵,以了解估计参数由数据确定的程度。大对角整数意味着条件差,因此参数不可靠(即使拟合良好)。

如果您只想使用平滑曲线来替换数据集,这是无害的。但是,如果您想将参数视为代表大量信息,那将是灾难性的。在这种情况下,您需要添加一个反映有关参数的定性知识的正则化项,以提高参数估计的质量。

请参阅我的论文“解决病态和奇异线性系统:正则化教程” http://www.mat.univie.ac.at/~neum/papers.html#regtutorial ,了解线性最小二乘拟合中的正则化,但从质量上讲,那里所说的一切也适用于非线性目标。

如果您仅适合峰值周围窗口中的数据,那么您隐含的意思是窗口外的数据点无关紧要。因此,如果曲线不能很好地描述窗外的点,那就不足为奇了。

另一方面,如果您不使用窗口,您会说每个点都同等重要,因此曲线必须适合所有点。特别是,这意味着如果你有很多点,远远超过你的窗口,那么你最终可能会得到一条曲线,它适合边缘上的绝大多数点,但对你真正的点提供的拟合很少关心,即高峰周围的人。

从根本上说,你想做的更多的是一个哲学问题,而不是一个数学问题:你希望曲线描述哪些数据点。

也就是说,从你描述的曲线来看,你实际得到的曲线无论哪种情况,都适合所有数据点。这至少意味着您尝试拟合数据点的模型是生成这些数据点的真实过程的准确表示。那么问题就变成了:如果你从两种方法中得到两条不同的曲线,哪一条更好?这又是一个解释问题:你关心的是什么?显然,对于窗口内的点,用窗口创建的曲线是最好的拟合。但是,从窗口生成的曲线相对于窗口外的点的拟合程度如何?窗口内点的全局拟合曲线有多好?考虑这些问题的标准工具是查看标准偏差;即,如果数据点是并且您拟合曲线(ti,xi)f(t)对他们来说,标准差是可能是通过这种测量,两条曲线大致相同,在这种情况下,它们将是同样好的近似值。或者它们不是,在给定的点子集上(例如所有点,或仅在窗口内的点),在这种情况下,您会知道哪条曲线对您的目的“更好”。1Ni(xif(ti))2

您会在有关参数估计和统计拟合的书籍中找到很多这方面的方法。其中更重要的是那些仅使用点子集拟合然后通过计算剩余点的残差进行比较的那些。如果您对几个不同的子集重复此过程,您会感觉到拟合曲线对测量点的选择有多敏感。