灰色关联分析法详解及python实践

Posted 肖永威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了灰色关联分析法详解及python实践相关的知识,希望对你有一定的参考价值。

1. 关于灰色关联分析

1.1. 什么是灰色关联分析

灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。

在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。

灰色系统理论提出了对各子系统进行灰色关联度分析的概念,意图透过一定的方法,去寻求系统中各子系统(或因素)之间的数值关系。因此,灰色关联度分析对于一个系统发展变化态势提供了量化的度量,非常适合动态历程分析。

也就是说,灰色关联分析的研究对象往往是一个系统。系统的发展会受到多个因素的影响。我们常常想知道,在众多的影响因素中,哪些是主要因素,哪些是次要因素;哪些因素影响大,哪些因素影响小;哪些具有促进作用,哪些具有抑制作用等等。

关联度,是表征两个事物之间的关联程度,在数学上是指两函数相似的程度。

1.2. 灰色关联分析的使用

通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立随时间变化的母序列(参考列),把各个评估对象随时间的变化作为子序列,求各个子序列与母序列(参考列)的相关程度,依照相关性大小得出结论。

灰色系统理论是由著名学者邓聚龙教授首创的一种系统科学理论(Grey Theory),其中的灰色关联分析是根据各因素变化曲线几何形状的相似程度,来判断因素之间关联程度的方法。

此方法通过对动态过程发展态势的量化分析,完成对系统内时间序列有关统计数据几何关系的比较,求出参考数列与各比较数列之间的灰色关联度,与参考数列关联度越大的比较数列,其发展方向和速率与美考数列越接近,与参考数列的关系越紧密。

灰色关联分析方法要求样本容量可以少到4个,对数据无规律同样适用,不会出现量化结果与定性分析结果不符的情况,其基本思想是将评价指标原始观测数进行无量细化处理、计算关联系数、关联度以及根据关联度的大小对待评指标进行排序。

灰色关联度的应用涉及社会科学和自然科学的各个领域,尤其在社会经济领域,如国民经济各部门投资收益、区域经济优势分析、产业结构调整等方面,都取得较好的应用效果。

关联度有绝对关联度和相对关联度之分,绝对关联度采用初始点零化法进行初值化处理,当分析的因素差异较大时,由于变量间的量纲不一致,往往影响分析,难以得出合理的结果。而相对关联度用相对量进行分析,计算结果仅与序列相对于初始点的变化速率有关,与各观测数据大小无关,这在一定程度上弥补了绝对关联度的缺陷。

1.3. 灰色关联分析的基本特征

(1). 总体性

灰色关联度虽是数据序列几何形状的接近程度的度量,但它一般强调的是若干个数据序列对一个既定的数据序列接近的相对程度,即要排出关联度大小的顺序,这就是总体性,其将各因素统一置于系统之中进行比较与分析。

(2). 非对称性

在同一系统中,甲对乙的关联度,并不等于乙对甲的关联度,这较真实地反映了系统中因素之间真实的灰关系。

(3). 非唯一性
关联度随着参考序列不同、因素序列不同、原始数据处理方法不同、数据多少不同而不同。

(4). 动态性
因素间的灰色关联度随着序列的长度不同而变化,表明系统在发展过程中,各因素之间的关联关系也随着时间不断变化。

1.4. 灰色关联分析与大数据及其他数理统计比较

数理统计中常常使用回归分析、方差分析、主成分分析等来探究这个问题。但上述的方法有一些共同的不足之处。例如这些方法都要求大量的数据,数据小则结果没有太大意义;有时候还会要求样本服从某个特殊分布,或者出现量化结果与定性分析不符合的情况。而灰色关联分析则可以较好地应对这些问题。

灰色关联分析对样本量的多少和样本有无规律并没有要求(当然样本量也不能太少,就两、三个样本还分析什么),量化结果基本上与定性分析相符合。灰色关联分析的基本思想是,根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。

对于上述原理,简单翻译一下,就是研究两个或多个序列(序列可以理解为系统中因素或者指标)构成的曲线的几何相似程度。越相似,越说明他们的变化具有某种紧密的联系,也就是关联度高。所以这个方法也几乎是从纯数据的角度去研究关联性,如果两个没啥关系的指标,在曲线形状上表现得极为相似,那灰色关联分析就会认为二者关联程度很高。当然这只是一个比较极端的例子,对于一般的数据或者系统,用曲线形状来衡量关联度,也是有一定的道理的。

2. 灰色关联分析的过程

2.1.根据分析目的确定分析指标体系,收集分析数据。

下表为某地区国内生产总值的统计数据(以百万元计),问该地区从2000年到2005年之间哪一种产业对GDP总量影响最大。

