灰色关联分析法——系统分析或综合评价模型

article/2025/6/8 10:50:56

Q1:什么是系统分析?

        比方说在社会系统、经济系统、农业系统、教育系统中,每个系统都含有许多种因素,而这多种因素共同作用的结果决定了该系统的发展态势,我们常常希望知道在这众多因素中,哪些因素对系统发展影响大,哪些因素对系统发展影响小;哪些是主要因素,哪些是次要因素;哪些对系统发展起推动作用,哪些对系统发展起阻碍作用……这就是所谓的系统分析。举个栗子,粮食生产系统中,影响粮食产量的因素有播种面积、土壤、浇水施肥、气候、耕作技术等等,我们希望实现少投入多产出,取得良好的经济效益、社会效益和生态效益,那么就必须进行系统分析。

        数理统计中的回归分析、方差分析、主成分分析等都是用来进行系统分析的方法。这些方法都有下列不足之处(引用自某文章):
(1)要有大量数据支持,数据量少就难以找出统计规律;
(2)样本要服从某个典型的概率分布,要求各因素数据与系统特征数据之间呈线性关系且各因素之间彼此无关,而这些要求往往难以满足;
(3)可能出现量化结果与定性分析结果不符的现象,导致系统的关系和规律遭到歪曲和颠倒。

Q2:什么是灰色关联分析?

        灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。
        灰色关联分析方法弥补了采用数理统计方法作系统分析所导致的缺憾。它对样本量的多少和样本有无规律都同样适用,而且计算量小,十分方便,更不会出现量化结果与定性分析结果不符的情况。(注:系统分析中灰色关联分析方法目前不是主流,主流还是数理统计中的方法)



应用一:进行系统分析

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

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

一、画统计图

(画图后配上简单的分析)
        由图表可知:四个变量均呈上升的趋势;第二产业的增幅较为明显;第二产业和第三产业的差距在后三年相差更大。

二、确定分析数列
(1)母序列(又称参考数列、母指标):能反映系统行为特征的数据序列。——类似于因变量y,此处即为X0;
(2)子序列(又称比较数列、子指标):影响系统行为的因素组成的数据序列。——类似于自变量x,此处记为(x1,x2,x3,…,xm)。
        故在本例中:国内生产总值就是母序列X0,第一、第二、第三产业就是子序列X1、X2、X3.

三、对变量进行预处理(两个目的:去量纲(标准化);缩小变量范围简化计算)
        对母序列和子序列中的每个指标进行预处理:先求出每个指标的均值,再把该指标的每个元素都除以其均值。

四、计算子序列中各个指标与母序列的关联系数
母序列:  X0 = (x0_(1),x0_(2),……,x0_(n))'
子序列:  X1 = (x1_(1),x1_(2),……,x1_(n))'
                X2 = (x2_(1),x2_(2),……,x2_(n))'
                   …………
                Xm = (xm_(1),xm_(2),……,xm_(n))'

在这里我们令
母序列:  X0 = (x0_(1),x0_(2),x0_(3),x0_(4),x0_(5),x0_(6))'
子序列:  X1 = (x1_(1),x1_(2),x1_(3),x1_(4),x1_(5),x1_(6))'
                X2 = (x2_(1),x2_(2),x2_(3),x2_(4),x2_(5),x2_(6))'
                X3 = (x3_(1),x3_(2),x3_(3),x3_(4),x3_(5),x3_(6))'

记 a = min|x0_(k) - xi_(k)|,b = max|x0_(k) - xi_(k)|. 称a、b分别为两级最小差和两级最大差。
在本例中有:

| X0 - X1 || X0 - X2 || X0 - X3 |
0.10410.04920.0119
0.12490.07040.0289
0.05440.07850.0694
0.03150.01120.0278
0.12880.04770.0006
0.18620.13920.0832

故两级最小差a = 0.0006,两级最大差b = 0.1862.
我们给出如下定义:

ρ为分辨系数一般取0.5,故在求出a、b后,分子即为一个常数,而分母中的|x0_(k) - xi_(k)|在上表中已经求出,我们将其一一代入这个式子即可得到:

0.47510.65860.8922
0.42990.57330.7680
0.63560.54620.5766
0.75200.89850.7753
0.42240.66571.0000
0.33560.40350.5317

 比如第一个数据 0.4751 = (0.0006 + 0.5×0.1862) / (0.1041 + 0.5×0.1862).

