数学建模:评价性模型学习——灰色关联分析法(GRA模型)

2023-11-16

目录

前言

一、灰色关联分析

1.什么是灰色关联分析?

2.流程介绍

二、综合评价

1.数据无量纲化处理

2.确定参考序列

3.确定权重

4.计算灰色关联系数

 5.计算灰色加权关联度

6.代码

总结


前言

        继续学习数学建模涉及的评价性模型,这篇会介绍如何使用灰色关联分析法进行综合评价以及分析灰色关联分析法的适用条件和优缺点。


一、灰色关联分析

1.什么是灰色关联分析?

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

        灰色关联分析主要有两个作用:一是综合评价,给出研究对象或者方案的优劣排名。二是系统分析,判断影响系统发展的因素的重要性。

2.流程介绍

  1. 数据无量纲化处理
  2. 确定参考序列
  3. 确定权重
  4. 计算灰色关联系数
  5. 计算灰色加权关联度

二、综合评价

这里沿用上篇文章用到的案例的拓展,有兴趣可以点进查看CSDNhttps://mp.csdn.net/mp_blog/creation/editor/126567801

针对以下七个因素对五个城市(厦门、杭州、成都、长沙、桂林)的旅游竞争力进行排名:

1.数据无量纲化处理

        由于每个影响因素的维度不同,因此对每个量纲进行标准化。标准化方法很多,如z-score法(每个数据减去均值再除以方差)、平均值法(每个数据除以该子序列的均值)、max-min方法(每个数据减去最小值再除以最大值与最小值的差)等等。
        由于我数据处理时采用了极大型数据,即数字越大越相关,因此采用max-min方法:

原始数据构成的矩阵:

无量纲化后的矩阵(matlab代码下文给出):

2.确定参考序列

        由于原始数据为极大型数据,因此选取每个指标标准化后的最大值为参考序列,在此为 A 0 = (1,…, 1 )

3.确定权重

        在这里通常有两种方法,一是等权重,二是采用层次分析法所确定的权重。这里采用上篇介绍层次分析法所确定的权重,感兴趣的可以点进卡片学个方法。CSDNhttps://mp.csdn.net/mp_blog/creation/editor/126567801计算得:W = ( 0.08265, 0.02755, 0.13156, 0.52624, 0.02429, 0.14778, 0.05993 )

4.计算灰色关联系数

对于某一个因素,其中的每个维度进行计算,得到一个新的序列,这个序列中的每个点就代表着该子序列与参考序列对应维度上的关联性(数字越大,代表关联性越强)

 在这里,\left | X0(k)-Xi(k) \right | 表示每个数据与该行参考序列数据的差的绝对值。\rho是是分辨系数,一般位于[0,1]之间,往往取0.5。

运用matlab计算结果如下(代码下文给出):

 5.计算灰色加权关联度

若权重为等权,只需求出该列的均值即为最终得分;若采用层次分析法确定的权重,则将该列数据与权重对应相乘即为最终得分:

最终排名如上图,成都的旅游竞争力在这五座城市里面位于首席。

6.代码

%读取数据
a=xlsread('data.xlsx');

%无量纲化
for i =[1:7] 
a(i,:)=(a(i,:)-min(a(i,:)))/(max(a(i,:))-min(a(i,:))) 
end

