【数学建模】--灰色关联分析

这篇具有很好参考价值的文章主要介绍了【数学建模】--灰色关联分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统分析:

一般的抽象系统,如社会系统,经济系统,农业系统,生态系统,教育系统等都包含有许多种因素,多种因素共同作用的结果决定了该系统的发展态势。人们常常希望知道在众多的因素中,哪些是主要因素,哪些是次要因素;哪些因素对系统发展影响大,哪些因素对系统发展影响小;那些因素对系统发展起推动作用需强化发展;那些因素对系统发展起阻碍作用需加以抑制;……这些都是系统分析中人们普遍关心的问题。例如,粮食生产系统,人们希望提高粮食总产量,而影响粮食总产量的因素是多方面的,有播种面积以及水利,化肥,土壤,种子,劳力,气候,耕作技术和政策环境等。为了实现少投入多产出,并取得良好的经济效益,社会效益和生态效益,就必须进行系统分析。

数理统计的不足之处:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

灰色关联的基本思想:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

灰色关联分析原理:灰色关联分析(Grey Relational Analysis)是一种用于研究变量之间关联性的方法,特别适用于样本数据较少、样本特征缺失或数据质量不高的情况下。它是由灰色系统理论发展而来,旨在分析和描述变量之间的关联程度。

在灰色关联分析中,首先将各个变量的数据进行数值化,常采用标准化或归一化的方法,将变量的取值范围转化为[0, 1]之间。然后,通过计算变量之间的关联度,确定它们之间的关联程度。

灰色关联分析的步骤主要包括以下几个方面:

1.数据标准化:将原始数据进行标准化处理,通常采用归一化或标准化方法,使得各个变量具有相同的数值范围。

2.构建关联系数矩阵:计算各个变量之间的关联系数,一般采用灰色关联度或灰色斜率关联度。关联系数表示了变量之间的相对关联程度。

3.确定关联度序列:根据计算得到的关联系数,确定关联度序列,即将各个变量按照关联度的大小排序。

4.确定关联度权重:根据关联度序列,计算关联度权重,即各个变量在总关联系数中的贡献比例。

5.计算灰色关联度:通过将各个变量的关联系数与关联度权重相乘,并进行累加,计算出灰色关联度。灰色关联度可以反映变量之间的关联程度。

通过灰色关联度的计算,可以得到各个变量之间的关联情况,进而进行数据分析和决策支持。灰色关联分析常被应用于多个领域,包括经济、管理、环境、工程等,用于评估指标之间的关联强度、寻找关键因素等。

需要注意的是,灰色关联分析的结果是相对的,不具备精确的定量意义,应结合实际问题和其他分析方法进行综合评估和判断。

例题以及Excel的实操:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析在excel中选择数据-插入-推荐图标-修改信息。

2.确定分析数列:

母序列:能反映系统特征值的数据序列,类似于因变量Y,此处记为X0

子序列:有影响系统行为的因素组成的数据序列。类似于自变量x,此处记为(x1,x2……xm)【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

3.对变量进行预处理:

目的:去量纲,缩小变量范围简化计算。

方法:每个元素/所在列的列向量的均值。【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

4.计算子序列中各个指标与母序列的关联系数

先求每子列元素与母列之间差的绝对值,在求出矩阵中所有元素的最小值a和最大值b。且取分辨系数p/rho=0.5

在通过公式计算【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

5.求灰色关联度:

公式:每列子序列与母序列关联系数的均值。

6.分析结果进行总结。【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

MATLAB代码实现:

参考代码:

%% 灰色关联分析用于系统分析例题的讲解
clear;clc
load gdp.mat  % 导入数据 一个6*4的矩阵
% 不会导入数据的同学可以看看第二讲topsis模型,我们也可以自己在工作区新建变量,并把Excel的数据粘贴过来
% 注意Matlab的当前文件夹一定要切换到有数据文件的这个文件夹内
Mean = mean(gdp);  % 求出每一列的均值以供后续的数据预处理
gdp = gdp ./ repmat(Mean,size(gdp,1),1);  %size(gdp,1)=6, repmat(Mean,6,1)可以将矩阵进行复制,复制为和gdp同等大小,然后使用点除(对应元素相除),这些在第一讲层次分析法都讲过
disp('预处理后的矩阵为:'); disp(gdp)
Y = gdp(:,1);  % 母序列
X = gdp(:,2:end); % 子序列
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))  % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)
a = min(min(absX0_Xi))    % 计算两级最小差a
b = max(max(absX0_Xi))  % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi  + rho*b)  % 计算子序列中各个指标与母序列的关联系数
disp('子序列中各个指标的灰色关联度分别为:')
disp(mean(gamma))

