Matlab多項式迴歸實現

  多項式迴歸也稱多元線性迴歸,是指包含兩個以上變量的非線性迴歸模型。對於多元非線性迴歸模型求解的傳統解決方案,仍然是想辦法把它轉化成標準的線性形式的多元迴歸模型來處理。html

多元非線性迴歸分析方程

  若是自變數X_1,X_2,\cdots,X_m與依變數Y皆具非線性關係,或者有的爲非線性有的爲線性,則選用多元非線性迴歸方程是恰當的。例如,二元二次多項式迴歸方程爲:ide

  \widehat{y}=a+b_{11}x_1+b_{21}x_2+b_{12}x_1^2+b_{22}x_2^2+b_{11\times22}x_1x_2

  令b_1=b_{11},b_2=b_{21},b_3=b_{12},b_4=b_{22},b_5=b_{11\times22},及x_3=x_1^2,x_4=x_2^2,x_5=x_1\cdot x_2,因而上式化爲五元一次線性迴歸方程:函數

  \widehat{y}=a+b_1x_1+b_2x_2+b_3x_3+b_4x_4+b_5x_5

  這樣以來,即可按多元線性迴歸分析的方法,計算各偏回歸係數,創建二元二次多項式迴歸方程。spa

-參考文獻:智庫百科,點擊打開htm

多元二項式迴歸Matlab實現方法

一、多元二項式迴歸Matlab命令

rstool(x,y,'model',alpha)
輸入參數說明:
x:n*m矩陣;
Y:n維列向量;
alpha:顯著性水平(缺省時爲0.05);
mode:由下列4個模型中選擇1個(用字符串輸入,缺省時爲線性模型)
  'model'對應的字符串有:'linear'%線性常數和線性項(默認值)
  'interaction'%常數、線性和相互做用項
  'quadratic'%純二次擬合函數
  'purequadratic'%blog

二、實例演示說明

設某商品的需求量與消費者的平均收入、商品價格的統計數據以下,創建迴歸模型,預測平均收入爲1000、價格爲6時的商品需求量字符串

需求量(y) 100 75 80 70 50 65 90 100 110 60
收入(x1) 1000 600 1200 500 300 400 1300 1100 1300 300
價格(x2) 5 7 6 6 8 7 5 4 3 9get

解法一:選擇純二次模型'model'='quadratic'

y=β0+β1x1+β2x2+β11x1^2+β22x2^2
%直接用多元二項式迴歸以下
x1=[1000 600 1200 500 300 400 1300 1100 1300 300];%1*10矩陣
x2=[5 7 6 6 8 7 5 4 3 9];%1*10矩陣
y=[100 75 80 70 50 65 90 100 110 60]';%1*10矩陣
x=[x1' x2'];%10*2矩陣
rstool(x,y,'purequadratic')it


在x1對應的文本框中輸入1000,X2中輸入6,敲回車鍵,此時圖形和相關數據會自動更新
此時在GUI左邊的「Predicted Y1」下方的數據變爲88.47981,表示平均收入爲1000、價格爲6時商品需求量爲88.4791
點擊左下角的Export按鈕,將會導出迴歸的相關參數beta、rmse和residuals到工做空間(workspace)
在Export按鈕下面能夠選擇迴歸類型
在Matlab命令窗口中輸入
>>beta, rmse
beta =
110.5313%常數項
0.1464
-26.5709
-0.0001
1.8475
rmse =
4.5362%均方根偏差
由此得迴歸模型爲:y=110.5351+0.1464x1-26.5709x2-0.0001x1^2+1.8475x2^2io

解法二:將上面的模型轉換爲多元線性迴歸

y=β0+β1x1+β2x2+β11x1^2+β22x2^2  疑問:爲何沒有變量x1*x2呢?官方例子有:地址>>X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)'];>>[b,bint,r,rint,stats]=regress(y,X);>>b,statsb = 110.53130.1464 -26.5709-0.00011.8475stats =0.9702 40.6656 0.0005 20.5771%相關係數R^二、F值、與F值對應的機率(P值)、偏差方差估計值

相關文章
相關標籤/搜索