加载中…
个人资料
nativiti
nativiti
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,956
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用R软件进行自变量选择

(2013-11-19 22:15:21)
标签:

r语言

多元回归

自变量选择

分类: R语言学习笔记
自变量选择的准则:
准则1 自由度调整复决定系数达到最大。
准则2 赤池信息量AIC达到最小。
准则3 Cp统计量达到最小。
关于这三个准则具体内容可以参看《应用回归分析》P145~P148.
自变量的选择依据就是这三条准则。
R软件中提供了用AIC准则选元功能,根据其他准则的选元函数暂时还没找到。
先用lm函数对原数据进行回归:
cz.lm<-lm(y~x1+x2+x3+x4+x5+x6,data=cz)
选择的方法有三种 :
一、前进法
前进法的思想是变量由少到多,每次增加一个,直至没有可引入的变量为止。
前进法的方法以后再发。
二、后退法
后退法与前进法相反,先用全部的变量建立一个方程,然后在这些变量中选择一个最不重要的变量,从方程中剔除,直至没有可剔除的变量为止。

drop1函数观察:

> drop1(cz.lm)

Single term deletions

 

Model:

y ~ x1 + x2 + x3 + x4 + x5 + x6

       Df Sum of Sq     RSS    AIC

               515276 226.27

x1        542591 1057867 239.37

x2         88536  603812 227.60

x3         20834  536110 225.10

x4           278  515554 224.28

x5       1011046 1526322 247.07

x6         31684  546960 225.52

发现去掉x4之后AIC减少最多,故去掉x4,继续进行回归。
cz.drop1<-update(cz.lm,.~.-x4)
然后对得到的结果cz.drop1继续用drop1函数观察:

> drop1(cz.drop1)

Single term deletions

 

Model:

y ~ x1 + x2 + x3 + x5 + x6

       Df Sum of Sq     RSS    AIC

               515554 224.28

x1        870111 1385665 243.04

x2        190111  705666 228.87

x3         22801  538355 223.19

x5       1713154 2228708 253.02

x6         39639  555193 223.83

发现去掉x3AIC减小,故去掉x3继续回归,以此类推,直到AIC无法减小为止,这样就得到了最终的结果。

 

> drop1(cz.drop3)

Single term deletions

 

Model:

y ~ x1 + x2 + x5

       Df Sum of Sq     RSS    AIC

               570147 222.39

x1        817120 1387267 239.06

x2        534873 1105019 234.29

x5       1710882 2281029 249.51

无论去掉哪个变量,AIC都会增大,故不再去掉变量。最终的结果中包含自变量x1、x2、x5。

三、逐步回归法

逐步回归法是将变量一个一个引入,每引入一个自变量时,对已选入的变量进行逐个检验,当原引入的变量由于后面变量的引入变得不再显著时,要将其剔除。

在R中可以直接用step函数实现逐步回归:

 

> cz.step<-step(cz.lm)

Start:  AIC=226.27

y ~ x1 + x2 + x3 + x4 + x5 + x6

 

       Df Sum of Sq     RSS    AIC

- x4         278  515554 224.28

- x3       20834  536110 225.10

- x6       31684  546960 225.52

               515276 226.27

- x2       88536  603812 227.60

- x1      542591 1057867 239.37

- x5     1011046 1526322 247.07

 

Step:  AIC=224.28

y ~ x1 + x2 + x3 + x5 + x6

 

       Df Sum of Sq     RSS    AIC

- x3       22801  538355 223.19

- x6       39639  555193 223.83

               515554 224.28

- x2      190111  705666 228.87

- x1      870111 1385665 243.04

- x5     1713154 2228708 253.02

 

Step:  AIC=223.19

y ~ x1 + x2 + x5 + x6

 

       Df Sum of Sq     RSS    AIC

- x6       31792  570147 222.39

               538355 223.19

- x2      566230 1104585 236.28

- x1      847748 1386103 241.05

- x5     1704674 2243029 251.16

 

Step:  AIC=222.39

y ~ x1 + x2 + x5

 

       Df Sum of Sq     RSS    AIC

               570147 222.39

- x2      534873 1105019 234.29

- x1      817120 1387267 239.06

- x5     1710882 2281029 249.51

最后一步剩下的自变量就是逐步回归选好的自变量。

step函数可以直接得到选元后的模型:

 

> cz.step


Call:

lm(formula = y ~ x1 + x2 + x5, data = cz)


Coefficients:

(Intercept)           x1           x2           x5  

   874.5863      -0.6112      -0.3530       0.6367 


附:本文使用的数据:
在R里面保存成名为cz的数据框(data.frame)。
x1 x2 x3 x4 x5 x6 y
1018.4 1607 138.2 96259 2239.1 50760 1132.26
1258.9 1769.7 143.8 97542 2619.4 39370 1146.38
1359.4 1996.5 195.5 98705 2976.1 44530 1159.93
1545.6 2048.4 207.1 100072 3309.1 39790 1175.79
1761.6 2162.3 220.7 101654 3637.9 33130 1212.33
1960.8 2375.6 270.6 103008 4020.5 34710 1366.95
2295.5 2789 316.7 104357 4694.5 31890 1642.86
2541.6 3448.7 417.9 105851 5773 44370 2004.82
2763.9 3967 525.7 107507 6542 47140 2122.01
3204.3 4585.8 665.8 109300 7451.2 42090 2199.35
3831 5777.2 810 111026 9360.1 50870 2357.24
4228 6484 794 112704 10556.5 46990 2664.9
5017 6858 859.4 114333 11365.2 38470 2937.1
5288.6 8087.1 1015.1 115823 13145.9 55470 3149.48
5800 10284.5 1415 117171 15952.1 51330 3483.37
6882.1 14143.8 2284.7 118517 20182.1 48830 4348.95
9457.2 19359.6 3012.6 119850 26796 55040 5218.1
11993 24718.3 3819.6 121121 33635 45821 6242.2
13844.2 29082.6 4530.5 122389 40003.9 46989 7407.99
14211.2 32412.1 4810.6 123626 43579.4 53429 8651.14
14599.6 33429.8 5262 124810 46405.9 50145 9875.95


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有