介绍
AHP是Analytic Hierarchy Process得简称,中文名:层次分析法、多方案决策方法。
AHP是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。
作用使用场景
适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。层次分析法将决策问题按照总目标、各层子目标、评价准则直至备选方案的顺序分解为不同的层次结构,然后运用相关数学方法,求得每一层次的各元素相对上一层次某元素的权重,最终通过加权求和的方法求得各备选方案相对总目标的权重。
应用场景
- 层级区分明显得评分指标得权重计算
- 多方案决策问题
涉及知识点
程序算法解析
层次分析法主要步骤包括:
- 构建层次分析结构
- 构建判断矩阵
- 计算初始权重
- 一致性检验
下面将对层次分析法主要步骤进行介绍。
1.构建层次分析结构
将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为层次一(最高层)、层次二(中间层)和层次三(最低层),绘出层次结构图。 **层次一是指预定目标、要解决的问题。层次二指做出决策的中间环节,如决策的维度、准则等。 层次三是指决策时的备选的措施或方案。**层次分析法的结构具体如下图所示 :
2.构造判断矩阵
基于上述层次分析结构,结合专家判断后的的风险因子短清单,根据各业务专家的风险因子重要性排序结果构建风险因子两两比较关系,并得出重要性比较等级aij作为判断矩阵元素。aij表示因子i对比因子j的重要性,取值为1至9,aij大于1,表示风险因子i比风险因子j重要,且aij越大表示风险因子i对比风险因子j越重要。
同时,判断矩阵元素具有如下性质:
a
i
j
=
1
a
j
i
{\mathrm a}_{\mathrm{ij}}=\frac1{{\mathrm a}_{\mathrm{ji}}}
aij=aji1
判断矩阵元素aij的取值逻辑如下:
取值 | 风险因子i比风险因子j |
---|---|
1 | 同样重要 |
3 | 稍微重要 |
5 | 较为重要 |
7 | 非常重要 |
9 | 极端重要 |
2、4、6、8 | 上述两相邻判断的中值 |
矩阵元素可以通过专家判断法及线性近似法获得。
专家判断法:通过专家判断,对风险因子短清单中的所有风险因子分别进两两比较,得到每两个风险因子之间的重要性比较等级。
线性近似法:结合风险因子排序结果,确定各风险因子间的重要性比较等级,计算公式如下:
如果风险因子i比j重要,或同等重要,则:
a
i
j
=
1
+
8
n
−
1
×
d
i
j
a_{ij}=1+\frac8{n-1}\times d_{ij}
aij=1+n−18×dij
如果风险因子i不如j重要,则:
a
i
j
=
1
1
+
8
n
−
1
×
(
−
d
i
j
)
a_{ij}=\frac1{1+{\displaystyle\frac8{n-1}}\times\left(-d_{ij}\right)}
aij=1+n−18×(−dij)1
其中,n表示风险因子总个数,dij表示风险因子i与j的排序差,dij>0表示风险因子i比j重要,dij=0表示风险因子i与j同样重要,dij<0表示风险因子i不如j重要。
在完成上述步骤的基础上,构建判断矩阵 。
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}&\dots&a_{1n}\\a_{21}&a_{22}&\dots&a_{2n}\\\dots&\dots&\dots&\dots\\a_{n1}&a_{n2}&\dots&a_{nn}\end{bmatrix}
A=
a11a21…an1a12a22…an2…………a1na2n…ann
3.计算初始权重
基于上述步骤所得到的判断矩阵A,通过方根法得出矩阵最大特征值所对应的单位化特征向量,以进一步计算出各风险因子的权重值。具体流程如下
计算判断矩阵中所有风险因子的几何平均数,得到列向
V
=
(
ν
1
,
ν
2
,
…
,
ν
n
)
T
V=\left(\nu_1,\nu_2,\dots,\nu_n\right)^T
V=(ν1,ν2,…,νn)T
几何平均数 Vi 的计算公式如下:
ν
i
=
(
∏
j
=
1
n
a
i
j
)
1
n
,
i
=
1
,
2
,
3
,
…
,
n
\nu_i=\left(\prod_{j=1}^na_{ij}\right)^\frac1n,i=1,2,3,\dots,n
νi=(j=1∏naij)n1,i=1,2,3,…,n
其中,aij表示风险因子i相较于风险因子j的重要性,n为短清单中风险因子个数。
计算权重向量Ω
Ω
=
(
ω
1
,
ω
2
,
…
,
ω
n
)
T
\Omega=\left(\omega_1,\omega_2,\dots,\omega_n\right)^T
Ω=(ω1,ω2,…,ωn)T
其中通过对进行归一化处理得出,归一化公式如下:
ω
i
=
ν
i
∑
j
=
1
n
ν
j
\omega_i=\frac{\nu_i}{{\displaystyle\sum_{j=1}^n}\nu_j}
ωi=j=1∑nνjνi
4.一致性检验
计算得出初始权重后,需要对矩阵进行一致性检验,以验证各风险因子重要性比较结果是否符合常理。例如,若风险因子a比风险因子b重要,风险因子b比风险因子c重要,那么风险因子a一定比风险因子c 重要,否则与逻辑相悖,且可能导致最终计算出的权重无效。
通常利用CR(判断矩阵随机一致性比率)作为一致性检验评判指标,具体计算公式如下:
C
R
=
C
I
R
I
CR=\frac{CI}{RI}
CR=RICI
其中,RI表示平均随机一致性指标,该指标与判断矩阵阶数存在一定对应关系,具体如下表 所示:
矩阵阶数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RI | 0.00 | 0.00 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 | 1.49 | 1.51 | 1.54 | 1.56 | 1.57 | 1.58 |
CI表示判断矩阵的一般一致性指标,具体计算流程如下:
• 计算判断矩阵的最大特征根,具体计算公式如下:
λ
m
a
x
=
1
n
∑
i
=
1
n
(
A
Ω
)
i
ω
i
=
1
n
∑
i
=
1
n
∑
j
=
1
n
a
i
j
ω
j
ω
i
\lambda_{max}=\frac1n\sum_{i=1}^n\frac{{\left(A\Omega\right)}_i}{\omega_i}=\frac1n\sum_{i=1}^n\frac{{\displaystyle\sum_{j=1}^n}a_{ij}\omega_j}{\omega_i}
λmax=n1i=1∑nωi(AΩ)i=n1i=1∑nωij=1∑naijωj
• 根据及n进一步得出CI,具体计算公式如下:
C
I
=
λ
m
a
x
−
n
n
−
1
CI=\frac{\lambda_{max}-n}{n-1}
CI=n−1λmax−n
根据CI及RI计算得出CR。若CR≤0.1,则认为判断矩阵满足一致性要求,确定模型风险因子权重;若CR>0.1,则认为判断矩阵不满足一致性要求,需由业务专家对风险因子进行重新排序。
代码实现链接
- java实现
- js实现