当前位置:   article > 正文

数学建模学习笔记:灰色关联分析_灰色关联系数

灰色关联系数

本次笔记内容内容来自清风老师的课程整理,增加了一些拓展资源以及自己的见解,如有侵权请联系删除。清风老师的数学建模课程可以在B站搜索到。

本文给出了excel和matlab两种计算灰色关联度的过程详解。

拓展链接: https://www.toutiao.com/i6818157258032022023/

灰色关联分析概述

系统分析:一般的抽象系统包含很多影响因素,多种因素的共同作用结果决定了该系统的发展态势。如社会系统、经济系统、农业系统、生态系统、教育系统等等。

  • 多因素之间的分析:哪些是主要因素,哪些是次要因素,哪些因素对系统发展影响大,哪些因素对系统发展影响小,哪些因素对系统发展起推动作用需强化发展,哪些因素对系统发展起阻碍作用需加以抑制。
  • 系统分析方法(数理统计方向):回归分析、方差分析、主成分分析等

探究因变量,需要很多的自变量来解释,就需要找到很多影响因素。

 上述三种分析方法的不足之处:

  1. 需要大量的数据,数据量少就难以找到统计规律。
  2. 要求样本服务从某个典型的概率分布,要求各因素数据与系统特征数据之间呈线性关系且各因素之间彼此无关。
  3. 计算量大。
  4. 可能出现量化结果与定性分析不符的现象,导致系统的关系和规律遭到歪曲和颠倒。

在以往的研究中,多因素统计分析常采用相关与回归的方法。在进行多元回归时,要求样本足够大,且须呈典型分布,其计算量大,过程复杂繁琐。实际中,超过两个自变量的回归分析已不便手算,虽可借助计算机,但由于回归分析主要是数据幂、和、积和等的运算,计算过程中的误差可导致严重错误,使因素间的本质联系受到歪曲。

参考文献:谭学瑞, 邓聚龙. 灰色关联分析;多因素统计分析新方法[J]. 统计研究, 1995, 000(003):46-48.

 灰色关联分析的基本思想

优势:灰色关联分析对样本量的多少和样本有无规律都同样适用,而且计算量小,不会出现量化结果与定性分析结果不符的情况。

思想:根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。

灰色关联方法是灰色系统理论中新的分析方法,它根据因素间的相似或相异程度,来衡量因素之间的关联度,克服了传统数学评价模型方法的局限性。但是在指标权重确定上过于主观,可以采用熵权法等客观求权重的方法对权重进行确定。

参考:刘思峰. 灰⾊系统理论及其应用(第五版)[M]. 北京: 科学出版社, 2010: 62.

张凤太, 苏维词, 周继霞. 基于熵权灰色关联分析的城市生态安全评价[J]. 生态学杂志, 2008(07):193-198.

百度百科解释:

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

例题:分析产业对GDP的影响程度——Excel计算过程

分析哪一种产业对GDP总量影响最大。

产业数据

如果用回归分析,数据太小了,结果可能不显著。

 


下面是计算过程:

第一步:确定分析数列

 确定反映系统行为特征的参考数列和影响系统行为的比较数列。反映系统行为特征的数据序列,称为参考数列。影响系统行为的因素组成的数据序列,称比较数列。

(1)参考数列(又称母序列)为X0=X0(k)∣k=1,2...n;

(2)比较数列(又称子序列)为Xi=Xi(k)∣k=1,2...n,i=1,2...m

确定分析数列(博客园图片)

 

 

确定分析数列(清风老师解释)

在本例中,国内生产总值是母序列(类似于因变量);第一、二、三产业是子序列(类似于自变量)。

第二步:对变量进行预处理(去量纲,缩小变量范围简化计算)

量纲:有单位表示的属性

无量纲:没有单位,只有数字意义

对母序列和子序列中的每个指标进行预处理:先求出每个指标的均值,再用该指标中的每个元素都除以其均值(均值化处理)。

公式:

无量纲化处理(图片来自CSDN)

excel中计算过程:

  1. 先求每一列的平均值,比如第一列: =AVERAGE(B2:B7) ,结果放在B16中
  2. 再拿每一列的元素除以其均值。比如国内生产总值中1988均值化后的结果:=B2/B$16

无量纲化处理的过程

 

第三步:计算子序列中各个指标与母序列的关联系数

计算关联系数步骤(图片来自CSDN博客)

 

(一)X0为子序列,X1、X2、X3为子序列。a表示两级最小差,b表示两级最大差。如何求解a、b 呢?

  1. 用每一行的每个子序列中的数与母序列相减
  2. 得到更新后的表格数值,然后从表格中找到所有数中最大的数(b:两级最大值)和所有数中最小的数(a:两级最大值)

求a和b

excel中计算过程:比如需要计算第一个数0.8361的两极差,公式:=ABS(C10-$B10)

 

(二)求出a、b后就可以计算各个指标与母序列的关联系数。

 

关联系数求解

|x0(k)-xi(k)|为上面“求a和b”计算的表格。即为“用每一行的每个子序列中的数与母序列相减”。

计算结果:

关联系数计算结果

第四步:求灰色关联度

灰色关联度(CSDN博客)

灰色关联度为每一列的关联系数的平均值。

 

灰色关联度

结论:可以得到第一产业与国内生产总值的灰色关联度为0.5084,第二产业与国内生产总值的灰色关联度为0.6243,第三产业与国内生产总值的灰色关联度为0.7573.

灰色关联度越大,对母序列的影响越大。

 

通过比较三个子序列和母序列的关联度可以得到结论,该地区在2000~2005年间的国内生产总值受到第三产业的影响最大(因为其灰色关联度最大)。

MATLAB代码实现

  1. %% 导入数据(数据和代码需要在一个文件夹下)
  2. clear;clc
  3. load gdp.mat % 导入数据 一个6*4的矩阵
  4. %% 均值化处理
  5. Mean = mean(gdp); % 求出每一列的均值以供后续的数据预处理
  6. gdp = gdp ./ repmat(Mean,size(gdp,1),1); %size(gdp,1)=6, repmat(Mean,6,1)可以将矩阵进行复制,复制为和gdp同等大小,然后使用点除(对应元素相除),这些在第一讲层次分析法都讲过
  7. disp('预处理后的矩阵为:'); disp(gdp)
  8. %% 关联系数计算
  9. Y = gdp(:,1); % 母序列
  10. X = gdp(:,2:end); % 子序列
  11. absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)
  12. a = min(min(absX0_Xi)) % 计算两级最小差a
  13. b = max(max(absX0_Xi)) % 计算两级最大差b
  14. rho = 0.5; % 分辨系数取0.5
  15. gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 计算子序列中各个指标与母序列的关联系数
  16. disp('子序列中各个指标的灰色关联系数为:')
  17. disp(gamma)
  18. %% 灰色关联度计算
  19. disp('子序列中各个指标的灰色关联度分别为:')
  20. disp(mean(gamma))

 

matlab计算结果

 

拓展与讨论

  1. 什么时候用标准化回归,什么时候用灰色关联分析?

当样本个数n较大时,一般使用标准化回归,当样本个数n较少时,采用灰色关联分析。

  1.  如果母序列中有多个指标,应该怎么分析?

例如Y1、Y2 是母序列,X1、X2、X3……Xn为子序列。可以首先计算Y1和子序列之间的灰色关联度,再计算Y2和子序列之间的灰色关联度。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/682205
推荐阅读
相关标签
  

闽ICP备14008679号