摘要
本文深入探讨灰色系统理论中的优势分析、生成数技术及灰色建模方法。通过关联矩阵量化多因素交互影响,解析累加生成(AGO)、累减生成(IAGO)与均值生成的数据处理原理,详细推导GM(1,1)与GM(1,N)模型的灰微分方程、参数估计及白化过程,结合交通投资与疫情经济影响案例,展示灰色模型在动态系统预测中的实践应用。
关键词:优势分析 生成数 灰色模型 GM(1,1) 累加生成
一 优势分析
1.1 多因素关联矩阵构建
当系统存在多个参考数列(母因素)和比较数列(子因素)时,需通过优势分析识别关键影响因素。设:
- 母因素: y 1 , y 2 , … , y m y_1, y_2, \dots, y_m y1,y2,…,ym(如国民收入、工业收入等);
- 子因素: x 1 , x 2 , … , x l x_1, x_2, \dots, x_l x1,x2,…,xl(如固定资产投资、科技投资等)。
计算每个子因素对母因素的关联度 r i j r_{ij} rij,构建关联矩阵 R = ( r i j ) m × l R = (r_{ij})_{m \times l} R=(rij)m×l。根据矩阵元素大小判断优势因素:
- 优势子因素:若某列元素显著大于其他列,如 r i 3 > r i j ( j ≠ 3 ) r_{i3} > r_{ij} \ (j \neq 3) ri3>rij (j=3),则 x 3 x_3 x3 为优势子因素。
- 优势母因素:若某行元素显著大于其他行,则该母因素对系统影响最大。
示例:地区经济投资分析
某地区6个母因素(
y
1
y_1
y1至
y
6
y_6
y6)与5个子因素(
x
1
x_1
x1至
x
5
x_5
x5)的关联矩阵如下:
R
=
[
0.802
0.761
0.557
0.810
0.936
0.689
0.666
0.529
0.885
0.800
0.891
0.858
0.579
0.577
0.675
0.678
0.663
0.568
0.780
0.731
0.811
0.774
0.565
0.804
0.921
0.743
0.766
0.562
0.607
0.632
]
R = \begin{bmatrix} 0.802 & 0.761 & 0.557 & 0.810 & 0.936 \\ 0.689 & 0.666 & 0.529 & 0.885 & 0.800 \\ 0.891 & 0.858 & 0.579 & 0.577 & 0.675 \\ 0.678 & 0.663 & 0.568 & 0.780 & 0.731 \\ 0.811 & 0.774 & 0.565 & 0.804 & 0.921 \\ 0.743 & 0.766 & 0.562 & 0.607 & 0.632 \\ \end{bmatrix}
R=
0.8020.6890.8910.6780.8110.7430.7610.6660.8580.6630.7740.7660.5570.5290.5790.5680.5650.5620.8100.8850.5770.7800.8040.6070.9360.8000.6750.7310.9210.632
分析结论:
- 第4行元素较小,说明商业收入受投资影响较弱,属自维持型行业;
- r 15 = 0.936 r_{15}=0.936 r15=0.936 最大,表明交通投资对国民收入影响最显著;
- 农业( y 3 y_3 y3)与固投( x 1 x_1 x1)、工投( x 2 x_2 x2)关联度高,需多领域协同发展。
1.2 潜在优势因素识别
当关联矩阵呈“对角线以上零元素”结构时,例如:
R
=
[
0.8
0
0
0
0
0.6
0.5
0
0
0
0.7
0.7
0.3
0
0
0.4
0.6
0.7
0.9
0
0.3
0.8
0.2
0.7
0.504
]
R = \begin{bmatrix} 0.8 & 0 & 0 & 0 & 0 \\ 0.6 & 0.5 & 0 & 0 & 0 \\ 0.7 & 0.7 & 0.3 & 0 & 0 \\ 0.4 & 0.6 & 0.7 & 0.9 & 0 \\ 0.3 & 0.8 & 0.2 & 0.7 & 0.504 \\ \end{bmatrix}
R=
0.80.60.70.40.300.50.70.60.8000.30.70.20000.90.700000.504
- 第1列元素全非零, x 1 x_1 x1 为潜在优势子因素;
- 第2列存在零元素, x 2 x_2 x2 为次潜在优势子因素。
二 生成数技术
2.1 累加生成(AGO)
将原始序列
x
(
0
)
x^{(0)}
x(0) 逐项累加,生成规律性更强的序列
x
(
1
)
x^{(1)}
x(1),公式为:
x
(
1
)
(
k
)
=
∑
i
=
1
k
x
(
0
)
(
i
)
,
k
=
1
,
2
,
…
,
n
x^{(1)}(k) = \sum_{i=1}^k x^{(0)}(i), \quad k = 1,2,\dots,n
x(1)(k)=i=1∑kx(0)(i),k=1,2,…,n
作用:弱化随机性,凸显趋势性。例如,非负摆动序列经累加后转化为单调递增序列。
示例:原始序列与累加序列对比
- 原始序列: x ( 0 ) = ( 2 , 3 , 1 , 4 ) x^{(0)} = (2, 3, 1, 4) x(0)=(2,3,1,4)
- 累加序列: x ( 1 ) = ( 2 , 5 , 6 , 10 ) x^{(1)} = (2, 5, 6, 10) x(1)=(2,5,6,10)
2.2 累减生成(IAGO)
累减是累加的逆过程,用于还原生成数:
x
(
0
)
(
k
)
=
x
(
1
)
(
k
)
−
x
(
1
)
(
k
−
1
)
,
k
=
2
,
3
,
…
,
n
x^{(0)}(k) = x^{(1)}(k) - x^{(1)}(k-1), \quad k = 2,3,\dots,n
x(0)(k)=x(1)(k)−x(1)(k−1),k=2,3,…,n
2.3 均值生成
通过邻值生成数平滑数据波动,常见方法包括:
- 紧邻均值生成:
z ( 1 ) ( k ) = 0.5 x ( 1 ) ( k ) + 0.5 x ( 1 ) ( k − 1 ) , k = 2 , 3 , … , n z^{(1)}(k) = 0.5x^{(1)}(k) + 0.5x^{(1)}(k-1), \quad k=2,3,\dots,n z(1)(k)=0.5x(1)(k)+0.5x(1)(k−1),k=2,3,…,n - 非紧邻均值生成:
z ‾ ( 0 ) ( k ) = 0.5 x ( 0 ) ( k + 1 ) + 0.5 x ( 0 ) ( k − 1 ) \overline{z}^{(0)}(k) = 0.5x^{(0)}(k+1) + 0.5x^{(0)}(k-1) z(0)(k)=0.5x(0)(k+1)+0.5x(0)(k−1)
应用场景:数据缺失时补充生成,或构建灰色模型背景值。
三 灰色模型 GM
3.1 GM(1,1)模型
3.1.1 模型定义
设原始序列
x
(
0
)
=
(
x
(
0
)
(
1
)
,
x
(
0
)
(
2
)
,
…
,
x
(
0
)
(
n
)
)
x^{(0)} = (x^{(0)}(1), x^{(0)}(2), \dots, x^{(0)}(n))
x(0)=(x(0)(1),x(0)(2),…,x(0)(n)),其累加序列为
x
(
1
)
x^{(1)}
x(1),紧邻均值序列为
z
(
1
)
z^{(1)}
z(1)。GM(1,1)的灰微分方程为:
x
(
0
)
(
k
)
+
a
z
(
1
)
(
k
)
=
b
x^{(0)}(k) + a z^{(1)}(k) = b
x(0)(k)+az(1)(k)=b
其中
a
a
a 为发展系数,
b
b
b 为灰作用量。
3.1.2 参数估计
构造数据矩阵
B
B
B 与向量
Y
Y
Y:
B
=
[
−
z
(
1
)
(
2
)
1
−
z
(
1
)
(
3
)
1
⋮
⋮
−
z
(
1
)
(
n
)
1
]
,
Y
=
[
x
(
0
)
(
2
)
x
(
0
)
(
3
)
⋮
x
(
0
)
(
n
)
]
B = \begin{bmatrix} -z^{(1)}(2) & 1 \\ -z^{(1)}(3) & 1 \\ \vdots & \vdots \\ -z^{(1)}(n) & 1 \\ \end{bmatrix}, \quad Y = \begin{bmatrix} x^{(0)}(2) \\ x^{(0)}(3) \\ \vdots \\ x^{(0)}(n) \\ \end{bmatrix}
B=
−z(1)(2)−z(1)(3)⋮−z(1)(n)11⋮1
,Y=
x(0)(2)x(0)(3)⋮x(0)(n)
通过最小二乘法求解参数:
u
^
=
(
a
,
b
)
T
=
(
B
T
B
)
−
1
B
T
Y
\hat{u} = (a, b)^T = (B^T B)^{-1} B^T Y
u^=(a,b)T=(BTB)−1BTY
3.1.3 白化方程与预测
GM(1,1)的白化方程为一阶微分方程:
d
x
(
1
)
d
t
+
a
x
(
1
)
=
b
\frac{dx^{(1)}}{dt} + a x^{(1)} = b
dtdx(1)+ax(1)=b
其时间响应式为:
x
^
(
1
)
(
k
+
1
)
=
(
x
(
0
)
(
1
)
−
b
a
)
e
−
a
k
+
b
a
\hat{x}^{(1)}(k+1) = \left( x^{(0)}(1) - \frac{b}{a} \right) e^{-a k} + \frac{b}{a}
x^(1)(k+1)=(x(0)(1)−ab)e−ak+ab
还原预测值:
x
^
(
0
)
(
k
+
1
)
=
x
^
(
1
)
(
k
+
1
)
−
x
^
(
1
)
(
k
)
\hat{x}^{(0)}(k+1) = \hat{x}^{(1)}(k+1) - \hat{x}^{(1)}(k)
x^(0)(k+1)=x^(1)(k+1)−x^(1)(k)
示例:交通噪声预测
某城市1986–1992年噪声数据 x ( 0 ) = ( 71.1 , 72.4 , 72.4 , 72.1 , 71.4 , 72.0 , 71.6 ) x^{(0)} = (71.1, 72.4, 72.4, 72.1, 71.4, 72.0, 71.6) x(0)=(71.1,72.4,72.4,72.1,71.4,72.0,71.6),建立GM(1,1)模型:
- 累加生成:
x ( 1 ) = ( 71.1 , 143.5 , 215.9 , 288 , 359.4 , 431.4 , 503 ) x^{(1)} = (71.1, 143.5, 215.9, 288, 359.4, 431.4, 503) x(1)=(71.1,143.5,215.9,288,359.4,431.4,503) - 紧邻均值生成:
z ( 1 ) = ( 107.3 , 179.7 , 251.95 , 323.7 , 395.4 , 467.2 ) z^{(1)} = (107.3, 179.7, 251.95, 323.7, 395.4, 467.2) z(1)=(107.3,179.7,251.95,323.7,395.4,467.2) - 参数估计:
a ^ = 0.0023 , b ^ = 72.6573 \hat{a} = 0.0023, \quad \hat{b} = 72.6573 a^=0.0023,b^=72.6573 - 预测方程:
x ^ ( 1 ) ( k + 1 ) = − 30929 e − 0.0023 k + 31000 \hat{x}^{(1)}(k+1) = -30929 e^{-0.0023k} + 31000 x^(1)(k+1)=−30929e−0.0023k+31000 - 残差检验:平均相对误差仅0.2%,模型精度高。
3.2 GM(1,N)模型
3.2.1 模型定义
GM(1,N)描述多变量间动态关系,适用于系统受多个因素驱动的场景。设系统特征序列为
x
1
(
0
)
x_1^{(0)}
x1(0),相关因素序列为
x
2
(
0
)
,
…
,
x
N
(
0
)
x_2^{(0)}, \dots, x_N^{(0)}
x2(0),…,xN(0),其灰微分方程为:
x
1
(
0
)
(
k
)
+
a
z
1
(
1
)
(
k
)
=
∑
i
=
2
N
b
i
x
i
(
1
)
(
k
)
x_1^{(0)}(k) + a z_1^{(1)}(k) = \sum_{i=2}^N b_i x_i^{(1)}(k)
x1(0)(k)+az1(1)(k)=i=2∑Nbixi(1)(k)
3.2.2 参数估计
构建矩阵
B
B
B 与向量
Y
Y
Y:
B
=
[
−
z
1
(
1
)
(
2
)
x
2
(
1
)
(
2
)
⋯
x
N
(
1
)
(
2
)
−
z
1
(
1
)
(
3
)
x
2
(
1
)
(
3
)
⋯
x
N
(
1
)
(
3
)
⋮
⋮
⋱
⋮
−
z
1
(
1
)
(
n
)
x
2
(
1
)
(
n
)
⋯
x
N
(
1
)
(
n
)
]
,
Y
=
[
x
1
(
0
)
(
2
)
x
1
(
0
)
(
3
)
⋮
x
1
(
0
)
(
n
)
]
B = \begin{bmatrix} -z_1^{(1)}(2) & x_2^{(1)}(2) & \cdots & x_N^{(1)}(2) \\ -z_1^{(1)}(3) & x_2^{(1)}(3) & \cdots & x_N^{(1)}(3) \\ \vdots & \vdots & \ddots & \vdots \\ -z_1^{(1)}(n) & x_2^{(1)}(n) & \cdots & x_N^{(1)}(n) \\ \end{bmatrix}, \quad Y = \begin{bmatrix} x_1^{(0)}(2) \\ x_1^{(0)}(3) \\ \vdots \\ x_1^{(0)}(n) \\ \end{bmatrix}
B=
−z1(1)(2)−z1(1)(3)⋮−z1(1)(n)x2(1)(2)x2(1)(3)⋮x2(1)(n)⋯⋯⋱⋯xN(1)(2)xN(1)(3)⋮xN(1)(n)
,Y=
x1(0)(2)x1(0)(3)⋮x1(0)(n)
参数估计公式为:
u
^
=
(
a
,
b
2
,
…
,
b
N
)
T
=
(
B
T
B
)
−
1
B
T
Y
\hat{u} = (a, b_2, \dots, b_N)^T = (B^T B)^{-1} B^T Y
u^=(a,b2,…,bN)T=(BTB)−1BTY
示例:疫情对经济指标的影响
分析SARS疫情对某市商品零售额的影响:
- 数据预处理:计算1997–2002年月度均值,构建GM(1,1)预测2003年数据;
- 比例分配:按历史月度比例分配年预测值,得到各月预测值;
- 影响评估:对比预测值与实际值,4–6月零售额损失60.1亿元,与专家估计一致。
MATLAB代码示例
GM(1,1)模型实现
clc, clear
x0 = [71.1, 72.4, 72.4, 72.1, 71.4, 72.0, 71.6];
n = length(x0);
x1 = cumsum(x0); % 累加生成
B = [-0.5*(x1(1:end-1) + x1(2:end))', ones(n-1,1)];
Y = x0(2:end)';
u = B \ Y; % 参数估计
a = u(1); b = u(2);
% 白化方程求解
syms t;
x = dsolve('Dx + a*x = b', 'x(0) = x0(1)');
x = subs(x, {'a','b'}, {u(1), u(2)});
yuce = double(subs(x, 't', 0:n-1));
x0_hat = [yuce(1), diff(yuce)]; % 累减还原
优势分析实现
clc, clear
load data.txt % 加载投资与收入数据
n = size(data, 1);
for i = 1:n
data(i,:) = data(i,:) / data(i,1); % 数据标准化
end
ck = data(6+1:end, :); % 母因素数据
bj = data(1:5, :); % 子因素数据
rho = 0.5;
R = zeros(6, 5);
for i = 1:6
for j = 1:5
t = bj(j,:) - ck(i,:);
mn = min(min(abs(t)));
mx = max(max(abs(t)));
ksi = (mn + rho*mx) ./ (abs(t) + rho*mx);
R(i,j) = mean(ksi);
end
end
disp('关联矩阵 R = '); disp(R);
总结
优势分析通过关联矩阵揭示复杂系统的关键驱动因素,生成数技术为灰色建模提供数据基础,GM(1,1)与GM(1,N)模型分别适用于单变量预测与多变量耦合分析。后续章节将探讨灰色预测的高级模型(如Verhulst与GM(2,1))及其在交通、经济等领域的应用。