Matlab与1stOpt多元非线性回归

文章目录

  • 1 Matlab多元非线性回归
  • 2 1stOpt多元非线性回归


使用Matlab和1stOpt对 y = b1 * x1b2 * x2b3 * x3b4 进行拟合。


1 Matlab多元非线性回归

Matlab常使用nlinfit函数进行多元非线性回归,主要语法:beta = nlinfit(X, Y, modelfun, beta0),其中,X为预测变量,Y为响应值,modelfun为指定的模型,beta0为参数初始值。其中,beta0对参数beta的估计起到很重要的作用,直接影响beta的优劣。

Matlab中,首先构造modelfun = ‘beta(1) .* X(:,1) .^ beta(2) .* X(:,2) .^ beta(3) .* X(:,3) .^ beta(4)’,以及beta0,然后使用beta = nlinfit(X, Y, mymodel, beta0)语句求解,结果为:
[1.125319074808870e-11; 0.206682275666316; 9.346992572477125; -0.713319766492658],R值为0.849547658794089。


2 1stOpt多元非线性回归

为了避免初始值对beta估计的影响,可以使用1stOpt软件进行估计,需要试用版软件可以下载1stOpt试用版本安装包及操作手册,或者在评论区留下联系方式,不过试用版本的参数不得超过4个。
多元非线性回归,使用1stOpt的编码很简单:

Matlab与1stOpt多元非线性回归_第1张图片

Parameter b1, b2, b3, b4;
Variable x1, x2, x3, y;
Function y=b1*x1^b2*x2^b3*x3^b4;
Data;
//x1	x2   	x3     	y
3673831.01000000	39.5763140000000	74.3562590000000	12700.0100000000
2897388.01000000	39.6674820000000	112.371992000000	5200.01000000000
2357076.01000000	40.3692350000000	95.2484480000000	9000.01000000000
769326.010000000	39.4360980000000	133.780490000000	13100.0100000000
//...共计693条数据

只需定义好参数名,变量名,方程模型以及数据,完场上述后运行,在结果栏进行查看。最重要的是,多元非线性回归中无需设置初始值。
Matlab与1stOpt多元非线性回归_第2张图片

你可能感兴趣的:(1stOpt,matlab,多元非线性回归,matlab,1stOpt,多元非线性回归,初始参数)