在日常生活中,

我们常常面临着各种各样的选择。

比如你想去北京、上海、广州旅游,

但是由于种种原因,

你只能选择一个地点去旅游,

那么哪一种选择是最优的呢?

有没有较为科学的方法帮助我们更好地选择呢?

今天,小创君就带领大家认识一下

——层次分析法。

层次分析法的简述

层次分析法简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂正式提出。它是指将与决策有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。

层次分析法是对一些复杂、多元化的问题作出决策的简易方法,它特别适用于那些难于定量分析的问题。简单的说就是那些没有多少数据依据,基本凭个人的主观意识让你去选择一个最佳的目标或者计算出对于一个目标而言,各个因素所占的权重。

层次分析法的实施步骤

01

建立递阶层次结构模型

将决策的目标、准则和对象依次分成目标层、准则层和最低层,并绘制层次结构图。

1)目标层:分析问题的预定目标或理想结果。

2)准则层:解决问题的准则。

3)措施层:为实现目标可供选择的各种措施、决策方案等。

02

构造出各层次中的所有判断矩阵

准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。为了更好地推算出各准则在目标衡量中所占的比例,我们提出了成对比较判断矩阵。

成对比较判断矩阵(简称判断矩阵)是表示本层所有因素针对上一层某一个因素(准则或目标)的相对重要性的比较。即不把所有因素放在一起比较,而是两两相互比较(同一层次),尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。

进行两两相互比较,并按其重要性程度评定等级,一般采用1-9标度。

图     如下举例为准则层对目标层判断矩阵。

如下举例为措施层对准则层判断矩阵。(其他4个判断矩阵以此类推)

通过要素之间两两比对,会使判断更加清晰。

03

层次单排序及一致性检验

一致性检验步骤

判断矩阵写出来之后会存在一个问题,那就是按理来说如果i对j的重要程度是a,j对k的重要程度是b,那么i对k的重要程度应该为a*b。但事实上并不是如此。所以需要进行一致性检验,如果在一定的合理范围之内,则判断矩阵不需要修改,如果不在一定的合理范围之内,则需要修改判断矩阵。

1.计算一致性指标

2.查找对应的平均随机一致性指标RI

3.计算一致性比例CR

若CR<0.1,则判断矩阵的一致性可接受。

若CR>0.1,则需要对判断矩阵进行修正。

层次单排序步骤

通过数据计算的方法得到单独某一层对上一层因素的相对重要性权值,这一过程称为层次单排序,那能否确认层次单排序,需要提前进行一致性检验,即检查判断矩阵是否存在逻辑性的错误。

1.归一化处理

若为一致性矩阵(即aij*ajk=aik的判断矩阵):

一致矩阵各列对应成比例,则只需对一列进行归一化处理。

若为判断矩阵:

由于各列不对应成比例,所以每列都需要进行归一化处理。

2.求权重

即算术平均法、几何平均法、特征值法。(由于篇幅的关系只举一个例子)

例如算术平均法:

1)将判断矩阵按列归一化(每列元素除以其所在列的和)。

2)将归一化的各列相加。(按行求和)

3)将相加后得到的向量中每个元素除以n 即可得到权重向量。

由此可知景色分配给北京、上海、广州的权重为01638、0.2973、0.5372。

经过层次单排序及一致性检验即可计算出措施层对准则层各因素的相对重要性权值以及准则层对目标层的相对重要性权值。

04

层次总排序及一致性检验

计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。

这一过程是从最高层到最低层次依次进行的。同样需要进行一致性检验,若检验通过就可以得到各底层方案对于目标的权重,从而做出优质的选择。

例如准则层的6个元素对目标层的权值序列为a1、a2、a3、a4、a5、a6。措施层的3个元素对准则层的某一因素Aj的权值队列为b1j,b2j,b3j。则措施层某一因素Bi对目标层的权值为

设措施层三个元素对准则层某一因素Aj的一致性指标为CIj,随机性指标为RIj,则层次总排序的一致性比率为

CR=(a1*CI1+......+a6*CI6)/(a1*RI1+......+a6*RI6)

若CR<0.1,则层次总排序的一致性检验通过。

计算权重及一致性检验的matlab代码

function [Q]=AHP(B)

%Q为权值,B为对比矩阵

%导入判别矩阵B

[n,m]=size(B);

%判别矩阵具有完全一致性

for i=1:n

for j=1:n

if B(i,j)*B(j,i)~=1

fprintf('i=%d,j=%d,B(i,j)=%d,B(j,i)=%d\n',i,j,B(i,j),B(j,i))

end

end

end

%求特征值特征向量,找到最大特征值对应的特征向量

[V,D]=eig(B);

tz=max(D);

tzz=max(tz);

c1=find(D(1,:)==max(tz));

tzx=V(:,c1);%特征向量

%权

quan=zeros(n,1);

for i=1:n

quan(i,1)=tzx(i,1)/sum(tzx);

end

Q=quan;

%一致性检验

CI=(tzz-n)/(n-1);

RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];

%判断是否通过一致性检验

CR=CI/RI(1,n);

if CR>=0.1

