(续上篇文章)层次分析法的局限

上一篇文章中,层次分析法有这样的局限

  1. 评价决策层不能太多;
  2. 数据是已知的的话,便无法使用层次分析法进行精确的分析评价;

因此,为对这些情况做出更为精准的分析,我们可以使用Topsis优劣解距离法。

Topsis优劣解距离法介绍

Topsis优劣解距离法是一种综合评价方法,主要优点是能够充分利用原始数据来进行分析。

主要步骤为:

  1. 将原始数据正向化
  2. 将正向化矩阵进行标准化(消除量纲的影响)
  3. 计算样本数据与最大值、最小值的距离
  4. 根据公式,利用距离计算未归一化的得分
  5. 最后进行排序即可

正向化简介

指标名称 指标特点 实例
极大型指标 数据越大越好 成绩、水体氧气含量……
极小型指标 数据越小越好 细菌含量、水体富营养化程度……
中间型指标 数据越靠近一个中间的值越好 PH值……
区间型指标 数据在一个区间中最好 人体体温、水体植物量

在Topsis第一步中,我们需要将数据进行正向化处理,一般的处理模式都是将其他类型指标转化为极大型指标。下面叙述转化方法:

  1. 极小型指标 →\rightarrow→ 极大型指标
    转化公式为:max−x转化公式为:max-x转化公式为:max−x同时,如果所有数据都是正数(注意正数不包含0哦~~)也可以使用公式 1x\frac{1}{x}x1​,但主要推荐使用 max−xmax-xmax−x 来转化。
    (正向化公式不唯一,如果有更好的公式,欢迎告诉我,我会持续更新hhh)
  2. 中间型指标 →\rightarrow→ 极大型指标
    中间型指标一般会有一个最佳数值,记为 xbestx_{best}xbest​ ,设 {xix_ixi​} 是中间型指标序列,那么正向化公式为:M=max∣xi−xbest∣xi^=1−∣xi−xbest∣MM = max{|x_i - x_{best}|} \\ \hat{x_i} = 1 - \frac{|x_i - x_{best}|}{M}M=max∣xi​−xbest​∣xi​^​=1−M∣xi​−xbest​∣​例如:对于PH值的正向化(xbest=7,max=3x_{best}=7, max=3xbest​=7,max=3)
PH PH(正向化后)
1 1−63=−11-\frac{6}{3}=-11−36​=−1
6 1−13=231-\frac{1}{3}=\frac{2}{3}1−31​=32​
8 1−13=231-\frac{1}{3}=\frac{2}{3}1−31​=32​
10 1−33=01-\frac{3}{3}=01−33​=0
  1. 区间型指标 →\rightarrow→ 极大型指标
    区间型指标一般也会有一个最佳区间 [a,b][a, b][a,b] ,同样设 {xi}\{x_i\}{xi​} 是区间型指标序列,那么正向化公式为:M=max{a−min{xi},max{xi−b}}xi^={1−a−xiM,a<xi,1,a≤xi≤b,1−xi−bM,xi<bM = max\{a-min\{x_i\}, max\{x_i-b\}\} \\ \\ \hat{x_i}=\left\{ \begin{aligned} & 1-\frac{a-x_i}{M}, a<x_i, \\ \\ & 1, a \leq x_i \leq b, \\ \\ & 1-\frac{x_i-b}{M}, x_i<b \end{aligned} \right.M=max{a−min{xi​},max{xi​−b}}xi​^​=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​​1−Ma−xi​​,a<xi​,1,a≤xi​≤b,1−Mxi​−b​,xi​<b​例如对于人体体温的转化:
    a=36,b=37,M=max{36−35.2,38.4−37}=1.4a=36, b=37, M = max\{36-35.2, 38.4-37\}=1.4a=36,b=37,M=max{36−35.2,38.4−37}=1.4
体温 提问(正向化后)
35.2 0.4286
35.8 0.8571
36.6 1
37.1 0.9286
37.8 0.4286
38.4 0

下面来看一个具体的例子

  1. 原始数据为:
姓名 成绩 过失次数 竞赛次数 总和
小明 89 2 2 50
小刚 60 0 4 60
小张 74 1 6 70
小李 99 3 8 80

由原始数据可知,成绩指标为极大型指标,过失次数为极小型指标,竞赛次数为区间型指标,总和为中间型指标。

根据上面描述的方法可以得到正向化矩阵为:X=[89100.56031174210.599000]X= \begin{bmatrix} 89 & 1 & 0 & 0.5 \\ 60 & 3 & 1 & 1 \\ 74 & 2 & 1 & 0.5 \\ 99 & 0 & 0 & 0\\ \end{bmatrix}X=⎣⎢⎢⎡​89607499​1320​0110​0.510.50​⎦⎥⎥⎤​2. 将正向化的矩阵进行标准化去除量纲的影响
标准化公式为:zij=xij∑i=1nx02(每一个元素/其所在列的元素的平方和)标准化公式为:z_{ij} = \frac{x_{ij}}{\sqrt{\sum_{i=1}^n x_0^2}}(每一个元素 / \sqrt{\text{其所在列的元素的平方和}})标准化公式为:zij​=∑i=1n​x02​​xij​​(每一个元素/其所在列的元素的平方和​) S=[0.54370.267300.40820.36650.80180.70710.81650.45200.53450.70710.40820.6048000]S=\begin{bmatrix} 0.5437 & 0.2673 & 0 & 0.4082 \\ 0.3665 & 0.8018 & 0.7071 & 0.8165 \\ 0.4520 & 0.5345 & 0.7071 & 0.4082 \\ 0.6048 & 0 & 0 & 0\\ \end{bmatrix}S=⎣⎢⎢⎡​0.54370.36650.45200.6048​0.26730.80180.53450​00.70710.70710​0.40820.81650.40820​⎦⎥⎥⎤​
3. 将标准化矩阵进行归一化

  • 求解样本数据与最大值和最小值的距离

定义最大值 Z+=(max{z11,z21,⋯,zn1},max{z12,z22,⋯,zn2},⋯,max{z1m,z2m,⋯,znm})Z^+ = (max\{z_{11}, z_{21}, \cdots, z_{n1}\}, max\{z_{12}, z_{22}, \cdots, z_{n2}\}, \cdots, max\{z_{1m}, z_{2m}, \cdots, z_{nm}\})Z+=(max{z11​,z21​,⋯,zn1​},max{z12​,z22​,⋯,zn2​},⋯,max{z1m​,z2m​,⋯,znm​})
定义最小值 Z−=(min{z11,z21},⋯,zn1},min{z12,z22,⋯,zn2},⋯,min{z1m,z2m,⋯,znm})Z^- = (min\{z_{11}, z_{21}\}, \cdots, z_{n1}\}, min\{z_{12}, z_{22}, \cdots, z_{n2}\}, \cdots, min\{z_{1m}, z_{2m}, \cdots, z_{nm}\})Z−=(min{z11​,z21​},⋯,zn1​},min{z12​,z22​,⋯,zn2​},⋯,min{z1m​,z2m​,⋯,znm​})

