用excel可以进行灰色关联度计算

前段时间做论文,其中有一部分用到了灰色理论。按说这个理论我上本科的时候就听寝室Yuan同学念叨过,当时只是觉得很邪乎,离自己的距离很遥远。而当我开始研究它时,才发现这套理论竟然是武汉华中科技大学邓聚龙教授的原创,令我由衷钦佩。灰色理论中比较有名的是GM模型,由于我这次没用上,深入了解它也需要时间,所以今天只谈灰色关联矩阵的问题。

灰色关联有什么用

灰色关联度,指的是两个系统或两个因素之间关联性大小的量度。目的,是在于寻求系统中各因素之间的主要关系,找出影响目标值的重要因素,从而掌握事物的主要特征,促进和引导系统迅速有效地发展。——这是比较“官方”的解释。我再来一个“野路子”的解释:用两种试验方法,得出两组数据A和B;用理论方法,得到理论解答C。那么,现在来比较试验方法A好还是B好?自然是看其结果,哪一个与C最吻合,哪个就最好呗,灰关联就是用来解决“谁和谁的关联程度更高”这样的问题的。

灰色关联的重要步骤

步骤不多,核心的,首先是数据的归一化处理,这是因为有时一个试验结果矩阵中的每个元素会有不同的量纲;接下来是计算灰色关联矩阵,这个过程涉及到的公式很吓人,我第一眼看的时候竟然没搞明白是什么意思,囧;最后是计算关联度,这也就是得到了最终结果。

下面来看看那个复杂的公式:(Pi为关联度矩阵中的元素)

guanliandu.gif

计算方法

关于关联矩阵中各个元素的计算,我起初被严重误导,认为用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页,出于知识产权的原因,我不便在博客里直接照搬,不便之处还请见谅。

*欢迎转载,转载请标明来源:十千牛,文章地址: http://10kn.com/excel-grey-incidence/

欢迎关注十千牛微信公众号

说不定我这一生涓滴意念,侥幸汇成河,而且是一条大长河

22 条评论

  1. 你好!我也碰到了这个问题,不过看了你文章还是有点不明白,可以详细教教我吗?谢谢了!

  2. @weihua000128 当然可以用excel,不过,数据量大了之后,肯定影响效率
    最常用的一个归一方法,用现成的matlab代码,比如:

    for i=1:35
    p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
    end

  3. 请问,归一化处理具体怎么处理,是4个数列都用同一种方法,还是都除以同一个数呢?另外,怎么用excel处理计算过程

  4. @nlm 结合实例,C*就是目标A中的元素,Cik就是与目标进行关联比较的数列元素,那个“rou”取0.5,得出来的就是关联矩阵元素了。貌似挺拗口

Leave a Reply

Your email address will not be published. Required fields are marked *