灰色预测是一种常规的预测手段,具有操作简便,所需数据量少等优点,一般只需有4个数据就可以进行预测。
灰色预测是基于灰色系统理论的预测方法。灰色系统由我国著名学者邓聚龙教授在1982年提出,是相对于“白色模型”——完全信息透明的模型,和“黑色模型”——对信息一无所知的模型的模型概念。利用灰色系统解决的问题主要是具有不确定性的问题:
灰色关联度分析了向量与向量之间以及矩阵与矩阵之间的关联度,而向量与向量之间的关联度可以看作矩阵与矩阵之间的关联度的一种特殊形式。
计算关联度,一定是计算某个待比较的数列与参照物(亦即参考数列)之间的相关程度。
假设有一组参照数列如下:
x j = ( x j ( 1 ) , x j ( 2 ) , x j ( 3 ) , ⋯ , x j ( k ) , ⋯ , x j ( n ) ) j = 1 , 2 , 3 , ⋯ , s x_j=(x_j(1),x_j(2),x_j(3),\cdots,x_j(k),\cdots,x_j(n))\ \ \ \ j=1,2,3,\cdots,s xj=(xj(1),xj(2),xj(3),⋯,xj(k),⋯,xj(n)) j=1,2,3,⋯,s
假设有一组待比较数组如下:
x i = ( x i ( 1 ) , x i ( 2 ) , x i ( 3 ) , ⋯ , x i ( k ) , ⋯ , x i ( n ) ) i = 1 , 2 , 3 , ⋯ , t x_i=(x_i(1),x_i(2),x_i(3),\cdots,x_i(k),\cdots,x_i(n))\ \ \ \ i=1,2,3,\cdots,t xi=(xi(1),xi(2),xi(3),⋯,xi(k),⋯,xi(n)) i=1,2,3,⋯,t
则定义关联系数如下:
ξ j i ( k ) = m i n i m i n k ∣ x j ( k ) − x i ( k ) ∣ + ρ ⋅ m a x i m a x k ∣ x j ( k ) − x i ( k ) ∣ ∣ x j ( k ) − x i ( k ) ∣ + ρ ⋅ m a x i m a x k ∣ x j ( k ) − x i ( k ) ∣ \xi_{ji}(k)=\frac{\underset{i}{min}\ \underset{k}{min}|x_j(k)-x_i(k)|+\rho \cdot\underset{i}{max}\ \underset{k}{max}|x_j(k)-x_i(k)|}{|x_j(k)-x_i(k)|+\rho \cdot\underset{i}{max}\ \underset{k}{max}|x_j(k)-x_i(k)|} ξji(k)=∣xj(k)−xi(k)∣+ρ⋅imax kmax∣xj(k)−xi(k)∣imin kmin∣xj(k)−xi(k)∣+ρ⋅imax kmax∣xj(k)−xi(k)∣
关于该式的说明如下:
由于 ξ j i ( k ) \xi_{ji}(k) ξji(k)只能反映处点与点之间的相关性,相关性信息分散,不方便刻画数列之间的相关性,需要把 ξ j i ( k ) \xi_{ji}(k) ξji(k)整合起来,定义:
r j i = Σ k = 1 n ξ j i ( k ) n r_{ji}=\frac{\overset{n}{\underset{k=1}{\Sigma}}\xi_{ji}(k)}{n} rji=nk=1Σnξji(k)
变量 r j i r_{ji} rji即为相关度,结合实际背景,有正面作用的即为正相关,反之则为负相关; r j i r_{ji} rji大于0.7称为强相关,小于0.3称为弱相关。
将 x i x_i xi与 x j x_j xj之间的相关度写为矩阵形式:
R = [ r 11 r 12 ⋯ r 1 t r 21 r 22 ⋯ r 2 t ⋮ ⋮ ⋱ ⋮ r s 1 r s 2 ⋯ r s t ] R= \begin{bmatrix} r_{11}&r_{12}&\cdots&r_{1t}\\ r_{21}&r_{22}&\cdots&r_{2t}\\ \vdots&\vdots&\ddots&\vdots\\ r_{s1}&r_{s2}&\cdots&r_{st}\\ \end{bmatrix} R=⎣ ⎡r11r21⋮rs1r12r22⋮rs2⋯⋯⋱⋯r1tr2t⋮rst⎦ ⎤
则通过观察某一列数值明显大于其他列数值,则称该列为优势子因素;假如某一行数值明显大于其他行数值,则称该行为优势母因素,优势母因素易受子因素的驱动影响。
1979 | 1980 | 1981 | 1982 | 1983 | |
---|---|---|---|---|---|
固定资产投资 | 308.58 | 310 | 295 | 346 | 367 |
工业投资 | 195.4 | 189.9 | 187.2 | 205 | 222.7 |
农业投资 | 24.6 | 21 | 12.2 | 15.1 | 14.57 |
科技投资 | 20 | 25.6 | 23.3 | 29.2 | 30 |
交通投资 | 18.98 | 19 | 22.3 | 23.5 | 27.655 |
国民收入 | 170 | 174 | 197 | 216.4 | 235.8 |
工业收入 | 57.55 | 70.74 | 76.8 | 80.7 | 89.85 |
农业收入 | 88.56 | 70 | 85.38 | 99.83 | 103.4 |
商业收入 | 11.19 | 13.28 | 16.82 | 18.9 | 22.8 |
交通收入 | 4.03 | 4.26 | 4.34 | 5.06 | 5.78 |
建筑业收入 | 13.7 | 15.6 | 13.77 | 11.98 | 13.95 |
function [R]=GrayConnect(X,Y)
[xa,xb]=size(X);
[ya,yb]=size(Y);
if (xb==yb)
else
return ;
end
R=zeros(ya,xa);
q=0.5;
for i = 1:ya
k=zeros(xa,xb);
for j=1:xa
k(j,:)=abs(X(j,:)-Y(i,:));
end
temp1=min(min(k));
temp2=q*max(max(k));
for j=1:xa
sum=0;
for t=1:xb
sum=sum+(temp1+temp2)/(abs(X(j,t)-Y(i,t))+temp2);
end
R(i,j)=sum/xb;
end
end
end
将数据导入MATLAB,
A=xlsread('Grey.xlsx','B1:F11');
将数据标准化,
for i=1:11
A(i,:)=A(i,:)/A(i,1);
end
将母因素和子因素分割为X和Y,并使用函数GrayConnect,
X=A(1:5,:);
Y=A(6:11,:);
[R]=GrayConnect(X,Y)
得到结果如下:
R = [ 0.8016 0.7611 0.5570 0.8102 0.9355 0.6887 0.6658 0.5287 0.8854 0.8004 0.8910 0.8581 0.5786 0.5773 0.6749 0.6776 0.6634 0.5675 0.7800 0.7307 0.8113 0.7742 0.5648 0.8038 0.9205 0.7432 0.7663 0.5616 0.6065 0.6319 ] R= \begin{bmatrix} 0.8016&0.7611&0.5570&0.8102&0.9355\\ 0.6887&0.6658&0.5287&0.8854&0.8004\\ 0.8910&0.8581&0.5786&0.5773&0.6749\\ 0.6776&0.6634&0.5675&0.7800&0.7307\\ 0.8113&0.7742&0.5648&0.8038&0.9205\\ 0.7432&0.7663&0.5616&0.6065&0.6319\\ \end{bmatrix} R=⎣ ⎡0.80160.68870.89100.67760.81130.74320.76110.66580.85810.66340.77420.76630.55700.52870.57860.56750.56480.56160.81020.88540.57730.78000.80380.60650.93550.80040.67490.73070.92050.6319⎦ ⎤