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

一、数据变换技术

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

1、定义  

       设有序列image,则成映射image为序列x到序列y的数据变换。

(1) f 是初值化变换。image

(2) f 是均值化变换。image

(3) f 是百分比变换image

(4) f 是倍数变换image

(5) f 是归一化变换image其中x0>0的一个数值

(6) f 是极差最大值变换image

(6) f 是区间值变换image

二、关联分析

1、定义

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

image

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

image

2、demo

image

image

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
原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4273205.html