fprintf('没有通过一致性检验\n');

else

fprintf('通过一致性检验\n');

end

end

  1. end

关于综合评价方法之层次分析法的介绍就到这里了,另外还有很多综合评价的方法哦,例如灰色关联分析法、熵权法、优劣解距离法等,感兴趣的小花椒可以自行查找资料了解呀~

END

编      辑:刘俊宇

责任编辑:邹慧婷

通信电子创新基地

CHUANGXINJIDI

yaahp层次分析法步骤_综合评价方法之层次分析法,选择再也难不倒你!相关推荐

  1. matlab层次分析法代码_基于主成分分析法和层次分析法的工程项目经理胜任力评价研究...

    摘 要:根据工程项目经理胜任力评价指标,运用主成分分析法和层次分析法相结合的数学方法对工程项目经理的胜任力进行合理公正的评价.首先运用主成分分析法筛选重要指标,再运用层次分析法对工程项目经理进行定量与 ...

  2. 灰色关联度分析excel步骤_技术 | 基于灰色关联与粗糙依赖度的甘肃兰州市区泥石流危险性评价...

    泥石流危险性是指在人类及所在环境中一切事物遭受泥石流损害的可能性大小.作为防灾减灾中泥石流灾害管理的重要一环,泥石流的危险性评估是泥石流灾害防治决策的前提.学者们普遍认为通过泥石流风险评估和风险管理, ...

  3. 综合评价方法之层次分析法

    层次分析法计算步骤 计算权重矩阵 构造新矩阵 aij=aij∑n=1naija_{ij}=\frac{a_{ij}}{\sum^{n}_{n=1}a_{ij}} aij​=∑n=1n​aij​aij​ ...

  4. 方根法公式_(完整word版)层次分析法中用方根法计算权重在Excel中的具体操作

    Exce l 表 A B C D E F G H I J K L M N 1 总 目 标 子 目 标 1 子 目 标 2 子 目 标 3 子 目 标 4 M ij 几何平均 数 权重 W i AW i ...

  5. 研究生常用的几种风险评估方法-专家调查法、蒙特卡洛模拟法、计划评审技术、敏感性分析法、决策树法、影响图法、模糊综合评价方法

    其实风险评估就是在充分掌握资料的基础之上,采用合适的方法对已识别风险进行系统分析和研究,评估风险发生的可能性(概率).造成损失的范围和严重程度(强度),为接下来选择适当的风险处理方法提供依据.今天老徐 ...

  6. rda冗余分析步骤_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

  7. python主成分分析法降维_【数据降维】主成分分析法

    主要内容本系列马上就要进入建模的阶段了,但是在这之前还有一些准备工作要做,能让我们最终得到的分析结果更好,数据降维便是其中之一. 数据降维实际上是对输入特征的一次精简.通常来说当我们已经通过数据处理得 ...

  8. java蛮力法背包问题_[算法课]五种蛮力法解决01背包问题

    文章目录 注明:题目要求只能使用蛮力法 算法标签:全排列,枚举,二进制,dfs,数组 题目简介 思路 AC代码 方法一:字符串蛮力 方法二:二进制枚举 方法三:DFS 三.2闫老板思考角度 方法四:全 ...

  9. rda分析怎么做_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

最新文章

  1. C++中四种类型转换方式
  2. nebula加入时间约束条件,查询结果没有输出
  3. python内存管理说法错误_python面试题总结1-内存管理机制
  4. linux shell sed d删除指定行并更换分隔符为#
  5. background-attachment:fixed应用
  6. 面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)...
  7. coredump gdb 调试_CRASH安装和调试
  8. 《Android深度探索》第一章心得体会
  9. Start Developing iOS Apps Today系列(二)
  10. 60套漂亮的的免费 PSD 界面设计元素包资源(系列二)
  11. 构建我的第一个 22TB 容量的家庭存储服务器
  12. 非计算机专业怎么准备蓝桥杯,大三接触算法,用寒假时间准备蓝桥杯,如何提高成绩?...
  13. idea代码格式美化快捷键
  14. ireader_使用iReader在Chrome和Firefox上获取Safari Reader
  15. 【简书交友】阿群1986: 一个专注于修电脑做系统的青岛小哥
  16. ae如何把已有图片当做蒙版_AE遮罩教程,如何用AE创建文字蒙版遮罩
  17. 集团信息化“润物细无声”
  18. Rabbitmq学习笔记(尚硅谷2021)
  19. 微博爬虫及舆情分析-4.用户舆情分析
  20. QuickHit项目

热门文章

  1. mysql相关命令操作
  2. Sybase用户登录以后的自动运行脚本
  3. Webtask后端即服务:无服务器快速教程
  4. vr格式视频价格_如何以100美元的价格打造自己的VR耳机
  5. 简述yolo1-yolo3_使用YOLO框架进行对象检测的综合指南-第二部分
  6. Spring中WebApplicationInitializer的理解
  7. 深入理解了MySQL,你才能说熟悉数据库
  8. day01_初识python
  9. for 循环 和 Array 数组对象
  10. open-falcon的插件机制