层次分析法
主要用于解决评价类问题(例如:方案选择,员工评价)
首先要考虑三个问题:
- 我们的评价的目标是什么?
- 我们为了达到这个目标有哪几种可选的方案?
- 评价的准则或者说指标是什么?(即根据什么来评价好坏)
对于第三个问题,尤其需要多从网络上搜集参考资料,并根据背景材料进行结合,筛选出最合适的指标
求出判断矩阵
注意:判断矩阵中的元素只能是1至9和它们的倒数。
矛盾之处
当出现对于同一个指标时,主观评分相同,例如:
苏杭与桂林的评分应相等,但是苏杭/北戴河却与北戴河/桂林不同,由此引出一致矩阵
一致矩阵
- 观察上面这两个矩阵的特点:各行(各列)之间成倍数关系
- 尤其注意:在使用判断矩阵求权重之前,必须对其进行一致性检验
一致性检验
- 原理:检验我们构造的判断矩阵和一致矩阵是否有太大的差别。
% PPT_1.m
a = [1:1:8]
b = []
for i = 1:size(a,2)
A = [1,2,a(i);1/2,1,2;1/a(i),1/2,1]
b = [b,max(eig(A))]% eig返回矩阵的特征值
end
plot(a,b)
% 判断矩阵越不一致时,最大特征值与n相差就越大。
% ccfx.mlx
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);
% % % % % % % % % % % % %方法1: 算术平均法求权重% % % % % % % % % % % % %
Sum_A = sum(A);
SUM_A = repmat(Sum_A,n,1);
Stand_A = A ./ SUM_A;
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n)
% % % % % % % % % % % % %方法2: 几何平均法求权重% % % % % % % % % % % % %
Prduct_A = prod(A,2);
Prduct_n_A = Prduct_A .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
% % % % % % % % % % % % %方法3: 特征值法求权重% % % % % % % % % % % % %
[V,D] = eig(A);
Max_eig = max(max(D));
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
% % % % % % % % % % % % %下面是计算一致性比例CR的环节% % % % % % % % % % % % %
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
% 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
注意:RI我们只需要会查表即可,不用管怎么来的,另外有些地方给的RI的表格和我给的有细微区别,以我的为准,我给的这个表格使用的人最多。
一致矩阵计算权重
归一化处理
例如:
苏杭= 1 /(1+0.5+0.25)
北戴河= 0.5 /(1+0.5+0.25)
桂林= 0.25 /(1+0.5+0.25)
再按列求一次权重平均值
- 算术平均法求权重
- 几何平均法求权重
第一步:将判断矩阵A的元素按照行相乘得到一个新的列向量
第二步:将新的向量的每个分量开n次方
第三步:对该列向量进行归一化即可得到权重向量 - 特征值法求权重
假设判断矩阵一致性通过,可以仿照一致矩阵权重的求法
第一步:求出矩阵A的最大特征值以及对应的特征向量
第二步:对求出的特征向量进行归一化即可得到我们的权重
计算方案得分
两个判断矩阵分别求出方案权重和指标权重
得分=方案权重*指标权重
注意:权重和应该为1
论文逻辑
- 分析系统中各因素之间的关系,建立系统的递阶层次结构,并绘图
- 对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)
- 优秀层次分析法论文
- 由判断矩阵计算被比较元素对于该准则的相对权重并进行一致性检验(检验通过权重才能用)
– 算数平均法
–几何平均法
–特征值法
代码如下(示例):
4. 根据权重矩阵计算得分,并进行排序
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。