[数理统计-逐步回归]国内旅游收入回归

数理统计小论文(一)

#摘要
近年来,中国旅游业保持了高速增长,已然成为国民经济发展的新兴增长点,对于旅游业增长势头的了解、预测变得十分重要。
本文借助R语言,通过逐步回归分析近年来国内旅游收入与多个因素的相关关系,并通过显著性检验对解释变量进行取舍,最终得到关于国内旅游收入的回归方程,借此对旅游业的发展势头进行后验性的预测。
#关键词
国内旅游,逐步回归,显著性检验,AIC;


#引言
近年来,随着国内旅游业的持续发展,旅游业作为国民经济增长新的增长点,在国民经济发展中的作用日益明显。
中国旅游业分为国内旅游和入境旅游两大市场,入境旅游外汇收入年均增长22.6%,与此同时国内旅游也迅速增长。特别是进入20世纪90年代后期,中国国内旅游业收入年均增长14.4%,远高于GDP增长率。其中1994-2003年十年间中国旅游收入及相关数据1如表所示。

年份国内旅游收入(亿元)国内旅游人数(万人次)城镇居民人均旅游支出(元)农村居民人均旅游支出(元)公路里程(万公里)铁路里程(万公里)
19941023.552400414.754.9111.785.9
19951375.76290046461.5115.75.97
19961638.463900534.170.5118.58
19972112.764400599.8145.7122.646.6
19982391.269450607197127.856.64
19992831.971900614.8249.5135.176.74
20003175.574400678.6226.6140.276.87
20013522.478400708.3212.7169.87.01
20023878.487800739.7209.1176.527.19
20033442.387000684.9200180.987.3

#方法及计算结果
在多元回归分析中,我们需要关注的点如下:

  • 误差项正态性和独立性
  • 误差项的异方差性
  • 解释变量的相关性
  • 解释变量的选择
  • 正规方程的求解
  • 模型稳定性
  • 预测和控制
    上表所示数据中,我们将国内旅游收入作为预测变量y,将其余5个变量作为解释变量,从左至右依次记为x1,x2,x3,x4,x5。

##方法
为选择合适的解释变量,在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
<none>               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
<none>              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
<none>              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
<none>              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
<none>              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
<none>              50778 95.326

Step:  AIC=94.97
y ~ x2 + x4 + x3 + x5 + x1

二者得到的结果一致,即没有去除任何解释变量。
可以得到基于AIC判别的逐步分析法得到的回归方程是

$$Y=-274.37728+0.0131X_1+5.4382X_2+3.2718X_3+12.9862X_4-563.10774X_5$$

##结果

$$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数据分析——方法与案例详解》方匡南,朱建平,姜叶飞 编著;

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值