R语言统计分析(一元线性回归和多元线性回归)
(2015-05-08 15:23:32)
标签:
r语言绘图统计回归分析 |
分类: 数据统计与分析 |
数据
表2 |
|
|||||
年份 |
投资总额 (亿元) |
从业人数 (万人) |
能源投入 (万吨标准煤) |
地区GDP (亿元) |
CO2排放量 (万吨) |
|
2003年 |
320.1 |
166.37 |
487.82 |
6867.7 |
1216.14 |
|
2004年 |
373.87 |
180.37 |
509.12 |
8553.79 |
1269.24 |
|
2005年 |
468.35 |
187.29 |
649.93 |
10587.42 |
1620.28 |
|
2006年 |
568.4 |
188.9 |
673.04 |
12362.79 |
1677.89 |
|
2007年 |
426.06 |
198.65 |
772.28 |
15012.46 |
1925.29 |
|
2008年 |
389.43 |
204.46 |
802.43 |
18407.78 |
2000.46 |
|
2009年 |
484.44 |
207.7 |
875.72 |
19480.46 |
2183.17 |
|
2010年 |
661.88 |
213.14 |
1340.6 |
23092.36 |
3342.12 |
|
2011年 |
784.37 |
217.8 |
1288.68 |
26931.03 |
3212.68 |
|
2012年 |
896.8 |
222.77 |
1418.56 |
29599.31 |
3536.47 |
|
将以上excel表格进行简单处理,并保存为txt文本格式,存放在C盘的Data文件夹内。表2为2003-2012某省运输业相关数据,保存时命名为zongti.txt。代码中出现的invest,worker,energy,gdp,carbon等词语分别代表表格中的投资总额、从业人数、能源投入地区GDP、CO2排放量。
一元线性回归分析
相关分析只能得出两个变量之间是否相关,但是不能回答两个变量之间存在相关关系时是如何联系的,即无法找出刻画它们之间因果关系的函数关系,回归分析就可以解决这一问题。根据表2中投资总额和地区GDP这两项数据,分别设为变量X和Y。代码如下:
setwd("c:\\Data\\")
zongti<-read.table(file="zongti.txt",header=TRUE)
x<-zongti$Invest
y<-zongti$GDP
lm.r<-lm(y~1+x)
summary(lm.r)
调用函数lm()可以非常方便求解回归方程,以下为运行的结果:
Call:
lm(formula = y ~ 1 + x)
Residuals:
-5833.7
Coefficients:
(Intercept)
-2080.606
x
---
Signif.
codes:
Residual standard error: 4074 on 8 degrees of freedom
Multiple
R-squared:
F-statistic: 24.73 on 1 and 8
DF,
从上面输出的结果中的p值可以看出回归方程通过回归参数的检验与回归方程的检验,由此得到的一元线性回归方程为:
Y= -2080.606+35.674X
多元回归分析
很多实际问题中,影响响应变量的因素不止一个,因此综合需要考虑与之相关的其他变量,此类回归分析为多元回归分析。也就是说多元回归分析是对随机变量Y与n个自变量X1、X2…Xn之间存在的线性相关关系。
根据表2中投资总额、从业人数和能源投入以及地区GDP这两项数据,分别设为变量X1、X2、X3和Y。代码如下:
setwd("c:\\Data\\")
zongti<-read.table(file="zongti.txt",header=TRUE)
y<-zongti$GDP
同样调用lm()函数进行的回归分析,由于考虑的变量很多,用step()函数进行变量筛选,结果如下:
Start:
y ~ x1 + x2 + x3
- x1
- x3
- x2
Step:
y ~ x2 + x3
- x3
- x2
> summary(lm.s)
Call:
lm(formula = y ~ x2 + x3)
Residuals:
-2192.72
Coefficients:
(Intercept) -39030.90
x2
x3
---
Signif. codes:
Residual standard error: 1387 on 7 degrees of freedom
Multiple R-squared:
F-statistic: 137.6 on 2 and 7 DF,
若选择全部的变量构造回归方程,效果不一定好。R语言提供了获得最优回归方程的方法,逐步回归法的计算函数step(),它以Akaike信息统计量为准则(AIC)通过选择最小的AIC信息统计量,来达到删除或者增加变量的目的。也就是说它是以AIC作为评价指标来判断一个变量是否应该加入模型。
从上面运行的结果来看,如果去掉变量X1,AIC的值为147.14;如果如果去掉变量X2,AIC的值为157.58;如果去掉变量X3,AIC的值为150.38;如果选用所有的变量构造方程,AIC的值为148.59。所以可以考虑去掉变量X1。
去掉变量X1后,由于用于回归方程检验的F统计量的p值和用于回归系数检验的t统计量的p值都小于0.05,因此回归方程与回归系数的检验都是显著的,最优的多元回归方程为:
Y= -39030.90+235.96X2+ 10.46X3