Matlab多项式回归实现
多項式回歸也稱多元非線性回歸,是指包含兩個以上變量的非線性回歸模型。對于多元非線性回歸模型求解的傳統解決方案,仍然是想辦法把它轉化成標準的線性形式的多元回歸模型來處理。
多元非線性回歸分析方程
如果自變數與依變數Y皆具非線性關系,或者有的為非線性有的為線性,則選用多元非線性回歸方程是恰當的。例如,二元二次多項式回歸方程為:
令,及于是上式化為五元一次線性回歸方程:
這樣以來,便可按多元線性回歸分析的方法,計算各偏回歸系數,建立二元二次多項式回歸方程。
-參考文獻:智庫百科,點擊打開
多元二項式回歸Matlab實現方法
1、多元二項式回歸Matlab命令
rstool(x,y,'model',alpha)
輸入參數說明:
x:n*m矩陣;
Y:n維列向量;
alpha:顯著性水平(缺省時為0.05);
mode:由下列4個模型中選擇1個(用字符串輸入,缺省時為線性模型)
'model'對應的字符串有:'linear'%線性常數和線性項(默認值)
'interaction'%常數、線性和相互作用項
'quadratic'%純二次擬合函數
'purequadratic'%
2、實例演示說明
設某商品的需求量與消費者的平均收入、商品價格的統計數據如下,建立回歸模型,預測平均收入為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 9
解法一:選擇純二次模型'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')
在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^2
解法二:將上面的模型轉換為多元線性回歸
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,stats
b =
110.5313
0.1464
-26.5709
-0.0001
1.8475
stats =
0.9702 40.6656 0.0005 20.5771%相關系數R^2、F值、與F值對應的概率(P值)、誤差方差估計值
轉載于:https://www.cnblogs.com/sowhat4999/p/5117302.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Matlab多项式回归实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】Kafka介绍及升级经验分享
- 下一篇: ecshop 去版权