五、计算灰色关联度
定义 γ(X0, Xi) =  为X0和Xi的灰色关联度
因此我们有 γ(X0, X1) = 0.5084,γ(X0, X2) = 0.6243,γ(X0, X3) = 0.7573.

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

(注:灰色关联分析研究的人比较少,主要是国内有部分人研究,在论文中谨慎使用)


 思考:
(1)什么时候用标准化回归,什么时候用灰色关联分析?
        当样本个数n较大时,一般使用标准化回归;当样本个数n较小时,可考虑使用灰色关联分析。
(2)如果母序列中有多个指标时,应该怎么分析?(例如Y1和Y2是母序列,X1,X2,…,Xm是子序列)
        我们可首先计算Y1和X1,X2,…,Xm的灰色关联度进行分析,再计算Y2和X1,X2,…,Xm的灰色关联度进行分析。



应用二:用于综合评价

        在之前我们已经介绍过进行综合评价有两个模型:层次分析法(AHP)和优劣解距离法(TOPSIS)。它们的区别在于层次分析法用于没有数据,TOPSIS用于有数据时,现在我们将要讲的灰色关联分析也是用于有数据时的评价方法。另外在用TOPSIS时如果需要确定指标权值可以用熵权法解决,也可以用层次分析法。在有了之前的基础上,现简要介绍一下灰色关联分析进行评价的过程。

主要步骤:
(1)对指标数据进行正向化(可参考TOPSIS中的正向化方法);
(2)对正向化后的矩阵进行数据预处理(可参考上面系统分析中和之前讲过的预处理方法),得到矩阵Z_{n*m}
(3)将预处理后的矩阵每一行取出最大值构成母序列(这里的母序列其实是虚构的,因为我们是对指标进行评价,不像系统分析中母序列其实是因变量)
(4)计算各个指标与母序列的灰色关联度:γ1、γ2、……、γm.
(5)计算各个指标的权重:w1 = γ1 / (γ1+γ2+…+γm)、……、wm = γm / (γ1+γ2+…+γm)
(6)第k个评价对象的得分:S_{k} = \sum_{j=1}^{m}Z_{kj}\cdot \gamma _{j},(k = 1,2,…,n)
(7)对得分进行归一化:S_{k}' = S_{k}/(S_{1}+S_{2}+…+S_{n}) ;
(8)对结果可视化。


http://chatgpt.dhexx.cn/article/f9DoTosa.shtml

相关文章

数学建模笔记——评价类模型之灰色关联分析

这一篇就简单介绍一下灰色关联分析吧。灰色关联分析主要有两个作用,一是进行系统分析,判断影响系统发展的因素的重要性。第二个作用就是用于综合评价问题,给出研究对象或者方案的优劣排名。 不过这里我只能简单介绍一下,更加深入…

数学建模------综合评价模型之灰色关联分析

前言 提起综合评价模型,大家可能会比较熟悉层次分析法,但是层次分型法的主观性太强,有时构造的矩阵并不能通过一致性检验,所以了解一些其他的综合评价模型也是十分重要的。比较常用的综合评价模型有TOPSIS法,熵值法&a…

灰色关联分析及MATLAB实现

目录 一、灰色关联分析概述 灰色关联分析的基本思想: 二、灰色关联分析应用实例 举例一: 1. 确定分析数列 2. 对变量进行预处理 3. 计算子序列中各个指标与母序列的关联系数 三、 MATLAB实现 一、灰色关联分析概述 当一个系统是由多种因素共同作用时…

【数学建模】灰色关联分析 + Matlab代码实现

文章目录 一、学习内容:二、学习时间:三、学习产出:3.1 灰色关联分析基本思想3.2 运用灰色关联分析的基本步骤3.3 灰色关联分析代码实现(Matlab)3.3.1 应用一:分析产业对GDP的影响程度3.3.2 应用二:灰色关联分析评价河…

【数模】灰色关联分析与预测模型

文章目录 前言一、灰色预测(法)1.定义2.如何预测3.灰色预测的四种常见类型 二、灰色关联度分析灰色关联度 三、灰色生成数列四、灰色模型GM(1,1)五、灰色预测步骤 前言 灰色系统的应用 一、灰色预测(法) 1.定义 灰色预测法&a…

数学建模学习:灰色关联分析

一、灰色关联分析 1.概述 一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种因素,多种因素共同作用的结果决定了该系统的发展态势。在众多的因素中,哪些是主要因素,哪些是次要因素&#xff1…

