层次分析法 APH
层次分析法(APH,Analytic Hierarchy Process),又名专家分析法,1971年由Thomas L. Saaty(匹兹堡大学教授)提出,主要应用在不确定情况下及具有多个评估准则的决策问题上。
本质 Essence
层次分析法的本质:
- 分层
- 分权
整个过程可以由专家团参与完成。
分层 Hierarchy
分层,将一个复杂指标分解为若干子指标,每个子指标再各自分解为更小的子指标,逐层分解,直到可度量的末级指标。
分权 Weighting
分权,给同一层级的指标匹配权重,通过两两比较的方式降低比较难度。
步骤 Procedures
- 建立层次结构模型
- 构造指标的成对比较矩阵
- 计算权向量并进行一致性检验
- 计算组合权向量,并做组合一致性检验
建立层次结构模型
拆分为$n$个指标:$\lbrace x_1, x_2, \cdots, x_n \rbrace$
假设可拆解为3个指标/元素:$\lbrace x_1, x_2, x_3 \rbrace$
构造指标成对比较矩阵
用相对权重$a_{ij}$表示第$i$个指标/元素与第$j$个指标/元素相对上一层某个元素的重要性,构成成对比较矩阵/判断矩阵$\mathbf{A}=\left(a_{ij}\right)_{n\times n}$。其中,
- $a_{ij} > 0$($i,j=1,\cdots,n$)
- $a_{ii}=1$($i=1,\cdots, n$)
- $a_{ij}=\frac{1}{a_{ji} }$($i,j=1,\cdots,n$)
对比时采用相对尺度,以尽可能减少性质不同的因素相互比较的困难,以提高准确度。由专家对同一层次内$n$个指标的相对重要性(两两因素间)打分。相对重要性的比例标度取1-9之间(可参考下表)。
比较值 | 定义 Meaning |
---|---|
1 | 两个因素相比,具有同等重要性 |
3 | 两个因素相比,前者比后者稍微重要 |
5 | 两个因素相比,前者比后者明显重要 |
7 | 两个因素相比,前者比后者强烈重要 |
9 | 两个因素相比,前者比后者极端重要 |
2,4,6,8 | 上述相邻判断的中间值 |
$x_1$ | $x_2$ | $x_3$ | |
---|---|---|---|
$x_1$ | 1 | 5 | 7 |
$x_2$ | 1/5 | 1 | 3 |
$x_3$ | 1/7 | 1/3 | 1 |
- 先按列标准化
- 再求行平均值
$x_1$ | $x_2$ | $x_3$ | 行平均值 | |
---|---|---|---|---|
$x_1$ | $\frac{35}{47}$ | $\frac{15}{19}$ | $\frac{7}{11}$ | 157/217 即0.7235023 |
$x_2$ | $\frac{7}{47}$ | $\frac{3}{19}$ | $\frac{3}{11}$ | 5693/29469 即0.1931861 |
$x_3$ | $\frac{5}{47}$ | $\frac{1}{19}$ | $\frac{1}{11}$ | 2455/29469 即0.08330788 |
一致性 Consistency
一致性指标$CI$(Consistency Index):
$$CI=\frac{\lambda_{\max} - n}{ n - 1 }$$
其中,
- $\lambda_{\max}$:指标矩阵特征值的最大值
- $n$:指标个数
矩阵$\mathbf{A}$的特征值即行列式(determinant)$\left| \lambda \mathbf{I} - \mathbf{A} \right| = 0$的解。
\begin{equation}
\begin{aligned}
& \left| \lambda \mathbf{I} - \mathbf{A} \right| = 0 \\
\iff & \left|
\begin{array}{ccc}
\lambda - a_{11} & -a_{12} & -a_{13} \\
-a_{21} & \lambda - a_{22} & -a_{23} \\
-a_{31} & -a_{32} & \lambda - a_{33}
\end{array}
\right| = 0 \\
\iff & (\lambda - a_{11}) (-1)^{1+1} \left| \begin{array}{cc} \lambda - a_{22} & -a_{23} \\ -a_{32} & \lambda - a_{33} \end{array} \right| + (-a_{21})(-1)^{2+1} \left| \begin{array}{cc} -a_{12} & -a_{13} \\ -a_{32} & \lambda - a_{33} \end{array} \right| \\
& + (-a_{31})(-1)^{3+1} \left| \begin{array}{cc} -a_{12} & -a_{13} \\ \lambda - a_{22} & -a_{23} \end{array} \right|=0 \\
\iff & (\lambda - a_{11})\left[ (\lambda - a_{22})(\lambda - a_{33}) - a_{23}a_{32} \right] + a_{21} \left[ a_{13}a_{32} - a_{12}(\lambda - a_{33}) \right] \\
& - a_{31} \left[ a_{12}a_{23} - a_{13}(\lambda - a_{22}) \right] = 0
\end{aligned}
\end{equation}
使用Python求解矩阵的特征值:
1 | import numpy as np |
$$
\mathbf{A}=
\left(
\begin{array}{ccc}
1 & 5 & 7 \\
\frac{1}{5} & 1 & 3 \\
\frac{1}{7} & \frac{1}{3} & 1
\end{array}
\right)
$$
使用Python求解矩阵的特征值:
1 | import numpy as np |
则$\lambda_{\max} = 3.065$。因此一致性指标为
$$CI=\frac{3.065 - 5}{5 - 1} = -0.48375$$
随机一致性 Random Consistency
随机构造$N$个判断矩阵,并计算一致性指标$CI$,则随机一致性指标$RI$(Random Index)为
$$RI = \frac{1}{N}\sum_{i=1}^N CI_i$$
一致性检验 Consistency Check
一致性比率$CR$(Consistency Ratio):
$$CR = \frac{CI}{RI}$$
一般认为,$CR<0.1$为一致性检验通过。
实现代码
Python
1 | ##### 自定义函数 ##### |