评价类模型——层次分析法

注:以下故事纯属虚构,部分背景及人物姓名设定借用《你好,旧时光》这部剧,但与原剧基本无关,如有情节雷同,纯属巧合。

Q:余周周同学遇到三位追求者,这三位候选人分别是:温淼,林杨,奔奔。作为一个“数学大神”,她决定以“完全的理性”去考察评价三位同学,从而选出那个“最优秀”的男孩儿。她知道,评价一个人是很难的,但评价一个人的“特性”还是可以的。
q1:评价任何一件事物,肯定要通过某些指标/准则才行。哪些指标能够反映出男生的可靠与否呢?
A:通过查阅资料以及生活经验,她总结了以下五点:

  • 身高
  • 颜值
  • 学历
  • 价值观(指契合程度)
  • 真诚度(有多喜欢?)

层次结构图表示就是:

q2:那么问题来了,除了身高是确切客观的定量化指标外,其它指标都不够“硬核”,主观因素很大,因而本着“绝对理性”的态度,必须将其“定量化”(客观化),该怎么办呢?
A:周周学霸指出,单看任何一个人,都无法知道他是高还是矮,是胖还是瘦,是热情还是高冷。故而要想将定性的指标转化为定量的、可衡量的指标,必须通过比较才行。下面我们就来详细比较一下三位男生:

温淼 林杨 奔奔
身高
颜值
学历
价值观
真诚度

这时,周周发现了一个很严重的问题,那就是这五个指标在她心里的重要程度并不都是一样的,就比如,她身高168cm,已经够高了,男生高不高无所谓,至于颜值,她也不是特别看中;但是作为学霸的她,很难接受一个智力平平的男朋友等。经过上述思考,她决定给这五个指标都赋予一个权重系数,于是她又画了一个新的表格,并填写了权重系数:

权重系数 温淼 林杨 奔奔
身高 0.1
颜值 0.1
学历 0.2
价值观 0.3
真诚度 0.3

接下来就是查阅资料填表啦,通常情况下,每个指标的得分应该由专家给出。但是呢,她发现选男票这个问题比较特殊,她自己才是最有发言权的专家。那么结合日常学习生活中对三位同学的观察与交流,凭感觉 给出了如下得分:

权重系数 温淼 林杨 奔奔
身高 0.1 0.2 0.3 0.5
颜值 0.1 0.4 0.4 0.2
学历 0.2 0.4 0.5 0.1
价值观 0.3 0.3 0.3 0.4
真诚度 0.3 0.2 0.4 0.4

通过Excel表格计算,她得出三位男孩儿的最终得分:

  • 温淼:0.29
  • 林杨:0.38
  • 奔奔:0.33

“看来林同学才是我的真命天子呀!”她小声嘀咕道。

“等等,感情大事岂能轻易决定?”,博学多识的汪同学走过来插话道,“柏拉图告诉我们,感觉 这东西是不可靠的。你的”权重系数“这个想法很棒,但是呢,在关键的填写具体系数的过程中,你还不够理性,也就是说,定量化程度还不够高,衡量的结果也不够精确。”

“你说得对,那汪同学有什么妙招么?”余同学微笑道。

“没想到余学霸也有困惑的时候,能给你答疑解惑,在下真是不胜荣幸 ^ _ ^”
汪同学继续说道:“其实办法也很简单哦,之前你也已经想到了——比较。只不过你是一次性比较了这五个指标,这样难免考虑不周,凭感觉的成分还很大。如果你能两个两个指标先比较,然后再根据两两比较的结果 推算 出权重系数,那样的话不就更准确了吗?"

“哇,不愧是汪神,真是醍醐灌顶呐!”余周周恍然大悟道。


经过汪神的点播,余周周同学决定继续沿着“定量化描述”的道路前进。她画出了一张重要程度指数图

本着两个两个指标进行比较的原则,她又画出了“权重系数”的两两指标比较图:

权重系数 身高 颜值 学历 价值观 真诚度
身高 1 1/2 1/4 1/6 1/8
颜值 2 1 1/5 1/7 1/9
学历 4 5 1 1/3 1/5
价值观 6 7 3 1 1/2
真诚度 8 9 5 2 1

