灰色关联分析
灰色关联概述
下引入一个灰色关联分析例子
灰色关联分析例子
问题描述
判断国内生产总值受第一,二,三产业的影响大小。
确定分析数列:
其中国内生产总值为母序列,类似因变量
Y
Y
Y。
第几产业为子序列,类似自变量
X
i
X_i
Xi
产业绘图如图所示。
灰色关联分析代码讲解
预处理矩阵
Mean = mean(gdp);
gdp = gdp ./ repmat(Mean,size(gdp,1),1);
disp('预处理后的矩阵为:'); disp(gdp)
即每个指标除以该指标均值。
求灰色关联度
根据序列曲线几何形状的相似程度来判断其联系是否紧密,推导过程省略我们直接给出公式。
下给出灰色关联度计算公式,通过灰色关联度大小确定影响大小。
Y = gdp(:,1); % 母序列
X = gdp(:,2:end); % 子序列
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))
a = min(min(absX0_Xi)) % 计算两级最小差a
b = max(max(absX0_Xi)) % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi + rho*b)
disp('子序列中各个指标的灰色关联度分别为:')
disp(mean(gamma))
求各个关联度平均:
结论分析
整体代码
整体代码如下:
clear;clc
load gdp.mat % 导入数据 一个6*4的矩阵
Mean = mean(gdp);
gdp = gdp ./ repmat(Mean,size(gdp,1),1);
disp('预处理后的矩阵为:'); disp(gdp)
Y = gdp(:,1); % 母序列
X = gdp(:,2:end); % 子序列
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))
a = min(min(absX0_Xi)) % 计算两级最小差a
b = max(max(absX0_Xi)) % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi + rho*b)
disp('子序列中各个指标的灰色关联度分别为:')
disp(mean(gamma))
代码链接:
链接: link.
提取码:475p