因此,第i(i=1,2,⋯,n)i(i=1, 2, \cdots, n)i(i=1,2,⋯,n)个评价对象与最大值的距离Di+=∑j=1m(Zj+−zij)2D_i^+ = \sqrt{\sum_{j=1}^{m}(Z_j^+-z_{ij})^2}Di+​=∑j=1m​(Zj+​−zij​)2​
第i(i=1,2,⋯,n)i(i=1, 2, \cdots, n)i(i=1,2,⋯,n)个评价对象与最小值的距离Di−=∑j=1m(Zj−−zij)2D_i^- = \sqrt{\sum_{j=1}^{m}(Z_j^- - z_{ij})^2}Di−​=∑j=1m​(Zj−​−zij​)2​
那么,我们可以计算出第 i(i=1,2,⋯,n)i(i=1, 2, \cdots, n)i(i=1,2,⋯,n) 个评价对象未归一化的得分:Si=Di−Di++Di−S_i = \frac{D_i^-}{D_i^+ + D_i^-}Si​=Di+​+Di−​Di−​​,即:Stand_X=[0.17310.42400.32790.0751]Stand\_X=\begin{bmatrix} 0.1731\\ 0.4240\\ 0.3279\\ 0.0751\\ \end{bmatrix}Stand_X=⎣⎢⎢⎡​0.17310.42400.32790.0751​⎦⎥⎥⎤​
因此可以得到最终排序结果为:

姓名 排序
小刚 1
小张 2
小明 3
小李 4

总结:

  1. Topsis优劣距离法的核心在于计算距离z与最小值的距离z与最大值的距离+z与最小值的距离\frac{\text{z与最小值的距离}}{\text{z与最大值的距离+z与最小值的距离}}z与最大值的距离+z与最小值的距离z与最小值的距离​
  2. 要区别归一化和标准化,前者是对计算结果计算比例,后者是去除量纲的影响。

模型拓展

Topsis模型还可以加入权重,因此可以将上一篇文章中的层次分析法应用于该模型中。只需要在计算距离时乘以权重即可。具体公式为:Di+=∑j=1mωj(Zj+−zij)2Di−=∑j=1mωj(Zj−−zij)2D_i^+ = \sqrt{\sum_{j=1}^{m}\omega_j(Z_j^+-z_{ij})^2} \\ D_i^- = \sqrt{\sum_{j=1}^{m}\omega_j(Z_j^--z_{ij})^2}Di+​=j=1∑m​ωj​(Zj+​−zij​)2​Di−​=j=1∑m​ωj​(Zj−​−zij​)2​(ωj\omega_jωj​为权重)

