赞
踩
目录
目录
本文将讲解解决评价类问题的第一种模型层次分析法(AHP法),首先我们会具体讲解评价类问题解答的具体流程再对AHP方法进行讲解
评价指标本身的数学量化,评价指标之间的数学综合
基本流程:明确主体—>指标明确—>权重计算—>方案评价
明确主体:明确哪里可以用到评价,比如:2012对《葡萄酒的评价》这里葡萄球的等级就是可以用到评价的地方
指标确定:可以通过一个思维导图的方式来画出这个指标系统。先确定方向(通过查找文献和头脑风暴),然后再向下细化
权重计算:使用主观权重法和客观权重法,每个指标都要进行归一化
方案评价:得到权重后,再对结果进行进一步分析
1、建立层次结构模型:
目标层(决策的目标,如:选出微博之星)
准测层C={C1,C2,···,Cn}(考虑的因素,实质上就是评价指标)
方案层P={P1,P2,···Pm}(决策对象,如:微博之星又A,B,C三个人可选择)
2、构造判断矩阵
对于准则层中的每个元素Ci(i=1,2,···,n),构造一个关于方案层P中各个元素两两比较的判断矩阵Ai(mxm),其中元素aij表示因素Pj相对于因素Pi的重要性程度。通常使用1-9的比例标度来表示这种重要性程度。易得aij*aji=1,所以在写判断矩阵时可以只写一边矩阵再对应填另一边
注意:这个地方常常会出现嵌套分层,也就是说可能每个Ci可能会单独对应某些Pi,这个时候要再构造一次判断矩阵,本质上就是先聚类(将单个指标因素按照关联度和相似度分为互不影响的几大类)再使用层次分析法
例如:下面我们将问题分成了三层,其中,我们将指标首先分为互不影响的三大类:通行能力,安全性,便捷度,首先对这三类构造判断矩阵,进行一致性检验,算出这三大类的权重;然后又讨论影响这三大类的因素,在每一大类中,对其中的影响因素再构造相应的判断矩阵,并且检验其一致性,再算出每个因素的权重,最后再计算出每个具体因素的总权重,进行评价分析。
3、层次单排序及一致性检验
- %层次分析法-一致性检验
- A = input('判断矩阵A=');%输入判断矩阵
- [n,n]=size(A); %获取A的行和列
-
- %求出最大特征值以及对应的特征向量
- [V,D]=eig(A); %V是特征向量 D是特征值构成的对角矩阵
- Max_eig = max(max(D)); %先求出每一行的最大值,再求出最大值中的最大值,即为最大特征值
-
- CI = (Max_eig - n)/(n-1);%求出一致性检验指标
-
- %网上查表可得
- RI=[0,0.0001,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];
-
- %注意RI最多支持n=15
- CR=CI/RI(n);
- disp('一致性指标CI=');disp(CI);
- disp('一致性比例CR=');disp(CR);
-
- if CR<0.1
- disp('因为CR<0.01,所以该判断矩阵A的一致性可以接受!');
- else
- disp('注意:CR>=0.10,因此该判断举证A要进行修改!');
- end

- %1.算术平均法计算权重
- %输入样例,将前面的判断矩阵输入即可,此处省略
- Asum=sum(A,1);%将A的每列求和赋值到Asum中
- Ar = repmat(Asum,n,1);%复制Asum n行1列为Ar矩阵,使得Ar又变回了n行n列的矩阵
- stand_A=A./Ar;%归一化处理,./表示对应的元素相除
- ASumr = sum(stand_A,2);%再对归一化处理后的矩阵的每列加到同一行
- disp(ASumr/n);%相加后的每个元素/n得到权重向量(nx1)
- A = input('判断矩阵A='); %输入判断矩阵
- [n,n] = size(A); %获取A的行和列
- prod_A = prod(A,2); %将A中每一行元素相乘得到
- 一列向量
- prod_n_A = prod_A.^(1/n); %将新的向量的每个分量开n
- 次方等价求1/n次方
- re_prod_A = prod_n_A./sum(prod_n_A);%归一化处理
- disp(re_prod_A); %展示权重结果
- A = input('判断矩阵A='); %输入判断矩阵
- [n,n] = size(A); %获取A的行和列
- %求出最大特征值以及对应的特征向量
- [V,D] = eig(A); %V是特征向量 D是特征值构
- 成的对角矩阵
- Max_eig = max(max(D)); %先求出每一列的最大值,
- 再求最大值中的最大值
- [r,c] = find(Max_eig == D,1);%使用find()函数找出最大
- 特征值对应的特征向量的位置(索引)
- %对特征向量进行归一化得到所需权重
- disp(V(:,c)./sum(V(:,c)));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。