多元迴歸——matlab,R與spss

 多元迴歸(Multiple Regression)  

具體是指在相關變量中指定其中一個爲因變量,其餘一個或多個變量視爲自變量,建立多個變量之間的線性或非線性數學模型。

                                                   y=\beta _{_{0}}+\beta _{1}x_{1}+\cdots +\beta _{n}x_{n}

其中,\beta _{0},\cdots ,\beta _{n}稱爲迴歸參數,我們的目的就是利用樣本數據對這些參數做出估計,從而給出迴歸模型。

  • 在matlab中,與多元迴歸相關的命令是:

                                          [b,bint,r,rint,stats]=regress(y,X)

其中,b代表迴歸係數,bint是迴歸係數的區間估計,r是殘差,rint是置信區間,stats給出相關的檢驗統計量,依次爲r^2,相關係數,F以及F對應的p值。

  • 在R中,可以直接調用lm來進行迴歸建模:

                           fit=lm(y~x1+x2+x3,data=mydata)    ##以三元迴歸爲例,其餘情況類似可得##

                         summary(fit)

  • spss裏沒有命令。只需選擇迴歸分析,指定自變量與因變量即可。

下面以一個例子來具體說明:

給定數據集如下表所示,建立迴歸模型:

序號 x1 x2 x3 x4 y
1 82.9 92.0 17.1 94.0 8.4
2 88.0 93.0 21.3 96.0 9.6
3 99.9 96.0 25.1 97.0 10.4
4 105.3 94.0 29.0 97.0 11.4
5 117.7 100.0 34.0 100.0 12.2
6 131.0 101.0 40.0 101.0 14.2
7 148.2 105.0 44.0 104.0 15.8
8 161.8 112.0 49.0 109.0

17.9

9 174.2 112.0 51.0 111.0 19.6
10 184.7 112.0 53..0 111.0 20.8

一  matlab程序:

>> X=[ones(10),x1,x2,x3,x4];

>> [b,bint,r,rint,stats]=regress(y,X);

>> b

 

輸出結果如下:

b =

 0
         0
         0
         0
   -0.3352
         0
         0
         0
         0
         0
    0.1447
   -0.0201
   -0.0601
   -0.0014


bint =

         0         0

 0         0
         0         0
         0         0
  -16.3054   15.6350
         0         0
         0         0
         0         0
         0         0
         0         0
    0.0673    0.2221
   -0.2347    0.1946
   -0.2620    0.1419
   -0.0142    0.0114


r =

   -0.2550

  0.4823
   -0.1495
    0.2633
   -0.3058
    0.0129
   -0.4119
    0.1682
    0.1972
   -0.0017


rint =

   -0.9035    0.3935
   -0.2785    1.2430
   -1.1669    0.8678
   -0.3580    0.8846
   -1.1922    0.5806

0.0048    0.0210
   -1.2299    0.4061
   -0.4614    0.7979
   -0.7387    1.1331
   -0.6352    0.6317


stats =

    0.9958  293.5509    0.0000    0.1440

即建立的迴歸模型爲:y=-0.335+0.145x1-0.020x2-0.060x3-0.001x4

二  R程序

fit=lm(y~x1+x2+x3+x4)

summary(fit)

 

輸出結果如下:

Call:
lm(formula = y ~ x1 + x2 + x3 + x4, data = mydata)

Residuals:
        1         2         3         4         5         6         7 
-0.254973  0.482272 -0.149541  0.263324 -0.305798  0.012890 -0.411873 
        8         9        10 
 0.168239  0.197200 -0.001741 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) -0.335177   6.212688  -0.054  0.95906   
x1           0.144672   0.030114   4.804  0.00487 **
x2          -0.020060   0.083510  -0.240  0.81970   
x3          -0.060055   0.078562  -0.764  0.47912   
x4          -0.001390   0.004988  -0.279  0.79172   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3794 on 5 degrees of freedom
Multiple R-squared:  0.9958,    Adjusted R-squared:  0.9924 
F-statistic: 293.6 on 4 and 5 DF,  p-value: 4.085e-06

即建立的迴歸模型爲:y=-0.335+0.145x1-0.020x2-0.060x3-0.001x4

 三  spss輸出結果

                                     係數a                        
模型                    未標準化係數        標準化係數      t       顯著性
                               B      標準錯誤    Beta        
1    (常量)               -.335    6.213                          -.054    .959
    VAR00001           .145    .030       1.213           4.804    .005
    VAR00002          -.020    .084       -.038            -.240    .820
    VAR00003          -.060    .079       -.179            -.764    .479
    VAR00004          -.001    .005       -.010             -.279    .792
a 因變量:VAR00005      
                 

 即建立的迴歸模型爲:y=-0.335+0.145x1-0.020x2-0.060x3-0.001x4

由這個例子可以看出,matlab,R,spss給出的迴歸模型是完全一樣的。

                 

 

 

 

 

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