TOPSIS法(优劣解距离法)
作者:互联网
目录
一、模型介绍
层次分析法的一些局限性:
(1)评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵差异可能会很大。
(2)若决策层中指标的数据是已知的,那么我们无法利用数据来使得评价的更加准确。
开始举例:
小明同宿舍共有四名同学,他们第一学期的高数成绩如下表所示:
姓名 成绩
小明 89
小王 60
小张 74
花花 99请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。
逐步解决问题的过程:
1、先类比上一讲层次分析法中要求的那个权重
该想法看上去是不合理的。
因为可以随便修改成绩,只要保证排名不变,那么评分就不会改变!
2、那么比较好的做法是什么呢?
最高成绩max : 99
最低成绩min : 60
构造计算评分的公式:
这时候就得到下表:
这里要解释三点:
(1)比较的对象一般要远大于两个。(例如比较一个班级的成绩)
(2)比较的指标也往往不只是一个方面的,例如成绩、工时数、课外竞赛得分等。
(3)有很多指标不存在理论上的最大值和最小值,如衡量经济增长水平的指标:GDP增速。
这种做法明显较为妥当!
现在我们将问题拓展一下:增加指标个数。
新增加了一个指标,现在要综合评价四位同学,并为他们进行评分。
解释:
成绩是越高(大)越好,这样的指标称为极大型指标(效益型指标)。
与他人争吵的次数越少(越小)越好,这样的指标称为极小型指标(成本型指标)。
逐步解决拓展问题的过程:
1、统一指标类型
将所有的指标转化为极大型称为指标正向化(最常用)。
极小型指标转换为极大型指标的公式:max - x
2、标准化处理
为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理。
标准化处理的计算公式:
代码:
X = [89,1; 60,3; 74,2; 99,0]
[n , m] = size(X)
X ./ repmat(sum(X.*X) .^ 0.5, n, 1)
那么如何计算得分呢?
类比只有一个指标计算得分:
具体是如下图处理:
X = [89,1;60,3;74,2;99,0]
[n , m] = size(X);
Z = X ./ repmat(sum(X.*X) .^ 0.5,n,1);
D_P = sum([(Z - repmat(max(Z),n,1)).^2 ],2) .^ 0.5 %D+向量
D_N = sum([(Z - repmat(min(Z),n,1)).^2 ],2) .^ 0.5 %D-向量得:
二、模型总结
1、将原始矩阵正向化
最常见的四种指标:
所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。(转换的函数形式可以不唯一哦~ )
(1)极小型指标 → 极大型指标
极小型指标转换为极大型指标的公式:max - x
如果所有的元素均为正数,那么也可以使用 1 / x
注意:正向化的公式不唯一,大家也可以结合自己的数据进行适当的修改。
(2)中间型指标 → 极大型指标
中间型指标:指标值既不要太大也不要太小,取某特定值最好(如水质量评估 PH 值)
注意:正向化的公式不唯一,大家也可以结合自己的数据进行适当的修改。
(3)区间型指标 → 极大型指标
区间型指标:指标值落在某个区间内最好,例如人的体温在36°~37°这个区间比较好。
注意:正向化的公式不唯一,大家也可以结合自己的数据进行适当的修改。
2、正向化矩阵标准化
标准化的目的是消除不同指标量纲的影响。
注意:标准化的方法有很多种,其主要目的就是去除量纲的影响,未来我们还可能见到更多种的标准化方法,例如:(x‐x的均值)/x的标准差;具体选用哪一种标准化的方法在多数情况下并没有很大的限制,这里我们采用的是前人的论文中用的比较多的一种标准化方法。
3、计算得分并归一化
标签:disp,TOPSIS,优劣,矩阵,距离,指标,向量,正向,输入 来源: https://blog.csdn.net/m0_52711790/article/details/121268224