模型定位
层次分析法「The analytic hierarchy process」是在对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。
模型共分为三个层级:
- 目标层:结果输出层,确定目标是什么?
- 准则层:影响因素集,决定这一结果的因素有什么?
- 方案层:备选集,从哪些样本中选择?
模型适用于评价类、排名类、决策类问题
模型流程
数据预处理
在计算中,需要将不同准则的数量级统一,这个过程称为归一化,将一组统一标准的数据视为列向量,把数据化为在总数中的占比即可,范围为(0,1):
生成判断矩阵
两两比较每个准则(指标)的重要性,记为$a_{ij}$, 来表示相对于指标j,指标i的重要性,且满足:
$a_{ij}$ | 含义 |
---|---|
1 | 指标$i$与指标$j$相同重要 |
3 | 指标$i$比指标$j$稍微重要 |
5 | 指标$i$比指标$j$明显重要 |
7 | 指标$i$比指标$j$强烈重要 |
9 | 指标$i$比指标$j$极端重要 |
注:2,4,6,8表示在两者之间
一致性检验
由于重要性的比较是单看两者的主观评价,结果不可避免会产生矛盾,我们虽然不能追求完美一致,但是这一判断矩阵必须通过一致性检验,确保重要性差异较为一致:
其中$\lambda_{max}$为判断矩阵的最大特征值,$RI$为常数,在不同因素数下有不同取值:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
RI | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 |
- 若$CR \leq 0.1 $ : 通过一致性检验
- 若$CR > 0.1 $ : 重新生成判断矩阵
权重矩阵
- 矩阵按列归一化:即每个数值除以所在列的和
- 每行求平均降维即可
代码实现
Python Version
1 | import numpy as np |
Matlab Version
1 | %输入判断矩阵 |