精华内容
下载资源
问答
  • 论文研究-一种相似性关联度公式.pdf, ... 构造了一种新的关联度计算公式 ,其基本思想与斜率关联度相同 ,它克服了斜率关联度的缺点 ,而保持了其优点 ,它适用于进行因素分析.
  • 指出绝对关联度定义的不严格之处以及所给出的绝对关联度公式的不合理性 ,在此基础上 ,给出平移关联度的定义以及两个平移关联度计算公式 .最后给出在证券市场中的应用 .
  • 为了准确地找出影响煤炭自燃程度最大的因素,以改进了的灰色斜率关联度模型为计算公式,分别计算了自燃高温段和低温段内煤炭的灰分、水分、挥发分以及温度、氧浓度、平均粒径与耗氧速率的斜率关联度,计算结果表明:在...
  • 灰色关联度分析(Grey Relation Analysis,GRA)原理详解

    万次阅读 多人点赞 2018-12-29 02:22:18
    灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱,再直白一点,就是说:我们...

    释名

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

    ( note : 灰色系统这个概念的提出是相对于白色系统黑色系统而言的。这个概念最初是由控制科学与工程(hhh熟悉的一级学科)的教授邓聚龙提出的。按照控制论的惯例,颜色一般代表的是对于一个系统我们已知的信息的多少,白色就代表信息充足,比如一个力学系统,元素之间的关系都是能够确定的,这就是一个白色系统;而黑色系统代表我们对于其中的结构并不清楚的系统,通常叫做黑箱或黑盒的就是这类系统。灰色介于两者之间,表示我们只对该系统有部分了解。)

    举例

    为了说明灰色关联度分析的应用场景,我们利用下图进行说明:

    在这里插入图片描述

    该图来源于参考文献1。这篇文献研究的内容是旅游业发展的影响因子,看该表格,第一行为五年的旅游总收入,代表着旅游业发展的程度,而下面的这些要素就是我们需要分析的因子,比如在校大学生数,旅行社数,星级饭店数,A级景区数等等。最终目的是要得到一个排序,从而说明这些因子对旅游总收入的关联性的程度。

    操作步骤与原理详解

    (1) 确立母序列

    (参考序列,在上面栗子中就是1998~2002年的旅游总收入序列)和子序列(比较序列,也就是需要确立顺序的因素序列,上栗中的除了第一行以外的所有因素都可以作为参考序列)

    为了后面的表述方便,这里统一一下notation:

    我们用x_i(k)表示第i个因素的第k个数值
    用上面的栗子来说
    比如第一个因素是在校大学生人数,那么x_1(1)就表示在校大学生人数在1998年的取值,也就是341,x_1(2)就是1999年的取值,
    而x_2(1)就是表示旅游从业人数在1998年的数值。以此类推。
    我们用x_0(k)表示母序列,i≥1的表示子序列,也就是要分析的要素的序列。
    如果不写括号,比如x_i ,就代表这个元素的整个序列,也就是向量 x_i = [x_i(1), x_i(2), ... , x_i(n)] 
    n为每个向量的维度,也就是每个元素的特征的数量,在上栗中,n就是5,因为有五年的数据,代表五维向量。
    以下所有表述都用该notation表示。
    

    详解: 这个就是我们任务的目的(找到子序列和参考序列的关联程度),所以不需要再解释了吧~

    (2)归一化,或者叫 无量纲化

    详解: 因为我们的这些要素是不同质的东西的指标,因此可能会有的数字很大有的数字很小,但是这并不是由于它们内禀的性质决定的,而只是由于量纲不同导致的,因此我们需要对它们进行无量纲化。这个操作一般在数据处理领域叫做归一化(normalization),也就是减少数据的绝对数值的差异,将它们统一到近似的范围内,然后重点关注其变化和趋势。
    如下图所示,这是上面表格中前3个元素随年的变化曲线,以及作为母序列的旅游总收入:
    在这里插入图片描述

    可以看到,有两个曲线绝对数值很大,而另外两个很小,如果不做处理必然导致大的数值的影响会”淹没“掉小数值的变量的影响。

    所以我们要对数据进行归一化处理,主要方法有如下几个:

    (1) 初值化: 顾名思义,就是把这一个序列的数据统一除以最开始的值,由于同一个因素的序列的量级差别不大,所以通过除以初值就能将这些值都整理到1这个量级附近。

    公式: x_i(k)' = x_i(k) / x_i(1)   i = 1,...,m, k = 1,...,n 
    (m为因素个数,n为每个因素的数据维度,仍如上栗,n=5,m=3(我们只看前三个因素,就是曲线图里画的这三种,和旅游总收入的关联,数据维度为5,即五年))
    

    (2) 均值化: 顾名思义,就是把这个序列的数据除以均值,由于数量级大的序列均值比较大,所以除掉以后就能归一化到1的量级附近。

    公式: x_i(k)' = x_i(k) / ( mean(x_i) )        (除以均值)
    其中 : mean(x_i) = (1/n) sum_k=1^n (x_i(k))     (求第i个因素序列的均值)
    

    其余还有如区间化,即把序列的值规范到一个区间,比如[0, 1],之间。这个方法实际上在数据处理中应用比较多,但是在GRA中似乎常用均值化或者初值化,所以在此不介绍。

    这里我们按照参考文献中的采用的方法,用初值化进行归一化,得到的结果如下图:

    在这里插入图片描述

    可以看到,归一化以后的数据,量级差别变小了,这是为了后面提供铺垫,因为我们关注的实际上是曲线的形状的差异,而不希望绝对数值对后面的计算有影响。

    (3)计算灰色关联系数

    先放上公式:
    在这里插入图片描述

    详解:
    首先,我们把i看做固定值,也就是说对于某一个因素,其中的每个维度进行计算,得到一个新的序列,这个序列中的每个点就代表着该子序列与母序列对应维度上的关联性(数字越大,代表关联性越强)。
    仔细观察这个公式,rho是一个可调节的系数,取值为(0,1),大于零小于一,这一项的目的是为了调节输出结果的差距大小,我们放在后面讲。我们先假设把rho取成0,那么,这个式子就变成了

    pseudo_zeta_i(k) = min min |x_0(k) - x_i(k)| / |x_0(k) - x_i(k)| = constant / |x_0(k) - x_i(k)|
    

    我们看上面这个式子,可以发现,分子上这个数值,对于所有子序列来说都是一样的(,分子上这个数实际上就是所有因素的所有维度中,与母序列(参考序列,即我们要比较的序列)距离最近的维度上的距离。为什么要这样做呢?这样来想,假如我们没有进行归一化,或者不是用的初值化,而是用的均值化或者其他方法,可能会导致曲线之间,也就是母序列和各个子序列之间仍然有一段距离,那么这个距离最小值与下面的每个维度的距离相除,实际上也可以看成是一种取消量纲的手段。对于所有子序列,这个分子是相同的,所以实际上,这个系数pseudo_zeta是与第k个维度上,子序列与母序列的距离(差的绝对值,通常叫做l1范数(l1-norm))成反比,也就是说,这两个数距离越远,我们认为越不相关,这是符合直觉的。

    当然,如果用了初值化归一化数据,如上面的图2所示,min min |x_0(k) - x_i(k)| 对每个i都会变成0,这样就不好了,因为这样一来,所有的zeta_i(k)都成了0,是无意义的。所以这时候我们就看到后面的 rho max max这一项的作用了。这一项对于每个i来说也是一个不变的常数constant,所以可以理解为给上面那个式子的分子分母同时加上某个数值,如下所示:

    zeta_i(k) = (aconstant + bconstant) / (|x_0(k) - x_i(k)| + bconstant)
    

    这样做的目的是什么呢? 我们举个栗子: 对于两个分数: 1/5 和 1/4 ,它们的分子一样,分母相差为1,这时候他们的值相差1/20,也就是0.05,这就是没有+rho max max那一项的情况,分子相同,分母的差代表着与参考序列的距离。 如果我们给他们分子分母同时加上20,那么就是21/25和21/24,它们相差为0.035,可以看到,加入这一项会导致同样的距离的点的系数差,会因为计算而变小。很显然地,rho取得越大,不同zeta系数的差距就越小。

    另外,由于分子上是min min,也就是距离的全局最小值,这就导致下面的分母必然大于分子(不考虑 rho max max 项),而且,如果分母非常大,曲线距离非常远,那么,zeta接近0; 相反,如果x_i和x_0在所有维度上的差完全一样,那么分数的值就是1。这样zeta取值范围就是0~1之间,0表示不相关,1表示强关联性。这也符合认知。考虑上rho max max 项之后,我们知道对于一个真分数,分子分母都加一个同样的值,仍然是真分数(实际上是一个添加溶质的溶液的问题)。也就是说,仍然是0到1。

    总结来说,rho是控制zeta系数区分度的一个系数,rho取值0到1, rho越小,区分度越大,一般取值0.5较为合适。zeta关联系数取值落在0到1之间。

    接上栗,我们对上述三个子序列做出关联系数zeta的序列,结果如下:
    在这里插入图片描述
    其实从这个图中已经可以看出,大学生这一因素对旅游也的相关性普遍要高一些,从业人员相对影响少一些。星级饭店的数量居中。

    (4) 计算关联系数均值,形成关联序

    根据上图其实已经可以看出大概的趋势,但是这只是因为这个恰好所有维度上的趋势比较一致,实际上,我们得到zeta关联系数的值以后,应该对每个因素在不同维度上的值求取均值,换句话说,也就是对于上面那些zeta 的曲线,同一个颜色的求取均值。结果如下:

    >> mean(zeta_1)
    ans =
       0.7505
    >> mean(zeta_2)
    ans =
        0.5848
    >> mean(zeta_3)
    ans =
       0.7154
    

    可以看到,根据关联系数大小,排序结果为:

    大学生人数 > 星级饭店数量 > 从业人员人数

    这和参考文献论文中的结论是一致的:

    在这里插入图片描述

    (由于论文中用了所有的因子,导致max max 这个全局最大值不同,所以计算出的关联度数值与复现计算的结果数值不一样,但是这三个因子的关联度的排序是一致的,说明关联度是一个相对的指标,它反映的是不同因子与参考内容的关联程度)

    总结

    GRA算法本质上来讲就是提供了一种度量两个向量之间距离的方法,对于有时间性的因子,向量可以看成一条时间曲线,而GRA算法就是度量两条曲线的形态和走势是否相近。为了避免其他干扰,凸出形态特征的影响,GRA先做了归一化,将所有向量矫正到同一个尺度和位置,然后计算每个点的距离。最后,通过min min 和max max 的矫正,使得最终输出的结果落在0到1之间,从而符合系数的一般定义。rho调节不同关联系数之间的差异,换句话说,就是输出的分布,使其可以变得更加稀疏或者紧密。以数学角度要言之,该算法即度量已归一化的子向量与母向量的每一维度的l1-norm距离的倒数之和,并将其映射到0~1区间内,作为子母向量的关联性之度量的一种策略。

    附录:MATLAB代码

    下面是该博文中为举栗子复现的参考文献1中的计算过程MATLAB代码:

    % Grey relation analysis
    
    clear all
    close all
    clc
    
    zongshouru = [3439, 4002, 4519, 4995, 5566];
    daxuesheng = [341, 409, 556, 719, 903];
    congyerenyuan = [183, 196, 564, 598, 613];
    xingjifandian = [3248, 3856, 6029, 7358, 8880];
    
    % define comparative and reference
    x0 = zongshouru;
    x1 = daxuesheng;
    x2 = congyerenyuan;
    x3 = xingjifandian;
    
    % normalization
    x0 = x0 ./ x0(1);
    x1 = x1 ./ x1(1);
    x2 = x2 ./ x2(1);
    x3 = x3 ./ x3(1);
    
    % global min and max
    global_min = min(min(abs([x1; x2; x3] - repmat(x0, [3, 1]))));
    global_max = max(max(abs([x1; x2; x3] - repmat(x0, [3, 1]))));
    
    % set rho
    rho = 0.5;
    
    % calculate zeta relation coefficients
    zeta_1 = (global_min + rho * global_max) ./ (abs(x0 - x1) + rho * global_max);
    zeta_2 = (global_min + rho * global_max) ./ (abs(x0 - x2) + rho * global_max);
    zeta_3 = (global_min + rho * global_max) ./ (abs(x0 - x3) + rho * global_max);
    
    % show
    figure;
    plot(x0, 'ko-' )
    hold on
    plot(x1, 'b*-')
    hold on
    plot(x2, 'g*-')
    hold on
    plot(x3, 'r*-')
    legend('zongshouru', 'daxuesheng', 'congyerenyuan', 'xingjifandian')
    
    figure;
    plot(zeta_1, 'b*-')
    hold on
    plot(zeta_2, 'g*-')
    hold on
    plot(zeta_3, 'r*-')
    title('Relation zeta')
    legend('daxuesheng', 'congyerenyuan', 'xingjifandian')
    

    参考文献:

    1. 马晓龙. 旅游业发展影响因子灰色关联分析[J]. 人文地理, 2006, 21(2):37-40.
    2. 谭学瑞, 邓聚龙. 灰色关联分析:多因素统计分析新方法[J]. 统计研究, 1995, 12(3):46-48.
    3. 刘思峰, 蔡华, 杨英杰, et al. 灰色关联分析模型研究进展[J]. 系统工程理论与实践, 2013, 33(8):2041-2046.

    2018年12月29日02:06:16
    to Rita ~

    展开全文
  • 灰色关联度分析

    千次阅读 多人点赞 2019-11-13 14:46:07
    灰色关联度分析 灰色关联度分析方法步骤及原理; 另附例题及代码。

    灰色关联度分析

    引言

    大家好,这是我的第一篇博客,我是一名通信工程专业的大二学生,在过了1年的学习后我才发现自己并不是很喜欢这个专业,因为在学校加入了数学建模工作室,也大大小小做过几次比赛,对于Matlab软件有一些基础的了解,慢慢的竟然感觉自己有点喜欢这个软件来敲代码了,因此我决定慢慢开始尽量系统的学习一下Matlab,同时因为要做建模比赛,所以会学习一些建模用的相关算法等等,因此我开了这一个大模块,用来记录我每一个学习的和Matlab相关的知识点,我本是一个萌新,学的东西可能很基础,不过如果看到本文的你觉得内容对你有所帮助,还是请帮我点个赞,谢谢啦。

    灰色关联度分析

    在我看来,灰色关联度分析即是一种对影响目标序列的相关因素进行定量分析的模型,他的基本原理就是将已知的目标序列数据和比较序列(即影响目标序列的因素所构成的序列)数据进行无量纲化处理之后,通过对比各个序列对目标序列的数据增长或减少的相似或相异程度来判断各个因素对目标序列的影响结果(权重)。
    如下图,即是某一无量纲化之后各因素的数据与目标序列数据变化趋势图,对灰色关联度分析而言,图形几何形状越是接近,关联程度也就越大。当然,如果要对更多更复杂的数据进行关联分析,肯定是无法用肉眼得到分析结果的,因此,我们肯定需要一种计算方法来得到我们想要的结果,这种计算方法即为灰色关联分析方法。
    无量纲化之后各因素的数据与目标序列数据变化趋势图

    原理和方法

    1.计算比较序列与目标序列之间的关联系数

    公式

    关联系数公式

    2.计算比较序列与目标序列之间的关联度

    在这里插入图片描述

    求解步骤

    Step1.数据无量纲化处理

    由于各指标的单位不同,需要对原始数据进行无量纲化处理,数据无量纲化处理的方法有均值化、初值化、区间值化、导数化、零化等。后面我给出的代码采用均值化法。

    Step2.求差序列

    即计算参考数列与比较序列的相应指标的绝对差值。

    Step3.求两级差

    即计算两级最大差值。

    Step4.计算关联系数

    将计算得到的两级差值代入关联系数公式求关联系数的值。

    Step5.计算灰色关联度及权重

    将求得的关联系数的值代入关联度公式中得到各指标与目标序列的关联度,最终利用得到的值归一化处理得到各指标的权重。

    例题数据

    要求计算各参考序列对目标序列的影响(权重)
    年份目标序列参考序列1参考序列2参考序列3参考序列4参考序列5参考序列6
    20095.1874.617.2701.2621.62.2685223.3
    20107.3399.3310.04614.9516.81.5876197.6
    20115.30124.2711.5528.6613.71.2158154.5
    20124.45137.3111.98014.1512.30.9839107.7
    20134.05150.1113.6888.5117.31.0903149.9
    20146.35160.5214.6742.5427.81.5359245.9
    20158.27163.3414.9094.6116.83.2937245.3
    201611.7172.7715.2037.8829.32.3942326.5
    20177.58203.5217.9824.1528.83.0424334.9
    20184.46216.1018.5713.3224.63.578265.5
    平均值6.467150.1913.5887.020.92.1225.1

    代码

    clc;clear;close all;
    %输入原始已知数据
    A=[5.18 74.61   7.27    1.26    21.6    2.2685  223.3;
    7.33    99.33   10.046  14.95   16.8    1.5876  197.6;
    5.3     124.27  11.552  8.66    13.7    1.2158  154.5;
    4.45    137.31  11.98   14.15   12.3    -0.0161  107.7;
    4.05    150.11  13.688  8.51    17.3    1.0903  149.9;
    6.35    160.52  14.674  2.54    27.8    1.5359  245.9;
    8.27    163.34  14.909  4.61    16.8    3.2937  245.3;
    11.7    172.77  15.203  7.88    29.3    2.3942  326.5;
    7.58    203.52  17.982  4.15    28.8    3.0424  334.9;
    4.46    216.1   18.571  3.32    24.6    3.578   265.5];
    y=[6.467 150.19 13.588 7 20.9 2.1 225.1];
    %数据无量纲化处理
    x1=A(1:10,1)./y(1);x2=A(1:10,2)./y(2);x3=A(1:10,3)./y(3);
    x4=A(1:10,4)./y(4);x5=A(1:10,5)./y(5);x6=A(1:10,6)./y(6);
    x7=A(1:10,7)./y(7);
    B=[x1,x2,x3,x4,x5,x6,x7]; 
    %求差序列
    y1=abs(x1-x2);y2=abs(x1-x3);
    y3=abs(x1-x4);y4=abs(x1-x5);
    y5=abs(x1-x6);y6=abs(x1-x7);
    C=[y1,y2,y3,y4,y5,y6];
    %求两级差
    xmax=max(max(C)); 
    xmin=min(min(C)); 
    %计算目标和各指标的关联系数
    z=(xmin+0.5*xmax)./(C+0.5*xmax); 
    e=[];
    [t,n]=size(C);
    %计算目标与各指标的关联度
    for i=1:n
    z1=sum(z(1:10,i))/10;
    e=[e,z1];
    end
    %各指标的权重
    f=e./sum(e) 
    

    The end

    整篇文章的内容到这里也就结束了,因为是第一次写博客,很多功能都不会用所以做的不太好,希望大家多多包容,如果谁有什么问题欢迎来咨询我,我会在有时间的时候尽自己最大的能力帮助你,感谢大家的观看。

    展开全文
  • 灰色关联度

    千次阅读 2019-09-02 16:52:31
    利用灰色关联度对 10 个学生进行评价排序。 灰色关联度分析具体步骤如下: 1. 确定比较对象(评价对象)和参考数列(评价标准) 这里评价对象的个数为 m = 10 , 评价指标变量有 8 个 比较数列为 这里是第 i 个...

    利用灰色关联度对 10 个学生进行评价排序。

    灰色关联度分析具体步骤如下:

    1.  确定比较对象(评价对象)和参考数列(评价标准)

     这里评价对象的个数为 m = 10 , 评价指标变量有 8 个

    比较数列为  a_{i} = \left \{a_{i}(k) | k = 1,2,...,8 \right \} , i= 1,2,..,10  这里 a_{i}(k) 是第 i 个评价对象关于第 k 个指标变量 x_{k}  的取值 。

    参考数列为  a_{0} = \left \{a_{0}(k) | k = 1,2,...,8 \right \} , 这里 a_{0}(k) = 100 , k = 1,2,...,8 。参考数列是一个最好评价对象的各指标中值。

    2.对指标数据进行无量纲化(归一化处理)

    由于系统中各因素的物理意义不同,导致数据的量纲也不一定相同,不便于比较,或在比较时难以得到正确的结论。因此在进行灰色关联度分析时,一般都要进行无量纲化的数据处理。

    3.逐个计算每个被评价对象指标序列(比较序列)与参考序列对应元素的绝对差值

     即  |a_{0}(k) - a_{i}(k)|  i = 1,2,...,10    k = 1 ,2 ,...,8

     4.  计算灰色关联系数

     

    图片是引用其他地方, x_{0} ,x_{i} 就是 a_{0} ,a_{i} 。

    为比较数列 a_{i} 对参考数列 a_{0} 在 第 k 个指标上的关联系数,其中 \rho \in [0,1]  为分辨系数,min_{s}min_{k} |x_0(k) - x_{i}(k) |  ,max_{s}max_{k} |x_{0}(k) -x_{i}(k)|  分别为两级最小极差  , 两级最大极差 。

    一般来讲,分辨系数  \rho越大,分辨率越大; \rho越小,分辨率越小。

    5.  计算灰色关联度

    灰色关联度的计算公式为 

                                                r_{i} = \sum_{k=1}^{8} w_{k}\xi _{i}(k) i = 1 ,2 ,...,10

    其中 w_{k} 为第 k 个指标变量 x_{k} 的权重, 这里取等权重 即 1/m = 1/8 。 r_{i} 为第 i 个评价对象对理想对象的灰色关联度。

    6.  评价分析

    根据灰色关联度的大小,对各评价对象进行排序,可建立评价对象的关联序,关联度越大其评价结果越好 。

    clc, clear
     4
    a=textread('data101.txt');
    t=ones(size(a))*100-a; %计算参考序列与每个序列的差
    mmin=min(min(t)); %计算最小差
    mmax=max(max(t)); %计算最大差
    rho=0.5; %分辨系数
    xs=(mmin+rho*mmax)./(t+rho*mmax) %计算灰色关联系数
    gd=mean(xs,2) %取等权重,计算关联度
    [sgd,ind2]=sort(gd,'descend') %对关联度按照从大到小排序
    xlswrite('data103.xls',[xs,gd]) %把关联系数和关联度写到 Excel 文件中,便于做表
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    a = pd.read_excel("data1.xlsx").values[:,1:]
    # print(a,type(a))
    m,n = a.shape
    t = np.ones((m,n))*100 - a # 计算差值
    print(t)
    mmin = min(np.min(t,axis=0)) #计算最小差
    mmax = max(np.max(t,axis=0)) #计算最大差
    print(mmin ,mmax)
    rho = 0.5  # 分辨系数
    xs = (mmin + rho*mmax) /(t+rho*mmax)
    print(xs)
    gd = np.mean(xs,axis=1)
    print("gd")
    gd.resize((gd.shape[0],1))
    # print(gd.shape)
    # print(xs.shape)
    
    result = np.hstack((xs,gd))
    print(gd)
    # 从 0 开始的
    print(gd.argsort(axis=0)) # 从小到大
    df = pd.DataFrame(result)
    
    df.to_excel('result.xlsx',sheet_name='表1')
    print("写入完成")
    
    

     

    展开全文
  • 关联度分析法-灰色关联分析

    千次阅读 2020-09-14 16:50:14
    本文介绍了利用灰色关联度分析方法分析了数据之间的关联度

    灰色关联分析介绍

    对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。
    通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题。

    灰色关联分析的步骤

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

    1. 确定反映系统行为特征的参考数列和影响系统行为的比较数列。
      反映系统行为特征的数据序列,称为参考数列(可以理解为因变量)。影响系统行为的因素组成的数据序列,称比较数列(可以理解为自变量)。
    2. 对参考数列和比较数列进行无量纲化处理。
      由于系统中各因素的物理意义不同,导致数据的量纲也不一定相同,不便于比较,或在比较时难以得到正确的结论。因此在进行灰色关联度分析时,一般都要进行无量纲化的数据处理。
    3. 求参考数列与比较数列的灰色关联系数ξ(Xi)
      所谓关联程度,实质上是曲线间几何形状的差别程度。因此曲线间差值大小,可作为关联程度的衡量尺度。对于一个参考数列X0有若干个比较数列X1, X2,…, Xn,各比较数列与参考数列在各个时刻(即曲线中的各点)的关联系数ξ(Xi)可由下列公式算出:

    在这里插入图片描述
    其中 ρ为分辨系数,ρ>0,ρ越小,分辨力越大,一般ρ的取值区间为(0,1),具体取值可视情况而定。通常取0.5。
    minmin是第二级最小差,记为Δmin。 maxmax是两级最大差,记为Δmax。
    在这里插入图片描述
    为各比较数列Xi曲线上的每一个点与参考数列X0曲线上的每一个点的绝对差值,记为Δoi(k)。
    所以关联系数ξ(Xi)也可简化如下列公式:
    在这里插入图片描述

    1. 求关联度ri
      因为关联系数是比较数列与参考数列在各个时刻(即曲线中的各点)的关联程度值,所以它的数不止一个,而信息过于分散不便于进行整体性比较。因此有必要将各个时刻(即曲线中的各点)的关联系数集中为一个值,即求其平均值,作为比较数列与参考数列间关联程度的数量表示,关联度ri公式如下:
      在这里插入图片描述

    2. 关联度排序
      因素间的关联程度,主要是用关联度的大小次序描述,而不仅是关联度的大小。将m个子序列对同一母序列的关联度按大小顺序排列起来,便组成了关联序,记为{x},它反映了对于母序列来说各子序列的“优劣”关系。若r0i>r0j,则称{xi}对于同一母序列{x0}优于{xj},记为{xi}>{xj} ;若r0i表1 代表旗县参考数列、比较数列特征值。

    实例

    #灰色关联度分析
    import pandas as p
    import numpy as np
    from numpy import *
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    # 从硬盘读取数据进入内存
    wine = pd.read_csv("...\\是.csv",encoding="ANSI")
    wine.head()
    wine=wine.dropna()
    wine.dropna()
    # 无量纲化()
    newDataFrame=pd.DataFrame(index=wine.index)
    columns=wine.columns.tolist()
    for c in columns:
            d = wine[c]
            MAX = d.max()
            MIN = d.min()
            MEAN = d.mean()
            newDataFrame[c] = ((d - MEAN) / (MAX - MIN)).tolist()
    print(newDataFrame)
    # 提取参考队列和比较队列
    newDataFrame=newDataFrame.iloc[:,1:].T
    ck=newDataFrame.iloc[0,:]
    cp=newDataFrame.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
    #求关联系数
    ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))
    pd.DataFrame(ksi)
    # 灰色关联结果矩阵可视化
    import seaborn as sns
    def ShowGRAHeatMap(DataFrame):
        colormap = plt.cm.RdBu
        ylabels = DataFrame.columns.values.tolist()
        f, ax = plt.subplots(figsize=(14, 14))
        ax.set_title('GRA HeatMap')    
        # 设置展示一半,如果不需要注释掉mask即可
        #mask = np.zeros_like(DataFrame)
        #mask[np.triu_indices_from(mask)] = True
        
        with sns.axes_style("white"):
            sns.heatmap(DataFrame,
                        cmap="rainbow",
                        annot=True,
                        #mask=mask,
                       )
       
        plt.rcParams['font.sans-serif']='SimHei'
        plt.show()
    data=pd.DataFrame(ksi)
    ShowGRAHeatMap(data)
    
    #求关联度
    r=ksi.sum(axis=1)/ksi.columns.size
    print("关联度为:\n",r)
    #关联度排序,
    result=r.sort_values(ascending=False)
    print("关联度排序结果为:\n",result)
    

    关联系数矩阵:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 原始数据表格如下所示,其中t1、t2、t3、t4表示四个不同的时刻,参考序列为Industry,分别计算后三者与Industry的关联度,代码最终返回的是关联度经过排序后的department的相应取值,排序采用逆序排序 import numpy...
  • 几种常见的距离计算公式

    万次阅读 2019-10-20 10:41:59
    我们常用的距离计算公式是欧几里得距离公式,但是有时候这种计算方式会存在一些缺陷,那么就需要另外的计算方法去加以补充,本文将介绍几种在机器学习中常用的计算距离。 在做很多研究问题时常常需要估算不同样本...
  • MATLAB灰色关联度分析

    千次阅读 2019-12-08 10:06:29
    灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱,再直白一点,就是说:我们...
  • 性能指标及相关计算公式

    千次阅读 2019-03-25 14:50:07
    1.吞吐量 吞吐量是指单位时间内处理...通常在没有遇到性能瓶颈时,吞吐量可以采用下面公式计算: F=(N*R)/T F表示吞吐量;N表示并发虚拟用户数;R表示每个虚拟用户发出的请求数量,T表示性能测试所用的时间。 ...
  • matlab灰色关联度代码这段代码在matlab中,我使用了一个包含210张图像的数据集。 这些图像列出了10个categoris.list。 为了理解我的代码,您可以按照以下步骤操作:1)从目录中读取所有图像(当前)2)将它们调整为...
  • 目录项集(Itemset)事务的宽度支持、...一般我们使用三个指标来度量一个关联规则,这三个指标分别是:支持、置信和提升。 Support(支持) Support(支持):表示同时包含A和B的事务占所有事务的比...
  • 对承受疲劳荷载反复作用的钢筋混凝土结构而言,疲劳是一种重要的损伤形式,如何...根据刚度退化规律对试验数据进行拟合,得到可用于计算钢筋混凝土梁刚度退化程度的公式,该公式与10根试验梁的试验结果吻合较好,能够
  • 在做特征选择时,可能面临两个问题:特征与类别预测有多大相关性,特征之间有多大冗余。在特征选择中,“最好的m个特征不一定是m个最好的特征”,从相关与冗余来看,最好的m个特征是指与分类最相关的特征,但...
  • 分析了经典多元统计分析方法用于评价问题的缺点,并且运用层次分析法对原有的关联度计算公式进行了改进,提出了电力消费影响因素评价的改进灰色关联分析方法。采用层次分析法对影响电力消费的12种主要工业产品的重要性...
  • 一、数据变换技术  为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理。 1、定义   设有序列 ,则成映射 ...%关联度计算公式 end y(i,1) =sum/b;%关联度取平均 end
  • 一、余弦距离 形式化描述: 余弦夹角也可以叫余弦相似度。...夹角越小,趋近于0,余弦值越接近于1,它们的方向更加吻合,则越相似。当两个向量的方向完全相反时,夹角余弦取最小值-1。当余弦值为...
  • 一、 置信、 二、 置信 示例
  • 转载请标明出处:小帆的帆的专栏例子: ...关联规则关联规则:用于表示数据内隐含的关联性,例如:购买尿布的人往往会购买啤酒。支持(support)支持:{X, Y}同时出现的概率,例如:{尿布,啤酒}同时出现
  • ,在实际业务中,我们可以这样来理解关联三度,支持度代表这组关联商品的份额是否够大(公式:这一关联/总交易),可信度代表关联度的强弱,二提升都则表示该关联是否有利用价值(即对整体销售提升的帮助也不会大)...
  • 该文通过对传统的相关度计算公式的分析,指出了传统计算方法存在不对称性和不完备性两个缺陷,提出了提升率和影响率两个概念。通过理论分析和实验验证,证明了采用提升率和影响率两个参数来描述相关度与传统的描述...
  • 二态系统重要度理论是复杂系统重要度理论的基础,对于复杂系统可靠性分析具有重要意义。...基于串联和并联系统,分别给出了串联和并联系统的二态系统组(部)件综合重要度计算公式及相关的性质。以二态混联系统为算例,
  • 关联规则的强度用支持(support)和自信(confidence)来描述,关联规则是否可用,使用提升(Lift)来描述。 挖掘定义 给定一个数据集,找出其中所有支持support>=min_support,自信confidence>=min_...
  • GBDT算法的特征重要度计算

    万次阅读 2016-12-27 21:22:59
    基于树的集成算法还有一个很好的特性,就是模型训练结束后可以输出模型所使用的特征的相对重要,便于我们选择特征,理解哪些因素是对预测有关键影响,这...本文主要介绍基于树的集成算法如何计算各特征的相对重要
  • 【统计分析】关联规则之置信,支持,提升

    万次阅读 多人点赞 2018-09-12 14:58:36
    一般使用三个指标来度量一个关联规则,根据这三个指标可以筛选出满足条件的关联规则。 这三个指标是:Support(支持)、Confidence(置信)、Lift(提升)。 以A,B这个关联规则为例来说明: ...
  • 商品关联分析

    千次阅读 2016-07-12 17:21:45
    association: 用在实际的事物之上,比如电子商务网站上的商品之间的关联度。支持度(support):数据集中包含某几个特定项的概率。 比如在1000次的商品交易中同时出现了啤酒和尿布的次数是50次,那么此关联的支持度...
  • 利用关联分析的方法可以发现联系如关联规则或频繁项集。 二元表示 每一行对应一个事务,每列对应一个项,项用二元变量表示 项在事务中出现比不出现更重要,因此项是非对称的的二元变量。 项集(Itemset):包含0个...
  • 本文主要演示pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数和spearman相关系数)。 perason描述的是两个变量之间的线性相关性,当相关系数等于1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,793
精华内容 14,317
关键字:

关联度的计算公式