码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-02-04 21:34:55      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:

一、数据变换技术

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

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

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

标签:

原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4273205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!