设系统行为序列
X
0
=
(
x
0
(
1
)
,
x
0
(
2
)
,
⋯
,
x
0
(
n
)
)
X
1
=
(
x
1
(
1
)
,
x
1
(
2
)
,
⋯
,
x
1
(
n
)
)
⋯
⋯
X
i
=
(
x
i
(
1
)
,
x
i
(
2
)
,
⋯
,
x
i
(
n
)
)
⋯
⋯
X
m
=
(
x
m
(
1
)
,
x
m
(
2
)
,
⋯
,
x
m
(
n
)
)
X_0 = (x_0(1),x_0(2),\cdots,x_0(n))\\ X_1 = (x_1(1),x_1(2),\cdots,x_1(n))\\ \cdots \cdots \\ X_i = (x_i(1),x_i(2),\cdots,x_i(n))\\ \cdots \cdots \\ X_m = (x_m(1),x_m(2),\cdots,x_m(n))\\
X0=(x0(1),x0(2),⋯,x0(n))X1=(x1(1),x1(2),⋯,x1(n))⋯⋯Xi=(xi(1),xi(2),⋯,xi(n))⋯⋯Xm=(xm(1),xm(2),⋯,xm(n))
对于
ξ
∈
(
0
,
1
)
\xi\in(0,1)
ξ∈(0,1), 令
γ
(
x
0
(
k
)
,
x
i
(
k
)
)
=
min
i
max
k
∣
x
0
(
k
)
−
x
i
(
k
)
∣
+
ξ
min
i
max
k
∣
x
0
(
k
)
−
x
i
(
k
)
∣
∣
x
0
(
k
)
−
x
i
(
k
)
∣
+
ξ
min
i
max
k
∣
x
0
(
k
)
−
x
i
(
k
)
∣
γ
(
X
0
,
X
i
)
=
1
n
∑
k
=
1
n
γ
(
x
0
(
k
)
,
x
i
(
k
)
)
\gamma(x_0(k),x_i(k))=\frac{\min_{i}\max_k|x_{0}(k)-x_i(k)|+\xi\min_{i}\max_k|x_{0}(k)-x_i(k)|}{|x_0(k)-x_i(k)|+\xi\min_{i}\max_k|x_{0}(k)-x_i(k)|} \\ \gamma(X_0,X_i)=\frac{1}{n}\sum_{k=1}^n\gamma(x_0(k),x_i(k))
γ(x0(k),xi(k))=∣x0(k)−xi(k)∣+ξminimaxk∣x0(k)−xi(k)∣minimaxk∣x0(k)−xi(k)∣+ξminimaxk∣x0(k)−xi(k)∣γ(X0,Xi)=n1k=1∑nγ(x0(k),xi(k))
则
γ
(
X
0
,
X
i
)
\gamma(X_0,X_i)
γ(X0,Xi)满足灰色关联公理, 其中
ξ
\xi
ξ称为分辨系数.
γ
(
X
0
,
X
i
)
\gamma(X_0,X_i)
γ(X0,Xi)称为
X
0
X_0
X0与
X
i
X_i
Xi的灰色关联度(邓聚龙, 1985)
灰色关联度
γ
(
X
0
,
X
i
)
\gamma\left(X_{0}, X_{i}\right)
γ(X0,Xi) 常简记为
γ
0
i
,
k
\gamma_{0 i}, k
γ0i,k 点关联系数
γ
(
x
0
(
k
)
,
x
i
(
k
)
)
\gamma\left(x_{0}(k), x_{i}(k)\right)
γ(x0(k),xi(k)) 简记为
γ
0
i
(
k
)
.
\gamma_{0 i}(k) .
γ0i(k).
灰色关联度的计算步骤如下.
第一步: 求各序列的初值象 (或均值象). 令
X
i
′
=
X
i
x
i
(
1
)
=
(
x
i
′
(
1
)
,
x
i
′
(
2
)
,
⋯
,
x
i
′
(
n
)
)
,
i
=
0
,
1
,
2
,
⋯
,
m
X_{i}^{\prime}=\frac{X_{i}}{x_{i}(1)}=\left(x_{i}^{\prime}(1), x_{i}^{\prime}(2), \cdots, x_{i}^{\prime}(n)\right), \quad i=0,1,2, \cdots, m
Xi′=xi(1)Xi=(xi′(1),xi′(2),⋯,xi′(n)),i=0,1,2,⋯,m
第二步: 求
X
0
X_{0}
X0 与
X
i
X_{i}
Xi 的初值象
(
(
( 或均值象) 对应分量之差的绝对值序列. 记
Δ
i
(
k
)
=
∣
x
0
′
(
k
)
−
x
i
′
(
k
)
∣
,
Δ
i
=
(
Δ
i
(
1
)
,
Δ
i
(
2
)
,
⋯
,
Δ
i
(
n
)
)
,
i
=
1
,
2
,
⋯
,
m
\Delta_{i}(k)=\left|x_{0}^{\prime}(k)-x_{i}^{\prime}(k)\right|, \quad \Delta_{i}=\left(\Delta_{i}(1), \Delta_{i}(2), \cdots, \Delta_{i}(n)\right), \quad i=1,2, \cdots, m
Δi(k)=∣x0′(k)−xi′(k)∣,Δi=(Δi(1),Δi(2),⋯,Δi(n)),i=1,2,⋯,m
第三步: 求
Δ
i
(
k
)
=
∣
x
0
′
(
k
)
−
x
i
′
(
k
)
∣
,
k
=
1
,
2
,
⋯
,
n
;
i
=
1
,
2
,
⋯
,
m
\Delta_{i}(k)=\left|x_{0}^{\prime}(k)-x_{i}^{\prime}(k)\right|, k=1,2, \cdots, n ; i=1,2, \cdots, m
Δi(k)=∣x0′(k)−xi′(k)∣,k=1,2,⋯,n;i=1,2,⋯,m 的最大值与最小值.
记为
M
=
max
i
max
k
Δ
i
(
k
)
,
m
=
min
i
min
k
Δ
i
(
k
)
M=\max _{i} \max _{k} \Delta_{i}(k), \quad m=\min _{i} \min _{k} \Delta_{i}(k)
M=imaxkmaxΔi(k),m=iminkminΔi(k)
第四步: 计算关联系数
γ
0
i
(
k
)
=
m
+
ξ
M
Δ
i
(
k
)
+
ξ
M
,
ξ
∈
(
0
,
1
)
,
k
=
1
,
2
,
⋯
,
n
;
i
=
1
,
2
,
⋯
,
m
\gamma_{0 i}(k)=\frac{m+\xi M}{\Delta_{i}(k)+\xi M}, \quad \xi \in(0,1), \quad k=1,2, \cdots, n ; \quad i=1,2, \cdots, m
γ0i(k)=Δi(k)+ξMm+ξM,ξ∈(0,1),k=1,2,⋯,n;i=1,2,⋯,m
第五步: 求出关联系数的平均值即所要的关联度
γ
0
i
=
1
n
∑
k
=
1
n
γ
0
i
(
k
)
,
i
=
1
,
2
,
⋯
,
m
\gamma_{0 i}=\frac{1}{n} \sum_{k=1}^{n} \gamma_{0 i}(k), \quad i=1,2, \cdots, m
γ0i=n1k=1∑nγ0i(k),i=1,2,⋯,m
- 举个例子
2001 − 2005 2001-2005 2001−2005 年, 我国 G D P \mathrm{GDP} GDP 以及第一产业、第二产业、第三产业增加值数(单
位: 千亿元) 分别如下:
GDP 为
X 1 = ( x 1 ( 1 ) , x 1 ( 2 ) , x 1 ( 3 ) , x 1 ( 4 ) , x 1 ( 5 ) ) = ( 109.7 , 120.3 , 135.8 , 159.9 , 183.1 ) X_{1}=\left(x_{1}(1), x_{1}(2), x_{1}(3), x_{1}(4), x_{1}(5)\right)=(109.7,120.3,135.8,159.9,183.1) X1=(x1(1),x1(2),x1(3),x1(4),x1(5))=(109.7,120.3,135.8,159.9,183.1)
第一产业增加值为
X 2 = ( x 2 ( 1 ) , x 2 ( 2 ) , x 2 ( 3 ) , x 2 ( 4 ) , x 2 ( 5 ) ) = ( 15.5 , 16.2 , 17.1 , 21.0 , 23.1 ) X_{2}=\left(x_{2}(1), x_{2}(2), x_{2}(3), x_{2}(4), x_{2}(5)\right)=(15.5,16.2,17.1,21.0,23.1) X2=(x2(1),x2(2),x2(3),x2(4),x2(5))=(15.5,16.2,17.1,21.0,23.1)
第二产业增加值为
X 3 = ( x 3 ( 1 ) , x 3 ( 2 ) , x 3 ( 3 ) , x 3 ( 4 ) , x 3 ( 5 ) ) = ( 49.5 , 53.9 , 62.4 , 73.9 , 87.0 ) X_{3}=\left(x_{3}(1), x_{3}(2), x_{3}(3), x_{3}(4), x_{3}(5)\right)=(49.5,53.9,62.4,73.9,87.0) X3=(x3(1),x3(2),x3(3),x3(4),x3(5))=(49.5,53.9,62.4,73.9,87.0)
第三产业增加值为
X 4 = ( x 4 ( 1 ) , x 4 ( 2 ) , x 4 ( 3 ) , x 4 ( 4 ) , x 4 ( 5 ) ) = ( 44.6 , 50.2 , 56.3 , 65.0 , 73.0 ) X_{4}=\left(x_{4}(1), x_{4}(2), x_{4}(3), x_{4}(4), x_{4}(5)\right)=(44.6,50.2,56.3,65.0,73.0) X4=(x4(1),x4(2),x4(3),x4(4),x4(5))=(44.6,50.2,56.3,65.0,73.0)
资料来源: 2006 中国统计年鉴.
以 G D P \mathrm{GDP} GDP 为系统行为特征序列, 计算 X 2 , X 3 , X 4 X_{2}, X_{3}, X_{4} X2,X3,X4 与 X 1 X_{1} X1 的灰色关联度. 解 以 X 1 X_{1} X1 为系统行为特征序列计算关联度.
第一步: 求初值象. 由 X i ′ = X i x i ( 1 ) = ( x i ′ ( 1 ) , x i ′ ( 2 ) , x i ′ ( 3 ) , x i ′ ( 4 ) , x i ′ ( 5 ) ) , i = 1 , 2 , 3 , 4 , X_{i}^{\prime}=\frac{X_{i}}{x_{i}(1)}=\left(x_{i}^{\prime}(1), x_{i}^{\prime}(2), x_{i}^{\prime}(3), x_{i}^{\prime}(4), x_{i}^{\prime}(5)\right), i=1,2,3,4, Xi′=xi(1)Xi=(xi′(1),xi′(2),xi′(3),xi′(4),xi′(5)),i=1,2,3,4, 得
X 1 ′ = ( 1 , 1.0966 , 1.2379 , 1.4576 , 1.6691 ) X 2 ′ = ( 1 , 1.0452 , 1.1032 , 1.3548 , 1.4903 ) X 3 ′ = ( 1 , 1.0889 , 1.2606 , 1.4929 , 1.7576 ) X 4 ′ = ( 1 , 1.1256 , 1.2623 , 1.4574 , 1.6368 ) \begin{aligned} X_{1}^{\prime} &=(1,1.0966,1.2379,1.4576,1.6691) \\ X_{2}^{\prime} &=(1,1.0452,1.1032,1.3548,1.4903) \\ X_{3}^{\prime} &=(1,1.0889,1.2606,1.4929,1.7576) \\ X_{4}^{\prime} &=(1,1.1256,1.2623,1.4574,1.6368) \end{aligned} X1′X2′X3′X4′=(1,1.0966,1.2379,1.4576,1.6691)=(1,1.0452,1.1032,1.3548,1.4903)=(1,1.0889,1.2606,1.4929,1.7576)=(1,1.1256,1.2623,1.4574,1.6368)
第二步: x 2 , X 3 , X 4 x_{2}, X_{3}, X_{4} x2,X3,X4 与 X 1 X_{1} X1 初值象对应分量之差的绝对值序列. 由 Δ i ( k ) = \Delta_{i}(k)= Δi(k)= ∣ x 1 ′ ( k ) − x i ′ ( k ) ∣ , i = 2 , 3 , 4 , \left|x_{1}^{\prime}(k)-x_{i}^{\prime}(k)\right|, i=2,3,4, ∣x1′(k)−xi′(k)∣,i=2,3,4, 得
Δ 2 = ( 0 , 0.0515 , 0.1347 , 0.1028 , 0.1788 ) Δ 3 = ( 0 , 0.0077 , 0.0227 , 0.0353 , 0.0885 ) Δ 4 = ( 0 , 0.0289 , 0.0244 , 0.0002 , 0.0323 ) \begin{array}{l} \Delta_{2}=(0,0.0515,0.1347,0.1028,0.1788) \\ \Delta_{3}=(0,0.0077,0.0227,0.0353,0.0885) \\ \Delta_{4}=(0,0.0289,0.0244,0.0002,0.0323) \end{array} Δ2=(0,0.0515,0.1347,0.1028,0.1788)Δ3=(0,0.0077,0.0227,0.0353,0.0885)Δ4=(0,0.0289,0.0244,0.0002,0.0323)
第三步: 求 Δ i ( k ) = ∣ x 1 ′ ( k ) − x i ′ ( k ) ∣ , i = 2 , 3 , 4 ; k = 1 , 2 , 3 , 4 , 5 \Delta_{i}(k)=\left|x_{1}^{\prime}(k)-x_{i}^{\prime}(k)\right|, i=2,3,4 ; k=1,2,3,4,5 Δi(k)=∣x1′(k)−xi′(k)∣,i=2,3,4;k=1,2,3,4,5 的最大值与最小值.
M = max i max k Δ i ( k ) = 0.1788 m = min i min k Δ i ( k ) = 0 \begin{array}{c} M=\max _{i} \max _{k} \Delta_{i}(k)=0.1788 \\ m=\min _{i} \min _{k} \Delta_{i}(k)=0 \end{array} M=maximaxkΔi(k)=0.1788m=miniminkΔi(k)=0
第四步: 求关联系数. 取 ξ = 0.5 , \xi=0.5, ξ=0.5, 有
γ 1 i ( k ) = m + ξ M Δ i ( k ) + ξ M = 0.0894 Δ i ( k ) + 0.0894 , i = 2 , 3 , 4 ; k = 1 , 2 , 3 , 4 , 5 \gamma_{1 i}(k)=\frac{m+\xi M}{\Delta_{i}(k)+\xi M}=\frac{0.0894}{\Delta_{i}(k)+0.0894}, \quad i=2,3,4 ; \quad k=1,2,3,4,5 γ1i(k)=Δi(k)+ξMm+ξM=Δi(k)+0.08940.0894,i=2,3,4;k=1,2,3,4,5
从而
r 12 ( 1 ) = 1 , r 12 ( 2 ) = 0.6346 , r 12 ( 3 ) = 0.3989 , r 12 ( 4 ) = 0.4652 , r 12 ( 5 ) = 0.3333 r 13 ( 1 ) = 1 , r 13 ( 2 ) = 0.9203 , r 13 ( 3 ) = 0.7976 , r 13 ( 4 ) = 0.7168 , r 13 ( 5 ) = 0.5026 r 14 ( 1 ) = 1 , r 14 ( 2 ) = 0.7555 , r 14 ( 3 ) = 0.7855 , r 14 ( 4 ) = 0.9976 , r 14 ( 5 ) = 0.7344 \begin{array}{llll} r_{12}(1)=1, & r_{12}(2)=0.6346, & r_{12}(3)=0.3989, & r_{12}(4)=0.4652, & r_{12}(5)=0.3333 \\ r_{13}(1)=1, & r_{13}(2)=0.9203, & r_{13}(3)=0.7976, & r_{13}(4)=0.7168, & r_{13}(5)=0.5026 \\ r_{14}(1)=1, & r_{14}(2)=0.7555, & r_{14}(3)=0.7855, & r_{14}(4)=0.9976, & r_{14}(5)=0.7344 \end{array} r12(1)=1,r13(1)=1,r14(1)=1,r12(2)=0.6346,r13(2)=0.9203,r14(2)=0.7555,r12(3)=0.3989,r13(3)=0.7976,r14(3)=0.7855,r12(4)=0.4652,r13(4)=0.7168,r14(4)=0.9976,r12(5)=0.3333r13(5)=0.5026r14(5)=0.7344
第五步: 计算灰色关联度
γ 12 = 1 5 ∑ k = 1 5 γ 12 ( k ) = 0.5664 γ 13 = 1 5 ∑ k = 1 5 γ 13 ( k ) = 0.7875 γ 14 = 1 5 ∑ k = 1 5 γ 14 ( k ) = 0.8546 \begin{array}{l} \gamma_{12}=\frac{1}{5} \sum_{k=1}^{5} \gamma_{12}(k)=0.5664 \\ \gamma_{13}=\frac{1}{5} \sum_{k=1}^{5} \gamma_{13}(k)=0.7875 \\ \gamma_{14}=\frac{1}{5} \sum_{k=1}^{5} \gamma_{14}(k)=0.8546 \end{array} γ12=51∑k=15γ12(k)=0.5664γ13=51∑k=15γ13(k)=0.7875γ14=51∑k=15γ14(k)=0.8546
因此, 第三产业与GDP关联度最大, 第二产业关联度次之, 第一产业关联度最小. - 代码实现
import numpy as np
X1 = [109.7, 120.3, 135.8, 159.9, 183.1]
X2 = [15.5, 16.2, 17.1, 21.0, 23.1]
X3 = [49.5, 53.9, 62.4, 73.9, 87.0]
X4 = [44.6, 50.2, 56.3 ,65.0, 73.0]
def initialize(x):
d = []
for i in range(len(x)):
d.append(round(x[i]/x[0],4))
return d
def minus(X,x):
d = []
for i in range(len(X)):
d.append(round(abs(X[i]-x[i]),4))
return d
X11 = initialize(X1)
X22 = initialize(X2)
delta2 = minus(X11,X22)
X33 = initialize(X3)
delta3 = minus(X11,X33)
X44 = initialize(X4)
delta4 = minus(X11,X44)
M = max(delta2 + delta3 + delta4)
m = min(delta2 + delta3 + delta4)
ksi = 0.5
gamma2 = (m + ksi*M)/(np.array(delta2) + ksi*M)
gamma3 = (m + ksi*M)/(np.array(delta3) + ksi*M)
gamma4 = (m + ksi*M)/(np.array(delta4) + ksi*M)
np.mean(gamma2)
>>> 0.5664692086702057
np.mean(gamma3)
>>> 0.787530531907082
np.mean(gamma4)
>>> 0.8546034878054456
代码结果与手动计算结果一致