灰色关联度分析
在我看来,灰色关联度分析即是一种对影响目标序列的相关因素进行定量分析的模型,他的基本原理就是将已知的目标序列数据和比较序列(即影响目标序列的因素所构成的序列)数据进行无量纲化处理之后,通过对比各个序列对目标序列的数据增长或减少的相似或相异程度来判断各个因素对目标序列的影响结果(权重)。
如下图,即是某一无量纲化之后各因素的数据与目标序列数据变化趋势图,对灰色关联度分析而言,图形几何形状越是接近,关联程度也就越大。当然,如果要对更多更复杂的数据进行关联分析,肯定是无法用肉眼得到分析结果的,因此,我们肯定需要一种计算方法来得到我们想要的结果,这种计算方法即为灰色关联分析方法。
原理和方法
1.计算比较序列与目标序列之间的关联系数
公式
2.计算比较序列与目标序列之间的关联度
求解步骤
Step1.数据无量纲化处理
由于各指标的单位不同,需要对原始数据进行无量纲化处理,数据无量纲化处理的方法有均值化、初值化、区间值化、导数化、零化等。后面我给出的代码采用均值化法。
Step2.求差序列
即计算参考数列与比较序列的相应指标的绝对差值。
Step3.求两级差
即计算两级最大差值。
Step4.计算关联系数
将计算得到的两级差值代入关联系数公式求关联系数的值。
Step5.计算灰色关联度及权重
将求得的关联系数的值代入关联度公式中得到各指标与目标序列的关联度,最终利用得到的值归一化处理得到各指标的权重。
例题数据
要求计算各参考序列对目标序列的影响(权重)
年份 | 目标序列 | 参考序列1 | 参考序列2 | 参考序列3 | 参考序列4 | 参考序列5 | 参考序列6 |
---|---|---|---|---|---|---|---|
2009 | 5.18 | 74.61 | 7.270 | 1.26 | 21.6 | 2.2685 | 223.3 |
2010 | 7.33 | 99.33 | 10.046 | 14.95 | 16.8 | 1.5876 | 197.6 |
2011 | 5.30 | 124.27 | 11.552 | 8.66 | 13.7 | 1.2158 | 154.5 |
2012 | 4.45 | 137.31 | 11.980 | 14.15 | 12.3 | 0.9839 | 107.7 |
2013 | 4.05 | 150.11 | 13.688 | 8.51 | 17.3 | 1.0903 | 149.9 |
2014 | 6.35 | 160.52 | 14.674 | 2.54 | 27.8 | 1.5359 | 245.9 |
2015 | 8.27 | 163.34 | 14.909 | 4.61 | 16.8 | 3.2937 | 245.3 |
2016 | 11.7 | 172.77 | 15.203 | 7.88 | 29.3 | 2.3942 | 326.5 |
2017 | 7.58 | 203.52 | 17.982 | 4.15 | 28.8 | 3.0424 | 334.9 |
2018 | 4.46 | 216.10 | 18.571 | 3.32 | 24.6 | 3.578 | 265.5 |
平均值 | 6.467 | 150.19 | 13.588 | 7.0 | 20.9 | 2.1 | 225.1 |
代码
clc;clear;close all;
%输入原始已知数据
A=[5.18 74.61 7.27 1.26 21.6 2.2685 223.3;
7.33 99.33 10.046 14.95 16.8 1.5876 197.6;
5.3 124.27 11.552 8.66 13.7 1.2158 154.5;
4.45 137.31 11.98 14.15 12.3 -0.0161 107.7;
4.05 150.11 13.688 8.51 17.3 1.0903 149.9;
6.35 160.52 14.674 2.54 27.8 1.5359 245.9;
8.27 163.34 14.909 4.61 16.8 3.2937 245.3;
11.7 172.77 15.203 7.88 29.3 2.3942 326.5;
7.58 203.52 17.982 4.15 28.8 3.0424 334.9;
4.46 216.1 18.571 3.32 24.6 3.578 265.5];
y=[6.467 150.19 13.588 7 20.9 2.1 225.1];
%数据无量纲化处理
x1=A(1:10,1)./y(1);x2=A(1:10,2)./y(2);x3=A(1:10,3)./y(3);
x4=A(1:10,4)./y(4);x5=A(1:10,5)./y(5);x6=A(1:10,6)./y(6);
x7=A(1:10,7)./y(7);
B=[x1,x2,x3,x4,x5,x6,x7];
%求差序列
y1=abs(x1-x2);y2=abs(x1-x3);
y3=abs(x1-x4);y4=abs(x1-x5);
y5=abs(x1-x6);y6=abs(x1-x7);
C=[y1,y2,y3,y4,y5,y6];
%求两级差
xmax=max(max(C));
xmin=min(min(C));
%计算目标和各指标的关联系数
z=(xmin+0.5*xmax)./(C+0.5*xmax);
e=[];
[t,n]=size(C);
%计算目标与各指标的关联度
for i=1:n
z1=sum(z(1:10,i))/10;
e=[e,z1];
end
%各指标的权重
f=e./sum(e)
The end
整篇文章的内容到这里也就结束了,因为是第一次写博客,很多功能都不会用所以做的不太好,希望大家多多包容,如果谁有什么问题欢迎来咨询我,我会在有时间的时候尽自己最大的能力帮助你,感谢大家的观看。