当前位置:   article > 正文

AHP-层次分析法_ahp方法每个专家打分权重相差很大

ahp方法每个专家打分权重相差很大
  1. 步骤一:构造打分矩阵

在这里插入图片描述
a i j 表示 x i 对 x j 的重要程度,相应的有 a i i = 1 , a i j a j i = 1 , a i j > 0 a_{ij} 表示 x_i 对x_j的重要程度,相应的有 a_{ii}=1,a_{ij}a_{ji}=1,a_{ij}>0 aij表示xixj的重要程度,相应的有aii=1,aijaji=1,aij>0

  1. 步骤二 一致性检验
    因为打分矩阵是半客观半主管构造的,理论上i对j的重要程度=(i对k)* (k对j)的,即
    a i j = a i k a k j a_{ij} = a_{ik}a_{kj} aij=aikakj
    由于主观性 上面等式可能不成立 ,比如苹果比西瓜好吃,西瓜比香蕉好吃,但又觉得香蕉比苹果好吃,所以做一致性检验看看在多大程度上能满足上式
    计算公式如下
    C I = λ m a x − n n − 1 CI = \frac{ \lambda_{max} - n }{ n - 1} CI=n1λmaxn
    在这里插入图片描述
    C R = C I R I CR = \frac{CI}{RI} CR=RICI
    当 C R < 0.1 时可以认为一致性检验通过 当CR<0.1 时可以认为一致性检验通过 CR<0.1时可以认为一致性检验通过

  2. 注意事项
    进行一致性检验的时候 RI 一般只提供到15 所以注意对于特别大的数据 我们不能使用层次分析法,采用topsis方法。

  3. 代码

function [Q]=AHP(B)
%Q为权值,B为对比矩阵
%导入判别矩阵B
[n,m]=size(B);
%判别矩阵具有完全一致性
for i=1:n
    for j=1:n
        if B(i,j)*B(j,i)~=1   
        fprintf('i=%d,j=%d,B(i,j)=%d,B(j,i)=%d\n',i,j,B(i,j),B(j,i))  
        end  
    end
end
%求特征值特征向量,找到最大特征值对应的特征向量
[V,D]=eig(B);
tz=max(D);
tzz=max(tz);
c1=find(D(1,:)==max(tz));
tzx=V(:,c1);%特征向量
%权
quan=zeros(n,1);
for i=1:n
quan(i,1)=tzx(i,1)/sum(tzx);
end
Q=quan;
%一致性检验
CI=(tzz-n)/(n-1);
RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];
%判断是否通过一致性检验
CR=CI/RI(1,n);
if CR>=0.1
   fprintf('没有通过一致性检验\n');
else
  fprintf('通过一致性检验\n');
end
 
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/533971
推荐阅读
相关标签
  

闽ICP备14008679号