前段时间做论文,其中有一部分用到了灰色理论。按说这个理论我上本科的时候就听寝室Yuan同学念叨过,当时只是觉得很邪乎,离自己的距离很遥远。而当我开始研究它时,才发现这套理论竟然是武汉华中科技大学邓聚龙教授的原创,令我由衷钦佩。灰色理论中比较有名的是GM模型,由于我这次没用上,深入了解它也需要时间,所以今天只谈灰色关联矩阵的问题。
灰色关联有什么用
灰色关联度,指的是两个系统或两个因素之间关联性大小的量度。目的,是在于寻求系统中各因素之间的主要关系,找出影响目标值的重要因素,从而掌握事物的主要特征,促进和引导系统迅速有效地发展。——这是比较“官方”的解释。我再来一个“野路子”的解释:用两种试验方法,得出两组数据A和B;用理论方法,得到理论解答C。那么,现在来比较试验方法A好还是B好?自然是看其结果,哪一个与C最吻合,哪个就最好呗,灰关联就是用来解决“谁和谁的关联程度更高”这样的问题的。
灰色关联的重要步骤
步骤不多,核心的,首先是数据的归一化处理,这是因为有时一个试验结果矩阵中的每个元素会有不同的量纲;接下来是计算灰色关联矩阵,这个过程涉及到的公式很吓人,我第一眼看的时候竟然没搞明白是什么意思,囧;最后是计算关联度,这也就是得到了最终结果。
下面来看看那个复杂的公式:(Pi为关联度矩阵中的元素)
计算方法
关于关联矩阵中各个元素的计算,我起初被严重误导,认为用Excel是无法完成的,结果还绕了一段弯路,很是丢人~当然,有高手通过Matlab计算的经验,而且还给出了实例,有兴趣的可以参考“仿真百科”里的内容。但我最终还是根据1992年出版的一本老书《灰色理论与方法——提要·题解·程序·应用》中的一个简单实例,用最简单的方法搞定了计算问题。鉴于我不知道如何把Excel公式按照步骤,类似APDL那样摆出来,那就把那个例子与大家分享,说说计算原理步骤吧。
首先看下面四数列
A=[2,3,4,3.7]
B=[60,73,84,58]
C=[1204,801,1228,1270]
D=[303,298,247,251]
以A为目标,检验B、C、D与A的关联度。
步骤1.归一化,将数列中的每个元素,除以相同的一个数值,比如A的归一化过程为[2/2, 3/2 ,4/2, 3.7/2]或者更常用的均值化处理,都可以搞定。只需要这几个数列用同一种方法归一即可了。
步骤2.求差序列.经过归一化的A、B、C、D,用A分别减去B/C/D;即
E=A-B; F=A-C; G=A-D
步骤3.求两级最大和最小差值。这是一个容易让人糊涂的地方,但实际操作很简单:
设E中最大值为Emax,最小值为Emin,其余类推;这样一共就有六个数,分别是Emax;Emin;Fmax;Fmin;Gmax和Gmin。从这六个数中,再选出一个最大值和一个最小值,假设为M和N——而这就是上述公式当中双重最值的部分啦。
步骤4.带入公式,得到三组关联系数(单行)矩阵。
步骤5.计算关联度,实际上就是步骤4中,每组矩阵各个元素求和除以元素个数(求均值)。
步骤6.通过比较关联度数值,最大的那个,其对应的数列与目标数列的关联度最高。
Over.
还有不清楚的,请参考上文中所述书籍的第33页,出于知识产权的原因,我不便在博客里直接照搬,不便之处还请见谅。
好人啊!通俗易懂,点个赞
E是不是有16个元素啊
@没事啊。 你可以去看看那本书,上面有详细说明的
非常感谢,很有帮助。两级最大和最小差值搞得我晕头转向
@寒江雪303 还是那本老书的例子写得好