【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

讨论:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

灰色分析用于综合评价问题:

步骤:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

MATLAB代码实现:

这里的代码和博主之前TOPSIS算法一文:数学建模——TOPSIS法_Wei&Yan的博客-CSDN博客

前面的操作都一致,只是在最后添加上了灰色相关分析的方法

步骤:

  1. 先对矩阵进行预处理:每个元素/所在列的均值
  2. 构造母序列和子序列

母序列:取每一行的max构成一个列向量

子序列:预处理后的矩阵

3.计算灰色关联度

先求每个元素与母序列差的绝对值矩阵,再求两级最大/小差。

最后利用公式求灰色关联度【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

4.求权重:每列的均值/每列均值的和

5.求得分:(矩阵中每个元素*其所在列的权重)的矩阵的列和。(得到一个)

6.归一化得分:每个元素/向量和【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

图形对比:【数学建模】--灰色关联分析,数学建模,数学建模,matlab,算法,灰色相关分析

参考代码:

这里只参考了主函数加上带有灰色相关分析的代码,其他自定义函数可参考博主原来的文章TOPSIS算法:数学建模——TOPSIS法_Wei&Yan的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-642392.html

%% 灰色关联分析用于综合评价模型例题的讲解
clear;clc
load data_water_quality.mat
% 不会导入数据的同学可以看看第二讲topsis模型,我们也可以自己在工作区新建变量,并把Excel的数据粘贴过来
% 注意Matlab的当前文件夹一定要切换到有数据文件的这个文件夹内

%%  判断是否需要正向化
[n,m] = size(X);
disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标']) 
Judge = input(['这' num2str(m) '个指标是否需要经过正向化处理,需要请输入1 ,不需要输入0:  ']);   %1

if Judge == 1
    Position = input('请输入需要正向化处理的指标所在的列,例如第2、3、6三列需要处理,那么你需要输入[2,3,6]: '); %[2,3,4]
    disp('请输入需要处理的这些列的指  标类型(1:极小型, 2:中间型, 3:区间型) ')
    Type = input('例如:第2列是极小型,第3列是区间型,第6列是中间型,就输入[1,3,2]:  '); %[2,1,3]
    % 注意,Position和Type是两个同维度的行向量
    for i = 1 : size(Position,2)  %这里需要对这些列分别处理,因此我们需要知道一共要处理的次数,即循环的次数
        X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i));
    % Positivization是我们自己定义的函数,其作用是进行正向化,其一共接收三个参数
    % 第一个参数是要正向化处理的那一列向量 X(:,Position(i))   回顾上一讲的知识,X(:,n)表示取第n列的全部元素
    % 第二个参数是对应的这一列的指标类型(1:极小型, 2:中间型, 3:区间型)
    % 第三个参数是告诉函数我们正在处理的是原始矩阵中的哪一列
    % 该函数有一个返回值,它返回正向化之后的指标,我们可以将其直接赋值给我们原始要处理的那一列向量
    end
    disp('正向化后的矩阵 X =  ')
    disp(X)
end

%% 对正向化后的矩阵进行预处理
Mean = mean(X);  % 求出每一列的均值以供后续的数据预处理
Z = X ./ repmat(Mean,size(X,1),1);  
disp('预处理后的矩阵为:'); disp(Z)

%% 构造母序列和子序列
Y = max(Z,[],2);  % 母序列为虚拟的,用每一行的最大值构成的列向量表示母序列
X = Z; % 子序列就是预处理后的数据矩阵

%% 计算得分
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))  % 计算|X0-Xi|矩阵
a = min(min(absX0_Xi))    % 计算两级最小差a
b = max(max(absX0_Xi))  % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi  + rho*b)  % 计算子序列中各个指标与母序列的关联系数
weight = mean(gamma) / sum(mean(gamma));  % 利用子序列中各个指标的灰色关联度计算权重
score = sum(X .* repmat(weight,size(X,1),1),2);   % 未归一化的得分
stand_S = score / sum(score);   % 归一化后的得分
[sorted_S,index] = sort(stand_S ,'descend') % 进行排序

