回归分析(Regression Analysis)是研究一个变量Y与其他若干变量X之间相互关系的一种数学工具。它是在一组试验或观测数据的基础上,寻找被随机性掩盖的变量之间的依存关系。粗略的将,可以理解为用一种确定的函数关系去近似代替比较复杂的相关关系。这个函数被称为回归函数,在实际问题中称为经验公式
我个人理解,在使用中,感觉跟拟合比较相近,但并不一样。对拟合而言,一个Y变量对应一个X变量,而回归分析的一个Y变量则有可能对应多个Y变量。从这个角度说,拟合也属于回归的一种。
一元多项式回归相对来说比较简单,可以完全看成是曲线拟合,使用的函数是polyfit,只需要设置拟合多项式的次数就好了,这里不做过多介绍。
多元线性拟合比一元要复杂一点,但也还比较简单,使用regress函数,这里也不做介绍。
这里主要介绍如何使用MATLAB进行非线性回归,即nlinfit函数的使用。
从理论分析上将要进行回归,必须要提供一个函数原因beta=nlinfit(X,Y,fun,beta0)
其中:X和Y为变量列表;fun为要拟合的非线性函数原型;beta0为非线性函数原型各系数的猜测初始值;beta为与beta0对应的计算值。
相关的函数还有:
nlparci:系数的置信区间;nlpredci:预测输出及其置信区间;nlintool:非线性内核和预测的交互图形工具。具体使用这里不介绍,可以参考MATLAB文档或参考书。
具体的例子,我后面会专门写一篇有应用背景的博文介绍。
需要多说一点的是:这个非线性回归函数用起来还是很讨厌的,因为要输入猜测值。所以,如果你只是为了获得一个结果,而不是把这作为程序的一部分,那么推荐你使用非线性拟合软件 1stOpt,具体可以参考:非线性曲线拟合软件1stOpt。(不要怕,虽然是一个全新的软件,但是非常容易上手!)