当前位置: 首页 > 知识库问答 >
问题:

非线性最小二乘回归的“fitnlm”或“lsqcurvefit”?

王建华
2023-03-14

我试图用最小二乘法将实验数据拟合成一个三次多项式方程。我有两个自变量和一个因变量,这使得它是一个非线性拟合。我使用函数“fitnlm”和“lsqcurvefit”计算了系数,这两个函数都建议用于非线性回归拟合。我从两个函数中获得了不同的系数值,尽管我输入了相同的初始系数(猜测)值。请告知两个函数中哪一个更好,以及我可以信任的系数。在使用lsqcurvefit时,如何检查均方根误差的值?非常感谢您的帮助/建议/有用的意见。

共有1个答案

诸葛文博
2023-03-14

根据这个matlab的中心讨论,nlinfi(以及扩展的Fitnlm)使用了Levenberg-Maraqudt算法。此外,根据lsqnonlin的文档页面(这是lsqcurvefit的基础html" target="_blank">函数),默认算法是“信任区域反射”,但Levenberg-Marquintt也是一个选项。如果您在lsqcurvefit函数中指定使用L-M算法选项,结果是否更接近于Fitnlm结果?

至于如何在lsqcurvefit中选择哪个算法选项更好。。。这是科学中有趣的部分;)L-M确实在其方法中纳入了信赖域原则,因此可能存在一些理论上的重叠,而且两者都被认为比Nelder Mead这样的东西更稳健,因此我想不出多少先验的理由来支持其中一个。

编辑:这是一个mathworks源代码,讨论了MATLAB使用的各种非线性方程求解算法。

 类似资料:
  • 主要内容:语法,示例当对真实世界数据建模进行回归分析时,我们观察到模型的方程很少是给出线性图的线性方程。 大多数情况下,现实世界数据模型的方程式涉及更高程度的数学函数,如或函数的指数。 在这种情况下,模型的曲线给出了曲线而不是线性。线性和非线性回归的目标是调整模型参数的值以找到最接近您的数据的线或曲线。当找到这些值时,我们才能够准确估计响应变量。 在最小二乘回归中,我们建立了一个回归模型,不同点与回归曲线的垂直距离的

  • 在对真实世界数据进行建模以进行回归分析时,我们观察到模型方程很少是给出线性图的线性方程。 大多数情况下,现实世界数据模型的方程涉及更高程度的数学函数,如指数为3或sin函数。 在这种情况下,模型的图给出曲线而不是线。 线性回归和非线性回归的目标是调整模型参数的值,以找到最接近数据的直线或曲线。 在找到这些值后,我们将能够以良好的准确度估计响应变量。 在最小二乘回归中,我们建立一个回归模型,其中不同

  • (这正是网站上的内容) 结果是

  • 线性回归小结 线性回归的目的是要得到输出向量Y和输入特征X之间的线性关系,求出线性回归系数θ,也就是 Y=Xθ。其中Y的维度为mx1,X的维度为mxn,而θ的维度为nx1。m代表样本个数,n代表样本特征的维度。 为了得到线性回归系数θ,我们需要定义一个损失函数,一个极小化损失函数的优化方法,以及一个验证算法的方法。损失函数的不同,损失函数的优化方法的不同,验证方法的不同,就形成了不同的线性回归算法

  • 最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。 1.最小二乘法的原理与要解决的问题 最小二乘法是由勒让德在19世纪发现的,原理的一般形式很简单,当然发现的过程是非常艰难的。形式如下式: 目标函数 = Σ(观测值-理论值) $$^2$$ 观测值就是我们的多组样本,理论值就是我们的假设拟合函数。目标函

  •   spark中的非负正则化最小二乘法并不是wiki中介绍的NNLS的实现,而是做了相应的优化。它使用改进投影梯度法结合共轭梯度法来求解非负最小二乘。 在介绍spark的源码之前,我们要先了解什么是最小二乘法以及共轭梯度法。 1 最小二乘法 1.1 最小二乘问题   在某些最优化问题中,目标函数由若干个函数的平方和构成,它的一般形式如下所示:   其中x=(x1,x2,…,xn),一般假设m>=n