1、 J I A N G S U U N I V E R S I T Y江苏省餐饮业零售总额分析预测学校:江苏大学学院:财经学院班级:统计 1201组员:韩亚琼 3120812015马海燕 3120812022顾君颖 3120812020王培培 3120812009陆金龙 3120812029白 卓 3120812028完成时间:2014 年 12 月 13 日 星期六1一、 摘要二、 引言三、 数据分析原始数据的获取:本文所有的样本数据均来自江苏统计年鉴2014(http:/ 1:表 1 按行业分社会消费品零售总额年 份 社会消费品零售总额 批发和零售业 餐饮业 其他行业1978 84.79 7
2、9.18 3.24 2.371979 99.16 91.61 3.90 3.651980 122.56 114.35 4.72 3.491981 134.79 125.16 5.17 4.461982 150.01 138.87 5.49 5.651983 169.12 156.28 6.14 6.701984 205.05 188.80 7.61 8.641985 262.57 240.69 10.45 11.431986 304.58 279.25 12.53 12.801987 360.74 329.31 15.84 15.591988 471.83 432.06 20.33 19.44
3、1989 509.56 467.11 22.47 19.981990 515.43 472.72 24.17 18.541991 578.12 529.94 27.86 20.321992 704.52 644.61 33.64 26.271993 967.77 888.24 44.74 34.791994 1359.61 1238.30 71.44 49.871995 1741.92 1573.01 95.21 73.701996 2080.44 1901.47 135.64 43.331997 2300.61 2082.71 167.92 49.991998 2453.84 2208.24
4、 192.52 53.081999 2649.56 2367.59 227.58 54.392000 2908.46 2583.19 269.59 55.692001 3233.35 2845.89 326.71 60.762002 3656.57 3179.23 410.83 66.5222003 4194.50 3613.67 510.94 69.882004 4892.18 4333.18 496.10 21.222005 5735.50 5051.70 583.09 50.912006 6706.19 5898.79 678.83 60.892007 7985.90 7023.48 8
5、10.56 69.382008 9905.10 8890.30 826.10 88.902009 11484.10 10312.81 957.23 106.402010 13606.80 12207.18 1147.99 124.502011 15988.38 14320.87 1359.27 146.302012 18331.30 16448.83 1588.08 115.972013 20796.50 18694.85 1788.44 139.98这里我们仅用到第三列数据,为了方便分析,我们将餐饮业零售总额序列命名为 caterts。第一步 序列的平稳性检验为判断一个序列是否平稳,我们主要
6、通过时序图以及自相关图进行检验。对 caterts 做时序图,有图形发现有明显的指数趋势,序列非平稳,也可以初步发现江苏省的餐饮业零售总额逐年递增,尤其是在新世纪以后,人们的生活水平逐年提高,对餐饮业的贡献也增大:图 1 caterts 序列时序图因为原序列有明显的指数趋势,故先对数列进行对数变换得到新的数列 3logcatets,序列图如下,具有明显的非线性增长趋势:图 2 对数化后的时序图对具有明显线性趋势的数列常用的平稳化措施是差分,我们对 logcaterts 序列进行一阶差分得到新的数列 difflogcaterts,时序图如下:图 3 对数化和一阶差分后的时序图通过对时序图分析发现
7、数列具有平稳性,为了方便分析,我们对difflogcaterts 序列进行中心化处理,得到新的数列 x。对 x 进行 ADF 检验(单4位根检验) 。R 语言中有专门的 fUnitRoots 包,里面有 urdftest 功能,是专门进行序列的 ADF 单位根检验,通过 R 软件得到如下结果:Title:Augmented Dickey-Fuller Unit Root TestTest Results:Test regression none Call:lm(formula = z.diff z.lag.1 - 1 + z.diff.lag)Residuals:Min 1Q Median 3
8、Q Max -0.224894 -0.051073 0.006261 0.043257 0.242110 Coefficients:Estimate Std. Error t value Pr(|t|) z.lag.1 -0.59259 0.19455 -3.046 0.0047 *z.diff.lag 0.02909 0.18067 0.161 0.8731 -Signif. codes: 0 * 0.001 * 0.01 * 0.05 . 0.1 1Residual standard error: 0.08821 on 31 degrees of freedomMultiple R-squ
9、ared: 0.2853, Adjusted R-squared: 0.2392 F-statistic: 6.188 on 2 and 31 DF, p-value: 0.005481Value of test-statistic is: -3.046 Critical values for test statistics: 1pct 5pct 10pcttau1 -2.62 -1.95 -1.61从结果可以看出 ADF 统计量为-3.046,在 1%,5%,10%的置信水平下均拒绝原假设,认为序列 x 平稳。第二步 模型的识别与定阶模型的识别与定阶主要是通过对序列的自相关和偏自相关观察得到
10、的。通过 R软件的到序列 x 的自相关和偏自相关图:图 4 序列 x 的自相关图5图 5 序列 x 的偏自相关图通过自相关图和偏自相关图,可以发现序列 x 自相关明显拖尾,偏自相关有结尾的性质,在第十阶的时候,PACF 超出了两倍的标准差,这可能是由于偶然因素引起的,可以考虑使用 AR(1)和 AR(11)模型,但是为了数据的完整性,尽量避免滞后期,可以考虑 AR(1)模型。在 R 语言中有专门的 forecast 包,包里的 auto.arima 函数可以对序列模型进行智能识别建模。通过 R 语言的智能识别功能得到如下结果:Series: x ARIMA(1,0,0) with zero m
11、ean Coefficients:ar10.4126s.e. 0.1512sigma2 estimated as 0.006901: log likelihood=37.33AIC=-70.65 AICc=-70.28 BIC=-67.54通过如剑的输出结果我们发现结果与我们预测的一样,均是 AR(1)模型。得到的模型方程为: =0.14261+第三步 模型的适应性检验模型的适应性检验实质上就是检验残差序列 是否为白噪声序列。其中最主要的是 序列的独立性检验。通过 R 软件得到模型的残差序列的时序图(偏)自相关图:6图 6 残差序列的时序、自相关和偏自相关图通过对图形的观察,初步判断残差序列
12、为白噪声。R 语言中的 Box.test 函数也可对残差序列进行白噪声检验。且得到的结果如下:LAG LB p1, 1 0.02128392 0.88400812, 2 0.08484764 0.95846353, 3 0.43750962 0.93238944, 4 0.69614605 0.95180335, 5 2.02913305 0.84509946, 6 2.03204959 0.91672757, 7 2.24882031 0.94479578, 8 2.45473056 0.96380859, 9 8.50017079 0.484629310, 10 10.92550151 0
13、.363351511, 11 10.93987632 0.448313912, 12 13.84447905 0.3107497可以发现无论滞后几期,P 值均大于 0.05,所以接受原假设,认为残差序列通过纯随机性检验。故模型最终为 ARIMA(1,0,0),即为 AR(1)第四步 模型参数的估计模型参数的估计主要有矩估计,最小二乘估计(ML 估计) ,极大似然估,7这里我们主要用的是最小二乘估计,估计的结果在第二步模型的识别中 R 语言智能建模中给出了,这里不做重复论述。模型的估计方程如下: =0.14261+第五步 模型的预测将模型的拟合值与模型的真实值进行画图对比,得到如下图:图 7 拟
14、合值真实值发现拟合值与真实值之间有一定差别,这是由于残差序列的存在,将拟合值与残差序列相加得到的结果与 X 序列作图,结果如下:图 8 加上残差的拟合值真实值观察图 8,可以发现拟合的特别好,所有的点都落在了真实值上。我们用拟合的有效模型进行短期预测,比如我们预测 2014 年、2015 年、2016、2017 年和 2018 年的餐饮业零售总额。先预测 2014 年、2015 年、2016年、2017 年和 2018 年的 x,再预测餐饮业零售总额。8在 R 语言中可以使用 predict 函数对序列进行预测,这里我们进行向前 5 步预测,得到点预测,区间预测。结果如下:$predTime
15、Series:Start = 2014 End = 2018 Frequency = 1 1 -0.0254059516 -0.0104836538 -0.0043260335 -0.0017851186 -0.0007366213$seTime Series:Start = 2014 End = 2018 Frequency = 1 1 0.08307163 0.08986632 0.09097274 0.09115980 0.09119162利用公式 2.可以得到预测值的区间估计,点估计和区间估计具体结果如下:序列 X 2014 2015 2016 2017 2018点预测值 -0.025
16、4060 -0.0104837 -0.004326 -0.0017851 -0.0007366下界值(L)-0.1882263 -0.1866216 -0.1826326 -0.1804583 -0.1794722上界值(U)0.1374144 0.1656543 0.1739805 0.1768881 0.1779990通过还原零均值、差分和对数变换,就可以得到江苏省餐饮业零售总额(caterts)2014 到 2015 年的预测值:利用公式:2014=2014+2013+mean( terts)2014=(2014)得到江苏省 2014 年餐饮业的零售手总额预测值,以此类推,分别得到201
17、5,2016,2017,2018 年餐饮业零售总额的预测值。值得一体的是时间序列预测9效果越好,则向前预测的阶数就越少。所以在该模型中预测最好的是 2014 年。2014 2015 2016 2017 2018点预测值 2088.245 2474.967 2951.423 3528.556 4222.97值得一体的是时间序列预测效果越好,则向前预测的阶数就越少。所以在该模型中预测最好的是 2014 年。四、 参考文献1 王振龙. 应用时间序列分析M.北京:中国统计出版社,20102 Paul Teetor .R 语言经典实例M. 北京:机械工业出版社, 20133 Robert I.Kabac
18、off.R 语言实战M.北京:人民邮电出版社,2013五、 附录R 语言代码:rcatering - read.table(“E:catering.txt“,header=F)caterts - ts(catering,start=1978,frequency=1) #数据时间序列化plot.ts(caterts,main=(“CATERING“),ylab=“CATERING“) #序列图logcaterts - log(caterts)difflogcaterts - diff(log(caterts) #对数差分plot(difflogcaterts, main=“logged and diffed“)x - scale(difflogcaterts,T,F) #零均值化acf(x,10) #自相关pacf(x,10) #偏自相关corr - acf(x,10)cov - acf(x,10,type = “covariance“) library(fUnitRoots) #ADF 单位根检验urdfTest(x)library(forecast) #建模fit - auto.arima(x)fitresid - fit$residual #生成残差序列residplotForecastErrors(fit$residuals)# 白噪声检验Result=0LAG=0LB=0