TOPSIS法(小白必看&文章包含详细源代码及注释) |
您所在的位置:网站首页 › 样本容量的定义是什么 › TOPSIS法(小白必看&文章包含详细源代码及注释) |
这一周我主要学习了TOPSIS法即优劣解距离向量法。 1.AHP的局限性 前两周主要学习了层次分析法,层次分析法存在这样一些局限性: (1)层次分析法主观性很强,我们建模过程中判断矩阵都是自己手动填写的。 (2)层次分析法方案层不能太多,太多的话,构建的判断矩阵很可能不能通过一致性检验。而且随机一致性指标RI表中n也只给到了15。 (3)层次分析法是根据成对比较法和1~9尺度表构建判断矩阵得到数据的,对于一些有已知数据题目,层次分析法是不能很好利用原始数据的。 2.TOPSIS优点 针对AHP的上述局限性,学习TOPSIS可以弥补层次分析法的一些缺点: (1)优劣解距离法可以充分利用原始数据信息,且其结果能充分反应各评价方案与最优方案的接近程度。 (2)对样本容量没有严格限制,数据计算简单易行,无需数据检验。(topsis法适用于两个以上) 3.Topsis法简介 1981年,C.L.Hwang和K.Yoon首次提出了Topsis,全称Technique for Order Preference by Similarity to an Ideal Solution,可翻译为逼近理想解排序法,国内常称为优劣解距离法。它是一种常用的综合评价方法。 4.Topsis的基本过程 (1)原始矩阵正向化,得到正向化矩阵 a.指标类型 指标类型一般分为四种,极大型指标、极小型指标、中间型指标、 区间型指标。 极大型指标越大越好,极小型指标越小越好,中间型指标越接近中 间值越好,区间型指标落在区间内最好。 b.正向化的公式 正向化就是将原始数据指标都转化为极大型指标。 极小型——极大型: 当指标值中没有“0”时也可用公式: 中间型——极大型:(其中mid为中间值) 区间型——极大型:
注:M为距离区间最远的距离,即 当x在区间内时,正向化后的值为1; 当x小于区间下限a时,; 当x大于区间上限b时,; (2)对正向化矩阵标准化 标准化公式:
(3)计算得分并归一化 a.构造评分公式: 评分公式变形: Topsis的思想:最优解即最大值,最劣解即最小值。 b.计算D+与D-: 定义最大值:Z+向量用于存放标准化矩阵中每一列的最大值 定义最小值:Z-向量用于存放标准化矩阵中每一列的最小值 定义第i个(i=1,2,...,n)个评价对象与最大值的距离:等于第i行每一个元素与其所在列的最大值的差的平方和的0.5次方 定义第i个(i=1,2,...,n)个评价对象与最大值的距离:等于第i行每一个元素与其所在列的最小值的差的平方和的0.5次方 c.计算未归一化的得分记为G
d.对得分进行归一化
5.问题思考 (1)为什么要进行正向化? (2)为什么要进行标准化,标准化是为了消除量纲的影响,那么可不可以用下面的公式来实现?
(2)构造评分公式的含义,背后的思想 6.代码思路及实现 (1)通过软件Matlab实现 a.先根据每一步的公式理清思路 b.根据分析,使用for循环实现较为可行 (学习编程软件中for循环相关操作) c.根据步骤分块实现不同的功能 d.代码编写过程中尽量使每一步结果都输出,这样当结果与预期 不符时方便纠错。并且可输入简单的数值对代码进行检验,查找错 误所在之处,进而修改完善。 e .找相关数据进行结果检验,验证结果的准确性。 (2)通过软件SPSS实现 a.论文中有可通过SPSS实现标准化,导入数据,进行相应操作后,标准化结果却与MATLAB中的结果不同。学习SPSS标准化,有两种不同的标准化方式,即z-score标准化和离差标准化。 b.默认的是z-score标准化。其公式不同于我们步骤中的公式。它是基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。 步骤如下: 首先求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;进行标准化处理:zij=(xij-xi)/si,其中zij为标准化后的值;xij为实际值。 最后将逆指标前的正负号对调。 z-score标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。 c.我们MATLAB中使用的公式是SPSS中标准化的规范化方法,也叫离差标准化,是对原始数据的线性变换,使结果映射到[0,1]区间。 可以通过SPSS的语法编辑窗口来编写代码实现TOPSIS(需要学习并掌握SPSS的基础语法才能实现代码的功能实现) (3)MATLAB代码简单思路
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |