1. 引言
潍坊地处中国华东地区、山东半岛中部,北濒渤海莱州湾,南依泰沂山脉,西与东营、淄博两市为邻,东与青岛、烟台两市相接,地扼山东内陆腹地通往半岛地区的咽喉,胶济铁路横贯市境东西。她有青州古城、沂山、青云山、十笏园、杨家埠民间艺术大观园、诸城恐龙博物馆等著名旅游景点,每年都有大量游客慕名而来,使得旅游人数逐年递增。因此,准确地预测潍坊市未来的旅游人数,对促进潍坊市旅游业的发展和规划有一定的实际价值和推动作用。
灰色系统是一种部分信息已知而部分信息未知的系统,该系统理论常用的预测模型是GM(1,1)模型,该模型的优点是可以利用较少的数据进行预测和分析,建模思想简单,公式较简洁,预测精度高等 [1]。本文将通过GM(1,1)模型来预测潍坊市未来五年的旅游人数。
2. GM(1,1)模型概述
对灰色系统建立的预测模型称为灰色模型,简称GM模型。它分为GM(1,1)、GM(1, N)等多种模型,其中GM(1,1)模型是系统预测的有效模型,本文的旅游人数预测就是应用的该模型。
2.1. 构建GM(1,1)预测模型的步骤 [2]
1) 设原始数列为
;
2) 级比检验。求级比
,
如果所有的级比
都落在可容覆盖
内,证明数列
可以作为模型GM(1,1)的数据进
行灰色预测;
3) 数列
的一次累加生成数列为
,
其中
,
;
4) 生成数列
的邻均值生成数列
。设邻均值生成数列为
,
其中
,
;
5) 构造数据矩阵B和数据向量
。
,
;
6) 将新数列
的变化趋势近似用微分方程描述:
,
其中a为发展系数,u为灰作用量,利用最小二乘法拟合得到:
;
7) 由微分方程的解法得微分方程的解为
;
8) 对数列
作累减生成,然后进行预测,即
。
2.2. 模型精度检验
为了确定预测数据是否可靠,对
进行精度检验,可利用残差检验的方法 [3]。先计算出残差序列
,再计算相对误差序列
。如果
,则可认为达到一般要求;如果
,则认为达到较高的要求。
3. GM(1,1)模型在旅游人数中的应用
潍坊市旅游资源丰富,拥有众多旅游景点,凭借优越的条件,得到了众多游客的青睐,旅游业的发展潜力巨大。我们将通过MATLAB 软件,运用GM(1,1)预测模型,利用2011年至2019年潍坊市旅游人数的原始数据,通过模型来预测2020年至2024年潍坊市的旅游人数。表1展示了潍坊市2011年至2019年的旅游人数,本数据来源于中国统计信息网,数据的准确性值得信赖。
![](Images/Table_Tmp.jpg)
Table 1. Number of tourists in Weifang from 2011 to 2019
表1. 潍坊市2011年至2019年的旅游人数
3.1. 潍坊市未来五年旅游人数预测
下面利用2011年至2019年潍坊市的旅游人数建立GM(1,1)模型。
1) 设原始数据列为
;
2) 计算级比
。代入数值,通过MATLAB软件计算得到
,
所有级比都落在其可容覆盖区间(0.8187, 1.1994)内,证明数列
可以建立GM(1,1)模型进行灰色预测;
3) 对原始数据
做一次累加得
;
4) 生成数列
的邻均值生成数列
。计算可得:
;
5) 生成数据矩阵B及数据向量
。
,
;
6) 对
建立微分方程:
。
利用MATLAB软件求得
,
;
7) 微分方程的解为
;
8) 对数列
作累减可得旅游人数的预测值,见表2。
![](Images/Table_Tmp.jpg)
Table 2. A comparison between the actual and predicted number of tourists in Weifang City
表2. 潍坊市旅游人数实际值与预测值对比
9) 精度检验
由表2可知,实际值与预测值比较接近,说明模型的拟合效果比较准确,而且利用MATLAB程序可得相对误差
,因为
,所以该预测达到较高要求。
10) 经过GM(1,1)灰色模型预测分析,得到了潍坊市未来五年的旅游人数预测,见表3。
![](Images/Table_Tmp.jpg)
Table 3. Forecast of the number of tourists in Weifang in the next five years
表3. 未来五年潍坊市旅游人数预测
模型预测曲线见图1,呈现增长态势。从图中也可以看出,预测较好,精度较准。
![](//html.hanspub.org/file/2-2621223x58_hanspub.png)
Figure 1. Forecast curve of the number of tourists in Weifang
图1. 潍坊市旅游人数预测曲线
3.2. GM(1,1)预测模型的MATLAB代码
根据GM(1,1)模型的建模步骤,利用MATLAB软件进行相关计算,具体代码如下:
clear;clc;
%建立符号变量a(发展系数)和u(灰作用量)
syms a u;
c=[a u]';
%原始数列x0
x0=[3631.5 4256.0 4735.2 5195.8 5611.5 6115.1 6805.5 7586.9 8240.1];
n=length(x0);
%级比检验
Xle=exp(-2/(n+1));
Xre=exp(2/(n+2));
lambda=x0(1:end-1)./x0(2:end);
range=minmax(lambda);
if range(2)
Xle
disp('所有的级比都落在可容覆盖区间,可以建立GM模型')
else
disp('没有通过级比检验')
end
%对原始数列 x0 做累加得到数列 x1
x1=cumsum(x0);
%对数列x1做紧邻均值生成
for i=2:n
z(i)=(x1(i) + x1(i-1))/2;
end
z(1)=[];
%构造数据矩阵
x1=[-z;ones(1,n-1)];
Y=x0; Y(1)=[];Y=Y';
%使用最小二乘法计算参数a(发展系数)和u(灰作用量)
c=inv(x1*x1')*x1*Y;
c=c';
a=c(1);
u=c(2);
%预测后续数据
F=[];F(1)=x0(1);
for i=2:(n+5)
F(i)=(x0(1)-u/a)/exp(a*(i-1))+ u/a;
end
%对数列 F 累减还原,得到预测出的数据
G=[];G(1)=x0(1);
for i=2:(n+5)
G(i)=F(i)-F(i-1); %得到预测出来的数据
end
disp('预测数据为:');
G
%模型检验
H=G(1:9);
%计算残差序列
epsilon=x0-H;
%计算相对误差序列
Q=abs(epsilon./x0);
Q
%绘制曲线图
t1=2011:2019;
t2=2011:2024;
plot(t1, x0,'ro'); hold on;
plot(t2, G, 'g-');
xlabel('年份/年'); ylabel('旅游人数/万人');
legend('原始数据','预测数据');
grid on;
4. 结论
1) 通过残差检验,证明了GM(1,1)模型预测精度高,具有较高的可信度,能够客观地反映目前潍坊市旅游人数呈逐年递增的总趋势。
2) 潍坊市旅游人数正处于逐年增长阶段,通过旅游人数的GM(1,1)预测模型知,未来五年潍坊市的旅游人数仍将持续增长,2022年旅游人数将突破1亿人。
3) 未来潍坊市应该重视旅游业的发展,通过旅游带动当地经济的进一步发展。旅游部门要加强旅游景点的相关建设,以容纳更多游客。
注:2020年旅游人数可能受新冠肺炎疫情的影响,导致实际值与预测值有较大出入,但该影响不会持续,预计2021年将恢复正常。