%选出参考序列
t = max(a.');
t = repmat(t.',1,5); 

%灰色相关系数 
m = t-a; 
mmin = min(min(m)); 
mmax = max(max(m));
rho = 0.5; 
coefficient = (mmin + rho*mmax)./(m + rho*mmax); 

%权重
w = [0.08265, 0.02755, 0.13156, 0.52624, 0.02429, 0.14778, 0.05993];  

%灰色关联度
correlation = w * coefficient; 

三、分析总结

优点:对需要样本量无要求,计算简单,结果与定性结果吻合;

缺点:数据指标和方法部分带有主观因素,对要求定量分析的数据所得结果较不精确


总结

    文章属于个人学习笔记类型,介绍的也许不太详细,可以结合例子揣摩一下下或者结合其他文章学习,当然也非常欢迎评论区或私信讨论!

    求一个赞哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数学建模:评价性模型学习——灰色关联分析法(GRA模型) 的相关文章

  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 快速有效地计算已知特征值的特征向量

    我的问题的简短版本 计算矩阵特征向量的最佳方法是什么A 如果我们已经知道属于特征向量的特征值呢 更长的解释 我有一个很大的随机矩阵A由于它是随机的 因此具有非负左特征向量x 这样A Tx x 我正在寻找快速有效的方法来数值计算这个向量 最好
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际

随机推荐

  • Deepin如何添加阿里源

    进入阿里开源镜像站 https opsx alibaba com mirror 找到deepin 点击右侧的帮助 出现如下图所示界面 打开终端 输入 sudo vim etc apt sources list 点击键盘上的 insert键
  • 浅谈 vue组件传值

    一般有三种传值方式 1 父传子 2 子传父 3 兄弟组件之间通信 1 父组件向子组件传值 一般会在子组件里面定义props来做接收 这是比较常见的情况 这是父组件
  • MybatisPlus 3.5.1 代码生成器 自定义Service层

  • 使用RabbitMQ定时发送消息

    如何使用消息队列去发一个定时消息 1 背景 在日常开发中 有时需要我们去定时发送消息 例如定时发送邮箱 定时发送短信等业务 此时需要我们去定制一个定时任务 可以确保在某一个时间节点上自动操作 而不用手动去设置 然后 在有些场景下 发送的消息
  • OPPO芯片公司哲库全员解散的后续...

    昨天的文章提到了OPPO的自研芯片公司哲库宣布解散 三千名员工领取了N 3的赔偿开始各奔东西 对于这背后的三千个家庭来说 无疑是坏消息 想要短时间内解决这么多人的就业问题 不是件轻松的事情 目前看来 无论是公司主体 还是员工本人 都在努力的
  • Visual Studio 2010必为程序员提供更多新机遇

    Visual Studio 2010必为程序员提供更多新机遇 今天天气太冷了 实在太冷了 外边下起大雪来 是2009年的第一场大雪 自己一个人坐在办公室实在无聊 看着外边的大雪 自己情不自禁想动起手来 想挑个话题又不知道写点什么好 最后斟酌
  • 利用几行python代码爬取全国疫情数据,全方位地图分析疫情地区分布

    爬取全国疫情数据 所用的网页连接 https api inews qq com newsqa v1 automation foreign country ranklist 可视化用到的模块 gt 戳这里下载 也可以看最后 或私信我 如果没有
  • C#访问postgresql数据库

    1 为了访问PostgreSQL数据库 需要从pgfoundry网站 下载Npgsql Net Data Provider for Postgresql的组件 https download csdn net download starhuh
  • SSE2 Intrinsics各函数介绍

    SIMD相关头文件包括 include
  • PowerDesigner设计数据库表

    1 说明 使用PowerDesigner设计数据库表 然后将表设计导出为Word文档 以及MySQL数据库对应的DDL刷库脚本 2 创建模型 首先创建概念数据模型 File gt New Model gt 选择左边的Model types
  • [Swift]错误提示:Method does not override any method from its superclass

    微信公众号 山青咏芝 shanqingyongzhi 博客园地址 山青咏芝 https www cnblogs com strengthen GitHub地址 https github com strengthen LeetCode 原文地
  • Vue 入门教程

    vue 入门 常用指令 生命周期 业务 使用 Vue 简化查询 业务 vue 实现新增 vue 核心 MVVM Model View ViewModel 实现数据的双向绑定 把编程的关注点放在数据上 入门 引入 js 文件 在 JS 代码区
  • 由《羊了个羊》想到的高并发架构之路

    前言 要说最近一段时间最火的话题是什么 那必定是 羊了个羊 频频冲上微博热搜第一 因访问量骤增 大量玩家涌入进来 高并发流量导致游戏服务器被接连击穿 羊了个羊 服务器几天内就出现了多次异常 无法登录游戏 问题思考 我想这其中多次崩溃的原因可
  • jackson-databind 简介、中文文档、中英对照文档 下载

    jackson databind 文档 下载链接 含jar包 源码 pom 组件名称 中文 文档 下载链接 中英对照 文档 下载链接 jackson databind 2 10 0 jar jackson databind 2 10 0 A
  • 修改手机屏幕刷新率_手机屏幕刷新率那点事儿!

    屏幕刷新率是指电子束对屏幕上的图像重新扫描的次数 刷新率越高 显示的画面稳定性就会越好 眼睛也就不会累 屏幕有刷新率 我们的眼睛也有刷新率 所谓的人眼刷新率就是我们眼睛一秒看到的图像数量 到目前为止我们眼睛刷新率极限还没有确定的数字 一般飞
  • 华为OD机试真题-分奖金【2023.Q1】

    题目内容 公司老板做了一笔大生意 想要给每位员工分配一些奖金 想通过游戏的方式来决定每个人分多少钱 按照员工的工号顺序 每个人随机抽取一个数字 按照工号的顺序往后排列 遇到第一个数字比自己数字大的 那么 前面的员工就可以获得 距离数字差值
  • RC522 - NFC刷卡模块

    RC522 NFC刷卡模块 芯片介绍 引脚介绍 MF RC522 是应用于 13 56MHz 非接触式通信中高集成度读写卡系列芯片中的一员 是 NXP 公司针对 三表 应用推出的一款低电压 低成本 体积小的非接触式读写卡芯片 是智能仪表和便
  • 数据可视化分析之热门旅游景区数据分析

    背景介绍 对景区的数据分析可以判断热门景区的走向和趋势 从而帮助更好的决定去哪里游玩 具有一定的指导意义 景区数据分析 这里直接展示数据分析的结果 首先展示了数据的原始信息 然后 使用了pyecharts来进行数据可视化分析 得到相关的结果
  • Java 4-6、优化启动配置,properties改为yml

    优化启动配置 properties改为yml yml缩进严格 把之前的配置转换为yml的文件重写一下 一 application yml 环境配置 dev和prod spring profiles active dev 一 applicat
  • 数学建模:评价性模型学习——灰色关联分析法(GRA模型)

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