层次分析法(Analytic Hierarchy Process,AHP)
1. 简介
层次分析法, 即Analytic Hierarchy Process(AHP)
, 是美国运筹学家 Saaty
于 20
世纪 70
年代初期提出的一种主观赋值评价方法。 层次分析法将与决策有关的元素分解成目标、 准则、方案等多个层次, 并在此基础上进行定性和定量分析, 是一种系统、简便、灵活有效的决策方法。
AHP
的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两之间重要度的比较上,从而把难于量化的定性判断转化为可操作的重要度的比较上面。在许多情况下,决策者可以直接使用AHP
进行决策,极大地提高了决策的有效性、可靠性和可行性,但其本质是一种思维方式,它把复杂问题分解成多个组成因素,又将这些因素按支配关系分别形成递阶层次结构,通过两两比较的方法确定决策方案相对重要度的总排序。整个过程体现了人类决策思维的基本特征,即分解、判断、综合,克服了其他方法回避决策者主观判断的缺点。
这个算法是一个多指标综合评价算法,由于这个算法简单、实用,因此在经管类或者实际生活中应用的非常多,其一般有两个用途:
- 指标定权
给指标制定权重,打个比方,例如选择旅游地这个决策,可能一般我们由以下5
个因素组成,但是每个人(主观)对因素的重视程度不一,ahp
可以实现在无需搜集数据的情况下,给这些指标制定权重。
- 量化方案选择
同样是选择旅游地这个决策,可能我们有一些方案,例如哈尔滨、沈阳、长春这三个方案,层次分析法可以综合以上5
个因素,给这些方案计算得出一个量化得分,例如哈尔滨0.3
分、沈阳0.35
分、长春0.45
分,这样根据分值大小,我们就可以选择得到内心或者经验上最心怡的方案了。
通过上面讲解层次分析法的作用,在生活、工作中其实我们可以应用这个模型的渠道是非常广的,特别是那些需要主观决策的、或者需要用经验判断的决策方案,例如:
- 买房子(主观决策)
- 选择旅游地(主观决策)
- 给员工进行绩效评估(经验判断)
- 选择开店地址(经验判断)
2. 原理
层次分析法的原理,是在分析一个现象或问题之前,首先将现象或问题根据它们的性质分解为有关因素,并根据它们之间的关系分类而形成一个多层次的结构模型。然后通过经验或专家,来判断和衡量低层因素对高层因素的相对重要性,并根据重要性的程度得出权重排序,进而可以量化分析比较。层次分析法的核心是将影响因素层次化和数据化,它把一个抽象的现象或问题由难到易地予以分解,易于对复杂问题进行直观地判断,并作出决策。层次分析法具有将复杂问题简单化且计算简单等优点,应用十分广泛,诸如在人员素质评估、 多方案比较、科技成果评比和工作成效评价等多领域多方面都有运用。
简单地说,层次分析法就是将一个决策事件分解为目标层(例如选择旅游地),准则层(影响决策的因素,例如景色、交通、费用等)以及方案层(指的是方案,例如去广州、长春等地旅游)。
3.步骤
层次分析法应用过程中,大体步骤主要包括四个。第一步是层次结构模型的构建。第二步构造判断矩阵,第三步为层次单排序及其一致性检验,这步即为对指标定权,第四步为层次总排序及其一致性检验,这布如果没有决策层的话,通常可以省略。
PS:一致性检验的含义用于确定构建的判断矩阵是否存在逻辑问题,例如以A、B、C构建判断矩阵,若判定A相当于B为3(A比B稍微重要),A相当于C为1/3(C比A稍微重要),在判断B相当于C时,根据上述的逻辑,理应C比B重要,若我们在构建判断矩阵时,错误填写为B相当于C为3(B比C稍微重要),那么就犯了逻辑错误。
3.1 确定指标体系
顾名思义,在这个层次评价模型里面,我们需要确认整个决策事件的目标层、准则层、方案层
其中,
- 目标层:最优旅游地选择
- 准则层:景色、费用、居住、饮食、旅途
- 方案层:西安、云南、西藏、青海
需要注意的时,准则层如果有多层,例如下图所示,依次类推就行了。
3.2 构造判断矩阵
构造判断矩阵就是通过各要素之间相互两两比较,并确定各准则层对目标层的权重。
简单地说,就是把准则层的指标进行两两判断,通常我们使用Santy
的1-9
标度方法给出。
标度 | 含义 |
---|---|
1 | 表示两个元素相比,具有同样的重要性 |
3 | 表示两个元素相比,前者比后者稍重要 |
5 | 表示两个元素相比,前者比后者明显重要 |
7 | 表示两个元素相比,前者比后者极其重要 |
9 | 表示两个元素相比,前者比后者强烈重要 |
2、4、6、8 | 表示上述相邻判断的中间值 |
1~9的倒数 | 表示相应两用者交换次序比较的重要性 |
对于准则层A
,我们可以构建一个
A = ( a i j ) m × n = [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . a 3 n a m 1 a m 2 . . . a m n ] A=(a_{ij})_{m\times n}=\begin{bmatrix}a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\...&...&...&a_{3n}\\a_{m1}&a_{m2}&...&a_{mn}\end{bmatrix} A=(aij)m×n= a11a21...am1a12a22...am2............a1na2na3namn
其中A
中的元素满足:
( 1 ) a i j > 0 ( 2 ) a i j = 1 a j i ( 3 ) a i i = 1 \begin{align*} & (1) \quad a_{ij} > 0 \\ & (2) \quad a_{ij} = \frac{1}{a_{ji}} \\ & (3) \quad a_{ii} = 1 \end{align*} (1)aij>0(2)aij=aji1(3)aii=1
带入矩阵后 a i j a_{ij} aij 的标度方法为:
标度 | 含义 |
---|---|
1 | ci与cj具有同样的重要性 |
3 | ci比cj稍重要 |
5 | ci比cj明显重要 |
7 | ci比cj极其重要 |
9 | ci比cj强烈重要 |
2、4、6、8 | 表示上述相邻判断的中间值 |
1~9的倒数 | ci与cj交换次序比较的重要性 |
简单说,例如对于准则层:景色、费用、居住、饮食、旅途,我们可以构建这样一个5*5
的判断矩阵:
指标 | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | |||||
费用 | |||||
居住 | |||||
饮食 | |||||
旅途 |
其中对角线为各个指标自己的判断,例如对于【景色】与【景色】,其重要性为1
,因为肯定是指标自身对比自身肯定是1:1
。对于第二行第一列的元素 aij,也就是【费用】与【景色】对比,可能我认为【费用】比【景色】明显重要,那么就可以标值为5
参考标度方法
标度 | 含义 |
---|---|
1 | ci与cj具有同样的重要性 |
3 | ci比cj稍重要 |
5 | ci比cj明显重要 |
7 | ci比cj极其重要 |
9 | ci比cj强烈重要 |
2、4、6、8 | 表示上述相邻判断的中间值 |
1~9的倒数 | ci与cj交换次序比较的重要性 |
那么判断矩阵就会变为:
指标i\j | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | 1 | 0.2 | |||
费用 | 5 | 1 | |||
居住 | 1 | ||||
饮食 | 1 | ||||
旅途 | 1 |
以此类推,直到构建完成一个完整的判断矩阵。
指标 | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | 1 | 5 | 5 | 0.3333 | 8 |
费用 | 0.2 | 1 | 0.25 | 0.1667 | 2 |
居住 | 0.2 | 4 | 1 | 0.2 | 3 |
饮食 | 3 | 6 | 5 | 1 | 6 |
旅途 | 0.125 | 0.5 | 0.3333 | 0.1667 | 1 |
3.3 层次单排序和一致性检验
3.3.1 层次单排序-计算相对权重
简单地说,层次单排序就是根据我们构成的判断矩阵,求解各个指标的权重。
例如我们判断矩阵A
如下:
指标 | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | 1 | 5 | 5 | 0.3333 | 8 |
费用 | 0.2 | 1 | 0.25 | 0.1667 | 2 |
居住 | 0.2 | 4 | 1 | 0.2 | 3 |
饮食 | 3 | 6 | 5 | 1 | 6 |
旅途 | 0.125 | 0.5 | 0.3333 | 0.1667 | 1 |
那么我们可以计算其权重(权重向量),有两种方式,一种是方根法,一种是和法。
三种方法计算权重:
(1)算术平均法(2)几何平均法(3)特征值法
强烈建议大家在比赛时三种方法都使用:
以往的论文利用层次分析法解决实际问题时,都是采用其中某一种方法求权重,而不同的计算方法可能会导致结果有所偏差。为了保证结果的稳健性,本文采用了三种方法分别求出了权重后计算平均值,再根据得到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了采用单一方法所产生的偏差,得出的结论将更全面、更有效。
注:(1)一致矩阵不需要进行一致性检验,只有非一致矩阵的判断矩阵才需要进行一致性检验;(2)在论文写作中,应该先进行一致性检验,通过检验后再计算权重。
其中方根法计算权重如下:
- 计算每行乘积的
m
次方,得到一个m
维向量
w i ˉ = ∏ j = 1 m a i j m \bar{\boldsymbol{w}_i}=\sqrt[m]{\prod_{j=1}^ma_{ij}} wiˉ=mj=1∏maij
即:
景色: 1 ∗ 5 ∗ 5 ∗ 1 3 ∗ 8 5 = 2.3162 费用: 1 5 ∗ 1 ∗ 1 4 ∗ 1 6 ∗ 2 5 = 0.4409 居住: 1 5 ∗ 4 ∗ 1 ∗ 1 5 ∗ 3 5 = 0.8635 饮食: 3 ∗ 6 ∗ 5 ∗ 1 ∗ 6 5 = 3.5195 旅途: 1 8 ∗ 1 2 ∗ 1 3 ∗ 1 6 ∗ 1 5 = 0.3222 \begin{align*} \text{景色:}\sqrt[5]{1*5*5*\frac13*8}=2.3162\\ \text{费用:} \sqrt[5]{\frac15*1*\frac14*\frac16*2}=0.4409\\ \text{居住:}\sqrt[5]{\frac15*4*1*\frac15*3}=0.8635\\ \text{饮食:} \sqrt[5]{3*6*5*1*6}=3.5195\\ \text{旅途:}\sqrt[5]{\frac18*\frac12*\frac13*\frac16*1}=0.3222\\ \end{align*} 景色:51∗5∗5∗31∗8=2.3162费用:551∗1∗41∗61∗2=0.4409居住:551∗4∗1∗51∗3=0.8635饮食:53∗6∗5∗1∗6=3.5195旅途:581∗21∗31∗61∗1=0.3222
(2)将将向量标准化即为权重向量,即得到权重
ω i = ω ‾ i ∑ j = 1 m ω ‾ j \omega _{i} = \frac{\overline{\omega}_{i}}{\sum\nolimits_{j=1}^{m}\overline{\omega}_{j}} ωi=∑j=1mωjωi
即:
景色: 2.3162 2.3162 + 0.4409 + 0.8635 + 3.5195 + 0.3222 = 0.3104 费用: 0.4409 2.3162 + 0.4409 + 0.8635 + 3.5195 + 0.3222 = 0.0591 居住: 0.8635 2.3162 + 0.4409 + 0.8635 + 3.5195 + 0.3222 = 0.1157 饮食: 3.5195 2.3162 + 0.4409 + 0.8635 + 3.5195 + 0.3222 = 0.4716 旅途: 0.3222 2.3162 + 0.4409 + 0.8635 + 3.5195 + 0.3222 = 0.0432 \begin{align*} \text{景色:}\frac{2.3162}{2.3162+0.4409+0.8635+3.5195+0.3222}=0.3104\\ \text{费用:}\frac{0.4409}{2.3162+0.4409+0.8635+3.5195+0.3222}=0.0591\\ \text{居住:}\frac{0.8635}{2.3162+0.4409+0.8635+3.5195+0.3222}=0.1157\\ \text{饮食:}\frac{3.5195}{2.3162+0.4409+0.8635+3.5195+0.3222}=0.4716\\ \text{旅途:}\frac{0.3222}{2.3162+0.4409+0.8635+3.5195+0.3222}=0.0432\\ \end{align*} 景色:2.3162+0.4409+0.8635+3.5195+0.32222.3162=0.3104费用:2.3162+0.4409+0.8635+3.5195+0.32220.4409=0.0591居住:2.3162+0.4409+0.8635+3.5195+0.32220.8635=0.1157饮食:2.3162+0.4409+0.8635+3.5195+0.32223.5195=0.4716旅途:2.3162+0.4409+0.8635+3.5195+0.32220.3222=0.0432
而和法计算权重如下:
- step1:先将矩阵的每列进行标准化
- step2:将标准化后的各元素按行求和
- step3:将求和结果进行标准化
例如这张图所示:
3.3.2 计算一致性指标CI
以上,求得权重矩阵后,可以计算最大特征根,其公式为:
λ m a x = 1 n ∑ i = 1 n ( A W ) i W i \lambda _{max} = \frac{1}{n} \sum \limits_{i=1}^{{n}} \frac{(AW)_{i}}{W_{i}} λmax=n1i=1∑nWi(AW)i
其中 n n n为维度数,例如构建的判断矩阵为:景色、费用、居住、饮食、旅途时, n = 5 n=5 n=5;
A
W
AW
AW为:判断矩阵*
标准化后的权重,然后按按行的累加值。
即判断矩阵 A A A为:
指标 | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | 1 | 5 | 5 | 0.3333 | 8 |
费用 | 0.2 | 1 | 0.25 | 0.1667 | 2 |
居住 | 0.2 | 4 | 1 | 0.2 | 3 |
饮食 | 3 | 6 | 5 | 1 | 6 |
旅途 | 0.125 | 0.5 | 0.3333 | 0.1667 | 1 |
标准化后权重 W W W为:
- 将通过了一致性检验的判断矩阵按列归一化
- 每一行分别求和,求和的结果除以 n n n,得到的列向量就是权重向量
指标名称 | 权重向量 |
---|---|
景色 | 0.3104 |
费用 | 0.0591 |
居住 | 0.1157 |
饮食 | 0.4716 |
旅途 | 0.0432 |
其中 A ∗ W A*W A∗W为:
指标 | 景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|---|
景色 | 0.3104 | 0.2955 | 0.5785 | 0.15718428 | 0.3456 |
费用 | 0.06208 | 0.0591 | 0.028925 | 0.07861572 | 0.0864 |
居住 | 0.06208 | 0.2364 | 0.1157 | 0.09432 | 0.1296 |
饮食 | 0.9312 | 0.3546 | 0.5785 | 0.4716 | 0.2592 |
旅途 | 0.0388 | 0.02955 | 0.03856281 | 0.07861572 | 0.0432 |
A W AW AW:
λ m a x λ_{max} λmax:
AW1/W1+AW2/W2+AW3/W3+···+AWn/Wn=x
最大特征值
λ
m
a
x
=
x
λmax=x
λmax=x / 矩阵阶数=5.416
最大特征值 λ m a x λmax λmax求解出来后, C . I C.I C.I值就好算多了,
根据
C
.
I
C.I
C.I值公式,
λ
m
a
x
=
5.416
λmax=5.416
λmax=5.416,
n
=
5
n=5
n=5,代入可得
C
.
I
C.I
C.I值=0.1042
C . I . = λ m a x − n n − 1 = 5.416 − 5 5 − 1 = 0.1042 C.I. = \frac{\lambda _{max} - n}{n - 1} = \frac{5.416 - 5}{5 - 1} =0.1042 C.I.=n−1λmax−n=5−15.416−5=0.1042
3.3.3 查找对应的平均随机一致性指标RI
R I RI RI值通过查表可以得知,这个是 S a t t y Satty Satty 模拟 1000 1000 1000 次得到的随机一致性指标 R . I . R.I. R.I.取值表(如下表所示):
矩阵n 阶 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RI 值 | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 | 1.51 | 1.54 | 1.56 |
而我们的矩阵是5
阶(准则层因子个数),矩阵阶数为5
时对应的
R
I
RI
RI值为1.12
3.3.4 计算一致性比例CR
一致性检验的含义用于确定构建的判断矩阵是否存在逻辑问题,例如以
A
A
A、
B
B
B、
C
C
C构建判断矩阵,若判定
A
A
A相当于
B
B
B为3
(
A
A
A比
B
B
B稍微重要),
A
A
A相当于
C
C
C为
1
/
3
1/3
1/3(
C
C
C比
A
A
A稍微重要),在判断
B
B
B相当于
C
C
C时,根据上述的逻辑,理应
C
C
C比
B
B
B重要,若我们在构建判断矩阵时,错误填写为
B
B
B相当于
C
C
C为
3
3
3(
B
B
B比
C
C
C稍微重要),那么就犯了逻辑错误;
代入公式:
C . R . = C . I . R . I . C.R. = \frac{C.I.}{R.I.} C.R.=R.I.C.I.
可以得到 C . R . C.R. C.R.值为 0.1042 / 1.12 = 0.093 0.1042/1.12=0.093 0.1042/1.12=0.093。
所以 C . R . = 0.093 < 0.1 C.R.=0.093<0.1 C.R.=0.093<0.1 时,表明判断矩阵 A A A 的一致性程度被认为在容许的范围内,此时可 用 A A A 的特征向量开展权向量计算;若 C . R . ≥ 0.1 C.R.≥0.1 C.R.≥0.1, 说明我们在构建判断矩阵时出现了逻辑错误,
例如 B B B 矩阵,我们假设在两两对比第三行第二列时,填入了 1 / 5 1/5 1/5 ,这个时候就无法通过一致性检验,因为其犯了逻辑错误,我们根据第二行第一列,可以知道上海的地位比广州稍微重要,根据第三行第一列,可以知道北京的地位比广州强烈重要,所以根据逻辑:上海>广州,北京>广州,那么北京应该是>上海,但是我们填入了 1 / 5 1/5 1/5 ,也就是北京比上海相当不重要,所以就出现了逻辑错误,这个时候,我们需要对判断矩阵 A A A 进行修正,修正为北京>上海。
CR > 0.1 如何修正?
往一致矩阵上调整一致矩阵各行成倍数关系
至此,我们便完成了层次单排序与一致性检验,通过我们在使用层次分析法只使用到这里,用于对指标进行定权,假如我们有方案层,便需要做层次总排序与其一致性检验。
3.4 层次总排序与一致性检验
这里列出一般在文献中的说明:
计算某一层次所有因素对于最高层(目标层)相对重要性的权值,称为层次总排 序。该过程是从最高层次向最低层次依次进行:
设 B B B 层 𝐵 1 , 𝐵 2 ⋯ , 𝐵 𝑛 𝐵_1 ,𝐵_2 ⋯ ,𝐵_𝑛 B1,B2⋯,Bn对上层( A A A 层)中因素 𝐴 𝑗 ( 𝑗 = 1 , 2 , ⋯ , 𝑚 ) 𝐴_𝑗(𝑗 = 1,2, ⋯ ,𝑚) Aj(j=1,2,⋯,m)的层次排序 一致性指标为 𝐶 𝐼 𝑗 𝐶𝐼𝑗 CIj,随机一致性指标为 𝑅 𝐼 𝑗 𝑅𝐼𝑗 RIj ,则层次总排序的一致性比率为:
C R = a 1 C I 1 + a 2 C I 2 + ⋯ + a m C I m a 1 R I 1 + a 2 R I 2 + ⋯ + a m R I m = ∑ a i C I i ∑ a i R I i = C I R I \begin{aligned}CR=\frac{a_1CI_1+a_2CI_2+\cdots+a_mCI_m}{a_1RI_1+a_2RI_2+\cdots+a_mRI_m}=\frac{\sum a_iCI_i}{\sum a_iRI_i}=\frac{CI}{RI} \end{aligned} CR=a1RI1+a2RI2+⋯+amRIma1CI1+a2CI2+⋯+amCIm=∑aiRIi∑aiCIi=RICI
当 𝐶 𝑅 < 0.1 𝐶𝑅 < 0.1 CR<0.1时,认为层次总排序通过一致性检验,否则就需要重新调整判断矩阵 的元素取值。到此,根据最下层(决策层)的层次总排序做出最后的决策。
下面我用人话说一下:
层次总排序,其实就是通过类型层次单排序的方法来给方案打分。
打个比方,我们根据2.3的层次单排序,现在确定 A 1 A1 A1 ~ A 5 A5 A5 的权重为
景色 | 费用 | 居住 | 饮食 | 旅途 |
---|---|---|---|---|
0.3104 | 0.0591 | 0.1157 | 0.4716 | 0.0432 |
现在我想要计算方案 B 1 : B1: B1:哈尔滨的得分,但是我们并不知道哈尔滨的景色得分为多少,那该怎么办呢?
类似2.3
的层次单排序,对于景色这个因素,我们可以构建一个3*3
的矩阵,如下所示:
景色 | 哈尔滨 | 沈阳 | 长春 |
---|---|---|---|
哈尔滨 | 1 | ||
沈阳 | 1 | ||
长春 | 1 |
通过层次单排序两两对比各个方案在景色的比较,我们可以得到哈尔滨、沈阳、长春的权重,那么这个权重就可以作为哈尔滨、沈阳、长春在景色上的得分。
依次类推,我们构造得到哈尔滨、沈阳、长春在景色上的得分矩阵 A 1 A1 A1,在费用上的得分矩阵 A 2 A2 A2,在居住上的得分矩阵 A 3 A3 A3,在饮食上的得分矩阵 A 4 A4 A4,在旅途上的得分矩阵 A 5 A5 A5:
A 1 = [ 1 2 5 1 2 1 2 1 5 1 2 1 ] A 2 = [ 1 1 3 1 8 3 1 8 3 1 1 3 8 3 1 ] A 3 = [ 1 1 3 1 1 3 1 1 3 1 3 1 3 1 ] A 4 = [ 1 3 4 1 1 1 3 1 1 1 4 1 1 ] A 5 = [ 1 1 1 4 1 1 1 4 4 4 1 ] A_1=\begin{bmatrix}\\1&2&5\\\frac{1}{2}&1&2\\\frac{1}{5}&\frac{1}{2}&1\end{bmatrix}\quad A_2=\begin{bmatrix}1&\frac{1}{3}&\frac{1}{8}\\&3&\frac{1}{8}\\3&1&\frac{1}{3}\\8&3&1\\\end{bmatrix}\quad A_3=\begin{bmatrix}1&1&3\\1&1&3\\1&1&3\\\frac{1}{3}&\frac{1}{3}&1\\\end{bmatrix}\quad A_4=\begin{bmatrix}\\1&3&4\\1&1&1\\3&1&1\\\frac{1}{4}&1&1\\\end{bmatrix}\quad A_5=\begin{bmatrix}1&1&\frac{1}{4}\\\\1&1&\frac{1}{4}\\4&4&1\\\end{bmatrix} A1= 121512121521 A2= 138313138181311 A3= 11131111313331 A4= 1134131114111 A5= 11411441411
计算得到其得分为:
B 1 B 2 B 3 B_{1}B_{2}B_{3} B1B2B3对 A 1 A_1 A1的权重为 [ 0.5954 , 0.2764 , 0.1283 ] [0.5954,0.2764,0.1283] [0.5954,0.2764,0.1283]
B 1 B 2 B 3 B_{1}B_{2}B_{3} B1B2B3对 A 2 A_2 A2,的权重为 [ 0.0819 , 0.2363 , 0.6817 ] [0.0819,0.2363,0.6817] [0.0819,0.2363,0.6817]
B 1 B 2 B 3 B_{1}B_{2}B_{3} B1B2B3对 A 3 A_{3} A3的权重为 [ 0.4286 , 0.4286 , 0.1429 ] [0.4286,0.4286,0.1429] [0.4286,0.4286,0.1429]
B 1 B 2 B 3 B_1B_2B_3 B1B2B3对 A 4 A_{4} A4的权重为 [ 0.6337 , 0.1919 , 0.1744 ] [0.6337,0.1919,0.1744] [0.6337,0.1919,0.1744]
B 1 B 2 B 3 B_{1}B_{2}B_{3} B1B2B3对 A 5 A_{5} A5的权重为 [ 0.1667 , 0.1667 , 0.6667 ] [0.1667,0.1667,0.6667] [0.1667,0.1667,0.6667]
PS:
以上全部的判断矩阵都需要做一致性检验。
那么对于方案 B 1 B1 B1(哈尔滨),它的总得分为:
哈尔滨在景色上的得分 * 景色的权重+哈尔滨在费用上的得分 * 费用的权重+哈尔滨在居住上的得分 * 居住的权重+哈尔滨在饮食上的得分 * 饮食的权重+哈尔滨在旅途上的得分 * 旅途的权重=0.5954 * 0.3104+0.819 * 0.0591+0.4286 * 0.1157+0.6337 * 0.4716+0.1667 *0.0432 = .5889
以此类推,可以计算得到方案B2(沈阳)为
0.2764*0.3104+0.2363*0.0591+0.4286*0.1157+0.1919*0.4716+0.1667*0.0432=0.2471
方案B3(长春):
0.1283*0.3104+0.6817*0.0591+0.1429*0.1157+0.1744*0.4716+0.6667*0.0432=0.2077
因此哈尔滨得分最高,选择去哈尔滨。
3.5 根据权重矩阵计算得分
三种方法计算权重:
(1)算术平均法(2)几何平均法(3)特征值法
强烈建议大家在比赛时三种方法都使用:
以往的论文利用层次分析法解决实际问题时,都是采用其中某一种方法 求权重,而不同的计算方法可能会导致结果有所偏差。为了保证结果的 稳健性,本文采用了三种方法分别求出了权重后计算平均值,再根据得 到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了 采用单一方法所产生的偏差,得出的结论将更全面、更有效。
注:(1)一致矩阵不需要进行一致性检验,只有非一致矩阵的判断矩阵才需要进行一致性检验;(2)在论文写作中,应该先进行一致性检验,通过检验后再计算权重,视频中讲解的只是为了顺应计算过程。
景色 | 哈尔滨 | 沈阳 | 长春 |
---|---|---|---|
哈尔滨 | 1 | 2 | 5 |
沈阳 | 1/2 | 1 | 2 |
长春 | 1/5 | 1/2 | 1 |
3.5.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
整理得:
第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
景色 | 哈尔滨 | 沈阳 | 长春 |
---|---|---|---|
哈尔滨 | 0.5882 | 0.5714 | 0.625 |
沈阳 | 0.2941 | 0.2857 | 0.25 |
长春 | 0.1177 | 0.1429 | 0.125 |
第二步:将归一化的各列相加(按行求和)
未归一化的权重 | |
---|---|
哈尔滨 | 0.5882+0.5714+0.625 = 1.7846 |
沈阳 | 0.2941+0.2857+0.25=0.8298 |
长春 | 0.1177+0.1429+0.125=0.3856 |
第三步:将相加后得到的向量中每个元素除以n即可得到权重向量
权重 | |
---|---|
哈尔滨 | 1.7846 / 3 = 0.5949 |
沈阳 | 0.8298 / 3 = 0.2766 |
长春 | 0.3856 / 3 = 0.1285 |
3.5.2 几何平均法求权重
几何平均法求权重也有三步:
第一步:将A的元素按照行相乘得到一个新的列向量
第二步:将新的向量的每个分量开n次方
第三步:对该列向量进行归一化即可得到权重向量
假设判断矩阵
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\end{bmatrix} A= a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
那么几何平均法求得的权重向量
ω i = ( ∏ j = 1 n a i j ) 1 n ∑ k = 1 n ( ∏ j = 1 n a k j ) 1 n , ( i = 1 , 2 , ⋯ , n ) \omega_{i}=\frac{(\prod_{j=1}^{n}a_{ij})^{\frac{1}{n}}}{\sum_{k=1}^{n}(\prod_{j=1}^{n}a_{kj})^{\frac{1}{n}}},(i=1,2,\cdots,n) ωi=∑k=1n(∏j=1nakj)n1(∏j=1naij)n1,(i=1,2,⋯,n)
算术平均法权重 | 几何平均法权重 | |
---|---|---|
哈尔滨 | 0.5949 | 0.5954 |
沈阳 | 0.2766 | 0.2764 |
长春 | 0.1285 | 0.1283 |
注: 权重和应为1,这里由于四舍五入所以会有可以忽略的差距。
3.5.3 特征值法求权重
一致矩阵有一个特征值为n,其余特征值均为0.
另外,我门很容易得到,特征值为n时,对应的特征向量网子为
k [ 1 a 11 , 1 a 12 , ⋯ , 1 a 1 n ] T ( k ≠ 0 ) k[\frac{1}{a_{11}},\frac{1}{a_{12}},\cdots,\frac{1}{a_{1n}}]^{T}(k\neq0) k[a111,a121,⋯,a1n1]T(k=0)
这一特征向量刚好就是一致矩阵的第一列。
景色 | 哈尔滨 | 沈阳 | 长春 |
---|---|---|---|
哈尔滨 | 1 | 2 | 4 |
沈阳 | 1/2 | 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)
假如我们的判断矩阵一致性可以接受,那么我们可以仿照一致矩阵权重的求法。
第一步:求出矩阵A的最大特征值以及其对应的特征向量
第二步:对求出的特征向量进行归一化即可得到我们的权重
最大特征值为3.0055 , 一致性比例 CR = 0.0053
对应的特征向量:[‐0.8902,‐0.4132,‐0.1918]
对其归一化:[0.5954,0.2764,0.1283]
算术平均法 | 几何平均法 | 特征值法 | |
---|---|---|---|
哈尔滨 | 0.5949 | 0.5954 | 0.5954 |
沈阳 | 0.2766 | 0.2764 | 0.2764 |
长春 | 0.1285 | 0.1283 | 0.1283 |
4. 应用
4.1 文献中使用
这里列出一般在文献中的说明:
step1:层次单排序
层次单排序是指针对上一层某元素将本层中所有元素两两评比,并开展层次排序, 进行重要顺序的排列,具体计算可依据判断矩阵 A A A 进行,计算中确保其能够符合 A W = λ m a x 𝑊 AW=\lambda _{max}𝑊 AW=λmaxW 的特征根和特征向量条件。在此, A A A 的最大特征根为 λ m a x \lambda _{max} λmax,对应 λ m a x λmax λmax的正规化的特征向量为 W W W, 𝑤 𝑖 𝑤_𝑖 wi 为 W W W 的分量,其指的是权值,与其相应元素单排序对应。 利用判断矩阵计算各因素 𝑎 𝑖 𝑗 𝑎_{𝑖𝑗} aij 对目标层的权重(权系数)。
权重向量(
W
W
W)与最大特征(
λ
m
a
x
\lambda _{max}
λmax)的计算步骤(方根法或者和法)如下表所示:
step2:求解最大特征根与CI值
设 n n n 阶判断矩阵为 B B B,则可用以下方法求出其最大的特征根 λ m a x \lambda _{max} λmax:
BW=λW
其中,
W
W
W 是
B
B
B 的特征向量。 在层次分析法中, 我们用以下的一致性指标
C
I
CI
CI 来检验判断的一致性指标 (Consistency Index
):
C . I . = λ m a x − n n − 1 C.I. = \frac{\lambda _{max} - n}{n - 1} C.I.=n−1λmax−n
其中 n n n 为指标数(即判断矩阵行数) C . I . = 0 C.I.=0 C.I.=0 表示判断矩阵完全一致, C . I . C.I. C.I. 越大,判断矩阵的不一致性程度越严重。
step3:根据CI、RI值求解CR值,判断其一致性是否通过
Satty
模拟
1000
1000
1000 次得到的随机一致性指标
R
.
I
.
R.I.
R.I.取值表(如下表 所示):
矩阵n 阶 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RI 值 | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 | 1.51 | 1.54 | 1.56 |
C . R . = C . I . R . I . C.R. = \frac{C.I.}{R.I.} C.R.=R.I.C.I.
当 C . R . < 0.1 C.R.<0.1 C.R.<0.1 时,表明判断矩阵 A A A 的一致性程度被认为在容许的范围内,此时可用 A A A 的特征向量开展权向量计算;若 C . R . ≥ 0.1 C.R.≥0.1 C.R.≥0.1, 则应考虑对判断矩阵 A A A 进行修正。
4.2 论文中使用
对于判断矩阵 A A A
A
=
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
]
A= \begin{bmatrix} a_{11}& a_{12}& \cdots & a_{1n} \\ a_{21}& a_{22}& \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1}& a_{n2}& \cdots & a_{nn} \end{bmatrix}
A=
a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
先将其归一化,再将归一化的矩阵按列相加,并将每个元素除以
n
n
n 得到权重向量,即
ω i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j ( i = 1 , 2 , ⋅ ⋅ ⋅ , n ) . \omega _{i} = \frac{1}{n} \sum \limits_{j=1}^{{n}} \frac{a_{ij}}{\sum \limits_{k=1}^{{n}} a_{kj}}(i = 1,2,···,n). ωi=n1j=1∑nk=1∑nakjaij(i=1,2,⋅⋅⋅,n).
如图
(1)
(2)问题:应先一致性检验,再计算权重分
(3)优秀的例子,求解过程符合例子,先构造判断矩阵,再对矩阵一致性检验
5.总结
在实际比赛和科研中,用特征值法求权重更常用也更方便,在非一致性不大的情况下,二者算出的权重相差也并不大,可实际生活中的数据一致性并非那么强,因此建议用特征值法。当然为了凑字数的话也可以两种方法都用,然后取其平均值。
用层次分析法的套路
- Step1:解决评价类问题
- Step2:画出层级结构图(目标层、准则层、方案层)(出现在论文里)
- Step3:构造判断矩阵(确定评价指标孰重孰轻)
- Step4:依照评价指标对各个方案进行打分
- Step5:求出权重,填表,求得最后得分
- Step6:层次总排序一致性检验
关于step4一些小妙招
实际生活和题目中,需要我们自行查询相关的数据支持,一般采取网上搜集的材料或调查问卷作为佐证,有时对于显而易见的常识问题也可不做说明。
常用的中文数据库:知网、万方、百度学术
英文数据库:Web of Science、SpringerLink、谷歌学术
绘图工具:ProcessOn、亿图
5.1 优点
系统性:将对象视作系统,按照分解、比较、判断、综合的思维方式进行决策。成为继机理分析、统计分析之后发展起来的系统分析的重要工具;
实用性:一定性与定量相结合,能处理许多用传统的最优化技术无法着手的实际问题,应用范围很广,同时,这种方法使得决策者与决策分析者能够相互沟通,决策者甚至可以直接应用它,这就增加了决策的有效性;
简洁性:计算简便,结果明确,具有中等文化程度的人即可以了解层次分析法的基本原理并掌握该法的基本步骤,容易被决策者了解和掌握。便于决策者直接了解和掌握。
5.2 缺点
囿旧:只能从原有的方案中优选一个出来,没有办法得出更好的新方案;
粗略:该法中的比较、判断以及结果的计算过程都是粗糙的,不适用于精度较高的问题;
主观:从建立层次结构模型到给出判断矩阵,人主观因素对整个过程的影响很大,这就使得结果难以让所有的决策者接受。当然采取专家群体判断的办法是克服这个缺点的一种途径。每一层因素的权重是主观给出,在某些场合会影响泛化性。
5.3 注意事项
如果所选的要素不合理,其含义混淆不清,或要素间的关系不正确,都会降低AHP法的结果质量,甚至导致AHP法决策失败。
为保证递阶层次结构的合理性,需把握以下原则:
(1)分解简化问题时把握主要因素,不漏不多;
(2)注意相比较元素之间的强度关系,相差太悬殊的要素不能在同一层次比较。
参考
- https://blog.csdn.net/qq_41686130/article/details/122081827 前几个部分借鉴很多
- b站很多学习视频