灰色关联分析笔记

什么时候用灰色关联分析? 灰色关联分析 是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法 【若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较…

MATLAB学习笔记_Day03灰色关联分析和灰色预测模型

学习视频:【零基础教程】老哥:数学建模算法、编程、写作和获奖指南全流程培训! 文章目录 1. 灰色关联分析与预测模型适用范围:1.1 灰色预测的概念1.2 灰色关联度与优势分析1.3 灰色预测模型1.4 灰色模型GM(1,1)1.5 灰色预测步骤 1…

灰色系统理论与灰色关联分析模型

灰色系统理论与灰色关联分析模型 Author:丸子 Written on: 220211 Notes:包括灰色系统知识和灰色关联分析模型两部分 笔记课程来自b站网课老哥带你学数模书本为《数学建模算法与应用(第3版)》,司守奎编著第424页 文章目录 灰色系统理论与灰色…

Python 灰色关联度 灰色预测模型

灰色关联度 灰色关联度常用于分析影响因子与被影响因子的关联,是水论文的好东西 如果数据的量纲不统一的话,需要先进行归一化处理 import numpy as npdef gray_correlation(refer, data, rho0.5): refer: 参照数列 (列向量)data: 比较数列 (以列为单位…

备战数学建模15-灰色关联分析与灰色预测模型

目录 一、灰色系统理论与灰色关联分析 1-灰色预测的概念 2-灰色关联度与优势分析 3-灰色关联分析案例分析 4-灰色生成数列 二、灰色预测模型 1-灰色模型GM 2-灰色模型GM的建模步骤 3-灰色预测经典案例1 4-灰色预测模型经典案例2 一、灰色系统理论与灰色关联分析 1-灰…

C语言:关键字----switch、case、default(开关语句)

C语言:基础开发----目录 C语言:关键字—32个(分类说明) 有32个关键字详细说明,还有跳转链接! 一、开关语句----介绍 开关语句,包括以下四种关键字: switch:开关语句case: 开关语句…

C语言关键字auto,case,default,switch应该如何使用

前言:本文章主要用于个人复习,追求简洁,感谢大家的参考、交流和搬运,后续可能会继续修改和完善。 因为是个人复习,会有部分压缩和省略。 一、auto 1.c语言中,关键字auto用于声明一个变量为自动变量&#x…

C语言-switch-case语句与多分支结构

一、switch-case语句 1. switch语句中的每个语句段中都使用break语句 switch-case语句的一般形式为: switch (表达式){case 常量表达式1: 语句段1;break;case 常量表达式2:语句段2;break;...case 常量表达式n:语句段n;break;default:语句段n1;break;}这是switch-c…

C语言——switch case 语句判断学生成绩

C语言——switch case 语句判断学生成绩 switch case 讲解: switch(),在括号里输入所定义的变量,接着在()后面输入一个{}大括号,把每一个分支语句放在大括号中。 switch()写法: int main()…

C语言--switch case 语句,case 后没有语句

背景:在看 wireshark 的解析协议部分的源码时,发现很多的 switch case 语句,case 后没有语句 的情况,随处可见的这种情况,产生疑惑,报文解析就是很好的例子。 例如:wireshark-3.2.17/epan/diss…

补充switch语句的内容和逗号运算符(C语言case后没有break的switch语句,会继续执行后面的语句再退出)

补充switch语句的内容和逗号运算符 C语言case后没有break的switch语句,会继续执行后面的语句再退出补充逗号运算符 C语言case后没有break的switch语句,会继续执行后面的语句再退出 对于switch语句,我们在使用的时候都会注意使用的规范&#…

c语言 case break,C语言中switch...case语句中break的重要性

在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题。话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf("apple"); break; case 2:printf("banana");…

C语言CASE语句嵌套,C语言中switch case语句的嵌套

给一个含有嵌套的switch case的一段完整代码: #include int main() { int n1; int m2; switch(n) { case 1: m; case 2: n; case 3: switch(n) { case 1: n; case 2: m; n; break; } case 4: m; break; default: break; } printf("%d %d",m,n); return 0…

c语言 switch案例,c语言switch case语句使用例子

c语言switch case语句使用例子 发布时间:2020-04-23 11:48:53 来源:亿速云 阅读:421 作者:小新 这篇文章主要为大家详细介绍了c语言switch case语句使用例子,文中示例代码介绍的非常详细,具有一定的参考价值…