一、层次分析法(AHP)
文章目录
(一)适用问题
层次分析法适用于评价类问题。
评价类问题要求确定评价指标、形成评价体系来选择最佳的方案。
一般来说,题目中会给出评价的目标,可选的方案,但需要我们给出评价的准则,而这些准则则需要结合题目中的背景资料,常识及网上搜集的参考资料来确定。
(二)模型建立
1.画出层次结构图
分析系统中各因素之间的关系,建立系统的递阶层次结构
简而言之,评价某个对象的最终指标由各项指标决定,而这各项指标的总得分决定着各个方案的优劣。
2.构造判断矩阵
目标层与准则层的各个指标可以构成一个判断矩阵
如:判断矩阵o~c
准则层的各个指标分别可以与方案层的各个方案构成判断矩阵
如:判断矩阵c1~p
此外,还有c2~p, c3~p
表格中有颜色的部分所填的为标度,标度为两个因素两两比较的结果
如:a表示p1与p2相比,p1的重要程度,a、b互为倒数
常用的标度为1~9
标度 | 含义 |
---|---|
1 | 两个因素同等重要 |
3 | 一个因素比另一个因素稍微重要 |
5 | 一个因素比另一个因素明显重要 |
7 | 一个因素比另一个因素强烈重要 |
9 | 一个因素比另一个因素极端重要 |
2,4,6,8 | 上述两相邻判断的中间值 |
(重要性也可理解为满意度)
判断矩阵中的元素即为标度
判断矩阵为一个 n × n n\times{n} n×n的矩阵,记为A,对应元素为 a i j a_{ij} aij
即:
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⎦⎥⎥⎥⎤
其中
a
i
j
>
0
a_{ij}>0
aij>0,且
a
i
j
×
a
j
i
=
1
a_{ij}\times{a_{ji}}=1
aij×aji=1
3.对判断矩阵进行一致性检验
层次分析法要求求出各个被比较元素的相对权重,而这个相对权重只有在判断矩阵通过一致性检验才能使用。
一致矩阵的特点:
各行(各列)成比例,且最大特征值 λ m a x = n \lambda_{max}=n λmax=n
一致性检验的步骤如下:
(1)计算一致性指标CI
C I = λ m a x − n n − 1 CI=\frac{\lambda_{max}-n}{n-1} CI=n−1λmax−n
(2)查表找到平均随机一致性指标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 |
(3)计算一致性指标CR
C R = C I R I CR=\frac{CI}{RI} CR=RICI
(4)判断
若 C R < 0.1 CR<0.1 CR<0.1,则认为判断矩阵的一致性可以接受,否则则需要对判断矩阵进行修正,最简单的方法就是将判断矩阵向一致性矩阵修正,即尽量使判断矩阵的各行或各列成比例
4.计算判断矩阵的相对权重
计算判断矩阵的相对权重有三种方法,通常三种方法都采用,使结果更有稳健性
(1)算术平均法求权重
①将判断矩阵归一化,即将每个元素除以所在列的和
②将归一化得到的矩阵各列相加,即按行求和
③将相加后得到的列向量中的各分量除以n可得权重向量
算术平均法求得的权重向量为:
ω
i
=
1
n
∑
j
=
1
n
a
i
j
∑
k
=
1
n
a
k
j
\omega_i=\frac1{n}\sum^{n}_{j=1}\frac{a_{ij}}{\sum^{n}_{k=1}a_{kj}}
ωi=n1j=1∑n∑k=1nakjaij
(
i
=
1
,
2
,
.
.
.
,
n
)
(i=1,2,...,n)
(i=1,2,...,n)
(2)几何平均法求权重
①将判断矩阵按行相乘
②将相乘后得到的列向量的各分量开n次方
③将开方后的列向量进行归一化处理即可得权重向量
几何平均法求得的权重向量为:
ω
i
=
(
∏
j
=
1
n
a
i
j
)
1
n
∑
k
=
1
n
(
∏
j
=
1
n
a
k
j
)
1
n
\omega_i=\frac{(\prod^{n}_{j=1}a_{ij})^\frac1{n}}{\sum^{n}_{k=1}(\prod^{n}_{j=1}a_{kj})^\frac1{n}}
ωi=∑k=1n(∏j=1nakj)n1(∏j=1naij)n1
(3)特征法求权重
①求出判断矩阵的最大特征值及其对应的特征向量
(特征值为n时对应的特征向量为第一列元素)
②将求出的特征向量进行归一化处理即可得权重向量
5.汇总并计算得分
(1)汇总得权重矩阵
(2)计算各方案的最终得分
例如:p1的最终得分为:
a
1
×
b
1
+
a
2
×
b
2
+
a
3
×
b
3
{a1}\times{b1}+{a2}\times{b2}+{a3}\times{b3}
a1×b1+a2×b2+a3×b3
此处用excel表格比较方便
输入以下表达式按enter即可得到结果(B2表示B列第2个单元格的内容)
再将B列锁定,
将C5所在单元格右下角的小点往右移即可得到D列每个单元格与B列每个单元格相乘再求和的结果
以此类推可得出各方案的得分,排序即可得出该评价体系下的最优方案。
(三)Matlab代码
求判断矩阵的相对权重的Matlab代码如下:
disp('请输入判断矩阵A')
A = input('A=');
n = size(A,1); %求A的阶数n,由于A为n*n阶矩阵,求其行数即可得阶数
%%一致性检验(一致矩阵则不用进行检验,n=1,2的情况下一定为一致矩阵)
[V,D] = eig(A); %D为A的全部特征值构成的对角阵,矩阵V中的每一列为D中与之相同列的特征值对应的特征向量
max_eig = max(max(D)); %求对角阵D中的最大值即最大特征向量
CI = (max_eig-n) / (n-1);
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];
CR = CI / RI(n); %RI(n)表示阶数为n时的RI值
if CR<0.1
disp('CR<0.1,该判断矩阵A的一致性可以接受');
else
disp('CR>=0.10,该判断矩阵A需要进行修正');
end
%%若一致性检验通过,则可以计算权重
%%算术平均法求权重
sum_A = sum(A);%将A按列求和得到一个行向量
SUM_A = repmat(sum_A,n,1); %将该行向量复制n行得到一个矩阵
stand_A = A./SUM_A; %将A归一化
disp('算术平均法求得的权重为:')
disp(sum(stand_A,2)./n) %将归一化后的结果按行求和后每个元素除以n
%%几何平均法求权重
prod_A = prod(A,2);%将A按行相乘得到一个列向量
PROD_A = prod_A.^(1/n);%将该列向量的各分量开n次方
disp('几何平均法求得的权重为:')
disp(PROD_A./sum(PROD_A))%将开方后的结果归一化处理
%%特征值法求权重
[r,c] = find(D==max_eig,1);%求最大特征值所在的列数c
disp('特征值法法求得的权重为:')
disp(V(:,c)./sum(V(:,c)))%将对应的特征向量进行归一化处理
(四)例题分析
题目:请确定评价指标,形成评价体系从苏杭,北戴河,桂林三地中选择一地作为旅游目的地
1.画出层次结构图
由于目标层和方案层已经给出,只需确定准则层
假设将景色、花费、居住、饮食、交通作为决定最佳目的地的准则,可画出以下层次结构图
2.构造判断矩阵
假设将各个因素两两比较后得到下列判断矩阵
目标~准则:
景色 | 花费 | 居住 | 饮食 | 交通 | |
---|---|---|---|---|---|
景色 | 1 | 1/2 | 4 | 3 | 3 |
花费 | 2 | 1 | 8 | 6 | 6 |
居住 | 1/4 | 1/8 | 1 | 3/4 | 3/4 |
饮食 | 1/3 | 1/6 | 4/3 | 1 | 1 |
交通 | 1/3 | 1/6 | 4/3 | 1 | 1 |
准则~方案:
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 2 | 5 |
北戴河 | 1/2 | 1 | 2 |
桂林 | 1/5 | 1/2 | 1 |
花费 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 1/3 | 1/8 |
北戴河 | 3 | 1 | 1/3 |
桂林 | 8 | 3 | 1 |
居住 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 1 | 3 |
北戴河 | 1 | 1 | 3 |
桂林 | 1/3 | 1/3 | 1 |
饮食 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 3 | 4 |
北戴河 | 1/3 | 1 | 1 |
桂林 | 1/4 | 1 | 1 |
交通 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
苏杭 | 1 | 1 | 1/4 |
北戴河 | 1 | 1 | 1/4 |
桂林 | 4 | 4 | 1 |
3.一致性检验并求相对权重
运行代码可得:(注意,矩阵用[]括起来,同一行的元素用“,”分开,不同行的元素用“;"分开)
各个准则的相对权重:
景色 | 花费 | 居住 | 饮食 | 交通 | |
---|---|---|---|---|---|
算术平均法 | 0.2623 | 0.4744 | 0.0545 | 0.0985 | 0.1103 |
几何平均法 | 0.2636 | 0.4773 | 0.0531 | 0.0988 | 0.1072 |
特征值法 | 0.2636 | 0.4758 | 0.0538 | 0.0981 | 0.1087 |
各个方案对应各个指标的相对权重:
景色 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
算术平均法 | 0.5949 | 0.2766 | 0.1285 |
几何平均法 | 0.5954 | 0.2764 | 0.1283 |
特征值法 | 0.5954 | 0.2764 | 0.1283 |
花费 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
算术平均法 | 0.0820 | 0.2364 | 0.6816 |
几何平均法 | 0.0819 | 0.2363 | 0.6817 |
特征值法 | 0.0819 | 0.2363 | 0.6817 |
居住 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
算术平均法 | 0.4286 | 0.4286 | 0.1429 |
几何平均法 | 0.4286 | 0.4286 | 0.1429 |
特征值法 | 0.4286 | 0.4286 | 0.1429 |
饮食 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
算术平均法 | 0.6327 | 0.1924 | 0.1749 |
几何平均法 | 0.6337 | 0.1919 | 0.1744 |
特征值法 | 0.6337 | 0.1919 | 0.1744 |
交通 | 苏杭 | 北戴河 | 桂林 |
---|---|---|---|
算术平均法 | 0.1667 | 0.1667 | 0.6667 |
几何平均法 | 0.1667 | 0.1667 | 0.6667 |
特征值法 | 0.1667 | 0.1667 | 0.6667 |
4.汇总并计算得分
算术平局法求得的权重矩阵
相对权重 | 苏杭 | 北戴河 | 桂林 | |
---|---|---|---|---|
景色 | 0.2623 | 0.5949 | 0.2766 | 0.1285 |
花费 | 0.4744 | 0.0820 | 0.2364 | 0.6816 |
居住 | 0.0545 | 0.4286 | 0.4286 | 0.1429 |
饮食 | 0.0985 | 0.6327 | 0.1924 | 0.1749 |
交通 | 0.1103 | 0.1667 | 0.1667 | 0.6667 |
几何平均法求得的权重矩阵:
相对权重 | 苏杭 | 北戴河 | 桂林 | |
---|---|---|---|---|
景色 | 0.2636 | 0.5954 | 0.2764 | 0.1283 |
花费 | 0.4773 | 0.0819 | 0.2363 | 0.6817 |
居住 | 0.0531 | 0.4286 | 0.4286 | 0.1429 |
饮食 | 0.0988 | 0.6337 | 0.1919 | 0.1744 |
交通 | 0.1072 | 0.1667 | 0.1667 | 0.6667 |
特征值法求得的权重矩阵:
相对权重 | 苏杭 | 北戴河 | 桂林 | |
---|---|---|---|---|
景色 | 0.2636 | 0.5954 | 0.2764 | 0.1283 |
花费 | 0.4758 | 0.0819 | 0.2363 | 0.6817 |
居住 | 0.0538 | 0.4286 | 0.4286 | 0.1429 |
饮食 | 0.0981 | 0.6337 | 0.1919 | 0.1744 |
交通 | 0.1087 | 0.1667 | 0.1667 | 0.6667 |
最终三地的得分为:
苏杭 | 北戴河 | 桂林 | |
---|---|---|---|
算术平均法 | 0.29901 | 0.245397 | 0.455609 |
几何平均法 | 0.299277 | 0.245234 | 0.455484 |
特征值法 | 0.29926 | 0.245295 | 0.45544 |
按照三种求相对权重的方法,最佳目的地应该是桂林