年份国内生产总值第一产业第二产业第三产业
20001988386839763
20012061408846808
20022335422960953
2003275048212581010
2004335651115771268
2005380656118931352

  • 谁与国内生产总值关联度最高
  • 哪个产业发展的更好
  • 哪年发展的较优秀

n n n个数据序列形成如下矩阵:

( X 1 ′ , X 2 ′ , . . . , X n ′ ) = ( x 1 ′ ( 1 ) x 2 ′ ( 1 ) . . . x n ′ ( 1 ) x 1 ′ ( 2 ) x 2 ′ ( 2 ) . . . x n ′ ( 2 ) . . . . . . . . . . . . x 1 ′ ( m ) x 2 ′ ( m ) . . . x n ′ ( m ) ) (X'_1,X'_2,...,X'_n)=\\beginpmatrix x'_1(1) & x'_2(1) & ... & x'_n(1)\\\\ x'_1(2) & x'_2(2) & ... & x'_n(2)\\\\ ... & ... & ... & ...\\\\ x'_1(m) & x'_2(m) & ... & x'_n(m) \\endpmatrix (X1,X2,...,Xn)= x1(1)x1(2)...x1(m)x2(1)x2(2)...x2(m)............xn(1)xn(2)...xn(m)

其中 m m m为指标的个数, X i ′ = ( x i ′ ( 1 ) , x i ′ ( 2 ) , . . . , x i ′ ( m ) ) T , i = 1 , 2 , . . . , n X'_i=(x'_i(1),x'_i(2),...,x'_i(m))^T, i=1,2,...,n Xi=(xi(1),xi(2),...,xi(m))T,i=1,2,...,n

2.2.确定参考数据列

通常,根据分析目标确定参考数据列:

目标一,指标排序选优,指标体系中的指标与对标指标的关联度的大小,并可以数值大小排序。

按业务选择理想比较基准,例如在此需要分别将三种产业与国内生产总值比较计算其关联程度,故参考序列为国内生产总值。

目标二,综合评价,评价指标,给出量化数值,以及的优良顺序。

若是解决综合评价问题时则参考序列可能需要自己生成,通常选定每个指标或时间段中所有子序列中的最佳值组成的新序列为参考序列。
参考数据列应该是一个理想的比较标准,可以以各指标的最优值(或最劣值)构成参考数据列,也可根据评价目的选择其它参照值.

  • 谁与国内生产总值关联度最高?选择国内生产总值列为参考列。
  • 哪个产业发展的更好,选择每个指标的最优值(最大)值,手工生成参考数列。
  • 哪年发展的较优秀,选择各个年度的最优值,手工生产参考数列。

参考数列记作:
X 0 ′ = ( x 0 ′ ( 1 ) , x 0 ′ ( 2 ) , . . . , x 0 ′ ( m ) ) X'_0=(x'_0(1),x'_0(2),...,x'_0(m)) X0=(x0(1),x0(2),...,x0(m))

2.3.对指标数据进行无量纲化

由于系统中各因素的物理意义不同,导致数据的量纲也不一定相同,不便于比较,或在比较时难以得到正确的结论。因此在进行灰色关联度分析时,一般都要进行无量纲化的数据处理。

常用无量纲方法之一:

x i ( k ) = x i ′ ( k ) 1 m ∑ k = 1 m x i ′ ( k ) x_i(k)=\\fracx'_i(k)\\frac1m\\sum_k=1^mx'_i(k) xi(k)=m1k=1mxi(k)xi(k)

无量纲化后的数据序列形成如下矩阵:

( X 1 , X 2 , . . . , X n ) = ( x 1 ( 1 ) x 2 ( 1 ) . . . x n ( 1 ) x 1 ( 2 ) x 2 ( 2 ) . . . x n ( 2 ) . . . . . . . . . . . . x 1 ( m ) x 2 ( m ) . . . x n ( m ) ) (X_1,X_2,...,X_n)=\\beginpmatrix x_1(1) & x_2(1) & ... & x_n(1)\\\\ x_1(2) & x_2(2) & ... & x_n(2)\\\\ ... & ... & ... & ...\\\\ x_1(m) & x_2(m) & ... & x_n(m) \\endpmatrix (X1,X2,...,Xn)= x1(1)x1(2)...以上是关于灰色关联分析法详解及python实践的主要内容,如果未能解决你的问题,请参考以下文章

灰色关联分析法步骤(python代码实现)

灰色关联度分析法(GRA)_python

灰色预测改进—三角残差拟合_python

灰色预测GM(1,n)模型_python

重要朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)

MATLAB灰色关联度分析