1. 模型概述
层次分析法 (AHP法)是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。其定性分析体现在模型用决策者的经验判断各衡量目标能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数;定量体现在模型利用权数求出各方案的优劣次序以及在这一过程中使用的数学方法。
1.0. 模型背景
层次分析法(AHP)是美国运筹学家几茨堡大学教授萨蒂(T.L.Saaty)于上世纪70年代初,为美国国防部研究 “根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
这种方法的特点是在对复杂的决策问题的本质、影响因素及其内在关系等讲行深入分析的其础上,利用较小的定量信息使决策的思维过程数学化。从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法,是对难于完全定量的复杂系统作出决策的模型和方法。
1.1 应用场景
层次分析法常用于:
- 最佳方案的选取(选择运动员、选择地址)
- 评价类问题(评价水质状况、评价环境)
- 指标体系的优选(兼顾科学和效率)
1.2. 模型基本原理
【官方定义(不看了叭)】层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素问的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。
【普通话】层次分析模型将决策过程分为3个层面:
- 目标层:要解决的问题,决策的目的
- 准则层:决策时考虑的因素,决策时遵循的准则
- 方案层:可供选择的方案,决策的备选方案
举个栗子🌰: 我现在想要出去旅游但不知道去哪里。我可以去海南,苏州和井冈山;我想我去的地方要景色好,有文化气息,住宿条件要好,路费不能太贵…
在这个例子中,我要解决的问题(目标层)就是“我去哪里旅游”;我在做决策时要考虑的因素(准则层)有:景色,文化,住宿和路费;可供我选择的方案(方案层)有:海南、苏州和井冈山。
我们用一个图来更直观的理解决策过程的分层。
黄色的最高层代表我们想要解决的问题,红色的中间层表示我们要考虑的因素,绿色的最底层表示我们有什么方案可以选择。因为整个决策过程是自顶向下(TopDown)的,所以每层之间的有严格的先后关系,必须先完成上层才可以进入下一层,不可以跳层。
2. 模型建立
假设我们现在有一个决策目标,在决策时要考虑个因素:;有个备选方案可供我们选择。
3. 模型目标层
模型最高层描述了我们使用层次分析需要解决的问题,在实际建模过程中是题目给定或直接由需求决定的。
4. 模型准则层
模型的中间层确定了影响因素和评鉴标准,以及不同影响因素之间的权重,也就是不同的影响因素谁更重要,谁不那么重要。
4.1. 构造判断矩阵
首先我们要判断每个影响因素之间的重要程度,第一个想到的就是把所有因素拿出来比一比,然后按照直觉中的重要程度,把所有因素排个序,拟一个权重。但这种方法是极其不可靠的,就像选择困难症患者面对玲琅满目的商品一样,人们在面对多个因素的比较时,往往会顾此失彼,得到的判断往往是不准确、不全面的,是不能反映决策者全部意图的。
所以将因素两两之间进行比较就显得靠谱多了,一次只比较两个因素是非常容易得到一个一致性较好的判断的。
于是在将所有要考虑的个因素两两比较之后,我们得到一个的判断矩阵,代表第个因素相对于第个因素的重要程度。
但此时矩阵中的元素,并不是一个个可以运算的数字,而是诸如“不太重要”、“重要的多”、“稍微重要”的这类描述重要程度的判断。为了使矩阵可以参与运算,我们引入的1-9标度来量化这些判断:
标度 | 含义 |
---|---|
1 | 同样重要 |
3 | 稍微重要 |
5 | 明显重要 |
7 | 强烈重要 |
9 | 极端重要 |
2, 4, 6, 8 | 介于二者之间 |
此时我们就有一个真正数学意义上的判断矩阵了,以的矩阵为例,不难发现它的一些特性:
- 对角线上都为:因为每个因素于自己比较一定是同样重要的。
- 对角线两侧对称位置的数互为倒数:因为有因素比因素明显重要就一定有因素比因素明显不重要。
我们把具有这两个特性的矩阵称为正互反阵。
4.2. 一致性检验
再次观察判断矩阵,稍加计算,我们会发现一些问题:
设判断矩阵表示的是因素之间的重要程度,于是我们有:
两式相乘容易求得:
但在原矩阵中二者的比值为:
不难发现,通过计算得出二者的相对重要程度与实际判断时的相对重要程度不相等,即,计算结果与实际判断不一致。这种不一致看起来像个“错误”,但仔细想一想又发现,不一致现象很容易出现:因为我们在构造判断矩阵时,采用两两比较的方法,所以在横向对比时,只会考虑当前两个因素,不会考虑其他影响因素,自然就不保证一定有。判断矩阵对条件满足程度的好坏称为矩阵的一致性。
【Q】那是所有的不一致都是不可接受的吗?或者换句话说,什么样的不一致是可以接受的,什么样的不一致是不可接受的呢?
还是对于上面的矩阵,我们将换成,看看会有什么变化:
首先说明因素相对于因素稍微重要,说明因素相对于因素重要,所以可以推出因素相对于因素是重要的,尽管我们并不知道重要程度如何。但是在判断矩阵中说明因素相对于因素明显不重要,这与计算结果直接矛盾了;而反观原矩阵,虽然但是说明二者都承认因素相对于因素是重要的。
同样都是判断结果与计算结果不一致,但是显然原矩阵的结果是可接受的,因为二者是相互支持的;而更改后的矩阵是不可接受的,因为我不能认为因素比重要也不重要。
导致判断矩阵出现不一致现象的根本原因是判断矩阵完全是依照主观意愿构造的,矩阵中的数字代表的是重要程度分级而并不一定是满足基本运算规律的数字。例如比稍微重要,又比稍微重要,所以就有,按照数学计算的话,是一定有的,但我们能说比一定极端重要吗?这是不一定的,相反,大概率比也是只是稍微重要。
综上:【A】并不是所有的不一致都是不可接受,也并非所有的不一致都是可接受的,也就是说,我们对这种矩阵的不一致是有一个接受程度的。要判断矩阵的不一致性是否可接受,我们要对矩阵进行一致性检验。首先引入一致性指标来表征对判断矩阵的不一致性。定义式如下:
其中是判断矩阵的最大特征根,是影响因素的个数。要解释这个公式的意义,我们首先要了解一致矩阵(即满足的矩阵)和正互反阵的一些性质:
- 性质1: 阶一致阵的唯一非零特征根为。
- 性质2: 阶正互反阵的最大特征根,当且仅当为一致阵时。
- 性质3: 阶正互反阵的最大特征根比大的越多,矩阵的一致性就越差。
公式分析:因为性质3,可以表示矩阵的不一致性,在除以数据规模可以消除数据规模对数值大小的影响;且当矩阵为一致阵时,不一致性为零,,满足性质1。至于为什么定义式中分母上是不是,可以把它理解为统计学上的自由度。
但只有一致性指标还不够,因为现在就算我们计算出的数值,也只知道如果矩阵为一致阵;接近则一致性较好。但至于这个矩阵的一致性究竟怎么样,可不可以接受,我们是完全没法判断的。所以还需要一个可以衡量大小的指标,该指标要具有统计学意义,这样我们就能够通过比较和它的大小关系来确定矩阵的一致性究竟怎么样了。
为了衡量一致性指标,我们引入随机一致性指标。的统计学意义是:构造个与原矩阵阶数相同的随机矩阵,计算得到每个随机矩阵的一致性指标,随机一致性指标为所有随机矩阵的平均值:
得到对于不同的阶数,的取值如下表:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
RI | 0 | 0 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 | 1.49 |
定义一致性比率:
一般的,当一致性比率时,我们认为矩阵的一致性较好,可以接受,通过一致性检验。否则需要重新调整判断矩阵中的数值,直到通过一致性检验。
我第一次学到这里的时候,想了好久都不能理解为什么是时通过一致性检验而不是。后来明白了,随机一致性指标是一个非常平凡的指标,它描述的是任意一个当前阶数的矩阵,大概都有这么高的一致性指标,而任意阵是基本没有一致性的。所以如果只要求判断矩阵的略小于,即,那判断矩阵就像任意阵一样,基本没有一致性,所以需要提高标准。假定矩阵的是呈线性分布的,那么,就说明当前矩阵的一致性好于的同阶任意阵,此时我们认为矩阵一致性已经达标,选择接受当前矩阵。
4.3. 计算权向量
我们之所以想让我们的判断矩阵尽可能接近一致阵,是因为一致阵有很多非常好的特性:
- 一致阵的秩为,唯一非零特征根为
- 非零特征根对应的特征向量归一化后可作为权向量
建议对于不一致(但在允许范围内的)成对比较阵,可以用对应于最大特征根的特征向量作为权向量,即。
因为在上一步,我们的判断矩阵已经通过了一致性检验,所以此时我们只要先求出矩阵的最大特征值,再将带回即可求的权向量。其中:
分别代表影响因素未归一化的权重。将归一化后有:
归一化后各因素之间的权重为:
【简化计算】因为矩阵的特征根,特征向量的求解相对比较困难,可以采用对判断矩阵求行和后再归一化的方式求来简化计算。
至于为什么选用特征向量作为权重向量,具体的数学证明很复杂,但我们通过特征向量本身的特性可以直观的感受到其内在的原因:每个矩阵都相当于是对空间的一次变换,大多部分向量在变换前后长短和方向都会改变,然而特征向量在变换前后只有长短的变化,其方向是不变的,所以可以说特征向量之所以可以被称为特征向量,是因为它表示了矩阵变换的特征,是矩阵变换中不变的,本质的东西。
在看我们的判断矩阵,其中的每个元素都表示不同因素两两之间的重要程度。然而我们之所以能够得出这个矩阵,是因为我们潜意识中已经有了对各个因素的重要程度的判断,只是囿于有限的逻辑能力无法准确表达。这个潜在已经形成的对于重要程度的判断,是支配我们写出判断矩阵的不变的、最本质的东西,而求解特征向量的过程,就是揭示这个本质的过程。【以上均为个人理解,不代表权威观点,请理智采纳】
通过以上的计算,我们已经得到了各个影响因素之间的归一化权重关系,值得注意的是,这个权重关系是不涉及任何可行方案的、单纯的对影响因素重要程度的判断,与方案层的各种不同的方案没有任何关系。
5. 模型方案层
模型方案层主要解决每个方案对于同一因素的打分,最终把打分和因素加权在把不同因素的加权打分加和,得到最后的总评分。通过总评分决定出最优方案。
5.1 构造成对比较阵
构造比较阵的方式与之前构造判断矩阵的方式基本相同,就是将每两个备选方案的同一个影响因素进行比较、打分,打分标准和上文相同。设第个方案与第个方案在第个影响因素上的表现(打分)记作,表现越好,打分越高。所有方案在第个因素上的表现记为矩阵,于是我们可以得到如下几个比较阵:
5.2. 一致性检验
同样的方法计算得出每个矩阵的最大特征根,和每个矩阵的一致性指标,要想计算权向量,就要先进行一致性检验。
比较阵的总体的一致性指标的定义如下:
若则所有矩阵均通过一致性检验;若没有,调整偏大的矩阵中的数据,直到通过一致性检验。
5.3. 计算权向量
通过了一致性检验就可以继续计算各个矩阵权向量了,通过求解最大特征根,求得权向量:
将这些权向量归一化后,我们就知道了每个备选方案对于某个因素的得分高低。比如假设表示旅游的花费,,所对应的三个城市为,苏州,海南和井冈山,则权重向量的实际意义就是:去井冈山的花费打分最高,花费最少;其次是苏州;去海南的花费最高。
5.4 计算最终打分&决定出最优方案
我们现在已经有了各个因素之间的重要程度,也有了各个备选方案对于每个因素的得分,一个非常朴素的计算总评分的方法就是:将每一个备选方案的每个因素的得分乘以该因素的权重,再把这个方案各个因素的加权得分相加得到总评分。为了方便计算,我们将权向量写入矩阵:
定义总评分向量,表示第个方案的总评分:
即:
总评分最高的方案,就是我们要选择的最优方案。
JavaArtist
2022/8/20