灰色关联度矩阵模型及其MATLAB实现[通俗易懂]

灰色关联度矩阵模型及其MATLAB实现[通俗易懂]灰色关联度矩阵是灰色系统另一个非常重要的领域,通常用于分析向量与向量之间或矩阵与矩阵之间的关联度,其实用性非常强。

大家好,又见面了,我是你们的朋友全栈君。

灰色关联度模型

引入

灰色关联度矩阵是灰色系统另一个非常重要的领域,通常用于分析向量与向量之间或矩阵与矩阵之间的关联度,其实用性非常强。

基本原理

(1)基本定义
假设有一组参考数列:
x j = ( x j ( 1 ) , x j ( 2 ) , x j ( 3 ) , . . . , x j ( n ) ) . j = 1 , 2 , 3 , . . . , s x_{j}=(x_{j}(1),x_{j}(2),x_{j}(3),…,x_{j}(n)). j=1,2,3,…,s xj=(xj(1),xj(2),xj(3),...,xj(n)).j=1,2,3,...,s

比较数列:
x i = ( x i ( 1 ) , x i ( 2 ) , x i ( 3 ) , . . . , x i ( n ) ) . i = 1 , 2 , 3 , . . . , t x_{i}=(x_{i}(1),x_{i}(2),x_{i}(3),…,x_{i}(n)). i=1,2,3,…,t xi=(xi(1),xi(2),xi(3),...,xi(n)).i=1,2,3,...,t

由以上两个数列,定义关联度矩阵如下:
灰色关联度就在
(2)模型说明
①变量 ζ j i ( k ) ζ_{ji}(k) ζji(k)表示的是第 i i i个比较数列与第 j j j个参考数列第 k k k个样本之间的关联系数。
m i n m i n ∣ x j ( k ) − x i ( k ) ∣ min min|x_{j}(k)-x_{i}(k)| minminxj(k)xi(k) m a x m a x ∣ x j ( k ) − x i ( k ) ∣ max max|x_{j}(k)-x_{i}(k)| maxmaxxj(k)xi(k)表示的是参考数列矩阵与比较数列矩阵数值作差之后的最小值和最大值。把 m i n m i n ∣ x j ( k ) − x i ( k ) ∣ min min|x_{j}(k)-x_{i}(k)| minminxj(k)xi(k) m a x m a x ∣ x j ( k ) − x i ( k ) ∣ max max|x_{j}(k)-x_{i}(k)| maxmaxxj(k)xi(k)耦合到变量中可以保证 ζ j i ( k ) ζ_{ji}(k) ζji(k)之值位于[0,1]区间,同时上下对称的结构可以消除量纲不同和数值悬殊的问题。
∣ x j ( k ) − x i ( k ) ∣ |x_{j}(k)-x_{i}(k)| xj(k)xi(k)式被称之为“Hamming”距离,Hamming距离的倒数被称之为反倒数距离,灰色关联度的本质就是通过反倒数的大小来判定关联程度:假设有曲线 x i x_{i} xi x j x_{j} xj上面的点 ( k , x i ( k ) ) (k,x_{i}(k)) (k,xi(k)) ( k , x j ( k ) ) (k,x_{j}(k)) (k,xj(k)),这两个点的Hamming距离越大,表示两条曲线距离越大,倒数也就越小。反过来,倒数越大,表示两个曲线之间的距离越小,因为曲线已经消除了量级之间的差异,则Hamming距离越小的曲线形态就越相似。因此,灰色关联度的本质其实是依据曲线态势相近程度来分辨数列的相关度。
④分辨率 ρ ρ ρ取值在[0,1]之间

(3)定义数列相关度
z ( 1 ) ( k ) = x ( 1 ) ( k ) + x ( 1 ) ( k − 1 ) 2 , k = 2 , 3 , 4 z^{(1)}(k)=\frac{x^{(1)}(k)+x^{(1)}(k-1)}{2},k=2,3,4 z(1)(k)=2x(1)(k)+x(1)(k1)k=2,3,4

则称新数列 z ( 1 ) = ( z ( 1 ) ( 2 ) , z ( 1 ) ( 3 ) , . . . , z ( 1 ) ( n ) ) z^{(1)}=(z^{(1)}(2),z^{(1)}(3),…,z^{(1)}(n)) z(1)=(z(1)(2),z(1)(3),...,z(1)(n)) x ( 1 ) x^{(1)} x(1)的紧邻均值数列。
(4)定义GM(1,1)的灰微分方程
由于 ζ j i ( k ) ζ_{ji}(k) ζji(k)只能反映出点与点之间的相关性,相关性信息分散,不方便刻画数列之间的相关性,需要把它整合起来,所以我们在此,定义相关度:
相关度
如果把 x i x_{i} xi x j x_{j} xj之间的相关度写成矩阵形式,则有
关联度的矩阵形式
根据这个矩阵我们就可以很清楚得出,待比较数列从列可以看出其作用大小,参考数列从行可以看出其受影响程度的大小,而依据矩阵数值大小可以分析出比较数列矩阵中那些数列起到主要作用。比如某一列数值明显大于其他列,这样的数列叫做优势子因素,反之为劣势子因素;如果某一行数值明显大于其他行则称之为优势母因素,优势母因素比较敏感,容易受到子因素的驱动影响。

MATLAB源码

