层次分析法
背景
填好志愿后,小明同学想出去旅游。在查阅了网上的攻略后,他初步选择了苏杭、北戴河和桂林三地之一作为目标景点。
请你确定评价指标、形成评价体系来为小明同学选择最佳的方案。
三大件
面对评价类问题,我们首先解决三大件:
- 我们的评价目标是什么?答:选出最佳旅游景点
- 我们为了达到目标有几种可选方案?答:三种,苏杭、北戴河和桂林
- 评价的准则或指标是什么?答:题目没给数据,需要查阅相关资料。假设查完资料为指标为景色花费居住饮食交通。
权重表
原本可以把小明抓来填入这个表然后计算每个地点的加权平均就好,分高即为答案。
指标权重 | 苏杭 | 北戴河 | 桂林 | |
---|---|---|---|---|
景色 | 0.2 | 80 | 90 | 100 |
花费 | 0.3 | * | * | * |
居住 | 0.1 | * | * | * |
饮食 | 0.3 | * | * | * |
交通 | 0.1 | * | * | * |
问题:小明的喜好可能不够稳定,一次性考虑五个指标之间的关系,往往考虑不周
所以:两个两个指标之间进行比较,最终根据两两比较的结果来推算权重
正互反矩阵
我们先根据以下表格来把五个指标的权重进行比较得出:
这个方阵有如下特点:
- Aij表示的意义是,与指标j相比,i的重要程度
- 当i=j,两个指标相同,因此同等重要记为1
- Aij>0且满足Aij * Aji = 1 (正互反矩阵)
再对各个指标两两地点进行比较:
注意:按照人的主观偏好,在比较的过程中很可能出现逻辑错误,例如如下情况。
一致矩阵
所以为了避免这种主观偏好的逻辑错误情况发生:我们需要学习一致矩阵(特点:各行各列之间成倍数关系(Aij*Ajk=Aik),是正互反矩阵。)
注意:在使用判断矩阵求权重之前,必须对其进行一致性检验(检验我们构造的判断矩阵和一致矩阵是否有太大的差别)
线性代数小知识:
我们可以通过模拟右边的图,来寻找最低点的x即为最合适的a,此时最大特征值为n
一致性检验步骤
第一步:计算一致性指标CI
C
I
=
(
λ
−
n
)
/
(
n
−
1
)
CI = (\lambda-n)/(n-1)
CI=(λ−n)/(n−1)
第二步:查找对应的平均随机一致性指标RI
第三步:计算一致性比例CR
C
R
=
C
I
/
R
I
CR = CI/RI
CR=CI/RI
如果CR<0.1,则可以认为判断矩阵的一致性可以接收,否则需要对判断矩阵进行修正(尽量往一致性矩阵上调整:各行各列成比例)。
修正结束后,我们需要对一致或判断矩阵去进行权重计算(归一化)。
算术平均法求权重
一致矩阵(每列成比例,所以每列得到的权重都是一样的):
判断矩阵(每列不成比例):
然后对每个地方求平均权重(景色):
苏杭:(0.5882+0.5714+0.625)/3 = 0.5949
北戴河:(0.2941+0.2857 + 0.25)/3 = 0.2766
桂林:(0.1177+0.1429+0.125)/3 = 0.1285
几何平均法求权重
特征值法求权重
一致性矩阵
有一个特征值为n,其余特征值为0
另外,特征值为n时,对应的特征向量为
这个特征向量刚好就是一致矩阵的第一列。(记得归一化处理)
判断矩阵
最终可以得到整个权重,然后再计算每个地点的得分情况最后分高的就是答案:
层次分析法步骤
建立系统的递阶层级结构
构造判断矩阵
计算被比较元素对于该准则的相对权重并进行一致性检验
三种求权重方法
计算各层元素对系统目标的合成矩阵,并进行排序
归一化并加权平均求分数
层次分析法局限性
- 评价的决策层不能太多,太多的话n很大,判断矩阵和一致矩阵差异可能会很大。平均随机一致性指标RI的表格中n最多为15
- 如果决策层中指标的数据已知,那么我们如何利用这些数据来使得评价的更加准确呢