建模比赛中最基础的建模之一,其主要运用与解决评价类问题(例如选择哪种方案最好、运用那位员工表现最优秀等等)
高考报考时小明纠结于是选择华中科技大学还是武汉大学。
这个时候可以根据问题进行一些指标的比较。
这里小明最关心的是以下几点:
项目 | 权重 |
---|---|
学习氛围 | 0.4 |
就业前景 | 0.3 |
男女比例 | 0.2 |
校园景色 | 0.1 |
权重里面的数值表示小明认为的重要程度(权重),其和为1。
接下来小明通过上网查资料,了解以上的内容,并根据内容进行了自己的打分。得到权重表格:
项目 | 权重 | 华中科技大学得分 | 武汉大学得分 |
---|---|---|---|
学习氛围 | 0.4 | 0.7 | 0.3 |
就业前景 | 0.5 | 0.5 | 0.5 |
男女比例 | 0.2 | 0.7 | 0.3 |
校园景色 | 0.1 | 0.25 | 0.75 |
由这个权重表格得到了华科和武大的比分
华中科技大学最终得分:
0.4×0.7+0.5×0.5+0.2×0.7+0.1×0.25=0.515
武汉大学最终得分:
0.4×0.3+0.5×0.5+0.2×0.7+0.25×0.75=0.485
因为华科的比分比较高,所以小明最终选择去了华中科技大学。
根据这个例子,使用打分解决评价问题,只需要我们补充完成下面这张表格即可:
指标权重 | 方案1 | 方案2 | … | |
---|---|---|---|---|
指标1 | a | b | b | b |
指标2 | a | c | c | c |
指标3 | a | d | d | d |
… | a | e | e | e |
其中相同字母的单元格的和为1,它们表示针对某一因素所占的权重。
填好志愿以后,小明想出去旅游,在查阅了网上的攻略之后,他初步选择了苏杭、北戴河、和桂林三地之一做为目标景点。请你确定评价指标、形成评价体系来为小明选择最佳的方案。
做为评价类问题,首先要想三个问题:
① 我们的评价目标是什么?
② 我们为了达到这个目标有哪几种方案可以选择?
③评价的标准是什么或者说指标是什么?
针对小明旅游问题我们开始回答这三个问题:
问题 | 回答 |
---|---|
评价目标 | 为小明同学选择最佳的旅游景点 |
可选方案 | 苏杭、北戴河、桂林 |
问题指标 | 这个题目上没有相关数据支撑,需要调查相关资料 |
假如我们调查了相关的资料,得到了以下的五个指标:
①景点景色
②旅游花费
③居住环境
④饮食情况
⑤交通便利程度
接下来就是给这五个指标定权重,但是如果直接定指标的话需要同时考虑五个指标的占比程度的权重,这个权重难以确定,往往考虑不周,而且主观上可能还会有变化。
所以这里引入层次分析法的思想:两个两个指标进行比较,最终根据两两比较的结果来推算出权重。比较的方法如下:
标度 | 含义 |
---|---|
1 | 表示两个因素相比,具有同样重要性 |
3 | 表示两个因素相比,一个因素比另一个因素稍微重要 |
5 | 表示两个因素相比,一个因素比另一个因素明显重要 |
7 | 表示两个因素相比,一个因素比另一个因素强烈重要 |
9 | 表示两个因素相比,一个因素比另一个因素极端重要 |
2、4、6、8 | 上述两相邻判断的中值 |
倒数 | A和B相比如果标度为3,那么B和A相比就是3/1 |
接下来进入提问环节:
Q1:请你比较景色和花费的重要程度
A1:我认为花费比景色略微重要(介于同等重要1和稍微重要3之间吧)
Q1:请你比较景色和居住的重要程度
A1:我认为景色比居住要重要一点(介于略微重要3和明显重要5之间吧)
以此类推,提问小明十次【组和数C(5,2)】,根据他的回答,我们的到了这张表:
景色 | 花费 | 居住 | 饮食 | 交通 | |
---|---|---|---|---|---|
景色 | 1 | 1/2 | 4 | 3 | 3 |
花费 | 2 | 1 | 7 | 5 | 5 |
居住 | 1/4 | 1/7 | 1 | 1/2 | 1/3 |
饮食 | 1/3 | 1/5 | 2 | 1 | 1 |
交通 | 1/3 | 5/1 | 3 | 1 | 1 |
上面是一个5×5的方阵,我们记为A,对应元素为aij,这个方阵有如下特点:
①aij表示的意义是,与指标j相比,i的重要程度。
②当i与j,两个指标相同,因此同等重要记为1,这就解释了主对角线元素为1。
③ aij>0,且满足aij×aji=1 (我们称满足这一条件的矩阵为正互反矩阵)
实际上,上面这个矩阵就是层次分析法中的判断矩阵。
接下来开始判断苏杭、北戴河、桂林各个指标的权重,下面以景色为例:
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 4 |
北戴河 | 2/1 | 1 | 2 |
桂林 | 1/4 | 1/2 | 1 |
但是这里可能会出现一种情况(不一致现象)如果出现了以下的情况:
苏杭比北戴河景色好一点,苏杭>北戴河
苏杭和桂林景色一样好,苏杭=桂林
北戴河比桂林景色好一点,北戴河>桂林
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 1 |
北戴河 | 2/1 | 1 | 2 |
桂林 | 1 | 1/2 | 1 |
就会出现矛盾之处,被称为不一致现象。
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 4 |
北戴河 | 2/1 | 1 | 2 |
桂林 | 1/4 | 1/2 | 1 |
上面就是一个一致矩阵,其中的元素有:
a i j = i 的 重 要 程 度 j 的 重 要 程 度 a_{ij}= \frac{i的重要程度}{j的重要程度} aij=j的重要程度i的重要程度
a j i = j 的 重 要 程 度 i 的 重 要 程 度 a_{ji}= \frac{j的重要程度}{i的重要程度} aji=i的重要程度j的重要程度
a j k = j 的 重 要 程 度 k 的 重 要 程 度 a_{jk}= \frac{j的重要程度}{k的重要程度} ajk=k的重要程度j的重要程度
所以一致矩阵的特点就是:各行和格列之间是成倍数关系的。
在使用判断矩阵求权重之前,必须对其进行一致性检验。
原理:检验我们构造的判断矩阵和一致矩阵是否有太大的区别。
因为一致矩阵(A)为n阶方阵,且r(A)=1,则A有一个特征值为tr(A)=n,其余特征值均为0,并且可以很容易得到,特征值为n时,对应的特征向量刚好为
k ( 1 a 11 , 1 a 12 , . . . . . . , 1 a 1 n ) T k(\frac{1}{a_{11},}\frac{1}{a_{12}},......,\frac{1}{a_{1n}})^T k(a11,1a121,......,a1n1)T
引理:n介正互反矩阵A为一致矩阵时当且仅当最大特征值λmax=n。 且当正互反矩阵A非一致时,一定满足λmax>n。
接下来开始进行一致性检验,分为三步:
第一步:计算一致性指标CI
C I = λ m a x − n n − 1 CI=\frac{\lambda_{max}-n}{n-1} CI=n−1λmax−n
第二步:查找对应的平均随机一致性指标RI
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RI | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 | 1.52 | 1.54 | 1.56 | 1.58 | 1.59 |
注:在实际运用中,n很少超过10,如果指标个数大于10,则可以考虑建立二级指标体系。
第三步:计算一致性比例CR
C R = C I R I CR=\frac{CI}{RI} CR=RICI
如果CR<0.1,则可以认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
先从简单的一致矩阵入手,先来看一致矩阵:
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 4 |
北戴河 | 2/1 | 1 | 2 |
桂林 | 1/4 | 1/2 | 1 |
开始计算权重,因为一致矩阵各行格列成比例,所以我们随便选取其中一列下面选取的时第一列。
苏杭=1/(1+0.5+0.25)
北戴河=0.5/(1+0.5+0.25)
桂林=0.25/(1+0.5+0.25)
注:权重要进行归一化处理
非一致矩阵权重的计算有三种方法,分别为:算数平均法,几何平均法,特征值法。
1.算数平均法
下面来看算数平均法如何计算非一致矩阵权重:
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 5 |
北戴河 | 2/1 | 1 | 2 |
桂林 | 1/5 | 1/2 | 1 |
因为非一致矩阵各行格列不成比例,所以我们每一列都需要计算权重。
第一列:
苏杭=1/(1+0.5+0.2)=0.5882
北戴河=0.5/(1+0.5+0.2)=0.2941
桂林=0.2/(1+0.5+0.2)=0.1177
第二列:
苏杭=2/(2+1+0.5)=0.5714
北戴河=1/(2+1+0.5)=0.2857
桂林=0.5/(2+1+0.5)=0.1429
第三列:
苏杭=5/(5+2+1)=0.625
北戴河=2/(5+2+1)=0.25
桂林=1/(5+2+1)=0.125
综合上述三列,我们求平均权重:
苏杭=(0.5882+0.5714+0.625)/3=0.5949
北戴河=(0.2941+0.2857+0.25)/3=0.2766
桂林=(0.1177+0.1429+0.125)/3=0.1285
总结:用算数平均法计算权重总体上分为三步:
第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
第二步:将归一化的各列相加(按列求和)
第三步:将相加后得到的向量中每个元素除以n即可得到权重。权重即为:
ω = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j , ( i = 1 , 2 , . . . , n ) \omega=\frac{1}{n}\sum_{j=1}^n\frac{a_{ij}}{\sum_{k=1}^{n}a_{kj}},(i=1,2,...,n) ω=n1j=1∑n∑k=1nakjaij,(i=1,2,...,n)
2.几何平均法
对于非一致矩阵,还有一种使用几何平均法求权重的方法,和算数平均法类似,下面就直接给出计算方法了。
第一步:将A的元素按照行相乘得到一个新的列向量
第二步:将新的向量每个分量开n次方
第三步:对该列向量进行归一化即可得到权重向量。那么用几何平均法得到的权重向量为:
ω = ( ∏ j = 1 n a i j ) 1 n ∑ k = 1 n ( ∏ j = 1 n a k j ) 1 n ( i = 1 , 2 , . . . , n ) \omega=\frac{(\prod_{j=1}^na_{ij})^\frac{1}{n}}{\sum_{k=1}^n(\prod_{j=1}^na_{kj})^{\frac{1}{n}}}(i=1,2,...,n) ω=∑k=1n(∏j=1nakj)n1(∏j=1naij)n1(i=1,2,...,n)
下面我们进行通过两种方法得出权重比较:
算数平均法权重 | 几何平均法权重 | |
---|---|---|
苏杭 | 0.5949 | 0.5954 |
北戴河 | 0.2766 | 0.2764 |
桂林 | 0.1285 | 0.1283 |
3.特征值法
在一致矩阵当中有一个特征值为n,其余特征值均为0。另外,我们可以很容易地得到,特征值为n时,对应的特征向量刚好为:
k ( 1 a 11 , 1 a 12 , . . . . . . , 1 a 1 n ) T k(\frac{1}{a_{11},}\frac{1}{a_{12}},......,\frac{1}{a_{1n}})^T k(a11,1a121,......,a1n1)T
这一特征向量刚好为一致矩阵的第一列.
假如我们的判断矩阵一致性可以接受,那么我们可以仿照一致矩阵权重的求法。
第一步:求出矩阵A的最大特征值以及其对应的特征向量
第二步:对求出的特征向量进行归一化即可得到我们的权重
算数平均法权重 | 几何平均法权重 | 特征值法权重 | |
---|---|---|---|
苏杭 | 0.5949 | 0.5954 | 0.5954 |
北戴河 | 0.2766 | 0.2764 | 0.2764 |
桂林 | 0.1285 | 0.1283 | 0.1283 |
(这里特征值法和几何平均值法权重相等,一定是巧合,一定是巧合。在比赛当中,我们一般情况下是留下特征值法)
景色 | 花费 | 居住 | 饮食 | 交通 | |
---|---|---|---|---|---|
景色 | 1 | 1/2 | 4 | 3 | 3 |
花费 | 2 | 1 | 7 | 5 | 5 |
居住 | 1/4 | 1/7 | 1 | 1/2 | 1/3 |
饮食 | 1/3 | 1/5 | 2 | 1 | 1 |
交通 | 1/3 | 5/1 | 3 | 1 | 1 |
我们对于这个判断矩阵分别使用三种方法,得到权重:
算数平均值法 | 几何平均法 | 特征值法 | |
---|---|---|---|
景色 | 0.2632 | 0.2636 | 0.2636 |
花费 | 0.4744 | 0.4773 | 0.4758 |
居住 | 0.0545 | 0.0531 | 0.0538 |
饮食 | 0.0985 | 0.0988 | 0.0981 |
交通 | 0.1103 | 0.1072 | 0.1087 |
这里我们保留特征值法的权重,下面我们在计算出其他指标对应景点的权重,得到权重矩阵:
指标权重 | 苏杭 | 北戴河 | 桂林 | |
---|---|---|---|---|
景色 | 0.2636 | 0.5954 | 0.2764 | 0.1283 |
花费 | 0.4758 | 0.0819 | 0.2363 | 0.6817 |
居住 | 0.4758 | 0.0819 | 0.2363 | 0.6817 |
饮食 | 0.0981 | 0.6337 | 0.1919 | 0.1744 |
交通 | 0.1987 | 0.1667 | 0.1667 | 0.6667 |
下面将景点列和权重指标列相乘求和就可以得出每个景点的得分啦。
苏杭得分:0.5954×0.2636+0.0819×0.4758+0.4286×0.0538+0.6337×0.0918+0.1667×0.1087=0.299
类似的可以得到北戴河得分为0.245,桂林得分为0.455,因此最佳的旅游景点为桂林。在这里可以使用EXCEL计算来减轻工作量(F4可以锁定单元格)
这里用mermaid画的有点丑,但是是这个意思,大家在书写论文的时候可以用PPT来画这个层次结构图。图的左侧要写出目标层(O),标准层(C),方案层(P )
注:如果用到了层次分析法,那么这个层次分析结构图一定要放在你的建模论文当中哦。
这里判断矩阵几乎都是自己填的(dddd)。
标准层,方案层的判断矩阵的数值要结合实际来填写,如果题目中有其他数据,可以考虑利用这些数据进行计算。
三种权重计算方法:(1)算数平均法(2)几何平均法 (3)特征值法
这里大家三种方法都需要使用,并在论文中这样写:
为了保证结果的稳健性,本文采用了三种方法分别求出了权重,再根据得到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了采用单一方法所产生的偏差,得出的结论将更全面、更有效。
如果一致性检验时发现CR>0.1,我们就对判断矩阵A进行修改,具体吧,就往一致矩阵上调整(一致性矩阵各行成倍数关系~)。
现在把我们算出来的值填到最后的权重矩阵当中,并求出得分,就可以得到最优目标了。
① 评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵的差异可能会很大。
②如果决策层中指标的数据是已知的,那我们就无法自己填写数据,用层次分析法就不客观了。就不能使用层次分析法了。要使用TOPSIS法,后面会具体介绍。
好了,层次分析法就介绍到这里了,大家喜欢的话可以点个关注支持以下,嘻嘻。