%灰色关联度矩阵模型
clc;
close;
clear all;
% 控制输出结果精度
format short;
% 原始数据,其中前五项为子因素,后两项为母因素
x=[
10	10	10	12	12	12	12	12	15	15	15	15	12	12	12	15	15	15	15	20	20	20	10	10	10	7	7	15	15	15	13	13	13	13	13	13
1216.482	612.364	477.838	988.53	482.685	468.074	1263.494	1235.787	422.27	1276.28	494.07	464.21	454.431	736.462	530.722	507.105	1067.189	911.603	519.956	1703.432	1570.14	521.364	984.01	158.825	199.623	1536.96	402.327	305.36	1012.77	982.12	500	520	1100	1783.644	404.951	584.652
910	910	910	707	707	707	707	707	1196	1196	1196	1196	1262	1262	1262	1004	1004	1004	1004	870	870	870	1023	1023	1023	1398	1398	1361	1361	1361	1702	1702	1702	1702	1702	1702
804.35	804.35	804.35	877.89	877.89	877.89	877.89	877.89	785.66	785.66	785.66	785.66	788.43	788.43	788.43	818.99	818.99	818.99	818.99	841.59	841.59	841.59	874.38	874.38	874.38	823.76	823.76	784.29	784.29	784.29	764.43	764.43	764.43	764.43	764.43	764.43
990.24	990.24	990.24	948.08	948.08	948.08	948.08	948.08	747.03	747.03	747.03	747.03	809.27	809.27	809.27	909.25	909.25	909.25	909.25	869.5	869.5	869.5	925.45	925.45	925.45	774.6	774.6	782.25	782.25	782.25	703.67	703.67	703.67	703.67	703.67	703.67
20	20	20	26.5	26.5	26.5	26.5	26.5	21.8	21.8	21.8	21.8	22.5	22.5	22.5	17.98	17.98	17.98	17.98	16.7	16.7	16.7	22	22	22	19.6	19.6	30.5	30.5	30.5	22.8	22.8	22.8	22.8	22.8	22.8
23.65	23.65	23.65	28	28	28	28	28	22.45	22.45	22.45	22.45	23.45	23.45	23.45	20	20	20	20	17	17	17	22.45	22.45	22.45	20	20	31.5	31.5	31.5	23	23	23	23	23	23
];
n1=size(x,1);
% 数据标准化处理
for i = 1:n1
x(i,:) = x(i,:)/x(i,1);
end
% 保存中间变量,亦可省略此步,将原始数据赋予变量data
data=x;

%% 分离数据
% 分离参考数列(母因素)
consult=data(6:n1,:);
m1=size(consult,1);
% 分离比较数列(子因素)
compare=data(1:5,:);
m2=size(compare,1);

for i=1:m1
for j=1:m2
t(j,:)=compare(j,:)-consult(i,:);
end
min_min=min(min(abs(t')));
max_max=max(max(abs(t')));
% 通常分辨率都是取0.5
resolution=0.5;
% 计算关联系数
coefficient=(min_min+resolution*max_max)./(abs(t)+resolution*max_max);
% 计算关联度
corr_degree=sum(coefficient')/size(coefficient,2);
r(i,:)=corr_degree;
end

% 输出关联度值并绘制柱形图
r
bar(r,0.90);
axis tight;
legend('第一行','第二行','第三行','第四行','第五行');% 图例
grid on;% 加入网格

% 去掉X轴上默认的标签
set(gca,'XTickLabel','');
%  设定X轴刻度的位置,这里有2个母因素
n=2;

% 这里注意:x_range范围如果是[1 n]会导致部门柱形条不能显示出来,所以范围要缩一点
x_value = 1:1:n;
x_range = [0.6 n+.4];
% 获取当前图形的句柄
set(gca,'XTick',x_value,'XLim',x_range);

% 在X轴上标记2个母因素
profits={'第六行','第七行'};
y_range = ylim;
% 用文本标注母因素名称
handle_date = text(x_value,y_range(1)*ones(1,n)+.018,profits(1:1:n));
% y轴标记
ylabel('影响程度');
title('各项子因素对母因素的影响作用');

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146322.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Gazebo/ROS中添加力、力矩

    Gazebo/ROS中添加力、力矩文章目录前言一、在gazebo图形界面中进行操作二、MATLABmathworks官网ROS与Matlab语言入门教程-在Gazebo中应用力和力矩三、ROSANSWERS[优]applyingaforcetoarigidbody[次]Applyingaforcetoalinkingazeboplugin.[closed]前言不一定全面,未来还需要继续梳理…

    2022年5月15日
    74
  • c++面试选择题_北京易联达C语言面试咋样

    c++面试选择题_北京易联达C语言面试咋样1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要…

    2022年10月21日
    0
  • 史上最全的正则表达式-匹配中英文、字母和数字

    史上最全的正则表达式-匹配中英文、字母和数字在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。1、匹配中文:[\u4e00-\u9fa5]2、英文字母:[a-zA-Z]3、数字:[0-9]4、匹配中文,英文字母和数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_…

    2022年9月25日
    0
  • generic host process已停止工作_host error怎么修复

    generic host process已停止工作_host error怎么修复GenericHostProcessforWin32开机后总是提示出现错误需要关闭GenericHostProcessforWin32Services错误解决办法出现上面这个错误一般有三种情况。1.就是病毒。开机后会提示GenericHostProcessforWin32Services遇到问题需要关闭”“RemoteRro…

    2022年10月10日
    0
  • 动态规划优缺点_巴西优化航空路线利用率

    动态规划优缺点_巴西优化航空路线利用率C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1 条。C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到 C 国旅游。当他得知“同一种商品在不同城市的价格可能会不同”这一信息之后,便决定在旅游的同时,利用商品在

    2022年8月8日
    1
  • 第三章数据链路层_数据链路层链路管理包括

    第三章数据链路层_数据链路层链路管理包括冗余链路出现的背景由于公司对网络的可靠性的要求,大部分公司都会增加额外的交换机,防止在某台交换机出现故障时造成网络的无法使用的情况,例如形成如下图的拓扑的结构。假设W和X交换中的一台出现故

    2022年8月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号