-
2022-01-09 22:53:59
“评价类问题可以用打分解决。”
譬如我们想对A、B、C三个景点进行评分,若题目没给数据可查阅文献(显得专业)得到关于景点评分的几个指标,显然,不同指标对景点的评价高低影响程度不同,即需确定下表中的值:
指标权值 景点A 景点B 景点C 景色 花费 居住 饮食 交通 我们可用1-9表示重要程度,如下:
标度 含义 1 表示两个因素相比,具有同样重要性 3 表示两个因素相比,一个因素比另一个稍微重要 5 表示两个因素相比,一个因素比另一个稍明显要 7 表示两个因素相比,一个因素比另一个强烈重要 9 表示两个因素相比,一个因素比另一个极端重要 2,4,6,8 上述两相邻判断的中值 倒数 A和B相比如果标度为3,那么B和A相比就是1/3 (注:这里的重要性有时解释为满意度更方便理解)
首先解决第一个问题:确定各个指标的权值。我们用aij表示与指标j相比,i的重要程度。
景色 花费 居住 饮食 交通 景色 1 1/3 4 3 2 花费 3 1 6 5 5 居住 1/4 1/6 1 1/2 1/3 饮食 1/3 1/5 2 1 1 交通 1/2 1/5 3 1 1 根据五个指标的重要程度我们可得到关于A、B两个景点的一个5×5的正互反矩阵(称满足
aij>0且aij×aji = 1的矩阵为正互反矩阵)。实际上,上面这个矩阵就是层次分析法中的判断矩阵。
第二个问题:对于每个指标,如何给A、B、C三个景点打分?
举个栗子:
景色 景点A 景点B 景点C 景点A 1 2 5 景点B 1/2 1 3 景点C 1/5 1/3 1 但这样比较得出的结果主观性很强,完全正确吗?我们举个极端的例子:
如上,景点A比景点B景色稍微好些,景点A和景点C景色一样好,景点B比景点C景色稍微好些,显然出现了不一致现象,这就是主观判断可能导致的矛盾(如果把3换成更大的数那么不一致现象会更加严重),那怎么去判断是否出现了矛盾呢?
我们知道,aij = i的重要程度 / j的重要程度 , ajk = j的重要程度 / k的重要程度 , 如果一致,那么有aik = aij × ajk 。而上述例子不满足该条件,因此出现了矛盾。我们称满足该条件的矩阵为一致矩阵。
我们现在已经知道:若矩阵中每个元素aij>0且满足aij×aji = 1,则称该矩阵为正互反矩阵。若正互反矩阵满足aij×ajk = aik,则我们称其为一致矩阵。
因此,在层次分析法中,我们构造的判断矩阵均是正互反矩阵,在使用判断矩阵求权值前,必须对其进行一致性检验。
一致性矩阵:
(可发现各行各列成倍数关系)
引理:n阶正互反矩阵为一致矩阵时当且仅当最大特征值λ = n;当正互反矩阵非一致时,一定满足最大特征值λ > n,且判断矩阵越不一致时,最大特征值与n相差就越大.
实际中,得到的矩阵就是一致矩阵的情况很小,我们引入一致性指标CI.
CI = (λ_max - n) / (n-1)
然后查找对应的平均随机一致性指标RI,再计算一致性比例CR,CR = CI / RI。如果CR < 0.1,则可认为判断矩阵的一致性可以接受,否则需要对判断矩阵进行修正。
一致矩阵怎么计算得分(权值)?
注意,得分(权值)一定要进行归一化处理:景点A = 1/(1+0.5+0.25);景点B = 0.5/(1+0.5+0.25);景点C = 0.25/(1+0.5+0.25).
判断矩阵怎么计算得分(权值)?
1)算术平均法:仅使用第一列数据计算得到A1、B1、C1;仅使用第二列数据计算得到A2、B2、C2;仅使用第三列数据计算得到A3、B3、C3。最后求算术平均权重。
2)几何平均分求权重。
3)特征值法求权重(就是仿照一致矩阵的求法)。(使用较多)
总结:
层次分析法第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构——目标层、准则层、方案层.(注意:如果用到了层次分析法,那么层次结构图一定要放在论文中);
层次分析法第二步:对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造判断矩阵.(注意:任何评价类模型都具有主观性,理想情况是专家群体判断,但现实情况都是自己填的),准则层——方案层的判断矩阵数值要结合实际来填写;
层次分析法第三步:由判断矩阵计算被比较元素对于该准则的相对权重(建议三种方法都用,再综合分析,使得出的结论更全面、更有效),并进行一致性检验,检验通过权重才能用。
层次分析法的局限性:1、评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵差异可能会很大。2、如果决策层中指标的数据是已知的,就不能再用层次分析法了。
更多相关内容 -
层次分析法中计算权重的代码
2018-05-22 15:40:30利用层次分析法需要计算权重,而权重的计算和使用是比较麻烦的,在这里封装了一些方法。注意的吧,这个东西需要一点知识,代码应该没问题。 -
数学建模基础知识培训 数学建模培训资料 层次分析法确定权重 共51页.ppt
2022-02-05 22:46:09五、应用层次分析法的注意事项 六、层次分析法应用实例 层次分析法(AHP)是美国运筹学家匹茨堡大学教授萨蒂(T.L.Saaty)于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力... -
层次分析法中计算权重的代码.zip
2020-02-19 20:37:22利用层次分析法需要计算权重,而权重的计算和使用是比较麻烦的,在这里封装了一些方法。注意的吧,这个东西需要一点知识,代码应该没问题。 -
层次分析法
2018-10-26 11:08:49层次分析法(Analytic Hierarchy Process ,简称 AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于上世纪 70 年代初期提出...概念:
层次分析法(Analytic Hierarchy Process ,简称 AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法
一、步骤
1、建立递阶层次结构模型
2、构造出各层次中的所有判断矩阵
3、层次单排序及一致性检验
4、层次总排序及一致性检验
二、递阶层次的建立与特点
1、分层:
(1)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标和理想结果。
(2)中间层:这一层次中包含为了实现目标所涉及的中间环节,主要是一些考虑指标和一些准则。
(3)最底层:这一层次中包含为了实现目标可供选择的各种方案。
2、注意点:
一般不要1层不要超过9个因素
3、一个demo
二、构造判断矩阵
由于准则层中的各准侧的权值可能不同,所以应该设置一个权重。
1、比较判别矩阵的元素意义
设现在要比较n个因子
对某因素Z的影响大小,采用两两比较建立比较判别矩阵
,xi与xj对Z的影响之比为aij。然后反过来xj与xi的影响之比为aji=1/aij。
2、比较判别矩阵的定义
3、关于比较判别矩阵元素的确定
使用数字1-9以及其倒数作为标度。
三、层次单排序及一致性检验
1、原理
判断矩阵A对应于最大特征值
得特征向量W,经归一化即为同一层次相应元素对于上一层次元素相对重要性的排序权值。称为层次单排序
因此,我们通过
来检验A是否为一致矩阵,当
比n大的越多,A的非一致性程度也就越严重,所以我们可以通过这种方法来检验一致性。
2、步骤
(1)计算一致性指标CI
(2)查询平均随机一致性指标RI,对应n=1到9,RI值分别为
这是通过随机的方法生成的一组标准指标。
(3)计算一致性比例CR
当CR<0.1,认为矩阵的一致性是可以接受的。
四、层次总排序及一致性检验
1、说明
(1)A为上一层次(高的层次),B为当前层次
(2)a1,a2,a3……am为A层次的总排序权重。
(3)b1j……bnj是B层对Aj的单排序权重。
(4)从最高层到最底层
现求B层中各因素关于总目标的权重,即求B层各因素的层次总排序权重b1,b2……bn。就按照上图中的方法进行计算。
2、然后对于层次总排序也要进行一致性检验。
当CR<0.10,认为层次总排序结果具有较满意的一致性并接受该分析结果。
(二)层次分析法的应用
1、准则层的排序矩阵
2、方案层的排序矩阵
3、层次排序总结果
所以最满意的工作是1。
-
数学建模之层次分析法及其应用
2020-07-28 23:57:16层次分析法在数学建模中是非常常见的,其原理、应用场景及实例本文里都有。希望能对数学建模爱好者、挑战者提供一些帮助。如有不清楚或错误的地方还望指出。概述
层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模
糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。常用于相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。
运用层次分析法建模,大体上可按下面四个步骤进行:- 建立递阶层次结构模型;
- 构造出各层次中的所有判断矩阵;
- 层次单排序及一致性检验;
- 层次总排序及一致性检验
下面将用实例分别阐述这些步骤。
递阶层次结构的建立与特点
我们拿到一个问题,常将其分为若干层次结构,上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:.- 最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
- 中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
- 最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
如我们想去旅游,现在要选择旅游地点,就可以先这样划分一下:
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配的元素过多会给两两比较判断带来困难。
构造判断矩阵
构造判断矩阵的方法是一致矩阵法,即:将上述两组权重进行综合,确定各方案对目标的权重。所有元素之间采用相对尺度两两对比,确定权重。
标度 含 义 1 表示两个因素相比,具有相同重要性 3 表示两个因素相比,前者比后者稍重要 5 表示两个因素相比,前者比后者明显重要 7 表示两个因素相比,前者比后者强烈重要 9 表示两个因素相比,前者比后者极端重要 2,4,6,8 表示上述相邻判断的中间值 倒数 若因素i 与因素 j 的重要性之比为 a i j a_{ij} aij ,那么因素 j 与因素i 重要性之比为 a i j = 1 / a i j a_{ij}= 1/a_{ij} aij=1/aij 确定A1-A5的权重,如A1相对A4来说,A1比A4稍微重要,所以矩阵Z(1,4)=3.其对称位置就是1/3。
注:Z是成对比较、正互反矩阵。层次单排序及一致性检验
所谓层次单排序是指根据判断矩阵计算对于上一层某因素而言本层次与之有联系的因素的重要性次序的权值。它是本层次所有因素相对上一层而言的重要性进行排序的基础。
满足 a i j ∗ a j k = a i k a_{ij}*a_{jk}= a_{ik} aij∗ajk=aik的正互反矩阵称为一致矩阵
定理 1:
正互反矩阵 A 的最大特征根 λ m a x λ_{max} λmax必为正实数,其对应特征向量的所有分量均为正实数。 A 的其余特征值的模均严格小于 λ m a x λ_{max} λmax。
定理 2
若 A 为一致矩阵,则- A 必为正互反矩阵。
- A 的转置矩阵 A T A^T AT也是一致矩阵。
- A 的任意两行成比例,比例因子大于零,从而 rank(A) = 1(同样, A 的任意两列也成比例)。
- A 的最大特征值 λ m a x λ_{max} λmax = n ,其中n 为矩阵 A 的阶。A 的其余特征根均为零。
- 若 A 的最大特征值
λ
m
a
x
λ_{max}
λmax 对应的特征向量为
W
=
(
w
1
.
.
.
w
n
)
T
W={(w_1 ... w_n)}^T
W=(w1...wn)T ,则
s
i
j
=
w
i
w
j
s_{ij}=\frac{w_i}{w_j}
sij=wjwi
定理 3
n 阶正互反矩阵 A 为一致矩阵当且仅当其最大特征根 λ m a x = n λ_{max} = n λmax=n ,且当正互反矩阵 A 非一致时,必有 λ m a x > n λ_{max}> n λmax>n 。
根据定理 3,我们可以由 λ m a x λ_{max} λmax 是否等于n 来检验判断矩阵 A 是否为一致矩阵。对判断矩阵的一致性检验的步骤如下:
- 计算一致性指标 C I = λ m a x − n n − 1 CI=\frac{λ_{max}-n}{n-1} CI=n−1λmax−n
- 查找相应的平均随机一致性指标 RI 。对n = 1 …9,Saaty 给出了 RI 的值,如表 2 所示。
计算一致性比例 C R = C I R I CR=\frac{CI}{RI} CR=RICI
当 C R < 0.10 CR < 0.10 CR<0.10时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。
层次总排序及一致性检验
上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重要自上而下地将单准则下的权重进行合成。
对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。
设 B 层中与 Aj 相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为CI( j) ,( j = 1,L,m ),相应的平均随机一致性指标为 RI( j) (CI( j)、RI( j) 已在层次单排序时求得),则 B 层总排序随机一致性比例为
层次分析法的应用
在应用层次分析法研究问题时,遇到的主要困难有两个:
- 如何根据实际情况抽象出较为贴切的层次结构;
- 如何将某些定性的量作比较接近实际定量化处理。
层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在:
3. 它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。
4. 比较、判断过程较为粗糙,不能用于精度要求较高的决策问题。AHP 至多只能算是一种半定量(或定性与定量结合)的方法。
回顾总结
例题
挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如图所示
标准层的判断矩阵也已给出
方案层的判断矩阵给出
函数文件:function [CR,quan]=AHPfun(A) n=size(A,1); [V,D] = eig(A); %V 是特征向量,D是由特征值构成的对角矩阵(除了对角线元素外,其余位置元素全为0) Max_eig = max(D(:)); %那么怎么找到最大特征值所在的位置了?需要用到find函数,它可以用来返回向址或者矩阵中不为0的元素的位置索引。 %那么问题来了,我们要得到最大特征值的位置,就需婴将包含所有特征值的这个对角矩阵D中,不等于最大特征值的位置全变为 %这时候可以用到矩阵与常数的大小判断运算 D = Max_eig; [r,c]=find(D == Max_eig,1); %找到D中第“个与最大特征值相等的元素的位置,记录它的行和列。 %第二步:对求出的特征向量进行归-“化即可得到我们的权重 quan=V(:,c)./sum(V(:,c)); %我们先根据上面找到的最大特征值的列数c找到对应的特征向量,然后再进行标准化。 % 计算一致性比例CR CI = (Max_eig - n)/(n-1); RI=[0 0 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); end
主文件:
clc;clear a0=[1 1 1 4 1 1/2 1 1 2 4 1 1/2 1 1/2 1 5 3 1/2 1/4 1/4 1/5 1 1/3 1/3 1 1 1/3 3 1 1 2 2 2 3 3 1 ]; a1=[1 1/4 1/2; 4 1 3; 2 1/3 1 ]; a2=[1 1/4 1/5; 4 1 1/2; 5 2 1 ]; a3=[1 3 1/3; 1/3 1 1/7; 3 7 1 ]; a4=[1 1/3 5; 3 1 7; 1/5 1/7 1]; a5=[1 1 7; 1 1 7; 1/7 1/7 1 ]; a6=[1 7 9; 1/7 1 1; 1/9 1 1]; F=cat(3,a1,a2,a3,a4,a5,a6); [a,b,c]=size(F); all=ones(3,c); cr=[]; [CR,quan]=AHPfun(a0); cr0=CR; quan0=quan; disp('准则层权值为:');disp(quan0'); disp('准则层一致性比例为:');disp(cr0); for i =1:c A=F(:,:,i); [CR,quan]=AHPfun(A); cr=[cr,CR]; all(:,i)=quan; end allquan=ones(3,1); for j=1:3 allquan(j,1)=sum(all(j,:).*quan0'); end disp('方案层单排序权值:');disp(all); disp('方案层一致性比例为:');disp(cr); disp('总排序权值:');disp(allquan);
输出:
准则层权值为: 0.1507 0.1792 0.1886 0.0472 0.1464 0.2879 准则层一致性比例为: 0.0981 方案层单排序权值: 0.1365 0.0974 0.2426 0.2790 0.4667 0.7986 0.6250 0.3331 0.0879 0.6491 0.4667 0.1049 0.2385 0.5695 0.6694 0.0719 0.0667 0.0965 方案层一致性比例为: 0.0176 0.0236 0.0068 0.0624 -0.0000 0.0068 总排序权值: 0.3952 0.2996 0.3052
答案
-
用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)
2021-12-22 11:29:22用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)
文章目录
目录
2.3.3 根据CI、RI值求解CR值,判断其一致性是否通过。
1、前言与算法简述
今天应粉丝要求,梳理一下层次分析法。
层 次 分 析 法, 即Analytic Hierarchy Process(AHP) , 是美国运筹学家 Saaty 于 20 世纪 70 年代初 期提出的一种主观赋值评价方法。 层次分析法将与决策有关的元素分解成目标、 准则、方案等多个层次, 并在此基础上进行定性和定量分析, 是一种系统、简便、灵活有效的决策方法。
这个算法是一个多指标综合评价算法,由于这个算法简单、实用,因此在经管类或者实际生活中应用的非常多,其一般有两个用途:
-
指标定权
给指标制定权重,打个比方,例如选择旅游地这个决策,可能一般我们由以下5个因素组成,但是每个人(主观)对因素的重视程度不一,ahp可以实现在无需搜集数据的情况下,给这些指标制定权重。
-
量化方案选择
同样是选择旅游地这个决策,可能我们有一些方案,例如苏杭、北戴河、桂林这三个方案,层次分析法可以综合以上5个因素,给这些方案计算得出一个量化得分,例如苏杭0.3分、北戴河0.35分、桂林0.45分,这样根据分值大小,我们就可以选择得到内心或者经验上最心怡的方案了。
通过上面讲解层次分析法的作用,在生活、工作中其实我们可以应用这个模型的渠道是非常广的,特别是那些需要主观决策的、或者需要用经验判断的决策方案,例如:
-
买房子(主观决策)
-
选择旅游地(主观决策)
-
给员工进行绩效评估(经验判断)
-
选择开店地址(经验判断)
2、AHP层次分析法过程
层次分析法的原理,是在分析一个现象或问题之前,首先将现象或问题根据它们的性质分解为有关因素,并根据它们之间的关系分类而形成一个多层次的结构模型。然后通过经验或专家,来判断和衡量低层因素对高层因素的相对重要性,并根据重要性的程度得出权重排序,进而可以量化分析比较。层次分 析法的核心是将影响因素层次化和数据化,它把一个抽象的现象或问题由难到 易地予以分解,易于对复杂问题进行直观地判断,并作出决策。层次分析法具有将复杂问题简单化且计算简单等优点,应用十分广泛,诸如在人员素质评估、 多方案比较、科技成果评比和工作成效评价等多领域多方面都有运用。
简单地说,层次分析法就是将一个决策事件分解为目标层(例如选择旅游地),准则层(影响决策的因素,例如景色、交通、费用等)以及方案层(指的是方案,例如去广州、桂林等地旅游)。
层次分析法应用过程中,大体步骤主要包括四个。第一步是层次结构模型的构建。第二步构造判断矩阵,第三步为层次单排序及其一致性检验,这步即为对指标定权,第四步为层次总排序及其一致性检验,这布如果没有决策层的话,通常可以省略。
PS:一致性检验的含义用于确定构建的判断矩阵是否存在逻辑问题,例如以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.I.=0 表示判断矩阵完全一致,C.I.越大,判断矩阵的不一致性程度越严重。
step3:根据CI、RI值求解CR值,判断其一致性是否通过
Satty 模拟 1000 次得到的随机一致性指标 R.I.取值表(如下表 所示):
当 C.R.<0.1 时,表明判断矩阵 A 的一致性程度被认为在容许的范围内,此时可 用 A 的特征向量开展权向量计算;若 C.R.≥0.1, 则应考虑对判断矩阵 A 进行修正。
下面我用人话说一下:
2.3.1 层次单排序
简单地说,层次单排序就是根据我们构成的判断矩阵,求解各个指标的权重。
例如我们现在在2.2构建完成了准则层的判断矩阵A如下:
那么我们可以计算其权重(权重向量),有两种方式,一种是方根法,一种是和法。
其中方根法计算权重如下:
-
计算每行乘积的m次方,得到一个m维向量
即:
(2)将将向量标准化即为权重向量,即得到权重
即:
而和法计算权重如下:
step1:先将矩阵的每列进行标准化
step2:将标准化后的各元素按行求和
step3:将求和结果进行标准化
例如这张图所示:
2.3.2 求解最大特征根与CI值
以上,求得权重矩阵后,可以计算最大特征根,其公式为:
其中n为维度数,例如构建的判断矩阵为:景色、费用、居住、饮食、旅途时,n=5;
AW为:判断矩阵*标准化后的权重,然后按按行的累加值。
即判断矩阵A为:
指标
景色
费用
居住
饮食
旅途
景色
1
5
5
0.3333
8
费用
0.2
1
0.25
0.1667
2
居住
0.2
4
1
0.2
3
饮食
3
6
5
1
6
旅途
0.125
0.5
0.3333
0.1667
1
标准化后权重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:
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
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时对应的RI值为1.12,代入公式:
可以得到C.R.值为0.1042/1.12=0.093。
所以 C.R.=0.093<0.1 时,表明判断矩阵 A 的一致性程度被认为在容许的范围内,此时可 用 A 的特征向量开展权向量计算;若 C.R.≥0.1, 说明我们在构建判断矩阵时出现了逻辑错误,
例如B矩阵,我们假设在两两对比第三行第二列时,填入了1/5,这个时候就无法通过一致性检验,因为其犯了逻辑错误,我们根据第二行第一列,可以知道上海的地位比广州稍微重要,根据第三行第一列,可以知道北京的地位比广州强烈重要,所以根据逻辑:上海>广州,北京》广州,那么北京应该是>上海,但是我们填入了1/5,也就是北京比上海相当不重要,所以就出现了逻辑错误,这个时候,我们需要对判断矩阵 A 进行修正,修正为北京>上海。
至此,我们便完成了层次单排序与一致性检验,通过我们在使用层次分析法只使用到这里,用于对指标进行定权,假如我们有方案层,便需要做层次总排序与其一致性检验。
2.4 层次总排序与一致性检验
这里列出一般在文献中的说明:
计算某一层次所有因素对于最高层(目标层)相对重要性的权值,称为层次总排 序。该过程是从最高层次向最低层次依次进行:
设 B 层𝐵1 ,𝐵2 ⋯ ,𝐵𝑛对上层(A 层)中因素𝐴𝑗(𝑗 = 1,2, ⋯ ,𝑚)的层次排序 一致性指标为𝐶𝐼𝑗,随机一致性指标为𝑅𝐼𝑗 ,则层次总排序的一致性比率为:
当𝐶𝑅 < 0.1时,认为层次总排序通过一致性检验,否则就需要重新调整判断矩阵 的元素取值。到此,根据最下层(决策层)的层次总排序做出最后的决策。
下面我用人话说一下:
层次总排序,其实就是通过类型层次单排序的方法来给方案打分。
打个比方,我们根据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.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
因此苏杭得分最高,选择去苏杭。
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<0.1,通过一次性检验,说明该权重确定方法的合理性,无需要对判断矩阵进行修改。
需要注意的是,这里的RI值采用近年来更受认可的Franek and Kresta (2014)的方式,不再使用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,层次总排序的方案层判断矩阵,是在没有数据的情况下才做的,现实情况下,我们如果面临选择旅游地、选择租房、选择买房这类偏主观的决策,那么是可以采用层次总排序的,如果推广到店铺选址、快递柜选择、活动方案选择等需要客观决策的事情,我们其实可以通过两种方式来优化:
-
基于大多数有经验的人,采用层次总排序,求均值,把主观转为客观(这里通常结合一种方法叫德尔菲法,也叫专家调查法)
-
基于真实数据做层次总排序,例如店铺选择,假设有人流量这个指标,可以采用真实指标来量化求解。
-
-
5.1数学建模与MATLAB--层次分析法(评价类问题)
2020-08-22 22:26:58层次分析法一般用于评价类问题 选择哪种方案最好、哪种决策最优 摘自2016国赛B题 二、层次分析法解题方法 1.分析系统中各因素之间的关系,建立系统的递阶层次结构 2.对于同一层次的各元素关于上一层次中某一准则的... -
层次分析法matlab代码记录
2022-01-30 20:19:23层次分析法matlab代码记录 -
层次分析法matlab'程序
2018-10-23 17:57:42层次分析法程序,用者应该注意的是对数据的标准化处理有多样性,自己可以根据自己的情况合适修改相应的代码部分,本代码采用的是归一化处理 -
层次分析法笔记
2020-06-09 12:42:41层次分析法章节笔记 -
清风数学建模学习笔记——层次分析法(AHP)
2021-01-06 18:42:26层次分析法 层次分析法(analytic hierarchy process),简称AHP。是建模比赛中比较基础的模型之一,其主要解决评价类的问题。如选择哪种方案最好,哪位员工表现最好等)。 它是一个较为 主观 的评价方法,... -
层次分析法步骤及案例分析x_马斯洛需求层次理论案例分析题
2020-02-07 00:34:33层次分析法昆明理工大学2013.12.17框架第一节 指标体系的建立第二节 指标权重的确定第三节 层析分析法的思想和原理第四节 层次分析法的模型和步骤第五节 层次分析法的应用第一节 指标体系的建立一.指标体系的建立应... -
数学建模——层次分析法(Matlab)【评价类问题】
2020-08-05 21:29:07数学建模——层次分析法(Matlab) 层次分析法建立递阶层次结构构造判断矩阵一致性检验计算总权重并排序 建立递阶层次结构 将决策问题分解为三个层次,最上层为目标层O,即…;最下层为方案层,即…;中间层为准则层,... -
MATLAB-层次分析法
2019-08-23 11:35:47AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。常被运用于多目标、多准则、多要素... -
数学建模--层次分析法
2020-07-19 22:36:09层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。 2.列出权重表格 分别由方案、考虑因素、... -
层次分析法在matlab上的实现
2018-06-12 10:36:17层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题... -
用matlab实现层次分析法
2020-06-14 20:47:331、层次分析法 简称AHP,我的理解就是用来解决评价类问题的方法。比如现在要评价学校的15个楼栋,疫情期间的危险等级。学校楼栋的危险等级就是目标层,15个楼栋就是方案层。还有中间层,即准则层,就是影响危险等级... -
【AHP】层次分析法 | 过程解读 案例实践
2020-08-20 19:56:21AHP 层次分析法 一. AHP 层次分析法介绍 AHP 层次分析法简介 AHP,即层次分析法(Analytic Hierarchy Process,AHP)是一种系统化的、层次化的多目标综合评价方法。在评价对象的待评价属性复杂多样,结构各异,... -
层次分析法之matlab代码实现
2021-07-09 17:54:07clear;clc disp('请输入判断矩阵A: ') ...% 方法1:算术平均法求权重 %第一步:将判断矩阵按列归一化(每个元素除以其所在列的和) Sum_A = sum(A,1) %矩阵按列求和形成一行向量 n = size(A,1) %... -
数学建模 01层次分析法(AHP)
2019-07-18 09:16:21什么是层次分析法 层次分析法,属于运筹学理论。简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪... -
数学建模第一讲:层次分析法
2021-07-14 17:03:34数学建模第一讲:层次分析法 前言:数学建模三大块 建模 建模手 编程 算法手 写作 论文手 误区:每个人只需要掌握其中的一块就好!另外两块交给队友就好! 实际上:真正比赛的时候,三个队友的工作会有很大的重叠... -
层次分析法模型(数学建模学习)
2020-07-24 17:32:00层次分析法模型 一、层次分析法应用场景 层次分析法(The Analytic hierarchy process/AHP)是比赛中最基础最常用的模型,应用场景在于解决评价类问题。比如哪个人最优秀,哪种方案最好之类。 -
层次分析法——python
2020-07-28 08:57:09层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成–个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的... -
数学建模一:层次分析法 附代码详解
2020-10-09 19:43:15层次分析法用于解决评价类问题。 层次分析法步骤: 1.分析题目得到目标、方案、准则并绘制层次结构图。其中目标、方案由题目给出,准则由搜索相关论文或者其他资料得到。 推荐搜索引擎:虫部落快搜。 推荐绘图软件:... -
数学建模之层次分析法(AHP)
2020-06-10 23:44:402.层次分析法步骤 1.建立系统递阶层次结构 2.对准则层和方案层构造判断矩阵 我们采取分而治之的思想,将两两指标进行比较,最终根据两两比较结果来推算出权重。 注:重要性可以理解为满意度 根据重要性我们可以的... -
【数学建模】1层次分析法模型部分
2020-11-08 11:45:49层次分析法(The analytic hierarchy process 简称AHP)建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运动员或者员工表现得更优秀) AHP的主要特点是通过建立递阶层次结构,...