预测(评价)模型——层次分析法*

数学建模模型 专栏收录该内容
8 篇文章 5 订阅

简介
层次分析法属于运筹学理论,简称为AHP,其主要思路是将决策总有关的元素分解为多个层次,基本的AHP主要分为三层目标层,准则层,方案层。在此基础上进行定量与定性分析。最终得出决策依据。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
(最简单的应用是boy们评价美女,girl们评价帅哥哦~)
内容介绍层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
基本原理
AHP主要根据问题的性质和要达到的总目标,将问题划分为不同组成因素(简单点说就是小学学的课文,把大问题划分为小问题,然后逐一解决,意思差不多哈~)。并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。
具体步骤
1.建立层次结构模型
将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。最高层是指决策的目的、要解决的问题。最低层是指决策时的备选方案。中间层是指考虑的因素、决策的准则。对于相邻的两层,称高层为目标层,低层为因素层。
2.构造判断(成对比较)矩阵
在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而Saaty等人提出一致矩阵法,即不把所有因素放在一起比较,而是两两相互比较,对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。如对某一准则,对其下的各方案进行两两对比,并按其重要性程度评定等级。为要素i与要素j重要性比较结果(即量化值比较结果)=i的量化值/j的量化值重要性比较结果,表1列出Saaty给出的9个重要性等级及其赋值。按两两比较结果构成的矩阵称作判断矩阵。判断矩阵具有如下性质:

判断矩阵元素的标度方法如下:

表1 比例标度表
在这里插入图片描述
层次单排序及其一致性检验
对应于判断矩阵最大特征根的特征向量λmax,经归一化(使向量中各元素之和等于1)后记为W。W的元素为同一层次因素对于上一层次因素某因素相对重要性的排序权值,这一过程称为层次单排序。能否确认层次单排序,则需要进行一致性检验,所谓一致性检验是指对A确定不一致的允许范围。其中,n阶一致阵的唯一非零特征根为n;n 阶正互反阵A的最大特征根, 当且仅当时,A为一致矩阵。

由于λ连续的依赖于aij,
则λ 比n 大的越多,A的不一致性越严重,一致性指标用CI计算,CI越小,说明一致性越大。用最大特征值对应的特征向量作为被比较因素对上层某因素影响程度的权向量,其不一致程度越大,引起的判断误差越大。因而可以用 λ-n 数值的大小来衡量A 的不一致程度。定义一致性指标为:
在这里插入图片描述
CI=0,有完全的一致性;CI 接近于0,有满意的一致性;CI 越大,不一致越严重。
为衡量CI 的大小,引入随机一致性指标 RI:
在这里插入图片描述

其中,随机一致性指标RI和判断矩阵的阶数有关,一般情况下,矩阵阶数越大,则出现一致性随机偏离的可能性也越大,其对应关系如表2:
表2 平均随机一致性指标RI标准值(不同的标准不同,RI的值也会有微小的差异)
在这里插入图片描述
考虑到一致性的偏离可能是由于随机原因造成的,因此在检验判断矩阵是否具有满意的一致性时,还需将CI和随机一致性指标RI进行比较,得出检验系数CR,公式如下:
在这里插入图片描述
一般,如果CR<0.1 ,则认为该判断矩阵通过一致性检验,否则就不具有满意一致性。

4.层次总排序及其一致性检验
计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。这一过程是从最高层次到最低层次依次进行的。这些东东在百度百科都有详细的介绍,来源,起源啥的,我就不多赘述了,大家看我写的例题就好啦。看一遍基本就懂啦。
—— —— —— —— —— —— —— —— —— —— —— —— —— —介绍就这么多我们拿具体的例题来讲具体计算步骤以最简单的例子,假设我们要买一根钢笔首先我们明确 比例标度表
选择钢笔
质量a1 颜色a2 价格a3 品牌a4 外形a5 实用a6
钢笔1 钢笔2 钢笔3 钢笔4
构建出模型
买钢笔 目标层
质量a1 颜色a2 价格a3 品牌a4 外形a5 实用度a6 指标层
钢笔1 钢笔2 钢笔3 钢笔4 决策层 然后构建对比矩阵因为指标层拥有6个因素,所以我们设X={x1,x2,A,x6}要比较它们对上层某一准则(或目标)的影响程度,按照比例标度表确定它的量化值,例如我认为本题中质量非常重要所以我取质量的量化值为7即a1=7,因此同理,a2=5,a3=6,a4=7,a5=8,a6=4我们得出量化值即可构建对比矩阵为要素i与要素j重要性比较结果(即量化值比较结果)=i的量化值/j的量化值。例如a12=7/5。
判断矩阵具有如下性质:
在这里插入图片描述

