excel学习库

excel表格_excel函数公式大全_execl从入门到精通

灰色关联分析(GRA)的理论及应用(matlab和python)

什么是灰色关联分析

灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。

通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立随时间变化的母序列,把各个评估对象随时间的变化作为子序列,求各个子序列与母序列的相关程度,依照相关性大小得出结论。

灰色关联分析的步骤

灰色关联分析的具体计算步骤如下:

第一步:

确定分析数列。
确定反映系统行为特征的参考数列和影响系统行为的比较数列。反映系统行为特征的数据序列,称为参考数列。影响系统行为的因素组成的数据序列,称比较数列。

第二步,

变量的无量纲化
由于系统中各因素列中的数据可能因量纲不同,不便于比较或在比较时难以得到正确的结论。因此在进行灰色关联度分析时,一般都要进行数据的无量纲化处理。主要有一下两种方法

其中 k 对应时间段, i i i 对应比较数列中的一行(即一个特征)

第三步,

计算关联系数

第四步,

计算关联度
因为关联系数是比较数列与参考数列在各个时刻(即曲线中的各点)的关联程度值,所以它的数不止一个,而信息过于分散不便于进行整体性比较。因此有必要将各个时刻(即曲线中的各点)的关联系数集中为一个值,即求其平均值,作为比较数列与参考数列间关联程度的数量表示


第五步,

关联度排序

灰色关联分析的实例

下表为某地区国内生产总值的统计数据(以百万元计),问该地区从2000年到2005年之间哪一种产业对GDP总量影响最大。

步骤1:

确立母序列
在此需要分别将三种产业与国内生产总值比较计算其关联程度,故母序列为国内生产总值。若是解决综合评价问题时则母序列可能需要自己生成,通常选定每个指标或时间段中所有子序列中的最佳值组成的新序列为母序列。

步骤2:无量纲化处理

在此采用均值化法,即将各个序列每年的统计值与整条序列的均值作比值,可以得到如下结果:

步骤3:

计算每个子序列中各项参数与母序列对应参数的关联系数

步骤4:

计算关联度

灰色关联分析matlab的实现

clc;

close;

clear all;

x=xlsread('data.xlsx');

x=x(:,2:end)';

column_num=size(x,2);

index_num=size(x,1);

% 1、数据均值化处理

x_mean=mean(x,2);

for i = 1:index_num

x(i,:) = x(i,:)/x_mean(i,1);

end

% 2、提取参考队列和比较队列

ck=x(1,:)

cp=x(2:end,:)

cp_index_num=size(cp,1);

%比较队列与参考队列相减

for j = 1:cp_index_num

t(j,:)=cp(j,:)-ck;

end

%求最大差和最小差

mmax=max(max(abs(t)))

mmin=min(min(abs(t)))

rho=0.5;

%3、求关联系数

ksi=((mmin+rho*mmax)./(abs(t)+rho*mmax))

%4、求关联度

ksi_column_num=size(ksi,2);

r=sum(ksi,2)/ksi_column_num;

%5、关联度排序,得到结果r3>r2>r1

[rs,rind]=sort(r,'descend');

运行结果:

灰色关联分析python的实现

import pandas as pd

x=pd.read_excel('data.xlsx')

x=x.iloc[:,1:].T

# 1、数据均值化处理

x_mean=x.mean(axis=1)

for i in range(x.index.size):

x.iloc[i,:] = x.iloc[i,:]/x_mean[i]

# 2、提取参考队列和比较队列

ck=x.iloc[0,:]

cp=x.iloc[1:,:]

# 比较队列与参考队列相减

t=pd.DataFrame()

for j in range(cp.index.size):

temp=pd.Series(cp.iloc[j,:]-ck)

t=t.append(temp,ignore_index=True)

#求最大差和最小差

mmax=t.abs().max().max()

mmin=t.abs().min().min()

rho=0.5

#3、求关联系数

ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))

#4、求关联度

r=ksi.sum(axis=1)/ksi.columns.size

#5、关联度排序,得到结果r3>r2>r1

result=r.sort_values(ascending=False)

2022年美国大学生数学建模竞赛报名倒计时47天!

截止到目前,2022年美赛已报名超过4366余支队伍

由于报名参加美赛的同学不具备Visa或国际支付方式,以及缺乏一定的参赛经验,为了更好的提升参赛者的获奖率。数模乐园继续推出 2022年美赛辅助报名及证书打印并邮寄的服务,数模乐园已成功为25000多名以上同学完成了美赛辅助报名!已成为国内最大的美赛辅助报名平台!

扫码报名

进群领取历年赛题及优秀论文等相关备赛资料,同时获取竞赛最新资讯

温馨提示:微信公众号信息流改版,每个用户可以设置常读订阅号,这些订阅号将以大卡片的形式展示。因此,如果不想错过“数模乐园”的文章,第一时间获得数模资讯、数模干货你一定要进行以下操作:进入“数模乐园”公众号 → 点击右上角的 ··· 菜单 → 选择「设为星标

在看的期末高分飘过↓↓↓

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接