TOPSIS优劣解距离法

问题提出

生活中我们长长要进行评价,由于层次分析法决策层不能太多,而且构造判断矩阵相对主观,因此引入Topsis法

例:A想找个对象,但是喜欢他的人太多,不知道怎么选择,经过层层考察,留下三个候选人。

候选人颜值脾气(争吵次数)
A910
B87
C63

在理想状态下:

  • 最好的对象应该是颜值9,脾气3
  • 最差的对象应该是颜值6,脾气10
  • 把(9,3),(6,10)作为二维平面上的一个点
  • 距离最优点最近或者距离最差点最远的就是综合条件最好的

基本概念

TOPSIS法是一种常用的总和评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。

TOPSIS法引入两个基本概念:

理想解:设想的最优解(方案),它的各个属性值都达到各备选方案中的最好的值。

负理想解:设想的最劣的解(方案),它的各个属性值都达到各备选方案中的最坏的值。

方案排序的规则是把各备选方案与理想解和负理想解作比较,若其中有一个方案最接近理想解,而同时又远离负理想解,则该方案是备选方案中最好的方案。TOPSIS通过最接近理想解且最远离负理想解来确定最优选择

模型原理

TOPSIS法是一种理想目标相似性的顺序选优技术,在多目标决策分析中是一种非常有效的方法。它通过归一化后的数据规范化矩阵,找出多个目标中最优目标和最劣目标,分别计算各评价目标与理想解和反理想解的距离,获得各目标与理想解的贴近度,按理想解贴近度的大小排序,以此作为评价目标优劣的依据。贴近度取值在0~1之间,该值越接近1,表示相应的评价目标越接近最优水平;反之,该值越接近0,表示评价目标越接近最劣水平。

基本步骤

  • 将原始矩阵正向化,就是要将所有的指标类型统一转化为极大性指标
  • 正向矩阵标准化,标准化的方法有很多,其主要目的就是去除量纲的影响,保证不同评价指标在同一数量级,且数据大小排序不变
  • 计算得分并归一化

\(S_{i}=\frac{D_{i}^{-}}{D_{i}^{+}+D_{i}^{-}}\)

其中\(S_{i}\)为得分,\(D_{i}^{+}\)为评价对象与最大值的距离,\(D_{i}^{-}\)为评价对象与最小值的距离

继续完善例题

A考虑到觉得光靠颜值和脾气可能考虑的不够全面,就又加上了身高和体重两个指标,而且他认为身高165是最好,体重在90-100斤是最好。

候选人颜值脾气(争吵次数)身高体重
A910175120
B8716480
C6315790

在增加了多项指标后,我们发现不同指标的最优趋向并不相同,如果简单的将其画图,并不能得到最优点,因此我们需要将原始矩阵正向化。

原始矩阵正向化

指标名称指标特点例子
极大性(效益型)指标越大(多)越好颜值、成绩、GDP
极小型(成本型)指标越小(少)越好脾气、费用、坏品率
中间型指标越接近某个值越好身高、水质PH值
区间型指标落在某个区间最好体重、体温

将原始矩阵正向化,就是要将所有的指标类型统一转化为极大性指标

指标名称公式
极大型(效益型)指标/
极小型(成本型)指标\(\tilde{x}=max-x\),\(\tilde{x}\)为转化后指标,max为指标最大值,x为指标值
中间型指标\(\left\{ x_{i}\right\}\)是一组中间型序列,最优值是\(x_{best}\),\(M=max\left\{\left | x_{i}-x_{best}\right |\right\}\),\(\tilde{x}_{i}=1-\frac{\left | x_{i}-x_{best}\right | }{M}\)
区间型指标\(\left\{ x_{i}\right\}\)是一组区间型序列,最佳区间为[a,b],正向化公式如下,\(M=max\left\{a-min\left\{x_{i}\right\},max\left\{x_{i}\right\}-b\right\}\),\(\tilde{x}_{i}=\begin{cases}
1-\frac{a-x_{i}}{M},x_{i}<a\\
1,a\le x_{i}\le b\\1-\frac{x_{i}-b}{M},x_{i}>b\end{cases}\)

