Python 灰色关联度分析

Python基础学习 同时被 2 个专栏收录
38 篇文章 0 订阅

前言

关联度:对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度.
灰色关联度分析(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)

总结

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

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

nsq1101

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值