#摘要
近年来,中国旅游业保持了高速增长,已然成为国民经济发展的新兴增长点,对于旅游业增长势头的了解、预测变得十分重要。
本文借助R语言,通过逐步回归分析近年来国内旅游收入与多个因素的相关关系,并通过显著性检验对解释变量进行取舍,最终得到关于国内旅游收入的回归方程,借此对旅游业的发展势头进行后验性的预测。
#关键词
国内旅游,逐步回归,显著性检验,AIC;
#引言
近年来,随着国内旅游业的持续发展,旅游业作为国民经济增长新的增长点,在国民经济发展中的作用日益明显。
中国旅游业分为国内旅游和入境旅游两大市场,入境旅游外汇收入年均增长22.6%,与此同时国内旅游也迅速增长。特别是进入20世纪90年代后期,中国国内旅游业收入年均增长14.4%,远高于GDP增长率。其中1994-2003年十年间中国旅游收入及相关数据1如表所示。
年份 | 国内旅游收入(亿元) | 国内旅游人数(万人次) | 城镇居民人均旅游支出(元) | 农村居民人均旅游支出(元) | 公路里程(万公里) | 铁路里程(万公里) |
---|---|---|---|---|---|---|
1994 | 1023.5 | 52400 | 414.7 | 54.9 | 111.78 | 5.9 |
1995 | 1375.7 | 62900 | 464 | 61.5 | 115.7 | 5.97 |
1996 | 1638.4 | 63900 | 534.1 | 70.5 | 118.58 | |
1997 | 2112.7 | 64400 | 599.8 | 145.7 | 122.64 | 6.6 |
1998 | 2391.2 | 69450 | 607 | 197 | 127.85 | 6.64 |
1999 | 2831.9 | 71900 | 614.8 | 249.5 | 135.17 | 6.74 |
2000 | 3175.5 | 74400 | 678.6 | 226.6 | 140.27 | 6.87 |
2001 | 3522.4 | 78400 | 708.3 | 212.7 | 169.8 | 7.01 |
2002 | 3878.4 | 87800 | 739.7 | 209.1 | 176.52 | 7.19 |
2003 | 3442.3 | 87000 | 684.9 | 200 | 180.98 | 7.3 |
#方法及计算结果
在多元回归分析中,我们需要关注的点如下:
##方法
为选择合适的解释变量,在R语言采用逐步回归方法,结合相关系数,以及t、F检验验证模型的局部和总体显著性。
结合本文遇到的具体问题,我选择的方法步骤如下:
####1.分别计算5个解释变量与因变量y之间的相关系数R;
tr_data<-read.table("travel.txt",head=1);
attach(tr_data);
par(mfrow=c(2,3));
plot(x1,y,xlab="国内旅游人数",ylab="国内旅游收入");abline(lm(y~x1))
plot(x2,y,xlab="城镇居民人均旅游支出",ylab="国内旅游收入");abline(lm(y~x2))
plot(x3,y,xlab="农村居民人均旅游支出",ylab="国内旅游收入");abline(lm(y~x3))
plot(x4,y,xlab="公路里程",ylab="国内旅游收入");abline(lm(y~x4))
plot(x5,y,xlab="铁路里程",ylab="国内旅游收入");abline(lm(y~x5))
print(cor_xy<-c(cor(x1,y),cor(x2,y),cor(x3,y),cor(x4,y),cor(x5,y)))#计算解释变量与因变量y之间的相关系数
输出结果:
[1] 0.9506456 0.9776733 0.8783299 0.9162138 0.9515093
结果表明5个解释变量与因变量y之间的线性比较明显,暂时保留5个变量进行回归分析;
####2.运用逐步回归方法计算回归方程,R语言中有前向和后向两种回归方式,代码如下:
reduce.model<-step(lm,direction="backward")#后向,减少解释变量
min.model<-lm(y~1)
fwd.model<-step(min.model,direction="forward",scope=(~x1+x2+x3+x4+x5))#前向,逐步增加解释变量
得到的输出如下:
后向:
Start: AIC=94.97
y ~ x1 + x2 + x3 + x4 + x5
Df Sum of Sq RSS AIC
40115 94.969
- x1 1 10664 50778 95.326
- x5 1 30807 70922 98.667
- x4 1 96892 137007 105.252
- x3 1 120412 160526 106.836
- x2 1 155649 195764 108.821
前向:
Start: AIC=138.8
y ~ 1
Df Sum of Sq RSS AIC
+ x2 1 8347017 385588 109.60
+ x5 1 7906238 826367 117.22
+ x1 1 7891891 840714 117.39
+ x4 1 7330565 1402040 122.51
+ x3 1 6736885 1995720 126.04
8732605 138.80
Step: AIC=109.6
y ~ x2
Df Sum of Sq RSS AIC
+ x4 1 193717 191871 104.62
+ x1 1 153455 232132 106.53
385588 109.60
+ x3 1 36674 348914 110.60
+ x5 1 11416 374171 111.30
Step: AIC=104.62
y ~ x2 + x4
Df Sum of Sq RSS AIC
+ x3 1 117168 74704 97.187
191871 104.620
+ x5 1 18706 173165 105.594
+ x1 1 5562 186309 106.326
Step: AIC=97.19
y ~ x2 + x4 + x3
Df Sum of Sq RSS AIC
+ x5 1 23925.2 50778 95.326
74704 97.187
+ x1 1 3781.7 70922 98.667
Step: AIC=95.33
y ~ x2 + x4 + x3 + x5
Df Sum of Sq RSS AIC
+ x1 1 10664 40115 94.969
50778 95.326
Step: AIC=94.97
y ~ x2 + x4 + x3 + x5 + x1
二者得到的结果一致,即没有去除任何解释变量。
可以得到基于AIC判别的逐步分析法得到的回归方程是
##结果
$$Y=-2441.161+4.216X_2+3.222X_3+13.629X_4$$为什么逐步分析法得到的方程与最终选择的回归方程不一致?请看讨论。
#讨论
在R语言中调用step()方法,得到的回归结果如下
summary(reduce.model)
Call:
lm(formula = y ~ x1 + x2 + x3 + x4 + x5)
Residuals:
1 2 3 4 5 6 7 8 9 10
47.98 -38.43 55.94 -70.41 -110.14 45.56 91.39 -34.75 53.34 -40.48
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -274.37728 1316.68972 -0.208 0.8451
x1 0.01309 0.01269 1.031 0.3607
x2 5.43819 1.38040 3.940 0.0170 *
x3 3.27177 0.94421 3.465 0.0257 *
x4 12.98624 4.17793 3.108 0.0359 *
x5 -563.10774 321.28299 -1.753 0.1545
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 100.1 on 4 degrees of freedom
Multiple R-squared: 0.9954, Adjusted R-squared: 0.9897
F-statistic: 173.4 on 5 and 4 DF, p-value: 9.19e-05
只用逐步回归法得到的方程为:
$$Y=-274.37728+0.0131X_1+5.4382X_2+3.2718X_3+12.9862X_4-563.10774X_5$$该结果表明系统总体显著性明显,但R语言中的逐步回归算法依靠的原理是AIC
即选择使AIC最小的解释变量进行回归。以前向逐步回归为例:当计算y~1时(此时不选择任何解释变量)AIC=138.8;当加入一个解释变量时,AIC减少,其中对x2进行回归时AIC减少的最明显,因此将x2作为解释变量继续回归,取使得AIC减少最明显的一个变量加入解释变量,直到不加入解释变量(none情况)时AIC的值小于加入任何剩余变量,结束回归,得到的解释变量为之前已经加入的解释变量。
但由于模型误差并不严格满足正态分布,因此AIC可能是不全面的。
根据截距项(intercept)、x1、x5的t检验可以看到,三者的显著性并不明显;同时,截距项的不明显可能是由于解释变量之间相关性导致的;结合基于AIC逐步回归法的过程数据,我们看到x1,x5与y之间的相关性较差, 可以求得x1,x5与其余三个解释变量之间的相关系数:
c(cor(x1,x2),cor(x1,x3),cor(x4,x5));
结果得到
[1] 0.9188508 0.7519599 0.8977083
表明x1,x5与其余变量间的相关性是比较明显的,因此我们可以试着去掉x1,x5只对其余三个解释变量进行回归。
lm2=lm(y~x2+x3+x4)
lm2.summary=summary(lm2)
lm2.summary
结果如下:
Call:
lm(formula = y ~ x2 + x3 + x4)
Residuals:
Min 1Q Median 3Q Max
-115.74 -83.44 0.28 72.99 121.55
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2441.161 296.039 -8.246 0.000172 ***
x2 4.216 1.069 3.945 0.007581 **
x3 3.222 1.050 3.068 0.022008 *
x4 13.629 2.904 4.693 0.003351 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 111.6 on 6 degrees of freedom
Multiple R-squared: 0.9914, Adjusted R-squared: 0.9872
F-statistic: 231.8 on 3 and 6 DF, p-value: 1.365e-06
可以看到,截距项的显著性的到了提高,所以选择该方法得到的方程:
$$Y=-2441.161+4.216X_2+3.222X_3+13.629X_4$$#参考文献
1.中国统计年鉴:http://www.stats.gov.cn/tjsj/ndsj/;
2.《应用数理统计》(试用版):孙海燕,周梦,李卫国,冯伟;北京航空航天大学出版社;
3.《R语言经典实例》Paul Teetor,O’REILLY,机械工业出版社;
4.《R数据分析——方法与案例详解》方匡南,朱建平,姜叶飞 编著;