学过线性代数的她知道,这实际上是一个5*5的正互反矩阵(所有数都是正数,且aij=1/aji)。但是呢,她画这个表格是用来判断每个指标的权重系数究竟有多大,所以她又取了一个名字,叫“判断矩阵”。
依葫芦画瓢,三位男生在身高、颜值、学历、价值观、真诚度五个指标的判断矩阵分别为:

身高 温淼 林杨 奔奔
温淼 1 1/3 1/5
林杨 3 1 1/3
奔奔 5 3 1
颜值 温淼 林杨 奔奔
温淼 1 2 5
林杨 1/2 1 2
奔奔 1/5 1/2 1
学历 温淼 林杨 奔奔
温淼 1 1/2 5
林杨 2 1 8
奔奔 1/5 1/8 1
价值观 温淼 林杨 奔奔
温淼 1 1 1/4
林杨 1 1 1/4
奔奔 4 4 1
真诚度 温淼 林杨 奔奔
温淼 1 1/3 4
林杨 3 1 1
奔奔 1/4 1 1

那么接下来就该计算这三位同学的得分啦。诶,一向对数字敏感的她在真诚度的判断矩阵 中发现了一个逻辑错误,那就是:

  • 温淼=1/3林杨
  • 林杨=奔奔
  • 温淼=4奔奔

什么情况?前两个表达式的意思是温淼没有林杨真诚,而林杨和奔奔真诚度相当,按照逻辑推演,得到的结果应该是林杨和奔奔都比温淼真诚才对。可是第三个表达式的意思却是温淼比奔奔真诚好多。想到这里,她发现了这个矩阵在逻辑上存在前后矛盾的情况,为什么会这样呢??

继续思考发现,这是两两比较的缺陷,局部比较综合在一起容易出现前后逻辑矛盾的谬论。想到这里,她不免感到后怕,难不成前面几个判断矩阵也有这样的问题么??有什么办法可以检测被构造出来的判断矩阵是否存在逻辑矛盾呢??

“汪同学,这是怎么回事??判断矩阵有BUG?”余周周问道。
“哈哈,你构造的判断矩阵出现了前后不一致的现象吧!”汪神笑着说。
“你怎么知道?”
“因为这都是先人踩过的坑啊!”汪神继续说道,“你想一下什么情况下不会出现前后矛盾(即a>b,b=c,c<a)的情况呢?”
"emmm,如果把温淼=4奔奔改成温淼=1/4奔奔就好了嘛?”
“是的,但是呢,还不够一致
“你的意思是???哦,我懂了,假设温淼是A,林杨为B,奔奔为C;那么当A=1/3B,B=C时,A应该等于1/3C而不是1/4C,这样才没有任何矛盾!”

“聪明的余小姐,果然一点就透呐^ _ ^”汪神微笑着说道。
“那么继续推广可以知道,要想得到毫无逻辑矛盾的一致矩阵,就需要在正互反矩阵的基础上满足以下条件:

换句话说:

“哇,不愧是数学系的小才女,你的推论很对。我想你应该也察觉到了,构造权重系数并将定性问题定量化描述并不是一件很容易的事,在某种程度上仍然是人拍脑袋拍出来的结果,所以才会出现前后自相矛盾的情况,可见人的 感觉 或者说大脑的直觉是很不可靠的!实际上,完美的一致矩阵是很难被人为构造出来的,但是我们可以通过一致性检验来检查你所构造出来的判断矩阵到底有多接近完美的一致矩阵,换句话说,可以检测你所构造出来的判断矩阵BUG多不多,前后自相矛盾的程度有多大!”汪达补充道。

“原来如此,是不是当我构造出来的判断矩阵矛盾越少,越接近一致矩阵时,我计算出的权重系数等得分越准确?”周周追问道。

“YES”汪达点头示意,并继续说道:“一致性检验有三步,分别是:

其中符号的意义为:,一致性检验的具体过程及原理,你可以看一些专门的教材,比如姜启源《数学模型》(第五版)第七章的内容或者参考一些作者的原论文。哦对了,你迄今为止无意间使用的方法其实已经有名字了,它叫做层次分析法,重新造轮子的感觉是不是很爽呀!时间不早了,我先去吃饭啦,回见。”

