非線性迴歸
非線性迴歸可由命令nlinfit來實現,調用格式爲
[beta,r,j] = nlinfit(x,y,'model’,beta0)
其中,輸人數據x,y分別爲n×m矩陣和n維列向量,對一元非線性迴歸,x爲n維列向量model是事先用 m-文件定義的非線性函數,beta0是迴歸係數的初值, beta是估計出的迴歸係數,r是殘差,j是Jacobian矩陣,它們是估計預測誤差需要的數據。預測和預測誤差估計用命令
例子:
假定一個迴歸模型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