MATLAB-非線性迴歸

原文鏈接:https://blog.csdn.net/zhangyugebb/article/details/84770303

非線性迴歸

非線性迴歸可由命令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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章