少样本量相关分析:灰色关联度分析原理及MATLAB实现‌

灰色关联度分析(grey relation analysis)

作用:

两个变量之间的关联关系;截面数据的相关性,或者两个变量在时间序列上的变化一致性。

适用条件:

相关分析最小样本量需求为30,当样本量过小时,可以使用灰色关联度分析。

步骤:

示例数据:

clc;clear;

Data=[376 62 89 74 65 86;373 66 73 57 85 92;382 72 83 78 89 60;368 86 58 58 91 75;329 91 63 56 62 57;373 58 60 92 94 69;398 90 88 86 72 62;339 95 72 56 61 55;377 83 55 85 67 87;389 58 90 84 89 68]

第一列为因变量,后面为5个自变量。

Step1 数据预处理:采用均值化方法去除量纲的影响。

每个变量的样本,依次除以该变量的平均值即可。

%第一步,对变量进行预处理,消除量纲的影响

r=size(Data,1);

c=size(Data,2);

avg=repmat(mean(Data),r,1);

data=Data./avg;

mean去量纲结果

step2: 确定母序列和子序列:

对具有映射关系的变量而言:母序列就是你的因变量,子序列就是自变量。子序列影响母序列。

对于两个变量关联性分析,就是相对的。

因变量只有一个,m个样本

自变量有n个,m个样本

step3: 计算子序列和母序列的关联系数:

%定义参考序列和比较序列

% 前面的自变量和因变量都放成了一个矩阵,第一列是因变量,后面都是自变量,这里把它们分开。

Y=data(:,1);%参考序列

X= data(:,2:c);%比较序列

% X= data(:,2);      % 如果只有一个自变量,或者是两个变量算关联性,则都是1列。

%  此处开始对应上面的公式:

Y2=repmat(Y,1,c-1);%把参考序列向右复制到c-1列,因变量

对Y进行重复扩充,方便后续对应做减法。

原始的Y

扩充后的Y

* 注:也可以不扩充用循环做,但是没必要,能矩阵运算的何必倒退回向量。

absXi_Y=abs(X-Y2);    % 每个自变量就有一个对应的Y来矩阵减法就行

a=min(min(absXi_Y));%   公式中的最小值       

b=max(max(absXi_Y));% 公式中的最大值

%  两个min和两个max与公式对应。一个就得到abs的一个行向量,两次min或max就得到整个abs矩阵的最大值或最小值。

* Mark:这里先mark1,后面另一个问题讨论中会返回。

step 4:计算关联度

前面a,b算出来了,p也有了,直接算即可得到结果了。

p=0.5;%分辨系数取0.5

gamma=(a+p*b)./(absXi_Y+p*b)%计算比较序列中每个指标与参考序列的关联度

ans = mean(gamma)    %  得到结果

//------------------------------------灰色关联度计算结束--------------------------------------------------//

灰色关联度计算变量重要性和2个变量相关性的结果一致吗?

答案:不一致。

一个是包含多个自变量的全局关系,一个是2个变量相对而言的局部关系。

如下图:

上述示例中5个自变量对因变量的相对关联程度

那么,如果我现在只有Y和一个X,也就是说不存在自变量和因变量关系,就是想探究2个变量之间的关联关系,X的赋值修改为:

% X= data(:,2);     %   只取第一个自变量,计算结果为:

不是0.5091

原因回到前面Mark处

求第对于多个自变量而言,二个min和max的时候,返回值为5个自变量中最小或最大的那一个;只有一个自变量,则只能返回本身的最大值或最小值。对于存在映射关系的重要性排序而言,必须考虑全局关系,对应于两个min或max;对于两个变量互相关联,无关x和y(加上绝对值减数和被减数调换位置结果都一样),因此只取一个min或max即可(没必要改成一个,因为加一层还是一样的结果,并且同时2种情况都可以用)。

所以,不过是一个是全局关系,一个是两个变量本身的关系。不是不一致就是算错了,而是原理上本就是2回事,结果是对的。

QR Code
微信扫一扫,欢迎咨询~

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

* 公司名称:

姓名不为空

手机不正确

公司不为空