多元回归——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给出的回归模型是完全一样的。

                 

 

 

 

 

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