理论

  1. 灰色系统理论提出了一种新的分析方法—关联度分析方法,即根据因素之间发展 态势的相似或相异程度来衡量因素间关联的程度,它揭示了事物动态关联的特征与程度。
  2. 灰色系统理论建模的主要任务是根据具体灰色系统的行为特征数据,充分开发并 利用不多的数据中的显信息和隐信息,寻找因素间或因素本身的数学关系。通常的办法 是采用离散模型,建立一个按时间作逐段分析的模型。
  3. 因素分析的基本方法过去主要采取回归分析等办法。但是,回归分 析的办法有很多欠缺,如要求大量数据、计算量大及可能出现反常情况等。为克服以上 弊病,本节采用关联度分析的办法来做系统分析。 作为一个发展变化的系统,关联分析实际上是动态过程发展态势的量化比较分析。 所谓发展态势比较,也就是系统各时期有关统计数据的几何关系的比较。

关联分析

参考:

GM灰色模型

应用实现

数据data1:

GM灰色模型

      实现:

###R语言代码

## 灰色关联度分析
huidu <- function(data){
  data1 <- scale(data)        #标准化数据
  data2 <- na.omit(data1)     #去掉缺失值
  data<-data.matrix(data2)    #nz为初值化后数据框格式转矩阵
  ndata<-abs(data-data[,1])   #矩阵每列求绝对值
  xj<-ndata[,-1]              #删除矩阵第一列,形成绝对值比较矩阵
  min<-min(apply(xj,1,min))
  max<-max(apply(xj,1,max))   #求全局最小,最大值
  rmax=max*0.5
  sh=min+rmax                 #求公式上半部分
  xx<-sh/(xj+rmax)             #求整个灰色关联公式
  xi<-colMeans(xx)             #求关联度
  xi
}
data <- read.csv('data1.csv')
huidu(data)
结果:

GM灰色模型

MATLAB代码:

clc
load x.txt
%初始化数据
% for j=1:14
%    x(:,j)=x(:,j)/x(1,j);
% end
% data = x;
data = zscore(x);%标准化数据
n = size(data,1);%求矩阵的行数,即观测时刻的个数
ck = data(:,1); %提出参考数列
bj = data(:,2:end);%提出比较数列
m2 = size(bj,2);%求比较数列的个数
for i = 1:m2
    t(:,i)=bj(:,i)-ck;
end
mm = min(min(abs(t)));%求最小差
mx = max(max(abs(t)));%求最大差
rho = 0.5;%分辨系数设置
ksi = (mm+rho*mx)./(abs(t')+rho*mx);%求关联系数
r = sum(ksi')/n ;%求关联度
[rs,rind] = sort(r,'descend')

GM灰色模型

使用gm(1,1)对Y预测

GM灰色模型

GM灰色模型

GM灰色模型

 

 

 

相关文章: