• 【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列


    【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列

    文章目录

    1、TOPSIS法的原理

    2、TOPSIS法案例分析

    3.建立模型并求解

    3.1数据预处理

    3.2代码实现数据预处理

    3.3 本案例中数据预处理的运用

    4.计算距离和评价指标

    4.1 代码

    4.2 运行结果

    5.总结


    1、TOPSIS法的原理

           设多属性决策方案(单元)为D={d1,d2,…,dm},衡量方案优劣的属性变量为x1,x2,…,xn,这些方案D中的每个方案di(i=1,2,…)的n个属性构成向量[ai1,ai2,…,ain],将其作为n维空间的一个点,能唯一地代表方案di。

           正理想解C*是一个方案D中不存在的虚拟最佳方案,它的每个属性都是决策矩阵中该属性的最优值;而负理想解C0则是虚拟的最差方案,它的每个属性都是决策矩阵中该属性的最差值。

           评价与决策原理:将D中每个备选方案di与正理想解C*和负理想解C0的距离进行比较,既靠近C*,又远离C0的方案是D中最优方案,并且可以据此排定D中各个备选方案的优先序。

           原理中距离的选取不同,也会影响排序和评价,TOPSIS法常用的是欧几里得距离。

    2、TOPSIS法案例分析

           为了客观评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位办组织过一此研究生院的评估。为了取得经验,先选了5所研究生院,收集有关数据进行了式评估,表1给出了部分数据。

    i院\指标j

    人均专著x1(本/人)

    生师比x2

    科研经费x3(万元/年)

    逾期毕业率x4(%)

    1

    0.1

    5

    5000

    4.7

    2

    0.2

    6

    6000

    5.6

    3

    0.4

    7

    7000

    2.3

    4

    0.9

    10

    10000

    2.3

    5

    1.2

    2

    400

    1.8

    符  号

    说      明

    i

    研究院标号;i=1,2,3,4,5;

    j

    评价指标标号,j=1,2,3,4;

    aij

    第i研究院的第j指标的数据;

    bij

    aij的规范化后的数据;

    cij

    加权规范数据;

    wj

    第j指标的权重,j=1,2,3,4;

    cj*

    正理想解的第j指标;

    cj0

    负理想解的第j指标;

    si*

    第i研究院与正理想解的距离;

    si0

    第i研究院与负理想解的距离;

    fi*

    第i研究院的排序指标

    3.建立模型并求解

    3.1数据预处理

           属性值具有多种类型,包括效益型,即越大越好;成本型,即越小越好;区间型,即属性值落在某个区间最佳。

           数据规范化的必要性: (1)属性的上述不同类型值放在同一个表中(矩阵)中不便处理,即不变直接从数值大小区分优劣;(2)非量纲化,多属性评估与决策的难点就是属性值的不可公度性,即每一列都有不同计量单位,需要排除量纲的选用对决策和评估的影响;(3)归一化,属性值表中不同指标的属性值数值大小差别比较大(可能是科学计数法造成),为了直观,更为了便于采用各种多属性决策与评估进行评价,需要把属性表中不同属性数值归一化,即把表中数据都处理到[0,1]区间上。

    效益型数据处理(即越大越好)规范化公式(也归一化)

    成本型数据处理(即数据越小越好)规范化公式

    区间型数据处理公式

    3.2代码实现数据预处理

    1. %数据预处理方法:线性归一化
    2. %a为处理数据矩阵 u为选择处理方法 1为效益型 2为成本型 3为区间型 qujian为效益形中的最优属性区间 rennai为忍耐上下限区间
    3. function b=topsis(a,u,qujian,rennai)
    4. am1=min(a);am2=max(a);
    5. % 效益型数据处理(即数据越大越好)
    6. if u==1
    7. b=(a-am1)./(am2-am1);
    8. % 成本型数据处理(即数据越小越好)
    9. elseif u==2
    10. b=(am2-a)./(am2-am1);
    11. % 区间型数据处理
    12. elseif u==3
    13. n=length(a);
    14. for k=1:n
    15. if a(k)>=rennai(1)&a(k)1)
    16. b(k)=1-(qujian(1)-a(k))/(qujian(1)-rennai(1));
    17. elseif a(k)>=qujian(1)&a(k)<=qujian(2)
    18. b(k)=1;
    19. elseif a(k)>qujian(2)&a(k)<=rennai(2)
    20. b(k)=1-(a(k)-qujian(2))/(rennai(2)-qujian(2));
    21. else
    22. b(k)=0;
    23. end
    24. end
    25. end

    3.3 本案例中数据预处理的运用

           本案中,人均专著就是效益型指标;科研经费是成本型指标;逾期毕业率是效益型指标;而生师比是区间型指标,因为生师比太大,一个老师所带研究生太多,就越糟;生师比越小也越浪费教师资源,情况也越糟。设最优区间为[5,6]。逾期毕业率为成本型指标。

    1. A=[0.1 0.2 0.4 0.9 1.2;
    2. 5 6 7 10 2;
    3. 5000 6000 7000 10000 400;
    4. 4.7 5.6 6.7 2.3 1.8];
    5. A=A';
    6. a1=A(:,1);a2=A(:,2);a3=A(:,3);a4=A(:,4);
    7. b1=topsis(a1,1);
    8. b2=topsis(a2,3,[5,6],[2,12]);
    9. b3=topsis(a3,2);
    10. b4=topsis(a4,2);
    11. [b1,b2',b3,b4]

    运行结果:

     

    i院\指标j

    人均专著x1(本/人)

    生师比x2

    科研经费x3(万元/年)

    逾期毕业率x4(%)

    1

    0

    1

    0.5208

    0.4082

    2

    0.0909

    1

    0.4167

    0.2245

    3

    0.2727

    0.8333

    0.3125

    0

    4

    0.7273

    0.3333

    0

    0.8980

    5

    1

    0

    1

    1

    4.计算距离和评价指标

    4.1 代码

    1. A=[0.1 0.2 0.4 0.9 1.2;
    2. 5 6 7 10 2;
    3. 5000 6000 7000 10000 400;
    4. 4.7 5.6 6.7 2.3 1.8];
    5. A=A';
    6. a1=A(:,1);a2=A(:,2);a3=A(:,3);a4=A(:,4);
    7. b1=topsis1(a1,1);
    8. b2=topsis1(a2,3,[5,6],[2,12]);
    9. b3=topsis1(a3,2);
    10. b4=topsis1(a4,2);
    11. I=[1 1/3 2 3;3 1 4 2;1/2 1/4 1 2;1/3 1/2 1/2 1];
    12. [x,y]=eig(I);
    13. w1=x(:,1);
    14. w=w1/sum(w1);
    15. c1=b1*w(1);c2=b2'*w(2);c3=b3*w(3);c4=b4*w(4);
    16. C=[c1,c2,c3,c4];
    17. cx=[0.2494 0.4814 0.1482 0];
    18. cL=[0 0 0 0.1210];
    19. for k=1:5
    20. s1(k)=dist(C(k,:),cx');
    21. s2(k)=dist(C(k,:),cL');
    22. end
    23. f=s2./(s1+s2);
    24. [s1',s2',f']

    4.2 运行结果

    研究院

    正理想解距离S*

    负理想解距离s0

    综合指标f

    1

    0.2640

    0.4929

    0.6512

    2

    0.2442

    0.4949

    0.6696

    3

    0.2230

    0.4270

    0.6570

    4

    0.3760

    0.2425

    0.3920

    5

    0.4964

    0.2901

    0.3688

    5.总结

        根据表5,5个研究院综合评价的优劣顺序为 2 3 1 4 5.

     

  • 相关阅读:
    分布式id生成数据库号段算法的golang实现
    第三章 六大设计原则 (SOLID)
    【云原生】Kubernetes----轻量级的现代HTTP反向代理和负载均衡器之Traefik
    【算法|双指针系列No.5】leetcode611. 有效三角形的个数
    【SpringCloud微服务项目实战-mall4cloud项目(5)】——mall4cloud-leaf
    Linux远程管理协议
    Linux下安装zookeeper教程
    RemObjects Suite Subscription for Delphi
    杀死僵尸进程ZooKeeperMain
    C#目录【教程】
  • 原文地址:https://blog.csdn.net/m0_52474147/article/details/128085649