多元線性迴歸 regress
+
一元多項式:polyfit或者polytool
+
多元二項式:rstool或者rsmdemo
——本帖收錄於〖素質文庫〗
(四大專題:〖前人指路〗、〖Only one〗、〖On Spss〗、〖On Matlab〗)
一、多元線性迴歸
表達式:
1、b=regress(Y,X)確定迴歸係數的點估計值
2、[b,bint,r,rint,stats]=regress(Y,X,alpha)求迴歸係數的點估計和區間估計、並檢驗迴歸模型
①bint表示迴歸係數的區間估計.
②r表示殘差
③rint表示置信區間
④stats表示用於檢驗迴歸模型的統計量,有三個數值:相關係數r2、F值、與F對應的概率p
說明:相關係數r2越接近1,說明迴歸方程越顯著;
時拒絕H0,F越大,說明迴歸方程越顯著;與F對應的概率p<α時拒絕H0⑤alpha表示顯著性水平(缺省時爲0.05)
3、rcoplot(r,rint)畫出殘差及其置信區間
具體參見下面的實例演示
4、實例演示,函數使用說明
(1)輸入數據
(2)迴歸分析及檢驗
運行結果解讀如下
參數迴歸結果爲
,對應的置信區間分別爲[-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)殘差分析作殘差圖
從殘差圖可以看出,除第二個數據外,其餘數據的殘差離零點均較近,且殘差的置信區間均包含零點,這說明迴歸模型y=-16.073+0.7194x能較好的符合原始數據,而第二個數據可視爲異常點。
(4)預測及作圖
二、一元多項式迴歸
1、一元多項式迴歸函數
(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
解法一:直接作二次多項式迴歸
故迴歸模型爲
解法二:化爲多元線性迴歸
故迴歸模型爲:
預測及作圖
三、多元二項式迴歸
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
解法一:選擇純二次模型
在x1對應的文本框中輸入1000,X2中輸入6,敲回車鍵,此時圖形和相關數據會自動更新
此時在GUI左邊的“Predicted Y1”下方的數據變爲88.47981,表示平均收入爲1000、價格爲6時商品需求量爲88.4791
點擊左下角的Export按鈕,將會導出迴歸的相關參數beta、rmse和residuals到工作空間(workspace)
在Export按鈕下面可以選擇迴歸類型
在Matlab命令窗口中輸入
將得到如下結果
故迴歸模型爲
解法二:將上面餓模型轉換爲多元線性迴歸