“哈哈哈,我明白了,真是太谢谢你了,回头请你喝奶茶(* ^ ﹏ ^ *) ”周周开心地说到。


经过以上分析讨论,余周周准备进入最后一部分——计算每个判断矩阵的权重。但是呢,她发现这个计算量有点大,手算肯定不可能。于是她决定向她的追求者之一,也就是她的青梅竹马林杨同学寻求帮助。

“呦,林同学在忙什么呢?来帮我个忙吧!?”余同学委婉地说道。

“周周,只要你开口,就没有我林扬办不到的事!”林杨自信地回答道。

“帮我编程计算一下这五个判断矩阵的权重。”

林杨一看,特么直接懵逼,没想到当男生的竞争压力这么大。

“看来我得好好露一手,说不定还能提高我在她心中的地位(* ^ ▽ ^ *)”林杨心里暗想。
“那具体的计算方法是什么呢?”林杨问道。
“有三种计算方法,分别是:算术平均法,几何平均法,特征值法。”,余周周继续说道,“先说算术平均法,看下图:

那么几何平均法:

而特征值法则是:

“没问题,给我半天时间,用MATLAB给你实现出来。”林扬信誓旦旦的回道。


代码来了:

%%
%判断矩阵一致性检验
clc;
[V,D]=eig(A);   %求特征值和特征向量,V存放特征向量,D存放特征值
Max_eig=max(max(D));   %取D中最大特征值
CI=(Max_eig-n)/(n-1);   %计算一致性指标CI
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);   %计算一致比例
% 如果CR < 0.1, 则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10disp('因为CR < 0.10,所以该判断矩阵A的一致性可以接受!');
elsedisp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
%%
%方法1:算术平均法求权重
sum_A=sum(A);    %对矩阵所在列作和
SUM_A=repmat(sum_A,n,1);    %将sum_A看做一个整体,重复n*1块
stand_A=A./SUM_A;   %A和SUM_A矩阵对应行相除;即将判断矩阵按照列归一化
disp('算术平均法求权重的结果为:');
disp(sum(stand_A,2) / n)
%%
%方法2:几何平均法求权重
Prduct_A = prod(A,2);   %将A的元素按照行相乘得到一个新的列向量
% prod函数和sum函数类似,一个用于乘,一个用于加  dim = 2 维度是行
Prduct_n_A = Prduct_A .^ (1/n);% 这里对每个元素进行乘方操作,这里是开n次方,所以我们等价求1/n次方
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
%%
%方法3:特征值法求权重
[r,c] = find(D == Max_eig , 1);   % 找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )  %对求出的特征向量进行归一化即可得到我们的权重

"怎么样?好人做到底,送佛上西天,一致性检验的步骤我都帮你给实现了,嘿嘿!“林杨得意地说道。
“呦,林同学这么热心,那再给你多加几分吧!”周周开心地说,“计算完五个判断矩阵的权重之后,将其填入下面这个矩阵中并计算你们三个的最终得分!”

结果如下:

权重系数 温淼 林杨 奔奔
身高 0.1325 0.1325 0.1325 0.1815
颜值 0.1426 0.1426 0.1426 0.3028
学历 0.2356 0.2356 0.2356 0.2356
价值观 0.3028 0.3028 0.3028 0.1426
真诚度 0.1815 0.1815 0.1815 0.1325

某位男生的最终得分计算公式=身高的权重系数x该男生的身高指标 + 颜值的权重系数x该男生的颜值指标 + 学历的权重系数x该男生的学历指标 + 价值观的权重系数x该男生的价值观指标 + 真诚度的权重系数*该男生的真诚度指标

(完)


笔者按:数据纯属瞎填,无任何现实意义,只是举个例子而已

