层次分析法

作者: 橘猫吃不胖 | 来源:发表于2019-02-25 00:40 被阅读44次

    之前有整理过怎样判断指标的重要性,
    读书笔记-确定指标重要性的方法

    其中一个是矩阵图法,就是指标两两进行对比,用0、1来标识谁更重要,这个主要靠主观的判断,还有一种是专家意见法,就是整合多名专家的意见,并根据权重来判断指标的重要性。这里的层次分析法也是类似的原理,我们来学习下。

    什么是层次分析法

    层次分析法(The Analytic Hierarchy Process,简称AHP),是一种定性和定量相结合的、系统化的、层次化的分析方法,用来处理复杂的决策问题,比如从多种方案中选择一种最优的。

    比如,我们计划出去玩儿,想去的地方有拉萨、三亚、北京三个城市,都想去不知道该选择哪个,这时候,就可以用上层次分析法。

    • 目标:选择最适合出游的地点
    • 准则:选择出去玩儿的地方,总会有些标准、准则来判断是否适合当前出去玩儿,比如,天气,住宿,交通等等
    • 候选城市:拉萨、三亚、北京

    正常情况下,比如让我来选的话,巧了,这三个城市我还真没去过呢。我一般会考虑:

    • 时间:当前的季节或者要出行的季节适合那座城市,可以出行的时间有多久
    • 风景/人文:旅行的目的是去看自然风光,还是了解人文,还是吃好吃的,还是度假休闲,还是购物之类的目的
    • 交通:出行是否方便,自驾、飞机、高铁,还是骑行什么的,是不是方便等
    • 住宿:当地的住宿是否方便,能不能订到酒店
    • 玩儿:好吃的,好玩儿的,和上面的目的有点儿关联
    • 消费:钱,得考虑下,主要是没钱,不能总出去玩儿,可以的话,不上班到处玩儿过好啊

    就算不用层次分析法,我们也会有自己的判断依据,对比后,选择一个自我感觉性价比最高的地方。实际上,出去玩儿,可能还和朋友推荐,听说哪里好看,好玩儿,好吃,可能准备下攻略就出发了。使用层次分析法就是让我们更加理智,更加客观的选择一个最适合自己的目的地。

    其实这种旅游的问题,从没有困扰过我,有时间,有钱,我哪儿都想去,哈哈

    层次分析法步骤

    使用层次分析法也是有一个套路的,我们按照规则一步一步来就行,这里我们就使用Excel来模拟实现下。我们就以选择最佳的旅游目的地为例。

    1. 构建层次结构模型

    一般,我们按照目标层、准则层、方案层,从这三层入手进行梳理,

    2. 构造成对比较矩阵

    一般我们从上到下,依次进行处理,我们先来看准则层。我们构造如下图所示的判断矩阵,

    判断矩阵

    两两进行对比,对比的依据参照下图所示的规则,即1~9中选择一个数值

    对比标度

    a_{ij} = 1,元素i与元素j对上一层次的重要性相同
    a_{ij} = 3,元素i比元素j略重要
    a_{ij} = 5,元素i比元素j明显重要
    ......
    a_{ij} = \frac{1}{a_{ji}},当i=j的时候,a_{ij}=1

    根据上面的规则,我们就可以开始填表格了,我们依次对比风景、交通、住宿、饮食、花费:

    填写对比矩阵

    这个矩阵是对称的,填写时要注意,中间的自身对比都是1。

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

    这里有涉及一些理论了,有点儿晕。
    所谓层次单排序是指,对于上一层某因素而言,本层次各因素的重要性的排序
    上面我们其实就是构造了一个矩阵,这里我们需要验证这个矩阵是一致的,为什么要验证这个呢,因为我们上面填的数据可能会有问题,比如,我们填的风景>交通,交通>住宿,按道理风景也会>住宿,但是我们可能填错了,填上了风景<住宿,所以我们要进行一致性验证。

    计算衡量一个成对比较矩阵 A (n>1 阶方阵)不一致程度的指标CI: CI=\frac{\lambda_{max}(A)-n}{n-1}

    一致性比率CR:CR=\frac{CI}{RI}

    其中RI可以通过查表得到:


    RI

    最后,判断方法如下: 当CR<0.1时,判定成对比较阵 A 具有满意的一致性,或其不一致程度是可以接受的;否则就调整成对比较矩阵 A,直到达到满意的一致性为止。

    下面,我们就来尝试下。


    这里求最大特征值的方法,以前整理过一个根法的,这回看到一个和法的,但是和法的最后1步有点儿没看懂,不知掉这个数据哪来的,等我研究研究

    和法
    和法公式-来源网上 和法

    上面,我们最后归一化出来的就是那个W,下面,我们还要算一个AW
    就是矩阵乘法,就是这俩东西乘一下

    按照最后一步的公式,我们得出\lambda

    然后CI=\frac{7.399-5}{5-1}=0.600,CR=\frac{CI}{RI}=0.600/1.12=0.535

    这说明,这个不满足一致性,哈哈,我们上面填的内容有问题。

    不行,脑袋大了,后面还有个根法的,直接粘贴个图吧,以前写的

    方根法

    这是另一种方法,思路差不多,我们使用一个简单的例子来看。

    1)求每一行的乘积,然后求N次方根(3阶矩阵,开3次根)
    2)求特征矩阵
    3)求最大特征值


    lambda 方根法

    后面的算法,就和上面是一样的了。

    上面的正反矩阵不满足一致性,就改了下,发现改这个还挺费劲,在网上找了个数据填上的,

    上面获得的那个特征向量就是得到的权重值,比如我们给总分100分,现在就可以得到这五个准则:风景、交通、住宿、饮食、花费的各个得分了,然后在按照这个步骤,去统计风景下,三个城市的权重值,交通下的权重值......最后就可以得到这三个城市的总得分,然后从中挑选最优的旅游目的地。

    我觉得填矩阵那步是最麻烦的,老是不一致,太坑了,给我点儿钱,我都去,行不。

    4. 计算组合权向量并做组合一致性检验

    后面,我们要一层一层计算,还有对于候选城市的计算,这个需要计算五次,因为我们有五个准则条件。

    每一层都算好之后,我们就得到了很多的权重值,然后根据权重值进行算总分即可

    费脑子,先到这,后面再继续。

    对于应用的话,我们可以像上一篇那样,从上至下,现有一个目标,然后一层一层的选择一个最优的方案,在网上找到一篇文章,感觉是属于从下至上的,他是给用户评分,


    这个最终的目的是计算用户的价值得分,而在指标层,我们是可以直接获取分数的,然后根据算好的占比,进行向上计算总分,思路很不错,可以学习下,通常我们会使用RFM模型来做用户分层,像这样算用户价值分的话,可以运营的角度会更多一些,涉及的指标更多,也就让评价更精确些。

    后面,尝试下这种方法,给原作者点赞。

    相关文章

      网友评论

        本文标题:层次分析法

        本文链接:https://www.haomeiwen.com/subject/gitryqtx.html