使用MATLAB进行多元非线性回归——nlinfit函数的使用

帮我对象做数据分析时遇到的问题,发现网上matlab多元非线性回归例子很少,写下来这篇用作参考

使用beta= nlinfit(x, y, model, beta0) 

——x为自变量,可以是多个自变量

——y为因变量,只能由一个

——model是函数模型

——beta0要求系数的初值

例子:

假定一个回归模型y = beta1*x1^3 + beta2*x2^2 + beta3*log2(x3)

其中beta1, beta2, beta3为想要通过回归得到的系数

Step1:建立回归模型

直接使用内联函数建立:

mymodel = inline('beta(1)*x(:,1).^3 + beta(2)*x(:,2).^2 + beta(3)*log2(x(:,3)','beta','x');

这里x(:1)是取x的第一列数据,相应的x(:,2)取第二列数据...

beta(1),beta(2),beta(3)为所求系数

Step2: 回归

x = [x1,x2,x3]; %自变量x1,x2,x3
beta0= [a1,b1,c1,d1,e1,f1,m1,n1,z1]; %系数初始值
beta = nlinfit(x,y,myfun,temp); %回归得到系数beta

你可能感兴趣的:(数据分析)