AHP矩阵的数学原理

AHP(Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题,具有十分广泛的实用性。

但是为什么AHP是有效的,其数学原理是什么呢?

假设有如下AHP分析法的判断矩阵

a11a12a1na21a22a2nan1an2ann\begin{matrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \ldots & \ldots & \ldots & \ldots \\ a_{n1} & a_{n2} & \ldots & a_{nn} \\ \end{matrix}

其中aija_{ij} 表示 第i个元素相对于第j个元素的重要性,比如,aij=3a_{ij} = 3,表明第i个元素的重要性是第j个元素的三倍。

对于这个矩阵的计算,有两种方式:

先行归一,再列相加,第k个的权重计算公式如下,其含义是其他元素相对于第i个元素的重要性:

Ak=i=1naikj=1naijA_k = \sum_{i=1}^n\frac{a_{ik}}{\sum_{j=1}^na_{ij}}

先列归一化,再行相加,第k个的权重计算公式如下,其含义是第i个元素相对于其他元素的重要性:

Bk=j=1nakji=1naijB_k = \sum_{j=1}^n\frac{a_{kj}}{\sum_{i=1}^na_{ij}}

已知aijaji=1a_{ij} \cdot a_{ji} = 1

那么有以下几个问题:

  1. 一致性系数是什么

  2. 是否可以证明,如果第i个元素比第j个重要,Ai一定小于AjA_i 一定小于 A_j,即当aij>1,Ai<Aj,Bi>Bja_{ij} \gt 1时, A_i \lt A_j, B_i \gt B_j

  3. 是否可以证明,先行归一再列相加,与先列归一再行相加的结果一定是反的,即当ApAq时,BpBqA_p \ge A_q时,B_p \le B_q

第一个问题

一致性系数的定义

一致性系数通常用 CR(Consistency Ratio)表示。它是通过计算一致性指标 CI(Consistency Index)与随机一致性指标 RI(Random Index)的比值得到。即CR=CIRICR = \frac{CI}{RI} 。它用于判断判断矩阵的一致性是否可以接受。一般来说,如果CR<0.1CR \lt 0.1 ,则认为判断矩阵的一致性是可以接受的;否则,则认为判断矩阵的一致性较差,需要对判断矩阵进行调整,以使其满足一致性要求。这是因为如果判断矩阵的一致性太差,那么基于该矩阵得出的权重结果可能不可靠。

所以说,这个问题的本质是,我们的判断矩阵需要满足什么条件,才是一个正确的判断矩阵。

如何计算一致性系数

在了解如何计算一致性系数之前,先了解几个矩阵的概念:

特征向量和特征值:对于一个n×nn \times n 的矩阵 ,如果存在一个非零向量 x 和一个标量λ\lambda,使得Ax=λxAx = \lambda x,那么称λ\lambda 是矩阵 A 的特征值,x 是对应于特征值λ\lambda 的特征向量。至于特征向量和特征值如何计算,属于线性代数基础知识,不是本次重点,不展开。

正互反矩阵:正互反矩阵是指由正数构成的方阵,其中表示要素与要素相对重要性的数值,且满足aij=1aji,aii=1a_{ij} = \frac{1}{a_{ji}}, a_{ii} = 1。很明显,我们的判断矩阵一定是正互反矩阵。

一致矩阵:是指满足以下性质的正互反矩阵:对于任意的i,j,ki,j,k,都有aijajk=aika_{ij} \cdot a_{jk} = a_{ik}。也就是说,如果要素i与要素j的重要性之比为aija_{ij},要素j与要素k的重要性之比为ajka_{jk},那么要素i与要素k的重要性之比应该为aijajka_{ij} \cdot a_{jk},当满足这个条件时,矩阵就是一致矩阵。如果我们的判断矩阵越接近一致矩阵,那么我们最后计算出来的结果越准确。

一致矩阵有个特性,那就是它一定是方阵,秩为1,只有唯一且最大的非零特征值,就是n,其余特征值均为零

而一致性系数,就是衡量判断矩阵与一致矩阵之间差异的指标,一致性系数越小,判断矩阵越接近一致矩阵。

接下来看一下如何计算CR。

首先是计算CI:CI=λmaxnn1CI = \frac{\lambda_{max} - n}{n-1}

那么为什么CI是这样计算的呢?

首先我们考虑判断矩阵是一致矩阵的情况,λmax=n\lambda_{max} = n,此时CI=0,说明判断矩阵就是一致矩阵

但我们大部分情况下,判断矩阵并不是一致阵,此时λmax>n\lambda_{max} \gt n,这个值越大,判断矩阵偏离一致矩阵越多,为了方便比较不同阶的判断矩阵的CI值,会再除 n - 1 进行归一化。

这里有个问题,为什么λmax>n\lambda_{max} \gt n

但是怎么判断这个CI多大算大呢,我们还需要再将CI除以RI。

RI的值是通过多次随机生成一定阶数的正互反矩阵,并计算其一致性指标后取平均值得到的。不同阶数的矩阵对应不同的 RI 值。例如,当 n=3 时, RI=0.58;当 n=4 时,RI=0.9 等。这个可以通过查表获得,不需要每次都随机生成大量矩阵再计算。

有了CI和RI,我们就可以得到CR了。

第二个问题

第三个问题