极小型指标正向化:

候选人脾气(争吵次数)
A10
B7
C3

根据公式可得转化为极大性指标的数据:

A=10-10=0,B=10-7=3,C=10-3=7

中间型指标正向化

候选人身高
A175
B164
C157

\(\left\{ x_{i}\right\}\)={175,164,175},最优值\(x_{best}\)为165,\(M_{A}=10,M_{B}=1,M_{C}=8\),其中最大值为10,因此M=10,\(\tilde{x}_{ia}=1,\tilde{x}_{ib}=\frac{1}{10},\tilde{x}_{ic}=\frac{8}{10}\)

区间型指标正向化

候选人体重
A120
B80
C90

其中最佳区间为[90,100],根据公式可得M=max{90-80,120-100}=20

候选人B=80<90区间适用公式B=\(1-\frac{a-x_{i}}{M}\)=\(\frac{1}{2}\)

候选人C=90在区间内适用公式C=1

候选人A大于区间适用公式A=\(1-\frac{x_{i}-b}{M}\)=0

经过矩阵正向化后将所有指标转化为极大型指标

候选人颜值脾气身高体重
A9000
B830.90.5
C670.21

正向化矩阵标准化

标准化的目的是消除不同指标量纲的影响,与归一化类似。

对于标准化矩阵记为Z,Z中的每一个元素:

\(Z_{ij}=\frac{x_{ij} }{\sqrt{ {\textstyle \sum_{i=1}^{n}}a_{ij}^{2}}}\)

(每一个元素除以根号下其所在列的元素的平方和)

标准化后,还需给不同指标加上权重,采用的权重确定方法有层次分析法、熵权法、Delphi法、对数最小二乘法等。在本例里认为各个指标的权重相同

经过正向化标准化后的矩阵如下:

候选人颜值脾气身高体重
A0.669000
B0.5950.3940.9760.447
C0.4460.9190.2170.894

其中以A颜值为例,计算标准化矩阵:

\(A=\frac{9}{\sqrt{9^2+8^2+6^2 }}\)

计算得分并归一化

经过上一步得到标准化矩阵Z

定义最大值为\(Z^+\)=矩阵每列最大值既\((Z_1^+,Z_2^+,…,Z_n^+)\)

定义最小值为\(Z^-\)=矩阵每列最小值既\((Z_1^-,Z_2^-,…,Z_n^-)\)

定义第i个评价指标与最大值的距离\(D_{i}^{+} =\sqrt{ {\textstyle \sum_{j=1}^{m}\left ( Z_{j}^{+}-Z_{ij} \right )^2 } }\)

定义第i个评价指标与最小值的距离\(D_{i}^{-} =\sqrt{ {\textstyle \sum_{j=1}^{m}\left ( Z_{j}^{-}-Z_{ij} \right )^2 } }\)

那么我们可以计算出所有i个评价对象未归一化的得分:\(S_{i}=\frac{D_{i}^{-}}{D_{i}^{+}+D_{i}^{-}}\)

例:

矩阵A\(\begin{bmatrix} \ 1&2&4\\2&3&5\\3&4&6\end{bmatrix}\)

每列最大值为{3,4,6},每列最小值为{1,2,4}

第一个指标\(D_1^+=\sqrt{(3-1)^2+(4-2)^2+(6-4)^2}\)

第二个指标\(D_2^+=\sqrt{(3-2)^2+(4-3)^2+(6-5)^2}\)

第三个指标\(D_3^+=\sqrt{(3-3)^2+(4-4)^2+(6-6)^2}\)

最小值距离同理。

将上述表格计算得分

候选人得分
A0.122
B0.624
C0.622

归一化并转换为百分制

候选人得分
A8.9
B45.7
C45.5
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