为了能到远方,脚下的每一步都不能少.|

Blue Mountain

园龄:10年7个月粉丝:572关注:0

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

一、数据变换技术

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

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
复制代码

本文作者:Blue Mountain

本文链接:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4273205.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Blue Mountain  阅读(2416)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.