评价模型 - 层次分析法

应用场景:决策模型(通过赋权,然后利用加权值来进行决策)、给指标赋权

准则层:先给这5个部分进行 \(5\times 5\) 的赋权(比如,景色相比费用略微重要,赋成3),然后对这个矩阵进行求解,得到一个权值向量
注意,如果我们将 景色-费用 费用-居住 赋值了之后,景色-居住 也相应确定了,因此不能赋的太离谱,为了检测这个,进行 一致化检测 (利用特征值)

这样我们就得到了准则层A,5项内容的权值
考虑方案层B,先固定一个准则,比如景色。然后再进行一次赋权,比如杭州比桂林景色略微好点,所以赋成3,得到一个 \(3\times 3\) 矩阵,对这个矩阵求解得到权值向量。所以,就景色而言得到了三个地方占比。
将5个准则都完成,
image
image

最终一个地方的价值就是 \(各项所占权值 \times 每一项中这个地方占的权值\)

A=[1 1/5 1/7 1/4
5 1 1/2 2
7 2 1 3
4 1/2 1/3 1]
%% 一致性检验和权向量计算
n = length(A);
[v,d]=eig(A);%计算特征根和特征向量
[temp,loc] = max(max(d));%返回loc为特征向量所在列
r=max(max(d));
CI=(r-n)/(n-1);
RI=[0 0 0.58 0.90 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(n);
if  CR<0.10 || n==2
    CR_Result='通过';
   else
    CR_Result='不通过';
end

%% 权向量计算
w=v(:,loc)/sum(v(:,loc));
w=w';

%% 结果输出
disp('该判断矩阵权向量计算报告:');
disp(['CI:' num2str(CI)]);
disp(['CR:' num2str(CR)]);
disp(['一致性检验结果:' CR_Result]);
disp(['特征值:' num2str(r)]);
disp(['权向量:' num2str(w)]);

image

posted @ 2022-12-14 20:22  SkyRainWind  阅读(210)  评论(0编辑  收藏  举报