-
2021-12-17 22:31:57
层次分析法(Analyt Hierarchy Process,缩写AHP)是将决策有关的元素分解成目标、准指、方案等层次,在次基础上进行定性和定量分析的决策方法。本文通过一个示例描述R的实现过程。
概述
层次分析法计算指标权重的基本思路是,首先建立有效的递阶指标系统,然后主管地将指标两两对比构造判定矩阵,再根据判定矩阵进行数字处理及一致性检验,就可获得各个指标的相对重要性权数。
例子:
在地区间宏观经济效益评价中,选取资金利税率(x1)、投资效果系数(x2)和劳动生产率(x3)三项指标。某专家认为,资金利税率比劳动生产率极端重要,比投资效果系数稍重要,而投资效果系数比劳动生产率重要。试根据这位专家的判断确定三项评价指标的权数。
指标 X1 X2 X3 X1 1 3 9 X2 1/3 1 5 X3 1/9 1/5 1 tibble存储判定矩阵
options(digits = 2) library(tidyverse) macro <- tibble(x1=c(1,1/3,1/9), x2=c(3,1,1/5), x3=c(9,5,1)) macro # A tibble: 3 x 3 # x1 x2 x3 # <dbl> <dbl> <dbl> # 1 1 3 9 # 2 0.333 1 5 # 3 0.111 0.2 1
计算行向几何平均
即计算行数据成绩,然后再求行积结果的P次方根,即行向几何平均。
# 增加w变量 macro %>% mutate(w = '^'(x1*x2*x3, 1/3)) -> macro macro # A tibble: 3 x 4 # x1 x2 x3 w # <dbl> <dbl> <dbl> <dbl> # 1 1 3 9 3 # 2 0.333 1 5 1.19 # 3 0.111 0.2 1 0.281
对w变量归一化处理
w变量中的值除以w列向量之和。
# 定义归一化函数 std <- function(x){ x / sum(x) } # 通过归一化计算权重 macro %>% mutate_at(c("w"), .funs = std) -> macro macro # A tibble: 3 x 4 # x1 x2 x3 w # <dbl> <dbl> <dbl> <dbl> # 1 1 3 9 0.672 # 2 0.333 1 5 0.265 # 3 0.111 0.2 1 0.0629
下面要对三个变量的权重进行检验
一致性检验
一致性检验保证各指标的相对重要程度的判定要协调一致,不要出现相互矛盾的现象。
判定矩阵B具有一致性的条件是矩阵B的最大特征根等于指标的个数。计算过程如下:
options(digits = 2) library(tidyverse) # 随机一致性表 ri_table <- c(0, 0, 0.58, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 1.49, 1.52,1.54) b <- as.matrix(macro[,-4]) w <- as.matrix(macro[,4]) ## 矩阵乘积 bw <- b %*% w ## 最大特征根 lmda <- 1/3 * sum(bw / w) lmda ## 一致性指标CI ci <- (lmda-length(bw)) / (length(bw) -1) ci ## 一致性比率CR cr <- ci / ri_table[length(bw)] cr # [1] 0.025 # cr = 0.025 < 0.10,一致性检验通过, 上述 w 的权重是合理的 # w # [1,] 0.672 # [2,] 0.265 # [3,] 0.063
cr = 0.025 < 0.10,一致性检验通过, 因此上述 w 的权重是合理的。
最终计算X1(67%), X2(27%), X3(6%),三个变量权重总和等于1.完整代码
options(digits = 2) library(tidyverse) macro <- tibble(x1=c(1,1/3,1/9), x2=c(3,1,1/5), x3=c(9,5,1)) macro %>% mutate(w = '^'(x1*x2*x3, 1/3)) -> macro macro # 定义归一化函数 unif <- function(x){ x / sum(x) } # 通过归一化计算权重 macro %>% mutate_at(c("w"), .funs = std) -> macro macro # 随机一致性表 ri_table <- c(0, 0, 0.58, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 1.49, 1.52,1.54) # 一致性检验 b <- as.matrix(macro[,-4]) w <- as.matrix(macro[,4]) bw <- b %*% w lmda <- 1/3 * sum(bw / w) lmda ci <- (lmda-length(bw)) / (length(bw) -1) ci cr <- ci / ri_table[length(bw)] cr
更多相关内容 -
基于层次分析法和综合加权的可测性分配方法
2021-03-04 07:26:22基于层次分析法和综合加权的可测性分配方法 -
直觉模糊层次分析法
2020-06-16 23:17:13为了解决传统模糊层次分析法难以处理的直觉模糊环境下的综合评判问题,利用直觉模糊数和模糊层次分析法建立了一种直觉模糊层次分析法。实验分析表明了该方法的有效性。 -
基于层次分析法的应急路径选择方法
2020-07-20 15:09:43采用改进的层次分析法分析道路状况的多种因素,得出了当道路发生紧急事故时,符合时效性、安全性、经济性的路段权值。然后根据实时交通信息,利用改进的Dijkstra算法,探索了路径权重计算方法,建立了交通网络的运行... -
改进层次分析法的瓦斯涌出量组合预测方法研究
2020-06-26 21:00:12为了提高矿井瓦斯涌出量的预测精度,采用改进层次分析法对指数预测,双曲线预测和灰色预测3种传统预测方法,从稳定性,数据利用和适用时间上来进行加权组合,提出一种基于改进层次分析法的组合预测方法,并对西北某矿区4... -
基于层次分析法的加权聚类融合.pdf
2021-08-20 12:27:24基于层次分析法的加权聚类融合.pdf -
层次分析法在建昌盆地油页岩勘查有利区优选中的应用
2020-06-26 22:46:31层次分析法综合定性分析与定量分析将复杂的问题用一个逻辑有序的递阶层次结构表示出来,通过经验判断对决策方案的优劣进行排序,建立层次结构模型、构造判断矩阵、层次单排序及一致性检验、层次总排序及一致性检验是其... -
综合评价方法之层次分析法
2021-03-08 21:39:01层次分析法计算步骤 计算权重矩阵 构造新矩阵 aij=aij∑n=1naij a_{ij}=\frac{a_{ij}}{\sum^{n}_{n=1}a_{ij}} aij=∑n=1naijaij 计算权重矩阵 aij=∑n=1naij∑n=1n∑n=1naij a_{ij}=\frac{\sum_{n=1}^{n...层次分析法计算步骤
计算权重矩阵
构造新矩阵
a i j = a i j ∑ n = 1 n a i j a_{ij}=\frac{a_{ij}}{\sum^{n}_{n=1}a_{ij}} aij=∑n=1naijaij
计算权重矩阵
a i j = ∑ n = 1 n a i j ∑ n = 1 n ∑ n = 1 n a i j a_{ij}=\frac{\sum_{n=1}^{n}a_{ij}}{\sum_{n=1}^{n}\sum_{n=1}^{n}a_{ij}} aij=∑n=1n∑n=1naij∑n=1naij
举例说明计算以下对比矩阵的权重矩阵。
黄色部分为按列求和。
矩阵中每个数再除以此列总和,得一新矩阵。
黄色部分为按行求和。
W = [ 1.842 1.098 0.639 0.442 ] (权重矩阵) W=\left[ \begin{matrix} 1.842 \\ 1.098 \\ 0.639 \\ 0.442 \\ \end{matrix} \right] \tag{权重矩阵} W=⎣⎢⎢⎡1.8421.0980.6390.442⎦⎥⎥⎤(权重矩阵)
对权重矩阵进行归一化。
1.842 + 1.098 + 0.639 + 0.442 = 4.021 W = [ 1.842 / 4.021 1.098 / 4.021 0.639 / 4.021 0.442 / 4.021 ] = [ 0.458 0.273 0.159 0.110 ] (归一化后的权重矩阵) 1.842+1.098+0.639+0.442=4.021\\ W=\left[ \begin{matrix} 1.842/4.021 \\ 1.098/4.021 \\ 0.639/4.021 \\ 0.442/4.021 \\ \end{matrix} \right] = \left[ \begin{matrix} 0.458 \\ 0.273 \\ 0.159 \\ 0.110 \\ \end{matrix} \right] \tag{归一化后的权重矩阵} 1.842+1.098+0.639+0.442=4.021W=⎣⎢⎢⎡1.842/4.0211.098/4.0210.639/4.0210.442/4.021⎦⎥⎥⎤=⎣⎢⎢⎡0.4580.2730.1590.110⎦⎥⎥⎤(归一化后的权重矩阵)参考:
-
论文研究-结合网络层次分析法的云推理威胁评估模型.pdf
2019-07-22 21:21:40针对传统的威胁评估方法存在指标数据冗余、指标权值设置合理性、推理有效性等问题,建立结合网络层次分析法的云推理威胁评估模型,能够合理精简指标,有效优化推理规则。将该模型用于目标识别系统的威胁评估,首先给... -
层次分析法在顺层钻孔抽采效果评价中的应用
2020-07-14 06:31:55采用层次分析法,选取煤层可解吸瓦斯含量、瓦斯抽采浓度、抽采负压及万米抽采量作为评价指标,建立了顺层钻孔抽采效果评价模型。按照各评价指标的性质及变化范围,将其取值划分为4个隶属区间,并根据各评价指标的加权... -
基于层次分析法的加权聚类融合 (2013年)
2021-05-21 03:24:02聚类是发现数据分布和隐含模式的一项重要技术,但单一的聚类算法...基于四种聚类算法,根据算法准确率,利用层次分析法以估计权重,构造一个基于四类算法融合的聚类器,经实验检验,该聚类器比单一聚类器的聚类效果好. -
层次分析法、网络层次分析法、模煳层次分析法、双基点法
2022-03-31 10:45:281996 年提出的一种决策方法,该方法的提出是基于层次分析法,是一种 适应非独立递阶层次结构的方法。ANP 相对于 AHP 而言,用网络结构代替了层 次结构,同时会将要素间的相关性考虑进去,用非线性结构代替线性层次...一、层次分析法
层次分析法AHP,就是将指标分层次,根据问题的性质和要达到的总目标,把复杂问题分解成一系列的指标,并按照
逻辑
关系分为不同的层级,从而形成递阶层次结构。
然后通过两两比较
的方式(判断矩阵),确定每一层指标对于上一层指标的影响力大小,线性加权求得评价总目标值。方案
- 决策层级
- 根据判断矩阵,求取相对权重
- 一致性检验
- 合格即可
在这里插入图片描述
ps:
判断矩阵
AHP存在的问题
二、网络层次分析法
网络分析法的英文术语为 Analytic Network Process,简称 ANP,是美国 Saaty 教授在 1996 年提出的一种决策方法,该方法的提出是基于层次分析法,是一种 适应非独立递阶层次结构的方法。ANP 相对于 AHP 而言,用网络结构代替了层 次结构,同时会将要素间的相关性考虑进去,用非线性结构代替线性层次结构, 还加入了反馈机制,并考虑到低层要素对于高层要素的支配作用。
方案:
分析问题
- 分析问题
- 构造控制层、、网络层结构
- 两两比较,构建所有元素Cj的影响力判断矩阵(1 or 0),即超矩阵
- 两两比较,各个元素的重要性矩阵
- 确定超矩阵各元素组的权重
- 计算加权超矩阵
两者的不同点:
ANP考虑了各个元素组与元素之间的互相影响
本文源自清华大学课件——层次分析法AHP和网络分析法ANP
三、模煳层次分析法 FAHP
重要性矩阵从1~9,变为了0.1 ~ 0.9,0.1 ~ 0.5是从极端不重要到同等重要,0.5 ~ 0.9是从同等重要到极端重要,标度的间隔差只有0.1,难以表现因素间的极端重要性。
四、双基点法 TOPSIS
【基本原理】通过检测评价对象与最优解、最劣解的距离来排序,若评价对象最靠近最优解,同时又远离最劣解,则为最好
【缺点】可能某元素只是恰好跟目标曲线相似,不一定是有关联。不一定是因果关系。
-
基于改进的层次分析法的加权VTCI与冬小麦产量的相关性分析
2020-02-20 01:16:34基于改进的层次分析法的加权VTCI与冬小麦产量的相关性分析,黄弘,王鹏新,选取关中平原冬小麦主要生育期的条件植被温度指数(VTCI)遥感干旱监测结果,采用改进的层次分析法确定了冬小麦生育期旱情对其产� -
基于层次分析法的CCD像元细分算法综合评价
2021-02-23 18:02:21因此,提出了基于层次分析法的像元细分算法优劣的综合评价方法,该方法基于像元细分算法在传感器测量范围的近段、中段和远段的实际定位精度、方差和极差等指标,利用层次分析法构建综合评价模型。利用该方法,实验... -
论文研究 - 喀麦隆西吉姆姆的最佳油棕地块种植建模:加权线性组合,模糊层次分析法和效用函数相结合的GIS...
2020-05-22 01:39:15在同一个GIS环境中,加权线性组合(WLC)和模糊层次分析法(FAHP)分别强调了能力和适用性之间的细微差别,而效用函数(UF)有助于评估对可持续性方面的考虑。 最初的结果包括八层,分别代表自然条件,即降雨,温度... -
论文研究 - 层次分析法(AHP)和网络方法在塔莱根大坝到伊朗德黑兰哈斯格格新城的输水管道路径查找中的应用...
2020-05-29 01:09:35然后将上述共参数数据层加载到GIS环境中,并为加权参数分配特殊的系数和值,然后将它们基于MCE方法与基于AHP方法制作的成本图进行组合,从而使用LCPA方法确定最佳路径。 路径包括ABFA路径和比较的两个评估最佳路径... -
【数学建模】第一讲-层次分析法
2022-03-09 15:29:39层次分析法(Analytic Hierarchy Process,简称AHP),是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。 层次分析法是建模比赛中最常用的模型,主要用于解决...
目录
二、构造判断矩阵(准则层、方案层)
三、一致性检验(CR=CI/RI)
四、计算权重(算数平均、几何平均、特征值)
五、计算得分(Excel)
六、论文写作(SmartArt、画图)
七、代码实现(MATLAB)
一、简介及前言
层次分析法(Analytic Hierarchy Process,简称AHP),是指将与 决策有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
层次分析法是建模比赛中最常用的模型,主要用于解决评价类问题。评价类问题可用打分解决。
如果直接打分问权重:
关键在于如何确定这些权重
二、构造判断矩阵
采用指标两两比较的方法确定最终权重
aij与列指标相比,行指标的重要程度(行是列的几倍)
满足主对角线全为1,aij*aji=1,则称正互反矩阵,也就是层次分析法中的判断矩阵。
准则层各个指标构造一次得出权重。
方案层针对准则层每个指标构造判断矩阵得出各个权重。
三、一致性检验
列与列成比例,比值为 ajk。 行与行成比例,比值为aij
一致性检验:检验我们构造的判断矩阵与一致矩阵的差距大小
四、计算权重
五、计算得分
六、论文写作
七、代码实现
clear;clc %第一步:输入判断矩阵 A=input('请输入判断矩阵'); %A = [1,2,4; 1/2,1,2; 1/4,1/2,1]; %第二步:一致性检验(求CI、RI、CR) E = eig(A);%得到一个所有特征值构成的列向量 lambda_max = max(E);%最大特征值 n = size(A,1);%指标数即行列数 CI = (lambda_max-n)/(n-1); RI = [0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,这里的RI最多支持 n = 15 CR = CI/RI(n); disp(['一致性比例CR为' num2str(CR)]); if CR<0.1 disp('一致性检验通过。') else disp('一致性检验不通过。') end %第三步:判断矩阵求权重 [n,n] = size(A); %--------算数平均法--------% sum_A = repmat(sum(A),n,1);%按列求和得到行向量,行向量向下复制成r行 average_A = A./sum_A;%按列归一化 average_A1 = sum(average_A,2)./n;%按行求和再除以指标数n disp('算数平均法得出的权重:'); disp(average_A1); %--------几何平均法--------% product_A = prod(A,2).^(1/n);%按行求几何平均值得到列向量(和算数平均有区别!!) product_A1 = product_A./sum(product_A);%归一化 disp('几何平均法得出的权重:'); disp(product_A1); %--------特征值法--------% [V,D] = eig(A);%V:一列列特征向量构成的矩阵D:特征值对角阵 eig_max = max(max(D));%最大特征值 [r,c] = find(D==eig_max,1);%最大特征值所在列find(logic,1)只找第一个不为0的 eig_vetor_max = V(:,c);%最大特征值对应的特征向量 eig_vetor_max1 = eig_vetor_max./sum(eig_vetor_max);%归一化 disp('特征值法得出的权重:'); disp(eig_vetor_max1);
-
论文研究-层次分析法中的动态权重确定方法在阵地编成中的应用.pdf
2019-09-20 10:03:52层次分析法中的动态权重确定方法在阵地编成中的应用.pdf, 在多目标决策研究中,各目标的相对重要性(权重)是通过主观的价值判断确定的权重(价值权重)与各目标相互影响程度的主观判断确定的权重(影响权重)进行加权求和... -
权重的计算方法,主要有两种:1.线性加权法; 2.层次分析法
2021-08-11 15:49:56线性加权法的适用条件是各评价指标之间相互独立, 这样就可以利用多元线性回归方法来得到各指标对应的系数。 举个例子:所评价的对象是股票, 已知一些股票的各个指标以及这些股票的历史表现,其中最后一列标记为 1... -
基于层次分析法的矿井通风系统优化评价指标体系研究
2020-04-18 19:24:10利用层次分析法建立了通风系统优化方案评价指标体系及评价指标权重值,采用加权评价法对通风系统优化方案进行了优选分析,最终确定该矿井矿井通风系统优化方案。根据优化后矿井通风系统运行效果,确定基于层次分析法... -
数学建模评价类方法02——层次分析法
2021-07-19 13:06:34数学建模评价类方法02——层次分析法 离谱~建模书上竟然没有这一方法的介绍,那就做个简要的拓展吧! 数学建模数学建模评价类方法02——层次分析法前言一、基本介绍1.1 简单介绍1.2 详细介绍1.3 优劣势1.3.1 优势... -
论文研究 - 巴基斯坦吉尔吉特地区Ghizer基于GIS的滑坡敏感性地图及层次分析法
2020-05-30 07:06:17运用层次分析法(AHP)来识别Ghizer地区的主要滑坡成因。 此外,从1999年到2015年进行了时间评估,以评估土地覆被变化对滑坡的影响。 这表明,贫瘠的土壤/裸露的岩石和冰川减少了,而植被和水位却增加了。 位于中度... -
层次分析法
2016-09-28 08:31:53MATLAB求取加权数值 -
基于加权确定性系数法的地质灾害易发性分析
2020-06-11 19:01:32针对传统的确定性系数法在地质灾害易发性分析中未能考虑各评价因子对地质灾害易发性影响的差异性问题,提出了将层次分析法与确定性系数法相耦合的加权确定性系数法。利用传统确定性系数法计算各因子不同特征变量下的... -
层次分析法之matlab
2022-02-08 10:46:061.简介 2.算法解析 3.实例分析 3.1 构造矩阵 3.2 查看行数和列数 3.3 求特征向量 3.4 找到最大特征值和最大特征向量 3.5 计算权重 3.6 一致性检验 3.7 计算评分 完整代码 -
数学建模【系统评价决策模型(概论、案例分析-汽车选购、层次分析法、案例分析-职员晋升、动态加权综合评价...
2020-08-08 14:11:348.1 系统评价决策模型概论 ...1.线性加权综合法(加权和法) 2.非线性加权综合法(加权积法) 3.逼近理想点法(简称TOPSIS法) 8.2 案例分析-汽车选购 8.2.1 问题引入 8.2.2 决策矩阵的规范化 ... -
层次分析法之python
2022-02-08 11:23:271.简介 2.算法解析 3.实例分析 3.1 构造矩阵 3.2 查看行数和列数 3.3 求特征向量 3.4 找到最大特征值和最大特征向量 3.5 计算权重 3.6 一致性检验 3.7 计算评分 完整代码 -
ahp层次分析法
2018-09-16 15:01:11层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递... -
论文研究-加权主成分分析法在可变限速系统综合评价中的应用.pdf
2019-09-20 12:04:10评价结果表明,利用加权主成分分析法评价VSL项目可以将主成分分析法的客观分析和层次分析法的主观分析有机地相结合,有效地评判出不同交通流量下的最佳限速控制值,其评价结果更加全面、更加符合客观实际情况.