得出矩阵
在这里插入图片描述

我们得出此题目中指标层的判断矩阵
在这里插入图片描述
我们进而求此矩阵特征值(此特征值就可做为权重)
在这里插入图片描述
由代码运算我们得出各指标权重而且通过一致性检验质量=0.1892颜色=0.1351价格=0.1622品牌=0.1892外形=0.2162实用度=0.1081接下来我们就构建我们的评价体系(这可以说是AHP最大的亮点之出,AHP经常被吐槽说过于简单,但是AHP在评价模型中可谓可操作性最大的模型,它最吸引人的地方就是评价模型,完全由建模者自己建立,这是AHP最大的亮点)此例题十分简单我们就简单以百分制来进行打分即可(如果大家对复杂完整的评价模型感兴趣的话可以关注我滴公众号,里面用到建模比赛的题目就是用AHP来解决的)
构建评价标准质量一级:80-100 质量二级:60-80 质量三级:40-60 质量四级:20-40其它标准以此建立(这只是最简的评价标准,大家在比赛或者实际中运用的要更加复杂,评价标准更加完善)
我们以钢笔一为例子假设质量:85 颜色:40 价格:100 品牌:20 外形:60 使用度70我们用分数乘上对应权重得出最终的综合评分XX=0.189285 +0.135140+0.1622100+0.189220+0.216260+0.108170=62.029我们对比四支钢笔的综合评分就可得出我们心目中最为心仪的一支笔。模型总结我们可以清楚的认识到AHP夹杂了大量的主观判断,大多数同学并不认可AHP就是因为主观判断其实并不严谨,所以我们改进了此模型,就像灰色-马尔可夫链式模型,运用组合模型可以大大增加模型严谨性。
在我们在构建对比矩阵时,我们需要对指标进行两两对比最终赋权,在此时我们可以采用德尔菲法,也称专家调查法,来进行赋权,运用此方法可以弥补AHP的客观缺陷。但是也许我们在比赛的时候并没有时间去采用此方法,但是我们完全可以根据已有文献来确定指标的对比赋权。这样AHP法的缺陷可以被大大的弥补。
也许,许多朋友说AHP很low,什么用AHP全部GG的。但是2017年美赛A题O奖论文,在某座非洲大坝年久失修可能坍塌的情况下,让你在1.修缮原有大坝2.拆掉大坝建一个新的3.拆掉大坝建一组新的小大坝来取代原有的一个大坝,中选择一个最优的。此论文就是运用AHP解决的,给大家它的Team number 55069,大家可以去看一下。
在这里插入图片描述
同时2016年MCM C题Team Number50193,2014年B题O奖 Team Number26160,都是运用的AHP方法,我个人认为AHP最大亮点在于它的可操作性,不像线性回归,灰色预测等模型那样完全定式化,只要你构建的评价系统足够权威有理有据,而且十分巧妙,AHP根本不比神经网络,YOLO模型,这种高大上的模型差多少。
大家有需要可以看一下这个公众号,里面有基本数学建模模型,对大家可能有一定帮助,而且里面的代码经过验证都是可行的。
在这里插入图片描述
实现代码(一位大神的代码)

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);
  %以下是一致性检验
  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
————————————————
版权声明:本文为CSDN博主「一颗修行千年的葱」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40725491/article/details/82082466
  • 1
    点赞
  • 0
    评论
  • 14
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

秃头猿是可可粉

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值