评价类模型——层次分析法相关推荐

  1. 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述 2算法实现流程 3实例 4matlab实现层次分析法 5计算结果 1概述 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之 ...

  2. 客户满意度测评模型-层次分析法模型」

    层次分析法模型 简单说,就是大指标拆成小指标,小指标拆分可以相对方便的测量到的小小指标. 层次分析法模型 优点: 简单灵活,可操作性强,适用范围广泛.它比四象限模型更能定量描述具体指标的满意度和总体满 ...

  3. ahp层次分析法软件_层次分析法在历史街区研究中的应用简析

    摘要 AHP (Analytic Hierarchy Process)层次分析法通常被运用于解决多目标.多标准.多要素.多层次的非结构化的复杂决策性问题,特别是战略决策性问题,在建筑.规划.风景园林等 ...

  4. 数学建模--评价类模型

    目录 一.主观评价 1.层次分析法(AHP) ①应用场景 ②步骤 ③模型实现 ④代码实现 ⑤优缺点评价 2.模糊综合评价法(FCE) ①应用场景 ②步骤 ③模型实现 3.灰色关联分析法(GRA) ①应 ...

  5. AHP层次分析法(Analytic Hierarchy Process)——个人学习笔记

    目录 一.相关知识与例子 二.代码实现 一.相关知识与例子 层次分析法是数学建模过程中最基础的模型之一,主要应用于评价问题.层次分析法是对一些较为复杂.较为模糊的问题作出决策的简易方法,其适用于那些难 ...

  6. ahp层次分析法_层次分析法在历史街区研究中的应用简析

    摘要 AHP (Analytic Hierarchy Process)层次分析法通常被运用于解决多目标.多标准.多要素.多层次的非结构化的复杂决策性问题,特别是战略决策性问题,在建筑.规划.风景园林等 ...

  7. 数模学习笔记-层次分析法(AHP)

    作用:解决评价类问题(即哪种方案最好,哪个人的表现最好.....) 解决评价类问题:首先要想到以下三个问题: ① 我们评价的目标是什么? ② 我们为了达到这个目标有哪几种可选的方案? ③ 评价的准则或 ...

  8. matlab如何求指标的权向量_【Matlab】案例讲解层次分析法的Matlab实现

    我写过层次分析法的Matlab实现:张敬信:[评价算法]层次分析法​zhuanlan.zhihu.com 其中的ahp函数是来自<吴鹏. Matlab高效编程技巧与应用:25个案例分析>, ...

  9. 评价类模型(层次分析法与模糊评价模型)

    一.评价类模型 综合评价的基本理论和数据预处理: 评价对象 评价指标 权重系数 综合评价模型 评价者 二.AHP法-层次分析法 通过打分解决评价类问题,两两比较,推算权重. %function RI= ...

最新文章

  1. .NET读写Excel工具Spire.Xls使用(1)入门介绍
  2. linux namespace 隔离内核资源的方式 简介
  3. 【Paper】2016_A Learning-Based Fault Tolerant Tracking Control of an Unmanned Quadrotor Helicopter
  4. php dom 换行,PHP DOM XML不会在标记之后打印掉换行符
  5. HDU 3943 K-th Nya Number(数位DP)
  6. 3.3、苏宁百万级商品爬取 代码讲解 商品爬取
  7. Core data 框架
  8. Android源码——Logger日志系统
  9. 信度和效度经典例子_信度与效度有什么关系?
  10. php codeigniter 教程,CodeIgniter操作教程
  11. python换行输入数据_python 对比两个文件内容或字符串内容时的换行符/交作业检测小程序...
  12. ##实验 1-3 GVRP 配置
  13. 空间,是一首精美华丽的诗篇
  14. Hive中orderBy,sortBy,distribute by,cluster by,group by
  15. 如何在电脑上添加蓝牙耳机设备
  16. python用保留字while实现无限循环_Python中无限循环需要什么条件
  17. python外国人也用吗_再也不怕和老外交流了!我用python实现一个微信聊天翻译助手!...
  18. python3 正则匹配特殊符号_Python3 正则表达式特殊符号及用法(详细列表)
  19. 6种PS常用字体字号
  20. 75%医用输液泵受漏洞威胁 360专家呼吁构建数字安全防御体系

热门文章

  1. 安全帽识别系统的应用鹰眸视频分析
  2. Sql Server REPLACE函数的使用;SQL中 patindex函数的用法
  3. leetcode-1833. 雪糕的最大数量(排序+贪心)
  4. VScode+keil插件-取代keil开发不要太爽了
  5. INTERSPEECH 2018 | 语音识别技术之说话人自适应技术
  6. js控制屏幕双屏显示
  7. PostgreSql pg_rewind
  8. Qt5编译使用QFtp
  9. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息
  10. 2016年,网络程序设计,ustc se,SA16225161,梁昱森