Python 灰色关联度分析

前言

关联度:对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度.
灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法,是一种对影响目标序列的相关因素进行定量分析的模型。

本文采用一个示例,简单分析一下。

数据集

链接: https://pan.baidu.com/s/1pmPSvoZ-9wYRrPbFFKM_-w 提取码: obo2

程序


import pandas as pd
x=pd.read_excel('data.xlsx')
x=x.iloc[:,:].T
print(x)


# 1、数据均值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):
    x.iloc[i,:] = x.iloc[i,:]/x_mean[i]

"""
# 1、数据差值化处理
x = (x - x.min())/(x.max() - x.min())
x=x.T


# 1、数据初值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):
    x.iloc[i,:] = x.iloc[i,:]/x.iloc[i,0]
    
    
"""

# 2、提取参考队列和比较队列
ck=x.iloc[0,:]
print(" 参考队列:", ck)
cp=x.iloc[1:,:]
print(" 参考队列:" ,cp)


# 比较队列与参考队列相减
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.4

#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))


#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size

#5、关联度排序,得到结果
result=r.sort_values(ascending=False)

print(r)

总结

  • 基本原理就是将已知的目标序列数据和比较序列(即影响目标序列的因素所构成的序列)数据进行无量纲化处理之后,通过对比各个序列对目标序列的数据增长或减少的相似或相异程度来判断各个因素对目标序列的影响结果。
  • 度量两条曲线的形态和走势是否相近
  • 10
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nsq_ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值