层次分析法(AHP)怎么处理多份问卷的数据来构造矩阵?

层次分析法(AHP)怎么处理多份问卷的数据来构造矩阵?,第1张

这个其实是看你突出什么重点。如果要突出问卷的每个项目,则先加权后再构造一个判断矩阵,如果要综合结果的比较,则先构造矩阵再做权生处理。按你上面的内容理解,应该是先构造矩阵,再做加权处理。

层次分析法的步骤
1建立层次结构模型
将决策的目标、考虑的因素(决策准则)和决策对象按照他们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
最高层: 决策的目的、要解决的问题。
最低层: 决策时的备选方案。
中间层: 考虑的因素、决策的准则。
对相邻的两层,称高层为目标层,低层为因素层。
2构造判断矩阵
层次分析法中构造判断矩阵的方法是一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较;对此时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。
3层次单排序及其一致性检验
对应于判断矩阵最大特征根 λ m a x \lambda max λmax的特征向量,经归一化(使向量中各元素之和为1)后记为 W W W。 W W W的元素为同一层次元素对于上一层因素某因素相对重要性的排序权值,这一过程称为层次单排序。
4层次总排序及其一致性检验
计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
这一过程是从最高层次到最低层次依次进行的。

先确定判断矩阵;
然后用以下程序就好了:
%层次分析法的matlab程序 %%%%diertimoxingyi
clc,clear
disp('输入判断矩阵');% 在屏幕显示这句话
A=input('A=');% 从屏幕接收判断矩阵
[n,n]=size(A);% 计算A的维度,这里是方阵,这么写不太好
x=ones(n,100);% x为n行100列全1的矩阵
y=ones(n,100);% y同x
m=zeros(1,100);% m为1行100列全0的向量
m(1)=max(x(:,1));% x第一列中最大的值赋给m的第一个分量
y(:,1)=x(:,1);% x的第一列赋予y的第一列
x(:,2)=Ay(:,1);% x的第二列为矩阵Ay(:,1)
m(2)=max(x(:,2));% x第二列中最大的值赋给m的第二个分量
y(:,2)=x(:,2)/m(2);% x的第二列除以m(2)后赋给y的第二列
p=00001;i=2;k=abs(m(2)-m(1));% 初始化p,i,k为m(2)-m(1)的绝对值
while k>p% 当k>p是执行循环体
i=i+1;% i自加1
x(:,i)=Ay(:,i-1);% x的第i列等于Ay的第i-1列
m(i)=max(x(:,i));% m的第i个分量等于x第i列中最大的值
y(:,i)=x(:,i)/m(i);% y的第i列等于x的第i列除以m的第i个分量
k=abs(m(i)-m(i-1));% k等于m(i)-m(i-1)的绝对值
end
a=sum(y(:,i));% y的第i列的和赋予a
w=y(:,i)/a;% y的第i列除以a
t=m(i);% m的第i个分量赋给t
disp('权向量:');disp(w);% 显示权向量w
disp('最大特征值:');disp(t);% 显示最大特征值t
%以下是一致性检验
CI=(t-n)/(n-1);% t-维度再除以维度-1的值赋给CI
RI=[0 0 052 089 112 126 136 141 146 149 152 154 156 158 159];% 计算的标准
CR=CI/RI(n);% 计算一致性

这是求和法计算的
只需把权重1的公式括号里的每一项的分子(5个分子)改为矩阵里的第二行的5个数字就行啦
同理
权重3
4
5就改为第三

五行]

你所说的两份问卷是不是一份针对第一层指标(准则层),第二份针对第二层指标(方案层)。。那你就分别统计专家意见,针对第一层六个指标重要性排名,参考专家意见,你再依照9分原则构造成对比较矩阵(1个),再进行一致性检验。针对第二层指标同理,构造6个成对比较矩阵,分别验证一致性,最后再综合排名确定权重,并进行总的一致性检验。。你可以借助层次分析法的软件,很方便。。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12786186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存