系统评价——理想点TOPSIS法的R语言实现(五)

TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。TOPSIS全称Technique for Order Preference by Similarity to an Ideal Solution ,TOPSIS法是C.L.Hwang和K.Yoon于1981年首次提出的,它根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价。作为一种逼近于理想解的排序法,该方法只要求各效用函数具有单调递增(或递减)性就行,它是多目标决策分析中一种常用的有效方法,国内常简称为优劣解距离法或理想点法。

一、TOPSIS法的原理

设多属性决策方案集为D={d1,d2,,dm},衡量方案优劣的属性变量为{x1,,xn},这时方案集D中的每个方案dii=1,,mn个属性值构成的向量是[ai1,,ain],它作为n维空间中的一个点,能唯一地表征方案di

正理想解C是一个方案集D中并不存在的虚拟的最佳方案,它的每个属性值都是决策矩阵中该属性的最好值;而负理想解C0则是虚拟的最差方案,它的每个属性值都是决策矩阵中该属性的最差值。在n维空间中,将方案集D中的各备选方案di与正理想解C和负理想解C0的距离进行比较,既靠近正理想解又远离负理想解的方案就是方案集D中的最佳方案;并可以据此排定方案集D中各备选方案的优先序。
为什么既用正理想解,又用负理想解?
考虑到只有一个正理想解时可能会出现两个方案离正理想解距离相同的情况。​ 基本过程为先将原始数据矩阵统一指标类型(一般正向化处理) 得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指 标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分 别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对 象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。

用理想解法求解多属性决策问题的概念简单,只要在属性空间定义适当的距离测度就能计算备选方案与理想解的距离。TOPSIS法所用的是欧氏距离。至于既用正理想解又用负理想解是因为在仅仅使用正理想解时有时会出现某两个备选方案与正理想解的距离相同的情况,为了区分这两个方案的优劣,引入负理想解并计算这两个方案与负理想解的距离,与正理想解的距离相同的方案离负理想解远者为优。

二、TOPSIS的算法步骤

TOPSIS法的具体算法如下:

用向量规划化的方法求得规范决策矩阵

设多属性决策问题的决策矩阵A=(aij)m×n,规范化决策矩阵B=(bij)m×n​,其中

bij=aiji=1maij2,i=1,2,m;j=1,2,,n1

构造加权规范阵C=(cij)m×n

设由决策人给定各属性的权重向量为w=[w1,w2,,wn]T,则

cij=wjbij,i=1,2,,m;j=1,2,,n(2)

确定正理想解 和负理想解

设正理想解 C的第 j个属性值为cj,负理想解C0j个属性值为cj0,则
正理想解:

cj={maxicij,j,minicij,j,j=1,2,,n(3)

负理想解:

cj0={minicij,j,maxicij,j,j=1,2,,n(4)

计算各方案到正理想解与负理想解的距离

备选方案di到正理想解的距离为

si=j=1n(cijcj)2,i=1,2,,m(5)

备选方案di到负理想解的距离为

si0=j=1n(cijcj0)2,i=1,2,,m(6)

计算各方案的排序指标值(即综合评价指数)

fi=si0/(si0+si),i=1,2,,m(7)

fi​由大到小排列方案的优劣次序。

三、R语言计算示例

研究生院试评估: 为了客观地评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位委员会办公室组织过一次研究生院的评估。为了取得经验,先选5所研究生院,评价五所研究生院教学质量,收集有关数据资料进行了试评估。下表给出所用数据:

人均专著x1(本/人) 生师比x2 科研经费x3 (万元、年) 逾期毕业率x4 (%)
1 0.1 5 5000 4.7
2 0.2 6 6000 5.6
3 0.4 7 7000 6.7
4 0.9 10 10000 2.3
5 1.2 2 400 1.8

3.1 构造初始决策矩阵

D=(dij)m×n。据题意可以判断x1,x3是效益型属性,x2,x4为消费型属性.

D <- matrix(c(0.1, 0.2, 0.4, 0.9, 1.2,
              1/5, 1/6, 1/7, 1/10, 1/2,
              5000, 6000, 7000, 10000, 400,
              1/4.7, 1/5.6, 1/6.7, 1/2.3, 1/1.8), nrow = 5)

3.2 数据预处理

按列(属性)对决策矩阵D归一化

col_sum <- apply(D, 2, sum) # 2代表列
ColSum <- matrix(c(col_sum, col_sum, col_sum, col_sum, col_sum ), nrow = 5, byrow = T) # 按行填入
R <- D/ColSum
R
           [,1]       [,2]       [,3]       [,4]
[1,] 0.03571429 0.18025751 0.17605634 0.13897831
[2,] 0.07142857 0.15021459 0.21126761 0.11664251
[3,] 0.14285714 0.12875536 0.24647887 0.09749224
[4,] 0.32142857 0.09012876 0.35211268 0.28399915
[5,] 0.42857143 0.45064378 0.01408451 0.36288780

3.3 信息熵法计算权重

Entropy <- function(x) -sum(x*log(x))/log(5)
E <- apply(R, 2, Entropy)
F <- 1 - E
w <- F/sum(F)
 w
[1] 0.3670204 0.2179919 0.2510037 0.1639840

3.4 正理想和负理想解

#赋权
W <- diag(w)
V <- R %*% W
#计算正理想解和负理想解
v_max <- apply(V, 2, max)
v_min <- apply(V, 2, min)

3.5 与正理想解的相对接近度计算

#计算正负理想距离
V_MAX <- matrix(c(v_max, v_max, v_max, v_max, v_max), nr = 5, byrow = TRUE)
V_MIN <- matrix(c(v_min, v_min, v_min, v_min, v_min), nr = 5, byrow = TRUE)
fun <- function(x) sqrt(sum(x^2))
s_max <- apply(V-V_MAX, 1, fun)
s_min <- apply(V-V_MIN, 1, fun)
C <- s_min/(s_max + s_min)
C
[1] 0.2157095 0.2533230 0.3423939 0.6089369 0.6669153

因此五所研究院的得分为0.2157095, 0.2533230, 0.3423939, 0.6089369, 0.6669153,故五所研究院的排名顺序5 > 4 > 3 > 2 > 1。

总结

Topsis 法是理解解的排序方法,它借助于评价问题的正理想解和负理想解,对各评价对象进行排序。所谓正理想解是一个虚拟的最佳对象,其每个指标值都是对所有评价对象中的该指标的最好值;而负理想解是另一个虚拟的最差对象,其每个指标值都是所有评价对象中该指标的最差值。求出各评价对象与正理想解和负理想解的距离,并依次对各评价对象进行优劣排序。

参考文献

TOPSIS算法
R语言实战Topsis综合评价法
综合评价与决策方法01——理想解法

posted @   郝hai  阅读(1073)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示