作用
层次分析法是一个多指标的评价算法,主要用来在做决策时,给目标的多个影响因子做权重评分。特别是那些需要主观决策的、或者需要用经验判断的决策方案,例如:
- 买房子(主观决策)
- 选择旅游地(主观决策)
- 给员工进行绩效评估(经验判断)
- 选择开店地址(经验判断)
实现步骤
构建层次评价模型
一般可以分为三个层次:目标层、准则层和方案层。如图,目标层:最优旅游地选择;准则层:景色、费用、居住、饮食、旅途;方案层:西安、云南、西藏、青海。
构造判断矩阵
构造判断矩阵就是将准则层各要素之间两两相互比较,确定各要素对目标层的重要程度(权重)。
准则层A构建如下:
准则层A各要素必须满足如下条件:即各要素必须大于0;对角线必须等于1;对角线对称的元素互为倒数。
标度值的大小如图所示方法进行配置
层次单排序与一致性检验
层次单排序就是根据我们构成的判断矩阵,求解各个指标的权重。
计算权重有两种方法:方根法、和法。
计算权重
方根法
1、通过计算每行乘积的m次方,得到m维向量。
示例中的计算如图
2、将向量标准化,得到权重
计算示例的权重如图
和法
1、先将矩阵的每列进行标准化
2、将标准化后的各元素按行求和
3、将求和结果进行标准化
求解最大特征根λmax与CI值
以上,求得权重矩阵后,可以计算最大特征根,其公式为:
其中n为维度数,例如构建的判断矩阵为:景色、费用、居住、饮食、旅途时,n=5;
AW为:判断矩阵*标准化后的权重,然后按按行的累加值。
即判断矩阵A为:
标准化后权重W为:
其中A*W为:
AW:
λmax:
AW1/W1+AW2/W2+AW3/W3+···+AWn/Wn=x
最大特征值λmax=x/矩阵阶数=5.416
最大特征值λmax求解出来后,C.I值就好算多了,
根据C.I值公式,λmax=5.416,n=5,代入可得C.I值=0.1042
求解CR值,判断一致性
一致性校验目的是确定构建的判断矩阵是否有逻辑问题。例如,如果a相当于b为3,a相当于c为1/3,在判断b相当于c时,理应c比b重要。
RI值通过查表可以得知,这个是模拟 1000 次得到的随机一致性指标 R.I.:
而我们的矩阵是5阶(准则层因子个数),矩阵阶数为5时对应的RI值为1.12,代入公式,可以得到C.R.值为 0.1042 / 1.12 = 0.093。
所以 C.R.=0.093
层次总排序与一致性检验
层次总排序,其实就是通过类型层次单排序的方法来给方案打分。即上一步的层次单排序通过判断矩阵计算出了景色、费用、居住、饮食和旅途的权重。现在如果想要知道目标地的权重,那就再构建一个判断矩阵,利用层次单排序计算目标地点的权重,即目标方案的分数。
层次单排序是对一个目标下的多个影响因子,计算各个因子的权重,例如下图中的Z和A1、A2、A3、A4和A5。或者将A1(景色)作为目标,B1、B2和B3作为影响因子,计算B1、B2和B3的权重,即苏杭、北戴河和桂林对目标景色的重要性。
具体做法是这样的。根据上一步算出来的各个因素的权重,确定A1~A5的权重为
现在我想计算方案B1苏杭的权重,那么我们就要重复上个步骤的层次单排序的方法,首先构建一个判断矩阵
依此类推,上述步骤循环5次,就能得到苏杭、北戴河、桂林在景色上的得分矩阵A1,在费用上的得分矩阵A2,在居住上的得分矩阵A3,在饮食上的得分矩阵A4,在旅途上的得分矩阵A5:
以上的判断矩阵全部需要做一致性校验。
通过判断矩阵再计算苏杭、北戴河、桂林在景色、费用等因素上的权重。
对于方案B1(苏杭),它的总得分为:
苏杭在景色上的得分*景色的权重+苏杭在费用上的得分*费用的权重+苏杭在居住上的得分*居住的权重+苏杭在饮食上的得分*饮食的权重+苏杭在旅途上的得分*旅途的权重=0.5954*0.3104+0.819*0.0591+0.4286*0.1157+0.6337*0.4716+0.1667*0.0432=0.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
因此苏杭得分最高,选择去苏杭。
总结
层次分析法的核心其实就是层次单排序。层次单排序是对一个目标下的多个影响因子,计算各个因子对于该目标的权重。利用层次单排序我们就能在一个树型结构的层次评价模型里,由最上层的目标层层递进向下,最终得到树的叶子节点的权重,即我们想要得到的各个方案的权重。
当我们把一个树模型上的所有节点的得分(可以理解为对上一层的权重)都计算出来之后,最终的方案的权重也就出来了。