由于工作的机缘,我获得了广东省高速公路车流量近几年的摘要数据,如下表:
年份 车流量(万辆) 路网总里程(公里)
2005 36541 3040
2006 53218 3246
2007 62848 3319
2008 64826 3380
2009 70091 3650
2010 79996 4709
2011 87139 4840
2012 90639 5097
高速公路的车流量是高速公路IT管理系统的负载来源,因此,预期未来的车流量对IT系统规划有一定的帮助。
从历史摘要数据来看,在时间维度上,车流量随着时间的推移,逐年增长;在空间的纬度上,车流量随着路网总里程的增长而增长。为了获取较直观的认识,先用图表展示一下数据。
从数据的散点图来看,在时间维度和空间维度上,车流量都以近似线性的方式增长。因此,接下来采用线性回归方法进行数据拟合以期待找到预测未来车流量的模型。
用R语言进行数据分析:
tf<-data.frame(year=c(2005,2006,2007,2008,2009,2010,2011,2012), traffic=c(36541, 53218,62848,64826,70091,79996,87139,90639), mile=c(3040,3246,3319,3380,3650,4709,4840,5097))
lm.traffic <- lm(traffic ~ 1+year, data=tf)
summary(lm.traffic)
Call:
lm(formula = traffic ~ 1 + year, data = tf)
Residuals:
Min 1Q Median 3Q Max
-6412.9 -1937.2 617.9 1538.1 5489.3
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.440e+07 1.220e+06 -11.80 2.24e-05 ***
year 7.202e+03 6.074e+02 11.86 2.18e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3936 on 6 degrees of freedom
Multiple R-squared: 0.9591, Adjusted R-squared: 0.9523
F-statistic: 140.6 on 1 and 6 DF, p-value: 2.175e-05
在时间维度上,车流量与年份存在明显的线性相关性。
lm.traffic <- lm(traffic ~ 1+mile, data=tf)
summary(lm.traffic)
Call:
lm(formula = traffic ~ 1 + mile, data = tf)
Residuals:
Min 1Q Median 3Q Max
-14315.1 -2315.3 -323.5 6607.7 7207.5
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -9607.13 14272.14 -0.673 0.52592
mile 19.89 3.58 5.555 0.00144 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7851 on 6 degrees of freedom
Multiple R-squared: 0.8372, Adjusted R-squared: 0.8101
F-statistic: 30.86 on 1 and 6 DF, p-value: 0.001439
在空间维度上,车流量与路网总里程存在一定的相关性,但相关程度不如时间维度上的:
1)Multiple R-squared数值上,时间维度是0.9591,空间维度上是0.8372,即表示在时间维度上能够拟合96%的数据,获得的误差比空间维度的小
2)用cor()函数进行分析,时间维度上获得的相关性系统比空间维度上的高
cor(tf$year, tf$traffic)
0.9793246
cor(tf$mile, tf$traffic)
0.9149961
如果在时间维度和空间维度上同时对数据进行拟合,效果如何呢?
lm.traffic <- lm(traffic ~ 1+year+mile, data=tf)
summary(lm.traffic)
Call:
lm(formula = traffic ~ 1 + year + mile, data = tf)
Residuals:
1 2 3 4 5 6 7 8
-5984.1 3294.0 5294.1 -378.6 -2401.3 1586.1 1200.0 -2610.3
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.550e+07 3.970e+06 -3.906 0.0113 *
year 7.757e+03 1.987e+03 3.903 0.0114 *
mile -1.737e+00 5.873e+00 -0.296 0.7794
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4275 on 5 degrees of freedom
Multiple R-squared: 0.9598, Adjusted R-squared: 0.9437
F-statistic: 59.66 on 2 and 5 DF, p-value: 0.0003244
在两个维度上对数据同时进行拟合,与时间维度相比,并没有获得更好的效果。同时,模型的部分参数如Pr和Adjusted R-squared还稍差一些。用anova()函数进行方差分析
anova(lm(traffic ~ 1+year+mile, data=tf))
Analysis of Variance Table
Response: traffic
Df Sum Sq Mean Sq F value Pr(>F)
year 1 2178720238 2178720238 119.2289 0.000112 ***
mile 1 1597569 1597569 0.0874 0.779361
Residuals 5 91367117 18273423
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果表明,路网里程对减少误差的贡献最小。所以,单在时间维度上构建模型比在两个维度上构建模型较简单。
根据前面的分析,我们可以分别构建出车流量和年份的线性相关模型如(a),和车流量和路网总里程的线性相关模型如(b)
(a)车流量 = 7202 x 年份 - 1.440e+07
(b)车流量 = 19.89 x 路网总里程 - 9607.13
我们可以根据路网总里程的规划(如下)对未来车流量进行预测。
年份 路网总里程(公里)
2013 5327
2014 5913
2015 6459
2016 7323
2017 7759
2018 8910
2019 10120
2020 10425
时间维度预测:
new_year <- data.frame(year=c(2013,2014,2015,2016,2017,2018,2019,2020))
lm.traffic <- lm(traffic ~ 1+year, data=tf)
lm.pred<-predict(lm.traffic, new_year, interval="prediction", level=0.95)
lm.pred
fit lwr upr
1 100573.0 88362.59 112783.3
2 107775.3 94691.73 120859.0
3 114977.7 100917.62 129037.8
4 122180.1 107060.27 137299.9
5 129382.5 113135.94 145629.0
6 136584.9 119157.64 154012.1
7 143787.2 125135.60 162438.9
8 150989.6 131077.89 170901.4
预测结果整理如下:
年份 预测车流量(万辆) 95%的置信区间(万辆)
2013 100573 88363 - 112784
2014 107776 94692 - 120859
2015 114978 100918 - 129038
2016 122181 107061 - 137300
2017 129383 113136 - 145629
2018 136585 119158 - 154013
2019 143788 125136 - 162439
2020 150990 131078 - 170902
空间维度预测:
lm.traffic <- lm(traffic ~ 1+mile, data=tf)
new_mile <- data.frame(mile=c(5327,5913,6459,7323,7759,8910,10120,10425))
lm.pred<-predict(lm.traffic, new_mile, interval="prediction", level=0.95)
lm.pred
fit lwr upr
1 96342.8 72484.46 120201.1
2 107997.9 81108.69 134887.1
3 118857.4 88628.66 149086.2
4 136041.7 99859.90 172223.5
5 144713.4 105316.34 184110.5
6 167605.9 119296.07 215915.8
7 191671.9 133578.08 249765.7
8 197738.1 137134.73 258341.5
预测结果整理如下:
年份 预测车流量(万辆) 95%的置信区间(万辆)
2013 96343 72485 - 120202
2014 107998 81109 - 134888
2015 118858 88629 - 149087
2016 136042 99860 - 172224
2017 144714 105317 - 184111
2018 167606 119297 - 215916
2019 191672 133579 - 249766
2020 197739 137135 - 258342
截至2013年12月31日,2013年度广东全省高速公路的车流量是102008万辆
时间维度上的预测误差为 | 102008 - 100573 | / 102008 * 100% = 1.4%
空间维度上的预测误差为 | 102008 - 96343 | / 102008 * 100% = 5.6%
新的高速公路开通,无疑对整个路网的车流量有一定的影响。但分析表明,除了路网总里程这一因素以外,还有其他因素对车流量的影响更大,这些因素是什么暂时未能明晰,但可以知道的是这些因素对车流量的影响在时间维度上表现出一定规律。
以上是对广东省高速公路车流量的分析和预测,由于数据量十分少,因此使用的方法也比较简单,例如未有向高次多项式方面搜索更佳的模型,未有使用交叉验证和正则化对模型进行评估和比较。