当前位置:服务支持 >  软件文章 >  MATLAB关联规则与优势分析算法

MATLAB关联规则与优势分析算法

阅读数 19
点赞 0
article_banner

1、关联分析

现实中事物的联系很复杂,我们往往就需要对系统分析,哪些因素对他影响较大,那些较小,所以就会用到关联性分析。
Matlab实现关联分析和优势分析的图1

以下面一个例子来介绍怎么做

x1 = [45.8 43.4 42.3 41.9];
x2 = [39.1 41.6 43.9 44.9];
x3 = [3.4 3.3 3.5 3.5];
x4 = [6.7 6.8 5.4 4.7];

求x2,x3,x4与x1的关联性,并确定谁与x1的关联性最强

x = [x1;x2;x3;x4];%将数据组成数据矩阵

首先就是标准化数据也叫初值化数据即xi(k)/xi(1);

for i = 1:4
x(i,:) = x(i,:)/x(i,1);
end
data = x; %标准化之后的数据

上面每一个数据有4个观测时刻

n = size(data,2);

这样就求出了观测时刻的个数。

接下来就是求各比较数据与参考数据的关系

ck = data(1,:);%提出参考列
bj = data(2:end,:);%提出比较列
m2 = size(bj,1);%求比较数列的个数,即行数
t = zeros(size(bj));
for j = 1:m2
t(j,:) = bj(j,:) - ck;%相当于x0(t)-xs(t)
end

然后就是求关联系数了

mn = min(min(abs(t')));%求最小差
mx = max(max(abs(t')));%求最大差
rho = 0.5;%分辨系数设置
ksi = (mn+rho*mx)./(abs(t)+rho*mx);%求关联系数

最后就是求关联度和进行关联度排名了

r = sum(ksi,2)/n;%求关联度
[rs,rind] = sort(r,'descend')%对关联度进行排序

运行结果为:

Matlab实现关联分析和优势分析的图2

rs代表关联度从大到小排序,rind代表对应的x的序号。可以看出x2以x1的关联性是最大的。

代码为

Matlab实现关联分析和优势分析的图3

2、优势分析

优势分析就是当目标数列不止一个,与目标数列相关的因素也不止一个时,为了判断那个因素的影响较大,就会进行优势分析。假如有m个目标,记为y1,y2,...,ym。再假设有l个因素,记为x1,x2,…,xl。显然每一个目标对l个因素就有l个关联度。设rij表示相关因素xj对目标yi的关联度,可构造关联(度)矩阵R=(rij)mxl

下面以一个例子来说明

下面为目标数列

y1 = [170 174 197 216.4 235.8];
y2 = [57.55 71.74 76.8 80.7 89.85];
y3 = [68.56 70 85.38 99.83 103.4];

下面为因素数列

x1 = [308.58 310 295 346 367];
x2 = [195.4 189.9 189.2 205 222.7];
x3 = [24.6 21 12.2 15.1 14.57];
x4 = [20 25.6 23.3 29.2 30];
x5 = [18.98 19 22.3 23.5 27.66];

通过分析得到关联度矩阵R为

Matlab实现关联分析和优势分析的图4

可以看出最大的数为0.9468,说明x2对y1的影响较大。

具体代码为

Matlab实现关联分析和优势分析的图5

优势分析代码中求关联度的函数为根据上述求关联度代码改编成关联度函数。


文章来源:matlab分享


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空