到了这里,关于【数学建模】--灰色关联分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    1.概述 一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种因素,多种因素共同作用的结果决定了该系统的发展态势。在众多的因素中,哪些是主要因素,哪些是次要因素;哪些因素对系统发展影响大,哪些因素对系统发展影响小;哪

    2024年02月15日
    浏览(35)
  • 【数学建模】灰色关联度分析

    目录 前言 一、灰色关联度分析是什么 二、使用步骤 1.数据归一化/标准化 1.1 导入库 2.读入数据 总结           灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在一个 灰色系统 中,我们想要了解其中某个我们所关注的某个项目受

    2024年02月05日
    浏览(87)
  • 灰色关联度分析(清风数学建模笔记)

    记录一下建模学习笔记 灰色关联分析主要有两个作用,一是进行系统分析,判断影响系统发展的因素的重要性。第二个作用就是用于综合评价问题,给出研究对象或者方案的优劣排名。 在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二

    2024年02月06日
    浏览(44)
  • 【数学建模】清风数模更新5 灰色关联分析

    诸如经济系统、生态系统、社会系统等抽象系统都包含许多因素,系统整体的发展受各个因素共同影响。 为了更好地推动系统发展,我们需要清楚哪些因素是主要的,哪些是次要的,哪些是积极的,哪些是消极的,这就要求我们进行系统分析。 数理统计中的系统分析方法包

    2024年02月12日
    浏览(46)
  • 数学建模—评价模型—灰色关联度分析Vs灰色综合评价

            黑色系统:只明确系统和环境的关系,内部未知         白色系统:内部结构、元素、组成、实现机理已知         灰色系统:部分明确系统与环境见关系、系统结构、实现过程。 灰色系统实例:(1)社会经济系统(企业收入、相关因素) 灰色系统理论

    2024年02月04日
    浏览(52)
  • 数学建模:评价性模型学习——灰色关联分析法(GRA模型)

    目录 前言 一、灰色关联分析 1.什么是灰色关联分析? 2.流程介绍 二、综合评价 1.数据无量纲化处理 2.确定参考序列 3.确定权重 4.计算灰色关联系数  5.计算灰色加权关联度 6.代码 总结          继续学习数学建模涉及的评价性模型,这篇会介绍如何使用灰色关联分析法进

    2024年02月04日
    浏览(181)
  • 数学建模之灰色预测模型代码(matlab版)

    灰色关联分析步骤 【1】确定比较对象(评价对象)(就是数据,并且需要进行规范化处理,就是标准化处理,见下面例题的表格数据)和参考数列(评价标准,一般该列数列都是1,就是最优的的情况) 【2】确定各个指标权重,可用层次分析确定 【3】计算灰色关联系数 【4】

    2024年02月09日
    浏览(46)
  • 数学建模之回归分析算法(含matlab源代码)

    目录 一、一元线性回归 1、步骤  2、matlab命令(多元线性回归) 3、举例  二、一元非线性回归  三、多项式回归 1、一元多项式回归  应用  2、多元二项式 应用  四、非线性回归  应用 五、 逐步回归  应用    r²和F越大越好 p越小越好      从残差图可以看出,除第二个

    2024年02月09日
    浏览(67)
  • 【数学建模美赛 | 国赛必学模型算法精讲】层次分析法——模型原理及Matlab+Python双语言代码演示

    层次分析法 是 评价决策类 中一个比较常用的方法,很多留意美赛赛题的小伙伴们就会发现,在美赛EF类题目的历年O奖论文中,层次分析法出现的概率是非常高的。层次分析法呢一般是针对评价决策类的题目,让我们评价或选择一个可能更好、更优的政策及方案,那这样呢,

    2024年01月25日
    浏览(47)
  • 【数学建模】《实战数学建模:例题与讲解》第十二讲-因子分析、判别分析(含Matlab代码)

    本系列侧重于例题实战与讲解,希望能够在例题中理解相应技巧。文章开头相关基础知识只是进行简单回顾,读者可以搭配课本或其他博客了解相应章节,然后进入本文正文例题实战,效果更佳。 如果这篇文章对你有帮助,欢迎点赞与收藏~ 判别分析是一种统计方法,它根据

    2024年02月04日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包