用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)
文章目录
目录
1、前言与算法简述
今天应粉丝要求,梳理一下层次分析法。
层次分析法,也就是Analytic Hierarchy Process(AHP) ,乃是美国运筹学家Saaty在20世纪70年代初期所提出来的一种主观赋值评价方法,它将和决策存在关联的元素分解成目标、准则、方案等多个层次,并且在这个基础上展开定性以及定量分析,是一种系统、简便、灵活且有效的决策方法。
此算法为多指标综合评价算法,鉴于该算法具备简单以及实用的特性,所以在经管类范畴亦或是实际生活当中有着极为广泛的应用,它大体存在两个具体用途。
针对指标去制定权重,举个例子来说,就好比选择旅游地这样一个决策,通常情况下我们这个决策是由以下5个因素共同构成的,然而每一个人在主观层面上对于不同因素的重视程度并非一致,ahp能够达成在不需要去搜集有关数据的情形下,为这些指标赋予权重。
面对选择旅游地的决策,我们或许存在一些方案,像苏杭、北戴河、桂林这三个方案,层次分析法能够综合五个因素,为这些方案算出量化得分,比如苏杭0.3分,北戴河0.35分,桂林0.45分,如此依据分值大小,我们便能选到内心或经验上最为心仪的方案了。
鉴于先前对层次分析法作用的讲解,于生活里更多公务员考试网题库就点击这里,于工作中,实际上我们能够运用此模型的途径是极为宽泛的,尤其是针对那些需凭借主观做出决策的情况,或者是需要借助经验进行判断的决策方案,像:
2、AHP层次分析法过程
在对一个现象或问题予以分析之前,层次分析法的原理是,先依据现象或问题的性质把它们分解成相关因素,再按照它们之间的关系分类,从而形成一个多层次的结构模型。接着借助经验或者专家,去判断以及衡量低层因素对高层因素的相对重要性,依据重要性程度得出权重排序,进而能够进行量化分析比较。层次分析法重点在于把影响因素进行层次化与数据化,它把一个抽象的现象或问题较困难地由难到易地给予分解,便于对复杂问题直观地作出判断,进而作出决策。层次分析法具备把复杂问题予以简单化,并且计算简便等优势,其应用极为广泛,像在人员素质评估方面,在多方案比较领域,在科技成果评比范畴,以及在工作成效评价诸多方面都存在运用。
简要来讲,层次分析方法就是把一个决策事情分解成目标层,其中像是选择旅游地点这样的情况,还有准则层,这是影响决策的因素,像是景色、交通、费用等方面,以及方案层,这指的是存在多个方案,像是去广州、桂林等地进行旅游这样的方案。
在层次分析法的应用进程当中,大体的步骤主要涵盖四个方面。首先第一步是构建层次结构模型,接着第二步是构造判断矩阵,第三步是层次单排序以及其一致性检验,此步骤也就是给指标确定权重,第四步是层次总排序以及其一致性检验,倘若这一步不存在决策层,通常情况下是能够省略的。
先说明一下,一致性检验的意义在于判定所构建的判断矩阵是不是存在逻辑方面的问题,比如说,用A、B、C来构建判断矩阵,要是判定A相对于B为3(意味着A比B稍微重要),A相对于C为1/3(也就是C比A稍微重要),那么在判断B相对于C的时候,依据上述的逻辑情况,按理来说应该是C比B重要,要是我们在构建判断矩阵的时候,错误地填写成B相对于C为3(即B比C稍微重要),这样就出现了逻辑错误。
2.1 构建层次评价模型
依照其名所表达的意思来看,于这个层次评价模型当中,我们要去确定整个决策事件的目标层,还要确定准则层,并且要确定方案层。
其中,
目标层:最优旅游地选择
准则层:景色、费用、居住、饮食、旅途
方案层:西安、云南、西藏、青海
假如准则层存在多层,就比如像下面所展示的这个图那样,那时要注意的是,按照这样依次类推下去就可以了。
2.2 构造判断矩阵
判断矩阵的构造,是要通过各要素之间相互进行两两比较,进而确定各准则层针对目标层的权重。
扼要来讲,便是针对准则层的指标,展开两两之间的判断,一般情况下,我们会运用Santy的1-9标度方法予以给出。
对于准则层A,我们可以构建一个
其中A 中的元素满足:
简要来讲,举例而言,针对准则层面,涵盖景色、费用、居住、饮食以及旅途这些方面,我们能够构建出如此一个5乘以5的判断矩阵:
各个指标自己的判断构成其中的对角线,比如说,针对【景色】与【景色】,它的重要性是1,这是由于指标自身和自身对比必然是1:1。对于第二行第一列来看,也就是【费用】与【景色】进行对比,若可我觉得【费用】相较于【景色】明显更重要,那么就能够标值为5。
那么判断矩阵就会变为:
以此类推,直到构建完成一个完整的判断矩阵。
2.3 层次单排序与一致性检验
这里列出一般在文献中的说明:
step1:层次单排序
层次单排序,是针对上一层某元素,把本层中所有元素,两两进行评比,然后开展层次排序,去进行重要顺序的排列,具体计算要依据判断矩阵A来进行,计算的时候要确保其能够符合AW=的特征根和特征向量条件。在这里,A的最大特征根是λmax,对应λmax的正规化的特征向量是W,是W的分量,它指代的是权值,和其相应元素单排序相对应。利用判断矩阵去计算各因素对目标层的权重,也就是权系数。
具备权重性质的向量(W)以及最大特征(λmax)其计算时所涉及的步骤(方根法或者和法),情况如下表所展示的:
step2:求解最大特征根与CI值
假使存在一个 n 阶这般的判断矩阵,其被称作 B,那么呢,能够运用以下这么一种方法,去把它最大的那一个特征根给求取出来。
BW=λW
具体而言,W属于B的特征向量。于层次分析法里,我们借助以下的一致性指标CI去检验判断的一致性指标(即Consistency Index):
C.我等于零,这所传达出的情况是判断矩阵处于完全一致的状态,而当一致性指标越大的时候,所呈现出来的是判断矩阵不一致的程度愈发严重。
步骤三:依据CI值以及RI值,去求解CR值,进而判断它的一致性是不是能够通过。
Satty模拟,历经1000次,所获取的随机一致性指标R.I.的取值表,呈现于如下表格之中:
当 C.R.
下面我用人话说一下:
2.3.1 层次单排序
大略来讲,层次单排序呀,是依据我们所搭建的判断矩阵,去求取各个指标的权重呢。
例如我们现在在2.2构建完成了准则层的判断矩阵A如下:
那么,我们能够对其权重也就是权重向量进行计算,存在着两种方式,其中的一种是方根法,另外的一种是和法。
其中方根法计算权重如下:
计算每行乘积的m次方,得到一个m维向量
即:
(2)将将向量标准化即为权重向量,即得到权重
即:
而和法计算权重如下:
step1:先将矩阵的每列进行标准化
step2:将标准化后的各元素按行求和
step3:将求和结果进行标准化
例如这张图所示:
2.3.2 求解最大特征根与CI值
以上,求得权重矩阵后,可以计算最大特征根,其公式为:
其中,n是维度数,举例来说,倘若构建的判断矩阵是景色、费用、居住、饮食、旅途,此时,n为5。
AW为:判断矩阵*标准化后的权重,然后按按行的累加值。
即判断矩阵A为:
指标
景色
费用
居住
饮食
旅途
景色
0.3333
费用
0.2
0.25
0.1667
居住
0.2
0.2
饮食
旅途
0.125
0.5
0.3333
0.1667
标准化后权重W为:
景色
费用
居住
饮食
旅途
0.3104
0.0591
0.1157
0.4716
0.0432
其中A*W为:
指标
景色
费用
居住
饮食
旅途
景色
0.3104
0.2955
0.5785
0.15718428
0.3456
费用
0.06208
0.0591
0.028925
0.07861572
0.0864
居住
0.06208
0.2364
0.1157
0.09432
0.1296
饮食
0.9312
0.3546
0.5785
0.4716
0.2592
旅途
0.0388
0.02955
0.03856281
0.07861572
0.0432
AW:
λmax:
最大特征值λmax=x/矩阵阶数=5.416
最大特征值λmax求解出来后,C.I值就好算多了,
依据C.I值公式,其中λmax等于5.416,n的值为5,将这些代入之后,能够得到C.I值是0.1042。
2.3.3 根据CI、RI值求解CR值,判断其一致性是否通过。
一致性检验的含义呢,是用来确定所构建的判断矩阵是不是存在逻辑方面的问题,比如说,以A、B、C来构建判断矩阵,要是判定A相对于B为3啦,也就是A比B稍微重要,A相对于C为1/3,这意味着C比A稍微重要,而在当判断B相对于C的时候,按照前面所说的逻辑,理当是C比B重要,可是要是在构建判断矩阵时,错误地填写成B相对于C为3,也就是B比C稍微重要,那就犯了逻辑错误了。
可通过查表得知RI值,这是Satty模拟1000次所得到的随机一致性指标R.I.取值表,如下表所示。
那么,我们所拥有的矩阵呢,它属于5阶,此5阶指的是准则层因子的个数,当矩阵阶数变成5的时候,与之相对应的RI值是1.12,然后将其代入公式:
可以得到C.R.值为0.1042/1.12=0.093。
所以 C.R.=0.093
比如B矩阵,我们假定在两两对比第三行第二列之际,填入了五分之一这一数值,此时就没办法通过一致性检验,缘由在于其犯了逻辑方面的错误,我们依据第二行第一列,能够晓得上海的地位相较于广州需稍微重要些,依据第三行第一列,能够晓得北京的地位相较于广州要强烈重要些,所以按照逻辑来讲:上海大于广州,北京远大于广州,那么北京理应是大于上海的,然而我们填入的是五分之一,也就是北京比上海相当不重要,所以就出现了逻辑错误,在这个时候,我们要对判断矩阵A予以修正,修正成北京大于上海。
到此,我们就达成了层次单排序以及一致性检验,经由我们于运用层次分析法时仅运用到此处,用以给指标确定权重,要是我们存在方案层,那就得做层次总排序以及其一致性检验。
2.4 层次总排序与一致性检验
这里列出一般在文献中的说明:
去计算处于某一层次的所有因素针对那最高层也就是目标层而言的相对重要性的权值这种行为,被称作层次总排序,这个过程是按照从最高层次朝最低层次逐个依次来开展进行的:
设定B层为1,2等等,针对上层也就是A层里的因素,这里因素等于1,2等等和若干个,其层次排序的一致性指标是某个值,随机一致性指标是另一个某值的时候,那个层次总排序的一致性比率是这样表述的:
当着小于零点一的时候,就认为层次总排序凭借一致性检验通过,不然的话就需要再度调整判断矩阵的元素取值。到了这里,依据最下层也就是决策层的层次总排序作出最后的决策。
下面我用人话说一下:
层次总排序,其实就是通过类型层次单排序的方法来给方案打分。
咱们来举个例子,按照2.3的排列确定出了层次单排序,此刻明确A1到A5的权重是。
景色
费用
居住
饮食
旅途
0.3104
0.0591
0.1157
0.4716
0.0432
此刻,我有着计算方案B1,也就是苏杭得分的想法,然而,我们对苏杭景色的得分情况却是不清楚的,那么,到底应该怎样去做呢?
跟2.3那样的层次单排序相类似,针对于景色这个要素,我们能够构建出一个3*3的矩阵,情形如下所示:
经由层次单排序,针对各个方案于景色方面展开两两对比,如此一来,我们能够获取苏杭、北戴河、桂林的权重,进而,这个权重能够当作苏杭、北戴河、桂林在景色上的得分。
依此类推,我们构造得出,关于苏杭、北戴河、桂林景色方面的得分矩阵A1,关于苏杭、北戴河、桂林费用方面的得分矩阵A2,关于苏杭、北戴河、桂林居住方面的得分矩阵A3,关于苏杭、北戴河、桂林饮食方面的得分矩阵A4,关于苏杭、北戴河、桂林旅途方面的得分矩阵A5:
计算得到其得分为:
PS:以上全部的判断矩阵都需要做一致性检验。
那么对于方案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.二七一四乘以零点三一零四,加上零时二三六三乘以零点零五九一,加上零时四二八六乘以零点一一五七,加上零时一九一九乘以零点四七一六,加上零时一六六七乘以零点零四三二,等于零点二四七一。
方案B3(桂林):
0.一千二百八十三乘以零点三一零四,加上零点六八一七乘以零点零五九一,加上零点一四二九乘以零点一一五七,加上零点一七四四乘以零点四七一六,加上零点六六六七乘以零点零四三二,等于零点二零七七。
因此苏杭得分最高,选择去苏杭。
3、案例以及工具实现 3.1 外出旅游最重视的因素
这里所具备的作用实际上是求取因子权重,所以仅仅计算至层次单排序境地,其间不存在方案层,也就是说并不需要层次总排序了。
3.1.1 使用工具
SPSSPRO—>【层次分析法(AHP简化版)】
3.1.2 案例操作
step1:选择【层次分析法(AHP简化版)】;
step2:选择判断矩阵阶层
step3:设置判断矩阵(判断矩阵是对称矩阵)
step4:点击【开始分析】,完成全部操作。
3.1.3 分析结果解读
导出的结果是由SPSSPRO软件的分析生成的,计算方式在第二章我已讲提及,下面直接列出分析结果了。
输出结果1:构建判断矩阵结果
这个就是前面操作页面所填写的判断矩阵
输出结果2:AHP层次分析结果
由基于方根法的权重计算结果表明,景色的权重所得分数是0.2657,费用的权重得分是0.4212,居住的权重得分是0.0657,饮食的权重得分是0.1067,旅途的权重得分是0.1407,最大特征根是5.1352,CI为0.0338。
输出结果3:一致性检验结果
进行计算,其结果得以显示,其中最大特征根是5.1352,依据RI表去查找,查到与之对应的RI值为1.11,所以CR等于CI除以RI,结果为。
0.0305
要留意的是,此处的RI值选用的是近些年来更获认可的Franek and Kresta (2014)的方式,而非采用satty的方法。且,再也不运用satty的方法了。
3.1.4 小结
由3.1.3能够知晓,外出旅行最为看重的要素是费用,其权重所得分数为0.4212,此结果极具主观性,因自身挑选旅游地点这一决定本就是极为主观的抉择,恰似延伸至买房情况,其本身作用于买房的决定因素同样极为主观,每个人都存有自身的衡量标准,然而倘若针对店铺,比如奶茶店选址,那么我们能够寻觅有经验之人进行两两评判,或者多方收集一些专家的评判,求取平均值,对于主观之事,当想法相契合的人增多,那么也就成了一个客观的事实。
3.2 选择最佳外出旅游地
这里所具备的作用实际就是求取方案的量化后的得分,所以在此种情况下需要针对准则层展开计算层次单排序的相关操作,并且要进行对方案层予以层次总排序的行为。
3.2.1 使用工具
SPSSPRO—>【层次分析法(AHP专业版)】
3.2.2 案例操作
Step1:选择层次分析法(AHP专业版);
Step2:选择构建决策模型;
Step3:输入构建的评价指标;
Step4:输入最终的方案;
Step5:确认以进入下一步指标评分;
Step6:输入指标之间两两比对的重要程度值;
Step7:输入不同方案的对应评价值的重要程度评价;
3.1.3 分析结果解读
以下生成的结果来源于SPSSPRO软件的分析结果导出,计算方式我在第二章有说过,下面直接就列分析结果了。
输出结果1:方案得分
在依据指标层次单排序以及方案层次总排序之后,针对于旅游地的选择而言,最好的方案是北戴河,第二好的方案是桂林。北戴河所获得的量化得分为1.435,其得分比位列第二的桂林高出了将近一倍。
输出结果2:层次决策模型
从图能够看出,当中最为关键的两个起到决定作用的因素是旅游的地方的景色以及费用,然而饮食、居住的状况是属于权重比较低的。
输出结果3:判断矩阵汇总结果
这里将特征向量以及权重给罗列出来了,CR值是小于0.1的,一致性检验是通过了的,层次分析法的结果是有效的。
输出结果4:方案层判断矩阵汇总结果
展示了层次分析法方案层权重计算结果(就是层次总排序),构建了和叶子节点指标数目一样多的判断矩阵来分析各个指标权重,展示了一致性检验结果,以此判断方案层权重矩阵有无构建判断矩阵的逻辑问题。因为上一级节点得分能依据其子节点得分乘权重算出,所以构建方案层判断矩阵时,只针对叶子节点构建,也就是N个叶子节点构建N个判断矩阵,用来综合两两对比情形,得出方案层针对某个叶子节点的得分。
可以看到,方案的得分都满足了一致性检验。
3.2.4 小结
于3.2.3可知,旅游地选择最佳方案是北戴河,其量化得分是1.435,层次总排序的方案层判断矩阵,是在无数据情形下做的,现实之中,当我们面临选择旅游地、选择租房、选择买房这类偏主观的决策时,是能够采用层次总排序的,要是推广到店铺选址、快递柜选择、活动方案选择等需客观决策的事情,我们实际上可通过两种方式来优化:

