层次分析法 LAF
评价体系的优劣影响,计算评价指标的权重的一种方法
主观性较强,现在一般不用
关键在于一致性检验和求权值
权重的计算
注意权重之和为1,需要归一化
-
算数平均法
-
特征值法
矩阵的一致性检验
- 为什么要检验?:简单来说就是比例不匹配,存在矛盾事实,
-例如桂林:北戴河!=桂林:苏杭 * 苏杭:北戴河
- 定义如下:总结而言就是
aij*ajk=aik
矩阵的一致性检验
-
判断矩阵的一致性检验:
-
判断矩阵一致性的代码
%% 获取判断矩阵
disp("请输入判断矩阵")
A=input('A=');%这里还有参数
[n,n]=size(A);
%% 1.算术平均法求权重
sum_ColA=sum(A);
sum_A=repmat(sum_ColA,n,1);%A一定是方阵
Weight_A=A./sum_A;
disp("算数平均法所求权重为");
w1=sum(Weight_A,2)./n;
disp(w1);
%% 2.特征值法求权重
[X,D]=eig(A);
max_eig=max(max(D));%max函数也是默认先列后行求最大值
[r,c]=find(D==max_eig,1);%找到值等于max_eig的前n个元素
disp("所求特征值为:");
disp(max_eig);
w2=X(:,c)./sum(X(:,c));
disp("特征值所求权重为");
disp(w2);
%% 3.平均权重
disp("平均权重为");
w3=(w1+w2)/2;
disp(w3);
%% 计算一致性指标CI=lambda-n/n-1和一致性比例CR
CI=(max_eig-n)/(n-1);
RI=[0,0,0.52,0.89,1.12,1.26,1.36,1.41,1.46,1.49];%1~10的RI
CR=CI/RI(n);
disp("一致性指标CI为");disp(CI);
disp("一致性指标RI为");disp(RI(n));
disp("一致性指标CR为");disp(CR);
if CR<0.10
disp("CR<0.10,这个判断矩阵一致性可以接受")
else
disp("CR>=0.10,这个矩阵一致性不可以接受")
end %if和end搭配
%% 层次总排序
%代码部分放在excel表格中
往往通过excel表格实现