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

文章目录

  • 定义
  • 算法
  • 标准
  • 结论
  • 例子

参考博客: GRA

定义

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

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

算法

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

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

(2)为消除原始数据因单位不同而可能造成的干扰与误差,对原始数据序列根据公式(2-2)进行无量纲化处理,计算初值象序列 XIXIXI​ 如式(2-3)所示,其中XIij(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归一化。

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

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

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

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

标准

H为关联度

结论

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

例子

本节采用江苏省无锡市锡北镇的实际数据[59],以年最大负荷x0x_0x0​​为要预测的电力负荷特性,以常住人口x1x_1x1​​ 、人均收入x2x_2x2​​ 、GDPx3x_3x3​​ 、农业总产值x4x_4x4​​、工业总产值x5x_5x5​​ 、第三产业产值x6x_6x6​​、年平均温度x7x_7x7​​ 、年降水量x8x_8x8​​、年售电量x9x_9x9​​​​为影响因素,用GRA分析各影响因素对负荷的影响程度。

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

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

    import pandas as pddata = 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# 求关联系数xiXi = (m_delta + rho * M_delata) / (X + rho * M_delata)
    gamma = Xi.mean(axis=0)
  • 无量纲化

  • 极差

  • 关联系数矩阵ξ\xiξ

  • 最终关联系数γ\gammaγ

    灰色关联度排序,x6>x2>x9>...>x3x_6>x_2>x_9>...>x_3x6​>x2​>x9​>...>x3​​,根据该值大小,可以看出x6x_6x6​和负荷关联度最大,x3x_3x3​关联最小。

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

  1. 灰色关联分析法(GRA)-C++实现

    目录 1. 前言 2. 理论基础 3. 代码 1. 前言 最近小白在跟进一个项目,其中运用到了灰色关联分析法用来分析样本数据.同时在阅读了一些原理资料后,设计了一个模块化的C++程序(其实也不算模块化 ...

  2. 数学建模常用算法—灰色关联分析法(GRA)

    解决问题 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密.曲线越接近,相应序列之间的关联度就越大,反之就越小. 一般的抽象系统,如社会系统.经济系统.农业系统.生态系统.教 ...

  3. 灰色关联分析法 (附代码)

    可参考司守奎<数学建模算法与应用>P384,概念+例题+代码 ------------------------------ 文章目录 1.概述 2.代码复现 3.Python实现+可视化 ...

  4. python做灰色关联度分析_python实现灰色关联分析(GRA)——以红酒质量指标为例

    目录 程序简述 数据集截图 程序/数据集下载 核心代码解析 Module/BuildModel.py(接口,可以直接运行) 接口调用.运行效果 Main.py 程序简述 对红酒质量指标数据进行灰色关联 ...

  5. 灰色关联度分析(Grey Relation Analysis,GRA)

    1,灰色关联度分析(Grey Relation Analysis,GRA)原理详解 2,灰色关联分析法 3, 灰色关联分析(GRA)的理论及应用(matlab和python) 4 Python实现 灰 ...

  6. python 灰色关联分析法(GRA)求权重

    我遇到的问题: 假设现在有p个指标,g个参评单位.已经告诉你这g个参评单位在p个指标上的得分分别为多少,那么如何确定这p个指标的权重应该为多少? 原理 1.构成矩阵如下: 2.首先对矩阵做行均值化处理 ...

  7. python灰色关联度分析代码_灰色关联分析法步骤 - osc_uwnmtz9n的个人空间 - OSCHINA - 中文开源技术交流社区...

    https://wenku.baidu.com/view/dc356290af1ffc4fff47ac0d.html?rec_flag=default&sxts=1538121950212 利 ...

  8. 灰色关联度分析(Grey Relation Analysis,GRA)原理详解

    释名 灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法.简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对 ...

  9. 4 灰色系统 - 关联度分析法 例子 源代码

    灰色系统 - 关联度分析法 例子 源代码    前面说到关联系数和关联度,本次就具体举个例子,并附上源代码,求解关联系数. 例子 因素 t0t_0t0​ t1t_1t1​ t2t_2t2​ t3t_3 ...

最新文章

  1. 一个伟大、孤僻、特立独行的灵魂:天才已去60年
  2. MIT提出Liquid机器学习系统,可像液体一样适应动态变化
  3. Remix中文版 【Solidity IDE】
  4. oracle之分析函数 开窗函数,Oracle之分析函数、开窗函数
  5. getBoundingClientRect计算页面元素的offsetLeft、offsetTop
  6. php 实现图片上传并压缩功能
  7. kotlin int最大值_Kotlin程序查找三个数字中的最大值
  8. mysql inputoutput_PHP:同时使用INPUT和OUTPUT参数(不“ INOUT”)调用MySQL存储过程
  9. 一文带你从零认识什么是XLA
  10. 十多年前国内的三大杀毒软件瑞星、江民和金山毒霸的现状如何?
  11. 1 linux网络诊断命令工具
  12. 获取视图尺寸大小方法
  13. 蓝桥杯C语言程序设计真题
  14. 曼孚科技:7种常用的数据标注工具
  15. 基于贝叶斯分类器的手写字判别
  16. C语言包含特殊寄存器文件ch,c语言第二次实验报告 - osc_zfz30hgc的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 一步一步实现中后台管理平台模板-08-登录页和用户信息保存
  18. android性能测试自动化,Android App自动化性能测试探究
  19. jQuery 实现淡入淡出效果
  20. 布尔定律---布尔代数的基本定律

热门文章

  1. 《华为区块链白皮书》重磅发布(4大类应用场景/5分钟上链/)
  2. hcsr04超声波模块在51单片机中的应用
  3. 我看到了一个真实的日本
  4. 自己动手搭网站(六):javaweb搭建一个简单的个人博客系统
  5. unity 多个物体围绕一个点生成圆形状
  6. F4键无法在Excel里正常使用
  7. java ctr_java – CTR模式使用初始向量(IV)
  8. 视频教程-数据挖掘基础:零基础学Python数据分析-大数据
  9. 电信JAVA手机_手机modem开发(28)—开发电信VoLTE开关默认值设置
  10. MacBook重置SMC和NVRAM