〖前人指路〗多元、多項線性迴歸,MATLAB實現

多元線性迴歸 regress 


+

一元多項式:polyfit或者polytool


+


多元二項式:rstool或者rsmdemo 






——本帖收錄於〖素質文庫〗


(四大專題:〖前人指路〗、〖Only one〗、〖On Spss〗、〖On Matlab〗)




一、多元線性迴歸


    表達式: 1.png



    1、b=regress(Y,X)確定迴歸係數的點估計值

2.png

3.png

4.png




    2、[b,bint,r,rint,stats]=regress(Y,X,alpha)求迴歸係數的點估計和區間估計、並檢驗迴歸模型


①bint表示迴歸係數的區間估計.

②r表示殘差

③rint表示置信區間

④stats表示用於檢驗迴歸模型的統計量,有三個數值:相關係數r2、F值、與F對應的概率p

    說明:相關係數r2越接近1,說明迴歸方程越顯著; 5.png

時拒絕H0,F越大,說明迴歸方程越顯著;與F對應的概率p<α時拒絕H0

⑤alpha表示顯著性水平(缺省時爲0.05)


3、rcoplot(r,rint)畫出殘差及其置信區間


具體參見下面的實例演示


4、實例演示,函數使用說明

(1)輸入數據


(2)迴歸分析及檢驗


運行結果解讀如下

參數迴歸結果爲 6.png

,對應的置信區間分別爲[-33.7017,1.5612]和[0.6047,0.834]

r2=0.9282(越接近於1,迴歸效果越顯著),F=180.9531,p=0.0000,由p<0.05,可知迴歸模型y=-16.073+0.7194x成立



(3)殘差分析作殘差圖


7.jpg

     從殘差圖可以看出,除第二個數據外,其餘數據的殘差離零點均較近,且殘差的置信區間均包含零點,這說明迴歸模型y=-16.073+0.7194x能較好的符合原始數據,而第二個數據可視爲異常點。


(4)預測及作圖





二、一元多項式迴歸


1、一元多項式迴歸函數

8.png


    (1)[p,S]=polyfit(x,y,m)確定多項式係數的MATLAB命令

說明:x=(x1,x2,…,xn),y=(y1,y2,…,yn);p=(a1,a2,…,am+1)是多項式y=a1xm+a2xm-1+…+amx+am+1的係數;S是一個矩陣,用來估計預測誤差

    (2)polytool(x,y,m)調用多項式迴歸GUI界面,參數意義同polyfit


   2、預測和預測誤差估計

    (1)Y=polyval(p,x)求polyfit所得的迴歸多項式在x處的預測值Y

    (2)[Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得的迴歸多項式在x處的預測值Y及預測值的顯著性爲1-alpha的置信區間Y±DELTA,alpha缺省時爲0.5


    3、實例演示說明

觀測物體降落的距離s與時間t的關係,得到數據如下表,求s的表達式(即迴歸方程s=a+bt+ct2)

t(s)1/30 2/30 3/30 4/30 5/30 6/30 7/30

s(cm)11.86 15.67 20.60 26.69 33.71 41.93 51.13

t(s)8/30 9/30 10/30 11/30 12/30 13/30 14/30

s(cm)61.49 72.90 85.44 99.08 113.77 129.54 146.48



解法一:直接作二次多項式迴歸

故迴歸模型爲 9.png


解法二:化爲多元線性迴歸

故迴歸模型爲: 10.png


預測及作圖

11.jpg




三、多元二項式迴歸


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

rstool(x,y,'model',alpha)

輸入參數說明:

x:n*m矩陣;

Y:n維列向量;

alpha:顯著性水平(缺省時爲0.05);

mode:由下列4個模型中選擇1個(用字符串


2、實例演示說明


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


需求量100 75 80 70 50 65 90 100 110 60

收入1000 600 1200 500 300 400 1300 1100 1300 300

價格5 7 6 6 8 7 5 4 3 9



解法一:選擇純二次模型

12.1.png

12.jpg

    在x1對應的文本框中輸入1000,X2中輸入6,敲回車鍵,此時圖形和相關數據會自動更新

    此時在GUI左邊的“Predicted Y1”下方的數據變爲88.47981,表示平均收入爲1000、價格爲6時商品需求量爲88.4791

    點擊左下角的Export按鈕,將會導出迴歸的相關參數beta、rmse和residuals到工作空間(workspace)

    在Export按鈕下面可以選擇迴歸類型


    在Matlab命令窗口中輸入

    將得到如下結果

故迴歸模型爲 13.png



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

14.png


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