这就是Topsis优劣距离法的步骤。其中的数据处理可以使用MatlabMatlabMatlab编程计算。如果有什么错误的话,烦请告知~~~

有什么建议也请告诉我哦~~~

数学建模学习笔记(二)——Topsis优劣解距离法相关推荐

  1. 【数学建模】Topsis优劣解距离法

    内容来自这篇 https://blog.csdn.net/weixin_43819566/article/details/112342602 评价方法大体上可分为两类,其主要区别在确定权重的方法上.一 ...

  2. TOPSIS(优劣解距离法)【附Python实现代码及可视化代码】

    目录 一.指标正向化 1.极小型指标->极大型指标 2.中间型指标->极大型指标 3.区间型指标->极大型指标 二.标准化处理 三.计算得分并归一化(不带权重) 四.计算得分并归一化 ...

  3. 数学建模学习笔记(四)层次分析法(AHP)

    应用场景: 1.最佳方案选取 2.评价类问题 3.指标体系的优选 步骤: 1.建立层次结构模型: 2.构造判断(成对比较)矩阵: 3.层次单排序及其一致性检验: 4.层次总排序及其一致性检验: 建立层 ...

  4. 数学建模学习笔记(三)熵权法Excel实现

    熵权法步骤: 1.标准化处理 正向指标: Z i j = x i j − m i n ( x j ) m a x ( x j ) − m i n ( x j ) Z_{ij}=\cfrac{x_{ij ...

  5. topsis(优劣解距离法)在matlab上的实现

    TOPSIS 模型是 Hwang 和 Yoon 于 1981 年首次 提出,它是一种根据有限评价对象与理想化目标接 近程度进行排序的方法,通过计算评价对象的最优 值和最劣值来进行排序,当评价对象与最优 ...

  6. TOPSIS 优劣解距离法

    目录 举例介绍 TOPSIS步骤 第一步将原始矩阵正向化 极小型指标-->极大型指标 中间型指标->极大型 区间型-->极大型 第二步正向化矩阵标准化 第三步计算得分并归一化 TOP ...

  7. MATLAB之优劣解距离法Topsis模型

    图片来源于清风视频,强烈推举清风视频学建模 一.什么是优劣解距离法 TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距. 二.一些简单的模型 成 ...

  8. 数学建模——TOPSIS法(优劣解距离法)学习笔记(一)

    一.TOPSIS方法 TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,国内常简 ...

  9. 数学建模学习笔记(2):TOPSIS方法(优劣解距离法)和熵权法修正

    文章目录 TOPSIS方法概述 TOPSIS方法步骤(重点) 熵权法对TOPSIS模型的修正 熵权法的步骤(重点) TOPSIS方法由C.L.Hwang和K.Yoon在1981年首次提出,在国内常简称 ...

最新文章

  1. php+羊,PHP之羊生小羊的问题
  2. js数组遍历、对象遍历、字符串遍历
  3. java语言实现图的深度优先遍历
  4. 从零开始实现主成分分析(PCA)算法
  5. java.util.ListIterator
  6. jboss调jvm参数_在同一台机器上启动多个JBoss A-MQ JVM
  7. CORS error 状态码451
  8. MySQL之在储存过程中使用表名为变量
  9. elastic search与postgresql的数据同步
  10. 三国也风流服务器怎么不稳定呢,三国也风流手游
  11. python自动化办公excel-Python自动化办公之操作Excel文件
  12. 总结_____大二上
  13. 灯火阑珊处,都市夜归人
  14. python如何检验显著性差异_基于python的显著性检验
  15. 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
  16. wps excel 操作指南
  17. java网易云信怎么用_网易云信 SDK
  18. 学前端的你了解这些知识吗?——BFC、IFC、GFC、FFC
  19. 两个整数之间的所有素数,素数个数,素数和
  20. 28 电子商务风险控制

热门文章

  1. Win7系统桌面右下角托盘图标不显示原因和解决方法
  2. 搜狐视频怎么下载到电脑
  3. 腾讯视频怎么开启禁止界面硬件加速
  4. autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示
  5. Jersey中ContainerRequestFilter的使用
  6. Maven依赖排除 禁止依赖传递 取消依赖的方法
  7. linux 环境变量详解,linux环境变量实例详解
  8. java8中的map与flatmap区别
  9. source code怎么用_code-builder代码生成器
  10. mysql配置文件简易代码_MySQL配置文件my.cnf 例子最详细翻译