1、灰色关联分析概述
对于多因素共同决定的抽象系统,人们往往希望知道,哪些是主要因素,哪些是次要因素;哪些因素对系统的发展影响较大,哪些因素对系统的影响较小。从而需要对系统进行分析。
数理统计中常用的回归分析,主成分分析,分差分析存在不足之处:
(1)要求有大量的数据,数据量少就难以找到规律。
(2)要求样本服从典型的概率分布,要求各因素与系统特征数据之间呈线性关系,这种要求往往难以满足。
(3)可能出现量化结果和定性分析不相符的情况。
灰色关联分析的基本思想:根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线形状越接近,相应序列之间的关联度就越大,反之就越小。
具体应用:分析产业对GDP的影响程度
下表为某地区国内生产总值的统计数据(以百万元计),问该地区从2000年到2005年之间哪一种产业对GDP总量影响最大。
年份 | 国内生产总值 | 第一产业 | 第二产业 | 第三产业 |
2000 | 1988 | 386 | 839 | 763 |
2001 | 2061 | 408 | 846 | 808 |
2002 | 2335 | 422 | 960 | 953 |
2003 | 2750 | 482 | 1258 | 1010 |
2004 | 3356 | 511 | 1577 | 1268 |
2005 | 3806 | 561 | 1893 | 1352 |
第一步:对以上变量进行统计分析
分析:
(1)四个产业均呈上升趋势;(2)第二产业增幅明显;(3)第二产业和第三产业后两年差距拉大;(4)第一产业平稳增长。
第二步:确定分析数列
(1)母系列(又称参考系列、母指标):能反映系统行为特征的数据系列(类似于因变量Y,此处记为X0)。
(2)子序列(又称为比较序列,子指标):影响系统行为的因素组成的数据系列(类似于自变量X)。
在本例中,国内生产总值是母序列,其他产业是子序列。
第三步:对变量进行预处理(两个目的:去量纲,缩小变量范围简化计算)
对母序列和子序列中的每个指标进行预处理:先求出每个指标的均值,再用该指标中的每个元素除以该均值。
第四步:计算各指标与母序列的关联系数
记:x0=(0.7320, 0.7588, 0.8597......1.4013);x1=(0.8361, 0.8838, ......., 1.2152);x2=(......);x3=(......);记两级最小差:a = min(min(xi(k)-x0(k))),记两极最大差:b=max(max(xi(k)-x0(k)));
定义:,为分辨系数一般去0.5
第五步:对得到的y进行求平均就得到了灰色关联度。
第六步:通过比较三个子序列和母序列的关联度可以得出:该地区在2000年-2005年间的国内生产总值受到第三产业的影响最大(因为其灰色关联度最大)。
讨论:(1)什么时候用标准化回归,什么时候用灰色关联分析?
当样本个数比较大的时候用标准化回归,当样本个数比较小的时候用灰色关联分析。
(2)如果母序列中有多个指标,应该怎么分析?
例如:y1, y2是母序列,x1,x2.....xn是子序列
那么我们首先计算y1和x1,x2.....xn灰色关联分析,再求y1和x1,x2.....xn灰色关联分析
对应代码:
%%灰色关联分析
clear;clc
load gdp.mat %导入数据矩阵
Mean = mean(gdp); % 求出每一列的均值以供后续数据预处理
gdp = gdp./repmat(Mean,size(gdp,1),1); % size(gdp,1)=6,计算gdp矩阵的行数
% repmat(Mean,6,1),可以将函数进行扩展,扩展与gdp同型的矩阵,然后进行点除
disp("预处理后的矩阵为:");
disp(gdp)
y = gdp(:,1); %母序列
x = gdp(:,2:end); %子序列
absx0_xi = abs(x - repmat(y,1,size(x,2))) % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)
a = min(min(absx0_xi)); %计算两级最小差
b = max(max(absx0_xi)); %计算两级最大差
rho = 0.5;
gmma = (a + rho*b)./(absx0_xi + rho*b) %计算子序列各个指标和母序列的灰色关联系数
disp("子序列与母指标的各个关联系数为:")
disp(mean(gmma))