建模算法(十)——灰色理论之关联度分析

时间:2021-05-12 02:28:23

一、数据变换技术

为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理。

1、定义

设有序列建模算法(十)——灰色理论之关联度分析,则成映射建模算法(十)——灰色理论之关联度分析为序列x到序列y的数据变换。

(1) f 是初值化变换。建模算法(十)——灰色理论之关联度分析

(2) f 是均值化变换。建模算法(十)——灰色理论之关联度分析

(3) f 是百分比变换建模算法(十)——灰色理论之关联度分析

(4) f 是倍数变换建模算法(十)——灰色理论之关联度分析

(5) f 是归一化变换建模算法(十)——灰色理论之关联度分析其中x0>0的一个数值

(6) f 是极差最大值变换建模算法(十)——灰色理论之关联度分析

(6) f 是区间值变换建模算法(十)——灰色理论之关联度分析

二、关联分析

1、定义

参考数列是被比较(主体),比较数列是比较值(不是主体)

建模算法(十)——灰色理论之关联度分析

但是由于各个时刻都有一个分辨系数,太过分散,所以再定义一个指标

建模算法(十)——灰色理论之关联度分析

2、demo

建模算法(十)——灰色理论之关联度分析

建模算法(十)——灰色理论之关联度分析

MATLAB求解

function [ y ] = relevancy( refer,compare,p,rank)
%refer参考数列(行向量),compare比较数列
%p为分辨系数,默认为0.5
%rank为列向量,反映参考数列与比较数列同增同减时是相关还是不相关
%rank为1表示同增同减时是相关(默认),rank为0表示同增同减时是不相关
%y返回一个反映关联度的列向量
[a,b]=size(compare);
if(nargin<3)
p=0.5;
end
if(nargin<4)
rank=ones(a,1);
end
%参考数列,比较数列初始化
refer=refer/refer(1);
for i=1:a
if(rank(i)==1)
compare(i,:)=compare(i,:)/compare(i,1);
else
compare(i,:)=compare(i,1)./compare(i,:);
end
end
%计算差值
for i=1:a
for j=1:b
diff(i,j)=compare(i,j)-refer(j);
end
end
%计算关联度
diff=abs(diff);
for i=1:a
sum=0;
for j=1:b
max1=max(max(diff'));
min1=min(min(diff'));
sum=sum+(min1+p*max1)/(diff(i,j)+p*max1);%关联度计算公式
end
y(i,1)=sum/b;%关联度取平均
end