精华内容
下载资源
问答
  • 主成分分析法案例

    2018-05-31 23:15:19
    主成分分析法案例讲解Ppt,多变量问题是经常会遇到的。变量太多,无疑会增加分析问题的难度与复杂性,而且在许多实际问题中,多个变量之间是具有一定的相关关系的。
  • 模糊层次分析案例

    2017-12-27 10:48:20
    层次分析法介绍,里面有详细教程和案例分析,计算过程详细
  • 【AHP】层次分析法 | 过程解读 案例实践

    万次阅读 多人点赞 2020-08-20 19:56:21
    AHP 层次分析法 一. AHP 层次分析法介绍 AHP 层次分析法简介 AHP,即层次分析法(Analytic Hierarchy Process,AHP)是一种系统化的、层次化的多目标综合评价方法。在评价对象的待评价属性复杂多样,结构各异,...

    层次分析法 | 过程解读 案例实践


    导读

    本文将带领读者了解 AHP 法,通过案例学习,学会使用 AHP 法解决实际问题。在适当的地方将深入了解,例如 AHP 法过程中出现的不一致情况,我们将详细讨论为什么会出现不一致情况,如何验证是否不一致,如何解决不一致情况。

    本文无代码实现,更注重 AHP 法过程本身的原理。



    一. AHP 层次分析法介绍

    • AHP 层次分析法简介

      AHP,即层次分析法(Analytic Hierarchy Process,AHP)是一种系统化的、层次化的多目标综合评价方法。在评价对象的待评价属性复杂多样,结构各异,难以量化的情况下AHP层次分析法也能发挥作用。

    • AHP 基本思想 [1]

      AHP 把复杂的问题分解为各个组成因素,又将这些因素按支配关系分组形成地递阶层次结构。通过两两比较的方式确定方式确定层次中诸因素的相对重要性。然后综合有人员的判断,确定备选方案相对重要性的总排序。整个过程体现了入门分解问题—判断—综合,的思想特征。

    • AHP 步骤

      1. 分析问题,明确需求,确定评价指标,并建立评价层次关系。
      2. 构造上一层每个节点与下一层的判断矩阵。
      3. 由判断矩阵得出层间的相对权重(层次单排序及一致性检验)。
      4. 计算各层对总评价目标的总权重(层次总排序),得出各备选方案的评估结果。

    注意


    下文中计算数值均四舍五入保留三位小数。一些归一化结果为了保证其结果和为1,可能存在一定的计算误差。但不影响最终结果的准确性


    二. AHP 的实际问题应用案例

    本章节我们将在选择购买空调的过程中使用 AHP 来完成决策。

    为了从三种空调,空调A、空调B、空调C,中选购最合适的空调,我们采用 AHP 法对我们的需求进行分析与评估,最终完成决策。

    1. 确定评价指标,建立层次关系

    为了选出最合适的空调,我们确定从四个指标来对空调进行评估,分别是:价格、噪声、功耗、寿命。 在 AHP 中,要构建三层层次关系:目标层、准则层、方案层。

    在这里插入图片描述

    • 目标层
      只有一个要素,是分析问题的预期结果或期望实现的最终目标,是评价的最高准则,可称为目的或目标层
    • 准则层
      准则层可以是多层构成,其包括所要考虑的准则,子准则等。
    • 方案层
      表示实现目标所提供的各种方案与措施,是最终评价对象,决策的结果将从中选出。

    2. 构造上一层每个节点与下一层的判断矩阵

    对一层的每一个节点,与其下层的所有与其有关联的节点构建判断矩阵。

    判断矩阵描述了下一层节点之间的相对重要性或优越性。为了量化节点间的优劣先后,将用到以下判断矩阵标度定义。

    标度含义
    1两个要素相比,重要性相同
    3两要素相比,前者比后者稍微重要或有优势
    5两要素相比,前者比后者比较重要或有优势
    7两要素相比,前者比后者十分重要或有优势
    9两要素相比,前者比后者绝对重要或有优势
    2,4,6,8为上述标度之间的中间值

    若要描述后者与前者比较,则用倒数为标度。例如 1/3 描述的是,后者比前者稍微重要。

    这么说还是有些抽象,我们用以上标度为规则,来构建目标层与准则层之间的判断矩阵如下。

    选购空调价格噪声功耗寿命
    价格11/31/51
    噪声3115
    功耗5115
    寿命11/51/51

    表中描述的是为了达到目标,准则层节点之间的相对重要程度,决定这些数值大小的可以是决策者的主观判断,也可以是基于调查或文献来判断,也可以是由专家讨论决定,本文中的值都由笔者主观决定。


    如,价格行,噪声列(矩阵中坐标为[1,3])值为 1/3 ,意味着相对于价格(前者)认为噪声(后者)的重要程度为 1/3。反过来,我们也可以说相对于噪声,价格的重要程度为 3。


    因此判断矩阵是斜对角线对称元素互为倒数的。 并且规定,而在斜对角线上,要素和自身比较的标度恒 1。判断矩阵是一个正互反矩阵

    同样的,需要构建准则层每一个节点到方案层所有节点的判断矩阵。

    • 三种空调对于价格的判断矩阵
    价格空调 A空调 B空调 C
    空调 A11/71/5
    空调 B712
    空调 C51/21

    图中 [2,1] 的值为 7 ,意味着空调 B 的价格优势相对于空调 A 十分有优势。 其他同理,下面多个判断矩阵也同理。

    • 三种空调对于噪声的判断矩阵
    噪声空调 A空调 B空调 C
    空调 A125
    空调 B1/214
    空调 C1/51/41
    • 三种空调对于功耗的判断矩阵
    功耗空调 A空调 B空调 C
    空调 A131/2
    空调 B1/311/5
    空调 C251
    • 三种空调对于寿命的判断矩阵
    寿命空调 A空调 B空调 C
    空调 A11/51/3
    空调 B514
    空调 C31/41

    注意


    • 判断矩阵的值显然只需要填写上半三角区或下半三角区就可以确定整个判断矩阵,请务必保持判断矩阵的 " \ " 向对角线对称的元素互为倒数。
    • 标度的定义是谁更重要或有优势,不是直接比较其量的大小。例如在三种空调对于功耗的判断矩阵中,[1,2] 的值为 3,指的不是空调 A 的功耗相对于空调 B 比较有大,这意味着空调 A 比空调 B 更耗电。标度的实际意思是空调 A 的功耗相对于空调 B 比较有优势,这意味着空调 A 比空调 B 更有优势,更省电。
    • 判断矩阵的数值不能随便乱填,还需要遵守逻辑规范。例如在三种空调对于寿命的判断矩阵中可知,空调 B 的寿命比空调 C 更有优势,而空调 C 也比 空调 A 更有优势,那么就不能说空调 A 比 空调 B 更有优势,这显然是违背逻辑的 ,为了避免这种逻辑上的差错,我们可以先填矩阵,后利用一致性检验(下文即将介绍)来判断我们的矩阵是否存在逻辑上的错误,若有我们则修改标度。

    3. 层次单排序及一致性检验

    所谓层次单排序,指的是:根据判断矩阵计算对于上一层的一个节点而言本层次与之有联系的所有节点的重要性次序的权重值,从而根据权重对其进行重要性排序。

    我们以目标层与准则层开始。

    选购空调价格噪声功耗寿命 w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 A w i 0 \mathbf{Aw}_i^0 Awi0 λ m i \mathbf{λ}_{mi} λmi
    价格11/31/510.5080.0990.4004.040
    噪声31151.9680.3811.5464.058
    功耗51152.2360.4331.7444.028
    寿命11/51/510.4470.0870.3494.011

    λ m a x = 4.033 , C . I . = 0.011 , R . I . = 0.89 , C . R . = 0.012 < 0.1 \mathbf{λ}_{max} = 4.033,C.I. = 0.011,R.I. = 0.89,C.R. = 0.012<0.1 λmax=4.033C.I.=0.011R.I.=0.89C.R.=0.012<0.1


    连续出现了一系列的新值,我们将一一介绍。


    • w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 w i \mathbf{w}_i wi基于判断矩阵计算得出,采用方根法计算,其计算过程为

      1. 判断矩阵各行元素求几何平均数。


        w = [ 1 × 1 3 × 1 5 × 1 4 3 × 1 × 1 × 5 4 5 × 1 × 1 × 5 4 1 × 1 5 × 1 5 × 1 4 ] = [ 0.508 1.968 2.236 0.447 ] \mathbf{w}_ = \left[ \begin{matrix} \sqrt[4]{1\times\frac{1}{3}\times\frac{1}{5}\times1} \\ \sqrt[4]{3\times1\times1\times5} \\ \sqrt[4]{5\times1\times1\times5} \\ \sqrt[4]{1\times\frac{1}{5}\times\frac{1}{5}\times1} \\ \end{matrix} \right] =\left[ \begin{matrix} 0.508\\ 1.968\\ 2.236\\ 0.447 \end{matrix} \right] w=41×31×51×1 43×1×1×5 45×1×1×5 41×51×51×1 =0.5081.9682.2360.447

      2. w i \mathbf{w}_i wi 归一化得到要素相对权重 w i 0 \mathbf{w}_i^0 wi0


        w 0 = [ 0.508 0.508 + 1.968 + 2.236 + 0.447 1.968 0.508 + 1.968 + 2.236 + 0.447 2.236 0.508 + 1.968 + 2.236 + 0.447 0.447 0.508 + 1.968 + 2.236 + 0.447 ] = [ 0.099 0.381 0.433 0.087 ] \mathbf{w}^0 = \left[ \begin{matrix} \frac{0.508}{0.508+1.968+2.236+0.447}\\ \frac{1.968}{0.508+1.968+2.236+0.447}\\ \frac{2.236}{0.508+1.968+2.236+0.447}\\ \frac{0.447}{0.508+1.968+2.236+0.447} \end{matrix} \right] = \left[ \begin{matrix} 0.099 \\ 0.381 \\ 0.433 \\ 0.087 \end{matrix} \right] w0=0.508+1.968+2.236+0.4470.5080.508+1.968+2.236+0.4471.9680.508+1.968+2.236+0.4472.2360.508+1.968+2.236+0.4470.447=0.0990.3810.4330.087

      而对于采用方根法的通用公式为


      特 征 矩 阵 : A = [ a 11 a 12 ⋯ a 1 n a 21 ⋮ ⋱ a n 1 a n n ] , w i 0 = ( ∏ j = 1 n a i j ) 1 n ∑ i = 1 n ( ∏ j = 1 n a i , j ) 1 n , n = 1 , 2 , ⋯   , n 特征矩阵:A = \left[ \begin{matrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}\\ \vdots&&\ddots\\ a_{n1}&&&a_{nn} \end{matrix} \right] ,\mathbf{w}_i^0 = \frac{(\prod_{j=1}^na_{ij})^{\frac{1}{n}}}{\sum_{i=1}^n (\prod_{j=1}^n a_{i,j})^{\frac{1}{n}}},n=1,2,\cdots,n A=a11a21an1a12a1nannwi0=i=1n(j=1nai,j)n1(j=1naij)n1,n=1,2,,n


      也可以使用求和法计算权重 w i 0 \mathbf{w}_i^0 wi0 ,这里只给出公式不给出本例的计算过程。求和法得到的 w i 0 \mathbf{w}_i^0 wi0 值可能与方根法求到的 w i 0 \mathbf{w}_i^0 wi0 不完全一样,这是正常的。


      w i 0 = 1 n ∑ j = 1 n a i j ∑ k = 1 n a i j , n = 1 , 2 , ⋯   , n \mathbf{w}_i^0 = \frac{1}{n}\sum_{j=1}^n\frac{a_{ij}}{\sum_{k=1}^na_{ij}},n = 1,2,\cdots,n wi0=n1j=1nk=1naijaij,n=1,2,,n

      1. 将判断矩阵的每列归一化,即 a i j ∑ k = 1 n a i j \frac{a_{ij}}{\sum_{k=1}^na_{ij}} k=1naijaij
      2. 将得到的新矩阵求各行的算数平均数得到 w i 0 \mathbf{w}_i^0 wi0
    • A w i 0 \mathbf{Aw}_i^0 Awi0 即为判断矩阵 A \mathbf{A} A 与权重 w i 0 \mathbf{w}_i^0 wi0 的矩阵点乘运算结果


      A w 0 = [ 1 1 3 1 5 1 3 1 1 5 5 1 1 5 1 1 5 1 5 1 ] ⋅ [ 0.508 1.968 2.236 0.447 ] = [ 0.4 1.546 1.744 0.349 ] \mathbf{Aw}^0 = \left[ \begin{matrix} 1 & \frac{1}{3} & \frac{1}{5} & 1 \\ 3 & 1 & 1 & 5 \\ 5 & 1 & 1 & 5 \\ 1 & \frac{1}{5} & \frac{1}{5} & 1 \end{matrix} \right]· \left[ \begin{matrix} 0.508\\ 1.968\\ 2.236\\ 0.447 \end{matrix} \right]= \left[ \begin{matrix} 0.4\\ 1.546\\ 1.744\\ 0.349 \end{matrix} \right] Aw0=135131115151115115510.5081.9682.2360.447=0.41.5461.7440.349

    • λ m i \mathbf{λ}_{mi} λmi 是用于计算 λ m a x \mathbf{λ}_{max} λmax 的中间值,而 λ m a x \mathbf{λ}_{max} λmax 用于一致性检验。


      λ m i = A w i 0 w i 0 \mathbf{λ}_{mi} = \frac{\mathbf{Aw}_i^0}{\mathbf{w}_i^0} λmi=wi0Awi0

    • λ m a x \mathbf{λ}_{max} λmax 用于计算后续的 C . I . \mathbf{C.I.} C.I. 值,从而完成一致性检验。


      λ m a x = 1 n ∑ i = 1 n λ m i \mathbf{λ}_{max} = \frac{1}{n}\sum_{i=1}^{n}\mathbf{λ}_{mi} λmax=n1i=1nλmi

    • C . I . \mathbf{C.I.} C.I. R . I . \mathbf{R.I.} R.I. C . R . \mathbf{C.R.} C.R. C . I . \mathbf{C.I.} C.I. 为一致性指标, R . I . \mathbf{R.I.} R.I. 为平均随机一致性指标, C . R . \mathbf{C.R.} C.R. 为一致性指标,这些指标用于完成判断矩阵的一致性检验。


      C . I . = λ m a x − n n − 1 \mathbf{C.I.} = \frac{\mathbf{λ}_{max}-n}{n-1} C.I.=n1λmaxn


      R . I . \mathbf{R.I.} R.I. 的值要参考平均随机一致性指标表来确定,其值由 n \mathbf{n} n 即判断矩阵的阶 数,查下表得

      n \mathbf{n} n1234567891011121314
      R . I . \mathbf{R.I.} R.I.000.520.891.121.261.361.411.461.491.521.541.561.58

      本例中 n = 4 \mathbf{n}=4 n=4 R . I . = 0.89 \mathbf{R.I.} = 0.89 R.I.=0.89


      C . R . = C . I . R . I . \mathbf{C.R.}=\frac{\mathbf{C.I.}}{\mathbf{R.I.}} C.R.=R.I.C.I.


      C . R . < 0.1 \mathbf{C.R.} < 0.1 C.R.<0.1 则认为判断矩阵通过了一致性检验,若不满足条件则需要检查判断矩阵,并对其值进行调整。 本例中 C . R . = 0.012 < 0.1 \mathbf{C.R. = 0.012<0.1} C.R.=0.012<0.1,因此通过了一致性检验,可继续进行后续的步骤。

    在完成目标层与准则层的层次单排序与一致性检验之后,还需对准则层到方案层的多个判断矩阵完成该过程。这里直接给出结果。

    • 三种空调对于价格的判断矩阵的层次单排序与一致性检验

      价格空调 A空调 B空调 C w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 A w i 0 \mathbf{Aw}_i^0 Awi0 λ m i \mathbf{λ}_{mi} λmi
      空调 A11/71/50.3060.0750.2263.016
      空调 B7122.410.5921.7833.011
      空调 C51/211.3570.3331.0043.015

      λ m a x = 3.014 , C . I . = 0.007 , R . I . = 0.52 , C . R . = 0.013 < 0.1 \mathbf{λ}_{max} = 3.014,C.I. = 0.007,R.I. = 0.52,C.R. = 0.013<0.1 λmax=3.014C.I.=0.007R.I.=0.52C.R.=0.013<0.1

    • 三种空调对于噪声的判断矩阵的层次单排序与一致性检验

      噪声空调 A空调 B空调C w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 A w i 0 \mathbf{Aw}_i^0 Awi0 λ m i \mathbf{λ}_{mi} λmi
      空调 A1252.1540.5701.7213.019
      空调 B1/2141.260.3331.0063.021
      空调 C1/51/410.3680.0970.2943.030

      λ m a x = 3.023 , C . I . = 0.012 , R . I . = 0.52 , C . R . = 0.023 < 0.1 \mathbf{λ}_{max} = 3.023,C.I. = 0.012,R.I. = 0.52,C.R. = 0.023<0.1 λmax=3.023C.I.=0.012R.I.=0.52C.R.=0.023<0.1

      • 三种空调对于噪声的判断矩阵的层次单排序与一致性检验

      功耗空调 A空调 B空调C w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 A w i 0 \mathbf{Aw}_i^0 Awi0 λ m i \mathbf{λ}_{mi} λmi
      空调 A131/21.1450.3090.9273.000
      空调 B1/311/50.4050.1090.3283.009
      空调 C2512.1540.5821.7453.000

      λ m a x = 3.003 , C . I . = 0.0015 , R . I . = 0.52 , C . R . = 0.003 < 0.1 \mathbf{λ}_{max} = 3.003,C.I. = 0.0015,R.I. = 0.52,C.R. = 0.003<0.1 λmax=3.003C.I.=0.0015R.I.=0.52C.R.=0.003<0.1

      • 三种空调对于噪声的判断矩阵的层次单排序与一致性检验

      寿命空调 A空调 B空调C w i \mathbf{w}_i wi w i 0 \mathbf{w}_i^0 wi0 A w i 0 \mathbf{Aw}_i^0 Awi0 λ m i \mathbf{λ}_{mi} λmi
      空调 A11/51/30.4050.10.3103.100
      空调 B5142.410.6742.0783.083
      空调 C31/410.9090.2260.6953.075

      λ m a x = 3.086 , C . I . = 0.043 , R . I . = 0.52 , C . R . = 0.083 < 0.1 \mathbf{λ}_{max} = 3.086,C.I. = 0.043,R.I. = 0.52,C.R. = 0.083<0.1 λmax=3.086C.I.=0.043R.I.=0.52C.R.=0.083<0.1

    注意


    在层次单排序过程中的 平均随机一致性表( R . I . \mathbf{R.I.} R.I. 值表)是由蒙特卡洛算法模拟随机矩阵验证一致性是否可以接受得来的。有兴趣的读者可以查询,了解。

    总结


    完成一个判断矩阵的层次单排序与一致性检验的求值过程为,简单总结如下:

    1. 选定方法求 w i \mathbf{w_{i}} wi(尚未归一化的权重)
    2. 归一化 w i \mathbf{w_{i}} wi 得到 w i 0 \mathbf{w_{i}^0} wi0(相对重要性权重)
    3. 将判断矩阵 A 与 w i 0 \mathbf{w_{i}^0} wi0 矩阵点乘得到 A w i 0 \mathbf{Aw}_i^0 Awi0
    4. A w i 0 \mathbf{Aw}_i^0 Awi0 除以 w i 0 \mathbf{w_{i}^0} wi0 得到 λ m i \mathbf{λ}_{mi} λmi
    5. 使用 λ m i \mathbf{λ}_{mi} λmi 求得 λ m a x \mathbf{λ}_{max} λmax
    6. 利用 λ m a x \mathbf{λ}_{max} λmax C . I . \mathbf{C.I.} C.I.,查表得到 R . I . \mathbf{R.I.} R.I. 对应的值,将 C . I . \mathbf{C.I.} C.I. R . I . \mathbf{R.I.} R.I. 相除得到 C . R . \mathbf{C.R.} C.R.
    7. 比较 C . R . \mathbf{C.R.} C.R. 与 0.1 的大小,确定是否通过一致性检验,不通过则修改判断矩阵的值,直到通过一致性检验。
    8. 完成层次单排序,获得结果 w i 0 \mathbf{w_{i}^0} wi0

    4. 层次总排序

    层次总排序得出了方案层对于目标层的重要程度权重,从而我们可以选出权重最大的为决策结果

    评价标准价格噪声功耗寿命
    最终评分
    总权重(w)
    权重0.0990.3810.4330.087
    空调 A0.0750.5700.3090.1000.367
    空调 B0.5920.3330.1090.6740.291
    空调 C0.3330.0910.5820.2260.342

    以上表格关于四大评价指标对各空调的权重(第二行)来自于目标层与准则层判断矩阵的层次单排序结果权重。空调 ABC 对于四大评价指标的分别权重来自于准则层到方案层的判断矩阵层次单排序结果权重。表格中的最终得分计算方法是:用各评价指标的权重,乘上某空调各个指标对应的权重求和。以求空调 A 的最终得分为例,公式如下


    空 调 A 评 分 = 0.099 × 0.075 + 0.381 × 0.570 + 0.433 × 0.309 + 0.087 × 0.100 = 0.367 空调 A 评分 = 0.099\times0.075+0.381\times0.570+0.433\times0.309+0.087\times0.100=0.367 A=0.099×0.075+0.381×0.570+0.433×0.309+0.087×0.100=0.367


    空调 BC 的评分同理。因为 w 空 调 A > w 空 调 C > w 空 调 B \mathbf{w_{空调A}}>\mathbf{w_{空调C}}>\mathbf{w_{空调B}} wA>wC>wB,所以我们通过 AHP 法得出购买空调 A 最符合我们的需求。


    三. 不一致现象 与 一致性检验

    上文中有提到判断矩阵中会出现不一致的现象,也使用计算一致性比例的问题来判断判断矩阵是否出现不一致的现象。本章节将较为详细的分析讲解判断矩阵中出现的不一致现象,并介绍一种和求和法与方根法同样常用的求要素相对权重的方法——特征值法。

    正如上文中所提到的不一致现象,我们继续利用空调对寿命的判断矩阵来进行分析。

    寿命空调 A空调 B空调 C
    空调 A11/51/3
    空调 B514
    空调 C31/41

    该判断矩阵在上一章中已经通过一致性检验。但我们仔细分析,会发现该判断矩阵中依然存在不一致的问题。我们进行下列推断


    [ 2 , 1 ] = 5 ⇒ 空 调 B 比 空 调 A 比 较 有 优 势 [ 3 , 1 ] = 3 ⇒ 空 调 C 比 空 调 A 稍 微 有 优 势 则 , 空 调 B 比 空 调 C 应 该 稍 微 ① 有 优 势 ② [2,1] = 5 \Rightarrow 空调 B 比 空调 A 比较有优势\\ [3,1] = 3 \Rightarrow 空调 C 比 空调 A 稍微有优势\\ 则,空调 B 比 空调 C应该稍微^{①}有优势^{②} [2,1]=5BA[3,1]=3CABC


    在结论中有两小点:

    • 我们在上文中说明过,如果认为空调 C 比空调 B 更有优势则与②相反,违背了逻辑,这种不一致是不被允许的。假如我们颠倒空调 BC 的优势顺序,得到以下判断矩阵:

      寿命空调 A空调 B空调 C
      空调 A11/51/3
      空调 B511/4
      空调 C341

      λ m a x = 4.24 , C . I . = 0.62 , R . I . = 0.52 , C . R . = 1.192 > 0.1 \mathbf{λ}_{max} = 4.24,C.I. = 0.62,R.I. = 0.52,C.R. =1.192>0.1 λmax=4.24C.I.=0.62R.I.=0.52C.R.=1.192>0.1
      经过计算,发现一致性检验不通过。

      若我们将空调 BC 的优势程度写为一样有优势则得到以下判断矩阵:

      寿命空调 A空调 B空调 C
      空调 A11/51/3
      空调 B511
      空调 C311

      λ m a x = 3.866 , C . I . = 0.433 , R . I . = 0.52 , C . R . = 0.833 > 0.1 \mathbf{λ}_{max} = 3.866,C.I. = 0.433,R.I. = 0.52,C.R. =0.833>0.1 λmax=3.866C.I.=0.433R.I.=0.52C.R.=0.833>0.1
      也不通过一致性检验。因此一致性检验确实起到了避免判断矩阵中数值出现逻辑冲突的情况

    • 在结论①中,其确定了的是空调 B 比空调 C 优势的程度大小为多少。结论中我们写的是 “稍微有优势”,那么判断矩阵中对应的位置应该是 3 和 1/3,但原题目中判断矩阵对应的位置为 4 和 1/4。我们可以试着计算一下判断矩阵是否通过一致性检验:

      寿命空调 A空调 B空调 C
      空调 A11/51/3
      空调 B513
      空调 C31/31

      λ m a x = 3.029 , C . I . = 0.0145 , R . I . = 0.52 , C . R . = 0.028 < 0.1 \mathbf{λ}_{max} = 3.029,C.I. = 0.0145,R.I. = 0.52,C.R. =0.028<0.1 λmax=3.029C.I.=0.0145R.I.=0.52C.R.=0.028<0.1
      通过一致性检验。而原来的 4 与 1/4 也通过了一致性检验,因此可见在基本的谁比谁有优势确定后,其优势程度大小是有可调节的弹性的。这是因为相对重要性标度本身对于要素之间的优势程度定义是模糊的。


    四. (补充) 特征值法求相对重要性权重

    上文中有介绍两种求要素相对重要性权重的方法:方根法与求和法。本章介绍一种和这两种同样常用的方法来求权重——特征值法。

    • 特征向量与特征值[2]


      A 为 n × n 矩 阵 , x 为 非 零 向 量 , 若 存 在 数 λ 使 得 A x = λ x 有 非 平 凡 解 x , 则 称 λ 为 A 的 特 征 值 , x 称 为 对 应 与 λ 的 特 征 向 量 。 \mathbf{A} 为 \mathbf{n\times n} 矩阵,\mathbf{x} 为非零向量,\\若存在数 \mathbf{\lambda} 使得 \mathbf{Ax=\lambda x} 有非平凡解 \mathbf{x},\\则称 \mathbf{\lambda} 为 \mathbf{A} 的特征值,\mathbf{x} 称为对应与 \mathbf{\lambda} 的特征向量。 An×nxλ使Ax=λxxλAxλ


      利用特征值法求相对重要性权重,就是求判断矩阵的特征向量,并将特征向量列归一化,然后直接作为相对重要性权重向量。但这个方法对判断矩阵严格要求其为一致矩阵,而我们上例中的判断矩阵都是不完全一致的,因此不适用此方法(可重新确定判断矩阵的值使其为一致矩阵再用此方法)。

    • 一致矩阵


      若 矩 阵 A = [ a 11 a 12 ⋯ a 1 n a 21 ⋮ ⋱ a n 1 a n n ] 满 足 :   a i j > 0 a 11 = a 22 = ⋯ = a n n = 1 [ a i 1 , a i 2 , ⋯   , a i n ] = k i [ a 11 , a 12 , ⋯   , a 1 n ] 则 称 矩 阵 A 为 一 致 矩 阵 若矩阵 A= \left[ \begin{matrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}\\ \vdots&&\ddots\\ a_{n1}&&&a_{nn} \end{matrix} \right]满足: \\ \space\\ a_{ij}>0\\a_{11}=a_{22}=\cdots=a_{nn}=1\\ [a_{i1},a_{i2},\cdots,a_{in}] = k_i[a_{11},a_{12},\cdots,a_{1n}] \\则称矩阵 A 为一致矩阵 A=a11a21an1a12a1nann: aij>0a11=a22==ann=1[ai1,ai2,,ain]=ki[a11,a12,,a1n]A


      由于涉及到的知识点过多,篇幅受限不做详细介绍与证明。


    参考文献

    [1] 汪应洛.系统工程[M].5版.北京:机械工业出版社,2015.12:123.

    [2] David C. Lay,Steven R. Lay,Judi J. McDonald.线性代数及其应用[M].机械工业出版社:北京,2018.6:265.


    文章内容来自个人学习总结
    欢迎指出本文中存在的问题
    未经本人同意禁止转载,不得用于商业用途
    展开全文
  • 主要给大家介绍了关于python实现AHP算法(层次分析法)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • SPSS因子分析案例

    万次阅读 多人点赞 2018-01-14 20:43:40
    一、SPSS中的因子分析。 具体操作步骤: (1)定义变量:x1-财政用于农业的支出的比重,x2-第二、三产业从业人数占全社会从业人数的比重,x3-非农村人口比重,x4-乡村从业人员占农村人口的比重,x5-农业总产值占农林牧...

    PS:请见文末的打赏选项

    一、SPSS中的因子分析。

    具体操作步骤:

    (1)定义变量:x1-财政用于农业的支出的比重,x2-第二、三产业从业人数占全社会从业人数的比重,x3-非农村人口比重,x4-乡村从业人员占农村人口的比重,x5-农业总产值占农林牧总产值的比重,x6-农作物播种面积,x7—农村用电量。

     

    (2)导入数据:file-open-data

     

     

     

    (3)变量标准化Analyze-Descriptive Statistics-Descriptives

     

    展开全文
  • 动态网页 —— 逆向分析法 + 案例

    千次阅读 多人点赞 2021-05-10 17:01:37
    动态网页的爬取呢,主要有逆向分析法和模拟法。我们今天主要介绍逆向分析法,后面会重点介绍模拟法中selenium库的使用。 动态网页 一、动态网页概述 1.1 什么是动态网页 动态网页是基本的html语法规范与Python、...

    引入 : 本章主要讲解的是动态网页爬取的相关技术。动态网页的爬取呢,主要有逆向分析法和模拟法。我们今天主要介绍逆向分析法,后面会重点介绍模拟法中selenium库的使用。


    在这里插入图片描述

    动态网页

    一、动态网页概述

    1.1 什么是动态网页


    动态网页是基本的html语法规范与Python、Java、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。
    在这里插入图片描述
    这是在网上搜到的定义 ,那么通俗一点的说法是什么呢 ?就是 你要找的东西在网页源代码可能是不会出现的。


    1.2 动态网页的常用技术


    动态网页经常Ajax、动态HTML等相关技术实现前后台数据的交互。对于传统的Web应用,当我们提交一个表单请求给服务器,服务器接收到请求之后,返回一个新的页面给浏览器,这种方式不仅浪费网络带宽,还会极大地影响用户体验,因为原网页和发送请求后获得的新页面两者中大部分的HTML内容是相同的,而且每次用户的交互都需要向服务器发送请求,并且刷新整个网页。这种问题的存在催生出了Ajax技术。

    Ajax的全称是Asynchronous JavaScript and
    XML,中文名称为异步的JavaScript和XML,是JavaScript异步加载技术、XML以及Dom,还有表现技术XHTML和CSS等技术的组合。使用
    Ajax技术不必刷新整个页面,只需对页面的局部进行更新,Ajax只取回一些必需的数据,它使用SOAP、XML或者支持JSON的Web
    Service接口,我们在客户端利用JavaScript处理来自服务器的响应,这样客户端和服务器之间的数据交互就减少了,访问速度和用户体验都得到了提升。如注册邮箱时使用的用户名唯一性验证普遍采用的就是Ajax技术,服务端返回的数据格式通常为json或xml,而不是HTML格式。


    1.3 动态网页的判定方法

    静态网页 :

    静态网页是以.html、.htm、.html、.shtml、.xml作为后缀的网页。静态网页的内容是固定的,每个页面都是独立的页面不会根据浏览者的不同需求而改变。

    动态网页 :

    使用ASP 或PHP 或 JSP 等作为后缀的网页。动态网页以数据库技术为基础,可以大大降低网站维护的工作量。

    判定方法
    1.右键查看网页源代码,如果数据在网页中即说明是静态网页,否则是动态网页。
    2.也可使用Request.get()爬取,返回r.text。如果数据全部在文本里则是静态网页,否则是动态网页或者动态和静态结合的网页,部分数据在网页里,部分数据不在网页上。

    1.4 动态网页的爬取方法

    动态网页的爬取方法一般分为逆向分析法和模拟法。逆向分析法难度较高,通过拦截网站发送的请求,找出真正的请求地址,要求爬虫爱好者熟悉前端特别是JavaScript相关技术。模拟法是使用第三方库如Selenium模拟浏览器的行为,解决页面加载和渲染的问题。

    二、案例

    案例网址 :重庆名医堂
    在这里插入图片描述
    还是原来的操作 ,f12 查看源代码,注意圈红,这次式XHR ,具体情况要具体分析。
    观察! 格式式json格式!这里我们在解析的时候要转换成字典很好用!在这里插入图片描述

    import  requests
    import json
    import pymysql
    import  time
    def get_html(url,headers,time=10):  #get请求通用函数,去掉了user-agent简化代码
        try:
            r = requests.get(url, headers=headers,timeout=time)  # 发送请求
            r.encoding = r.apparent_encoding  # 设置返回内容的字符集编码
            r.raise_for_status()  # 返回的状态码不等于200抛出异常
            return r.text  # 返回网页的文本内容
        except Exception as error:
            print(error)
    out_list=[]
    def parser(json_txt):
        txt = json.loads(json_txt)
        global row_count
        row_count=txt["doctorCount"] #总行数
        for row in txt["doctors"]: #医生信息列表
            staff_name=row.get("STAFF_NAME") #医生姓名
            if staff_name is None:
                staff_name=""
            staff_type=row.get("STAFF_TYPE") #职称
            if staff_type is None:
                staff_type=""
            remark=row.get("STAFF_REMARK") #简介
            if remark is None:
                remark=""
            #简单清洗,去除掉简介中的html标签
            remark=remark.replace("<p>","").replace("</p>","")
            #去除空白字符
            remark=remark.strip()
            org_name=row.get("ORG_NAME") #所属医院
            org_name=org_name if org_name is not None else ""
            org_grade_name=row.get("ORG_GRADE_NAME")#医院等级
            org_grade_name = org_grade_name if org_grade_name is not None else ""
            good_at=row.get("GOOT_AT") #擅长领域
            good_at= good_at if good_at is not  None else ""
            row_list=(
                staff_name,
                staff_type,
                remark,
                org_name,
                org_grade_name,
                good_at
            )
            out_list.append(row_list)
    def save_mysql(sql, val, **dbinfo): #通用数据存储mysql函数
        try:
            connect = pymysql.connect(**dbinfo)  # 创建数据库链接
            cursor = connect.cursor()  # 获取游标对象
            cursor.executemany(sql, val)  # 执行多条SQL
            connect.commit()  # 事务提交
        except Exception as err:
            connect.rollback()  # 事务回滚
            print(err)
        finally:
            cursor.close()
            connect.close(if __name__ == '__main__':
        head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64)\
                       AppleWebKit/537.36 (KHTML, like Gecko) \
                       Chrome/89.0.4389.82 Safari/537.36"
        } #设置用户代理,应对简单反爬虫
    
        #为了得到总共数据条数,先爬一次得到row_count放入全局变量
        page_size=10 #每页的数据行数
        url='https://www.jkwin.com.cn/yst_web/doctor/getDoctorList?areaId=42&depId=&hasDuty=&pageNo=1&pageSize=10'
        json_txt=get_html(url,head) #发送请求
        print(json_txt) #查看是否有数据
        parser(json_txt) #解析函数
        print(out_list) #查看是否有数据
        page=row_count//page_size  #总共页数 页面太多速度太慢,以5页列,6改为page即可爬所有页面
        for i in range(2,6):
            url="https://www.jkwin.com.cn/yst_web/doctor/getDoctorList?areaId=42&depId=&hasDuty=&pageNo={0}&pageSize={1}".format(i,page_size)
            json_txt=get_html(url,head) #发送请求
            parser(json_txt) #解析函数
        #解析完数据了,然后一次性批量保存到MySQL数据库
        parms = {                      #数据库连接参数
                  "host": "--",
                  "user": "root",
                  "password": "123456",
                  "db": "---",
                  "charset": "utf8",
                }
        sql = "INSERT into doctorinfo(staff_name,staff_type,remark,\
                    org_name,org_grade_name,good_at)\
                    VALUES(%s,%s,%s,%s,%s,%s)"  # 带占位符的SQL
        save_mysql(sql, out_list, **parms)  # 调用函数,注意**不能省略
    

    注意!要修改自己的数据库信息!
    在这里插入图片描述

    结果:在这里插入图片描述
    sql语句:

    CREATE TABLE `doctorinfo` (
      `staff_name` varchar(255) DEFAULT NULL,
      `staff_type` varchar(255) DEFAULT NULL,
      `remark` varchar(10000) DEFAULT NULL,
      `org_name` varchar(255) DEFAULT NULL,
      `org_grade_name` varchar(255) DEFAULT NULL,
      `good_at` varchar(255) DEFAULT NULL
    ) 
    

    remark 那里的长度 我是随意设的 ,因为第一次跑出来 跳了一个提示 是长度不够!
    我就加长设置了!在这里插入图片描述

    拜~

    展开全文
  • 该研究旨在与完整案例分析相比,在回归中分类自变量的情况下,对缺失指标方法的性能进行复杂分析。 虽然后者似乎是处理缺失数据最流行的方法,但前者似乎是一种简单有效的替代方法,可以提供完整的样本进行分析。 ...
  • 数学建模:层次分析法实例以及代码

    万次阅读 多人点赞 2020-11-22 22:06:09
    目录层次分析法的思想层次分析法步骤具体案例(市政工程项目建设决策)1.问题提出2.建立递阶层次结构3.构造判断矩阵(成对比较阵)并赋值4.层次单排序(计算权向量)与检验(一致性检验)计算权向量一致性检验5.层次总...

    博主联系方式:
    QQ:1540984562
    微信:wxid_nz49532kbh9u22
    QQ交流群:892023501(嵌入式方向)
    QQ交流群:856398158(后端方向)

    层次分析法的思想

    层次分析法的思想:将所有要分析的问题层次化
    根据问题的性质和所要到达的总目标,将问题分为不同的组成因素,并按照这些因素间的关联影响即其隶属关系,将因素按不同层次聚集组合,形成一个多层次分析结构模型
    最后,对问题进行优劣比较排序.

    层次分析法步骤

    1、找准各因素之间的隶属度关系,建立递阶层次结构
    2、构造判断矩阵,并赋值
    3、层次单排序(计算权向量)与检验(一致性检验)
    4、层次总排序(组合权向量)与检验(一致性检验)
    5、结果分析

    具体案例(市政工程项目建设决策)

    1.问题提出

    市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益环境效益等因素,即是多准则决策问题,考虑运用层次分析法解决。

    2.建立递阶层次结构

    1、明确决策目标:“合理建设市政工程,使综合效益最高”。

    2、为了实现这一目标,需要考虑的主要准则有三个,即经济效益社会效益环境效益
    还必须考虑直接经济效益间接经济效益方便日常出行方便假日出行减少环境污染改善城市面貌等因素(准则),从相互关系上分析,这些因素隶属于主要准则,因此放在下一层次考虑,并且分属于不同准则。

    3、解决方案,即建高速路或建地铁,这两个因素作为措施层元素放在递阶层次结构的最下层。

    这样递阶层次就形成了:
    在这里插入图片描述

    3.构造判断矩阵(成对比较阵)并赋值

    1、构造判断矩阵的方法:
    每一个具有向下隶属关系的元素(被称作准则)作为判断矩阵的第一个元素(位于左上角),隶属于它的各个元素依次排列在其后的第一行第一列
    如下图所示:
    在这里插入图片描述
    2、如何对判断矩阵进行赋值:
    向填写人(专家)反复询问:针对判断矩阵的准则,其中两个元素两两比较哪个重要,重要多少,对重要性程度按1-9赋值。
    (可以类比模糊PID中的隶属程度,都是人为设定的,也是被人诟病的一个地方)
    在这里插入图片描述
    设填写后的判断矩阵为A=(aij)n×n,判断矩阵具有如下性质:

    (1) aij>0
    (2) aji=1/ aji
    (3) aii=1

    判断矩阵具有对称性,因此在填写时,通常先填写aii=1部分,然后再仅需判断及填写上三角形或下三角形的n(n-1)/2个元素就可以了。
    在特殊情况下,判断矩阵可以具有传递性,即满足等式:aij*ajk=aik .
    当上式对判断矩阵所有元素都成立时,则称该判断矩阵为一致性矩阵。
    对于上述的例子,可以构造出下面的判断矩阵:
    在这里插入图片描述

    4.层次单排序(计算权向量)与检验(一致性检验)

    计算权向量

    对于专家填写后的判断矩阵,利用一定数学方法进行层次排序。
    层次单排序是指每一个判断矩阵各因素针对其准则的相对权重,所以本质上是计算权向量。
    这里简要介绍和法:
    对于一致性判断矩阵,每一列归一化后就是相应的权重。
    对于非一致性判断矩阵,每一列归一化后近似其相应的权重,在对这n个列向量求取算术平均值作为最后的权重。

    公式: 在这里插入图片描述
    在层层排序中,要对判断矩阵进行一致性检验。判断矩阵可以具有传递性和一致性。一般情况下,并不要求判断矩阵严格满足这一性质。

    但从人类认识规律看,一个正确的判断矩阵重要性排序是有一定逻辑规律的,例如若A比B重要,B又比C重要,则从逻辑上讲,A应该比C明显重要,若两两比较时出现A比C重要的结果,则该判断矩阵违反了一致性准则,在逻辑上是不合理的。

    因此在实际中要求判断矩阵满足大体上的一致性,需进行一致性检验。只有通过检验,才能说明判断矩阵在逻辑上是合理的,才能继续对结果进行分析。

    一致性检验

    第一步,计算一致性指标CI
    在这里插入图片描述
    第二步,查表确定相应的平均随机一致性指标RI
    据判断矩阵不同阶数查下表,得到平均随机一致性指标RI:
    在这里插入图片描述
    第三步,计算一致性比例CR并进行判断:
    在这里插入图片描述
    当C.R.<0.1时,认为判断矩阵的一致性是可以接受的,C.R.>0.1时,认为判断矩阵不符合一致性要求,需要对该判断矩阵进行重新修正。

    图1
    图2
    可以看出,所有单排序的C.R.<0.1,认为每个判断矩阵的一致性都是可以接受的。

    5.层次总排序(组合权向量)与检验(一致性检验)

    总排序是指每一个判断矩阵各因素针对目标层(最上层)的相对权重。这一权重的计算采用从上而下的方法,逐层合成。
    文字性描述公式如下:
    在这里插入图片描述

    计算过程如下,更好理解过程:
    P(C1/A) = P(C1/B1) * P(B1/A) = 0.5 * 0.1429 = 0.07145
    CR(C1/A) = CR(C/B) * CR(B/A) = 0 * 0 = 0
    P(D1/A) = P(D1/C1) * P(C1/B1) * P(B1/A)
    + P(D1/C2) * P(C2/B1) * P(B1/A)
    + P(D1/C3) * P(C3/B2) * P(B2/A)
    + P(D1/C4) * P(C4/B2) * P(B2/A)
    + P(D1/C5) * P(C5/B3) * P(B3/A)
    + P(D1/C6) * P(C6/B3) * P(B3/A)
    =0.8333 * 0.5 * 0.1429
    +0.75 * 0.5 * 0.1429
    +0.1667 * 0.75 * 0.4286
    +0.8750 * 0.25 * 0.4286
    +0.1667 * 0.75 * 0.4286
    +0.8333 * 0.25 * 0.4286

    在这里插入图片描述

    6.结果分析

    从方案层总排序的结果看,建地铁(D2)的权重(0.6592)远远大于建高速路(D1)的权重(0.3408),因此,最终的决策方案是建地铁。
    根据层次排序过程分析决策思路:

    1、对于准则层B的3个因子,直接经济效益(B1)的权重最低(0.1429),社会效益(B2)和环境效益(B3)的权重都比较高(皆为0.4286),说明在决策中比较看重社会效益和环境效益
    2、对于不看重的经济效益,其影响的两个因子直接经济效益(C1)、间接带动效益(C2)单排序权重都是建高速路远远大于建地铁,对于比较看重的社会效益和环境效益,其影响的四个因子中有三个因子的单排序权重都是建地铁远远大于建高速路,由此可以推出,建地铁方案由于社会效益和环境效益较为突出,权重也会相对突出
    3、从准则层C总排序结果也可以看出,方便日常出行(C3)、减少环境污染(C5)是权重值较大的,而如果单独考虑这两个因素,方案排序都是建地铁远远大于建高速路。

    由此我们可以分析出决策思路:
    即决策比较看重的是社会效益和环境效益,不太看重经济效益;(总结准则层B)
    因此对于具体因子,方便日常出行和减少环境污染成为主要考虑因素,对于这两个因素,都是建地铁方案更佳,(总结准则层C)由此,最终的方案选择建地铁也就顺理成章了。

    7.层次分析法的优缺点

    优点:
    (1)系统性:层次分析把研究对象作为一个系统,按照分解、比较判断、综合的思维方式进行决策,成为继机理分析、统计分析之后发展起来的系统分析的重要工具。
    (2)实用性:层次分析把定性和定量方法结合起来,能处理许多许多用传统的最优化技术无法着手的实际问题,应用范围很广。同时,这种方法将决策者和决策分析者相互沟通,决策者甚至可以直接应用它,这就增加了决策者的了解和掌握。
    (3)简洁性:具有中等文化程度的人即可了解层次分析的基本原理和掌握它的基本步骤,计算也非常简便,并且所得的结果简单明确,容易为决策者了解和掌握。

    缺点:囿旧:只能从原有方案中选优,不能生成新方案;粗略:它的比较、判断直到结果都是粗糙的,不适于精度要求很高的问题;主观:从建立层次结构模型到给出成对比较矩阵,人的主观因素的作用很大,这就使得决策结果可能难以为众人接受。当然,采取专家群体判断的办法是克服这个缺点的一种途径。

    层次分析法的代码实现(matlab)

    disp('请输入判断矩阵A(n阶)');
    A=input('A=');
    [n,n]=size(A);
    x=ones(n,100);
    y=ones(n,100);
    m=zeros(1,100);
    m(1)=max(x(:,1));
    y(:,1)=x(:,1);
    x(:,2)=A*y(:,1);
    m(2)=max(x(:,2));
    y(:,2)=x(:,2)/m(2);
    p=0.0001;i=2;k=abs(m(2)-m(1));
    while  k>p
      i=i+1;
      x(:,i)=A*y(:,i-1);
      m(i)=max(x(:,i));
      y(:,i)=x(:,i)/m(i);
      k=abs(m(i)-m(i-1));
    end
    a=sum(y(:,i));
    w=y(:,i)/a;
    t=m(i);
    disp(w);disp(t);
             %以下是一致性检验
    CI=(t-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];
    CR=CI/RI(n);
    if CR<0.10
        disp('此矩阵的一致性可以接受!');
        disp('CI=');disp(CI);
        disp('CR=');disp(CR);
    end
    

    使用示例:
    将上面代码保存名为test1,并在点运行的时候添加到路径;
    输入的A矩阵是要以向量的形式输入的;
    之后按下回车即可,可以看到和之前的第4步得到的结果是一样的。
    在这里插入图片描述
    通过不断的使用这个式子计算相应矩阵(准则层B到准则层C、准则层C到方案层D)的权向量,最后可以得到最终的结果。
    简单的修改上面的程序,传入参数为矩阵,免得每次都要打。

    function w= test1(A)
    % disp('请输入判断矩阵A(n阶)');
    % A=input('A=');
    [n,n]=size(A);
    x=ones(n,100);
    y=ones(n,100);
    m=zeros(1,100);
    m(1)=max(x(:,1));
    y(:,1)=x(:,1);
    x(:,2)=A*y(:,1);
    m(2)=max(x(:,2));
    y(:,2)=x(:,2)/m(2);
    p=0.0001;i=2;k=abs(m(2)-m(1));
    while  k>p
      i=i+1;
      x(:,i)=A*y(:,i-1);
      m(i)=max(x(:,i));
      y(:,i)=x(:,i)/m(i);
      k=abs(m(i)-m(i-1));
    end
    a=sum(y(:,i));
    w=y(:,i)/a;
    t=m(i);
    disp(w);disp(t);
             %以下是一致性检验
    CI=(t-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];
    CR=CI/RI(n);
    if CR<0.10
        disp('此矩阵的一致性可以接受!');
        disp('CI=');disp(CI);
        disp('CR=');disp(CR);
    end
    

    输入:

    Array1=[1 1/3 1/3;3 1 1;3 1 1];
    Array2=[1 1;1 1];
    Array3=[1 3;1/3 1];
    Array4=[1 3;1/3 1];
    Array5=[1 5;1/5 1];
    Array6=[1 3;1/3 1];
    Array7=[1 1/5;5 1];
    Array8=[1 7;1/7 1];
    Array9=[1 1/5;5 1];
    Array10=[1 1/3;7 1];
    
    A=test1(Array1);
    B1=test1(Array2);
    B2=test1(Array3); 
    B3=test1(Array4);
    C1=test1(Array5);
    C2=test1(Array6);
    C3=test1(Array7);
    C4=test1(Array8);
    C5=test1(Array9);
    C6=test1(Array10);
    

    得到相应的矩阵:
    在这里插入图片描述

    展开全文
  • 5W1H 分析案例 WHERE 场所 (Where)--什么地点 WHEN 时间和程序 (When)--什么时候 WHY 对象 (What)--什么事情 WHO 人员 (Who)--责任人 WHY 为什么(Why)--原因 HOW 方式 (How)--如何 案例教室倒椅子事件 What: 椅子易...
  • 任何一个互联网产品,哪怕是一个简单的页面,也会涉及到很多的需求,产品经理也会经常遇到这样的情况:老板,业务提的各种新需求一下子都扎堆,哪个需求对用户来说最重要,用户对我们的新功能是否满意?开发产品资源...
  • 挣值分析,描述很详细,基本看完后就知道挣值分析为什么要作为项目管理的一个重要的技术手段,因为不复杂,没有复杂的公式,通过计划值、预算值、实际值来分析项目当前的状况,成本、进度等,通过简单的公式就能够...
  • 文章目录一、致谢二、运用层次分析法的一般步骤三、简单举例进行应用 一、致谢 本文得益于王莲芬老师、许树柏老师著作《层次分析法引论》(中国人民大学出版社1990年6月第1版)良多,在此致谢。 二、运用层次分析...
  • 层次分析法(附实例)

    千次阅读 2021-01-28 11:30:04
    层次分析法-AHP 问题:选择一部适合自己的手机 一、确定评价对象与评价指标 评价对象 评价指标 二、确定打分 比较矩阵 两两比较得到比较矩阵 判断比较矩阵是否能通过一致性检验 得分向量 归一化处理 求解得分向量 ...
  • PEST方法分析行业使用简单并且很好上手,在对政治(Politics),E是经济(Economy),S是社会(Society),T是技术(Technology)分析时,分别作出对应模块的总结,可以有效提升对于行业的理解和提高个人视野。...
  • 机器学习 | AHP层次分析法

    千次阅读 多人点赞 2019-05-15 20:39:47
    聊聊AHP层次分析法1 什么是AHP层次分析法?2 这个方法是干吗呢?在什么场景使用?3 AHP层次分析法的实现3.1 步骤3.2 实际的例子3.2.1 背景3.2.2 Step1 构建层次结构模型3.2.3 Step2 构造成对比较矩阵3.2.4 Step3 ...
  • 《MATLAB神经网络30个案例分析》学习笔记

    万次阅读 多人点赞 2016-09-04 20:53:31
    《MATLAB神经网络30个案例分析》学习记录(待更新):1. 数据分类,分类——多个输出,向量表示 [1 0 0] [0 1 0] [0 0 1]这样2. 分线性系统建模,拟合参数,用一定量的输入输出数据训练神经网络即可3. 遗传算法...
  • 层次分析法(AHP)

    万次阅读 多人点赞 2017-08-30 15:54:54
    层次分析法(AHP)问题的提出日常生活中有许多决策问题。决策是指在面临多种方案时需要依据一定的标准选择某一种方案。 购物:买钢笔,一般要依据质量、颜色、实用性、价格等方面的因素来选择某一只钢笔。 买饭,则...
  • 第14章BP神经元模型与应用案例 14.1BP神经元及其模型 14.2BP网络的学习 14.2.1BP网络学习算法 14.2.2BP网络学习算法的比较 14.3BP网络的局限性 14.4BP网络的MATLAB程序应用举例 14.4.1BP网络设计的基本方法 ...
  • 如何玩转杜邦分析法

    万次阅读 2019-04-22 21:17:55
    今天就整理一篇如何玩转杜邦分析法的文章给分享给大家,做个抛砖引玉,希望雪球越来越多有兴趣共同学习、进步的朋友加入,分享更多的干货。  当然,在玩转杜邦分析法的前提是,你必须得知道每一个财务指标的含义,...
  • 本节通过一个实战的例子来展示文本分析的最简单流程。首先设定因变量为原始数据中的"评分"。自变量是"评价内容",这里根据评价内容提取TF-IDF特征。之后,通过评价内容的特征建模预测下整体评分。 import jieba #...
  • 层次分析法(AHP)原理_例题应用及代码

    万次阅读 多人点赞 2020-09-27 16:09:47
    层次分析法(AHP)原理应用及代码AHP算法步骤算法举例第一步:建立递阶层次图第二步:建立判断矩阵计算五个指标的判断矩阵计算三个方案相对于某一指标的权重第三步:进行一致性检验一致性检验的步骤第一步:计算一致...
  • Python数据分析实战-Pandas

    千人学习 2019-12-02 10:54:20
    本课程通过讲解Pandas基础知识、DataFrame核心分析方法,以一系列实操案例使你快速掌握数据获取,数据清洗与整理,数据分析         pandas是在python最直接最流行的数据处理框架。可以这么说,...
  • 测试用例设计——边界值分析法

    千次阅读 2019-08-05 10:14:02
    我们在进行软件测试之前,为了能够逻辑清晰的、更好的没有重复的去执行测试,所以会编写测试用例。在测试用例编写好之后,可以直接按照测试用例来进行测试。...简单介绍边界值分析法就是对输入或输出...
  • 记得上学的时候,答文科方面的题,有这么一个套路,顺口就来,是什么,为什么,怎么样,什么意思,先说明...5W2H分析法又叫七问分析法简单、方便,易于理解、使用,富有启发意义,广泛用于企业管理和技术活动,对...
  • 同你分享1个完整的聚类分析案例

    千次阅读 2020-02-08 13:30:00
    > fit.average(d,method="average")#采用平均联动进行聚类 > plot(fit.average,hang=-1,cex=.8,main="average linkage clustering")#绘制最后的聚类图 对于数据量较小时,聚类图可以很好展示类之间的界限! 解读...
  • 层次分析法在matlab上的实现

    万次阅读 多人点赞 2018-06-12 10:36:17
    层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题...
  • 主成分分析法步骤,例子

    热门讨论 2009-05-15 07:47:54
    主成分分析(Principle Component Analysis, PCA)是最为常用的特征提取方法,被广泛应用到各领域,如图像处理、综合评价、语音识别、故障诊断等。有关主成分分析法的例子,步骤,和代码,希望对大家有帮助
  • SPSS因子分析经典案例分享

    万次阅读 多人点赞 2014-12-10 18:07:32
    因子分析已经被各行业广泛应用,各种案例琳琅满目,以前在百度空间发表过相关文章,是以每到4至6月,这些文章总会被高校毕业生扒拉一遍,也总能收到各种魅惑的留言,因此,有必要再次发布这经典案例以飨读者。...
  • 工程师为您详细分析思维车仿制模型的快速设计,大型变频鼓动机的机器状态监测等案例。欲了解
  • 因子分析在SPSS中的操作过程及结果解读

    万次阅读 多人点赞 2019-01-14 16:28:27
    因子分析在SPSS中的操作过程及结果解读 笔者在做该项研究时在网络上查阅了大量资料,都写得不够十分完整,所以该篇文章将因子分析从前到后做一个通俗易懂的解释,全文并不涉及非常晦涩的公式原理。 一.因子分析是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,480
精华内容 18,592
关键字:

内容分析法简单案例