程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-10(11)

2021-11(15)

灰色关联度分析法(GRA)_python

发布于2022-09-20 21:07     阅读(813)     评论(0)     点赞(11)     收藏(5)


灰色系统理论及其应用系列博文:
一、灰色关联度分析法(GRA)_python
二、灰色预测模型GM(1,1)
三、灰色预测模型GM(1,n)
四、灰色预测算法改进1—背景值Z
五、灰色预测改进2—三角残差拟合
在这里插入图片描述


参考博客: GRA

定义

灰色系统理论是由著名学者邓聚龙教授首创的一种系统科学理论(Grey Theory),其中的灰色关联分析是根据各因素变化曲线几何形状的相似程度,来判断因素之间关联程度的方法。此方法通过对动态过程发展态势的量化分析,完成对系统内时间序列有关统计数据几何关系的比较,求出参考数列与各比较数列之间的灰色关联度。与参考数列关联度越大的比较数列,其发展方向和速率与参考数列越接近,与参考数列的关系越紧密。

灰色关联度分析,是一种多因素统计分析的方法。简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱,再直白一点,就是说:我们假设以及知道某一个指标可能是与其他的某几个因素相关的,那么我们想知道这个指标与其他哪个因素相对来说更有关系,而哪个因素相对关系弱一点,依次类推,把这些因素排个序,得到一个分析结果,我们就可以知道我们关注的这个指标,与因素中的哪些更相关。

算法

灰色关联度分析属于灰色系统的应用范畴分支,相比于常用的相关性分析法,其优势在于对分析样本的规律性与数量要求不高,适应性更为广泛。其思想是根据灰色关联度的大小来判断各影响因素与电力负荷特性的密切程度,从而确定哪些属于主要影响因素,哪些属于次要影响因素,避免预测时过多考虑次要影响因素而降低预测效率。总体分析流程如下:

image-20220315141723665

(1)选择历史数据作为原始数据序列 X ,代表分析指标体系,如公式(2-1)所示,其中m为电力负荷特性及其影响因素的特征数量, n 为样本数量。

image-20220315141854811

(2)为消除原始数据因单位不同而可能造成的干扰与误差,对原始数据序列根据公式(2-2)进行无量纲化处理,计算初值象序列 X I XI XI​ 如式(2-3)所示,其中 X I i j ( i = 1 , 2 , . . , n ; j = 1 , 2 , . . . , m ) XI_{ij}(i=1,2,..,n;j=1,2,...,m) XIij(i=1,2,..,n;j=1,2,...,m)为第 j 个指标的第i 个初值象。

注意:经过实验发现不同的归一化方式会造成不同的结果,现在主流一般为均值归一化和除首行归一化。
但最近我遇到的一组数据分布比较离散(方差大),用均值归一化和除首行归一化后,数据量纲依然会比较大,因此采用min-MAX归一化。

image-20220315142255571

(3)根据公式(2-4)求差值序列∆,计算差值序列如式(2-5)所示,并求得最大差 M ∆ M_{∆} M与最小差 m ∆ m_{∆} m分别如式(2-6)、(2-7)所示。

image-20220315142813000

(4)根据公式(2-8)计算关联度系数序列 ξ \xi ξ ,其中 ρ ∈ ( 0 , 1 ) \rho \in(0,1) ρ(0,1)​,此处取为0.5。

image-20220315142933935

(5)利用关联度系数根据公式(2-9)计算关联度 γ \gamma γ​​,其中 γ > 0 \gamma>0 γ>0​。

image-20220315143221998

(6)根据关联度大小排列顺序,判断主要影响因素与次要影响因素。
(7)影响因素分析效果检验,包括确定指标体系时的数据检验、计算过程中公式及数据的检验、最终分析结果的检验。

标准

H为关联度

在这里插入图片描述

结论

GRA算法本质上来讲就是提供了一种度量两个向量之间距离的方法,以数学角度要言之,该算法即度量已归一化的子向量与母向量的每一维度的l1-norm距离的倒数之和,并将其映射到0~1区间内,作为子母向量的关联性之度量的一种策略。

例子

本节采用江苏省无锡市锡北镇的实际数据[59],以年最大负荷 x 0 x_0 x0​为要预测的电力负荷特性,以常住人口 x 1 x_1 x1​ 、人均收入 x 2 x_2 x2​ 、GDP x 3 x_3 x3​ 、农业总产值 x 4 x_4 x4​、工业总产值 x 5 x_5 x5​ 、第三产业产值 x 6 x_6 x6​、年平均温度 x 7 x_7 x7​ 、年降水量 x 8 x_8 x8​、年售电量 x 9 x_9 x9​​​为影响因素,用GRA分析各影响因素对负荷的影响程度。

注:母序列为最大负荷放在第一列,特征放在后面几列

image-20220317181722783

 最大负荷,常住人口,人均收入,GDP,农业总值,工业总值,第三产业产值,年平均温度,年降水,年售电量
 21.2,6.8,3752,2.21,2.4,11.5,21,15.9,998.5,0.9
 22.7,7,3897,2.78,2.43,11.8,22,15.6,995.2,0.98
 24.36,7.15,4058,3.05,2.67,12.14,22.7,16.4,1002.6,1.1
 26.22,7.28,4237,3.82,1.85,12.2,23,17.1,1237,1.23
 28.18,7.42,4552,4.34,2.36,13,24.4,16.1,1170,1.36
 30.16,7.55,4998,5.86,2.88,13.6,25.4,16.6,1001.3,1.49
 86.6,10.23,22760,84.94,31,72,73,16.2,1232.5,5.41
  • 代码

    import pandas as pd
    
    data = pd.read_csv("data.csv")
    
    # 原始数据序列
    X = data.values
    
    # 无量纲化处理
    X = X / X[0, :]
    
    # 求差值序列
    X = abs((X - X[:, 0].reshape(len(X), 1))[:, 1:])
    
    M_delata = X.max()
    m_delta = X.min()
    
    rho = 0.5
    
    # 求关联系数xi
    
    Xi = (m_delta + rho * M_delata) / (X + rho * M_delata)
    gamma = Xi.mean(axis=0)
    
    
  • 无量纲化

image-20220317181951058

  • 极差

    image-20220317182044460

  • 关联系数矩阵 ξ \xi ξ

    image-20220317182129878

  • 最终关联系数 γ \gamma γ

    image-20220317182526897

    灰色关联度排序, x 6 > x 2 > x 9 > . . . > x 3 x_6>x_2>x_9>...>x_3 x6>x2>x9>...>x3​,根据该值大小,可以看出 x 6 x_6 x6和负荷关联度最大, x 3 x_3 x3关联最小。

原文链接:https://blog.csdn.net/qq_34229228/article/details/123567453



所属网站分类: 技术文章 > 博客

作者:我Lovepython

链接:https://www.pythonheidong.com/blog/article/1760217/0851820731c45834b5d5/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)