一 背景介绍
本文分析了一个使用层次分析法(AHP)和模糊综合评价对XX公司的发展现状进行评价,得到了整体的评价结果。主要包含:
专家打分-一致性分析-权重计算-问卷调查-评价矩阵-隶属度矩阵-最终评价结果等内容
二 评价体系的建立
根据XX公司的业务范围和上下游企业的情况,从6个因素31个指标构建评价体系:
三 AHP计算指标权重
3.1 专家打分
邀请7名专家,使用1-9度量对全体指标分层级进行打分。得到打分数据如下:
每一份打分表里面包含7个子表格:
3.2一致性检验
一致性指标是通过对每个比较对的权重进行一致性检验来计算的。检验结果将生成一个一致性比率(Consistency
Ratio,CR),该比率表示决策者在给出比较对时所做的判断的一致性。如果CR值小于等于0.1,则认为决策者的判断是一致的;如果CR值大于0.1,则认为决策者的判断存在一定的不一致性,需要重新进行一致性分析。经过检验对打分矩阵进行反复调整,直到全部矩阵都通过一致性检验。
3.3 指标权重
满足一致性检验后,通过特征值和特征向量求得指标的权重:
四 模糊综合评价
建立模糊评价集V={好,较好,中等,较差,差}五类,对应的数值集N={90,80,70,60,50}。针对XX公司评价体系,设计调查问卷,发放问卷200份,对评价的结果按照评语集的出现频次进行统计,得到全部指标对应不同评语的频次表Cij,结果如下:
根据评价结果,计算出每个指标的得分情况:
通过上面的分析,我们得到了31个个指标的评价结果。使用上述评价结果,根据层次分析法计算得到的权重,对福建圣农发展股份有限公司全产业链发展进行整体的综合评价,具体结果如下:
> 故XX股份有限公司全产业链发展的最终得分为:81.313646815228410,模糊评语为:较好。
五代码分享
clc
close all
clear all
%% 构建比较矩阵
data=struct;
filename='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAHP法专家咨询表.xls';
A1=xlsread(filename,'打分矩阵','b19:g24');
A21=xlsread(filename,'打分矩阵','b30:e33');
A22=xlsread(filename,'打分矩阵','i30:m34');
A23=xlsread(filename,'打分矩阵','b38:e41');
A24=xlsread(filename,'打分矩阵','i38:n43');
A25=xlsread(filename,'打分矩阵','b47:g52');
A26=xlsread(filename,'打分矩阵','j47:o52');
%%
A1=complement(A1);
A21=complement(A21);
A22=complement(A22);
A23=complement(A23);
A24=complement(A24);
A25=complement(A25);
A26=complement(A26);
%% 计算权重
[Lamdamax.a1,W.a1,CR.a1,CR_flag1,CI]=myAHP(A1);
[Lamdamax.a21,W.a21,CR.a21,CR_flag21,CI21]=myAHP(A21);
[Lamdamax.a22,W.a22,CR.a22,CR_flag22,CI22]=myAHP(A22);
[Lamdamax.a23,W.a23,CR.a23,CR_flag23,CI23]=myAHP(A23);
[Lamdamax.a24,W.a24,CR.a24,CR_flag24,CI24]=myAHP(A24);
[Lamdamax.a25,W.a25,CR.a25,CR_flag25,CI25]=myAHP(A25);
[Lamdamax.a26,W.a26,CR.a26,CR_flag26,CI26]=myAHP(A26);
% W.a1
% CR.a1
%%
load("cData.mat")
Score=C*[90 80 70 60 50]'/130;
Score_A=sum(W.a21.*Score(1:4));
Score_B=sum(W.a22.*Score(5:9));
Score_C=sum(W.a23.*Score(10:13));
Score_D=sum(W.a24.*Score(14:19));
Score_E=sum(W.a25.*Score(20:25));
Score_F=sum(W.a26.*Score(26:31));
Score_all=W.a1(1).*Score_A+...
W.a1(2).*Score_B+...
W.a1(3).*Score_C+...
W.a1(4).*Score_D+...
W.a1(5).*Score_E+...
W.a1(6).*Score_F;
clc
close all
clear all
%% 构建比较矩阵
Np=7; %专家人数
folderName='专家打分表 共7份';
filenamelist=dir(folderName);
Wall_a1=0;
Wall_a21=0;
Wall_a22=0;
Wall_a23=0;
Wall_a24=0;
Wall_a25=0;
Wall_a26=0;
addpath(folderName)
for p=3:length(filenamelist)
data=struct;
filename=filenamelist(p).name;
A1=xlsread(filename,'打分矩阵','b19:g24');
A21=xlsread(filename,'打分矩阵','b30:f34');
A22=xlsread(filename,'打分矩阵','i30:m34');
A23=xlsread(filename,'打分矩阵','b38:e41');
A24=xlsread(filename,'打分矩阵','i38:n43');
A25=xlsread(filename,'打分矩阵','b47:g52');
A26=xlsread(filename,'打分矩阵','j47:o52');
%%
A1=complement(A1);
A21=complement(A21);
A22=complement(A22);
A23=complement(A23);
A24=complement(A24);
A25=complement(A25);
A26=complement(A26);
%% 计算权重
[Lamdamax.a1,W(p-2).a1,CR(p-2).a1,CR_flag1,CI]=myAHP(A1);
[Lamdamax.a21,W(p-2).a21,CR(p-2).a21,CR_flag21,CI21]=myAHP(A21);
[Lamdamax.a22,W(p-2).a22,CR(p-2).a22,CR_flag22,CI22]=myAHP(A22);
[Lamdamax.a23,W(p-2).a23,CR(p-2).a23,CR_flag23,CI23]=myAHP(A23);
[Lamdamax.a24,W(p-2).a24,CR(p-2).a24,CR_flag24,CI24]=myAHP(A24);
[Lamdamax.a25,W(p-2).a25,CR(p-2).a25,CR_flag25,CI25]=myAHP(A25);
[Lamdamax.a26,W(p-2).a26,CR(p-2).a26,CR_flag26,CI26]=myAHP(A26);
%%
Wall_a1=Wall_a1+W(p-2).a1;
Wall_a21=Wall_a21+W(p-2).a21;
Wall_a22=Wall_a22+W(p-2).a22;
Wall_a23=Wall_a23+W(p-2).a23;
Wall_a24=Wall_a24+W(p-2).a24;
Wall_a25=Wall_a25+W(p-2).a25;
Wall_a26=Wall_a26+W(p-2).a26;
end
Wall_a1=Wall_a1/7;
Wall_a21=Wall_a21/7;
Wall_a22=Wall_a22/7;
Wall_a23=Wall_a23/7;
Wall_a24=Wall_a24/7;
Wall_a25=Wall_a25/7;
Wall_a26=Wall_a26/7;
load("cData.mat")
Score=C*[90 80 70 60 50]'/130;
Score_A=sum(Wall_a21.*Score(1:5));
Score_B=sum(Wall_a22.*Score(6:10));
Score_C=sum(Wall_a23.*Score(11:14));
Score_D=sum(Wall_a24.*Score(15:20));
Score_E=sum(Wall_a25.*Score(21:26));
Score_F=sum(Wall_a26.*Score(27:31));
Score_all=Wall_a1(1).*Score_A+...
Wall_a1(2).*Score_B+...
Wall_a1(3).*Score_C+...
Wall_a1(4).*Score_D+...
Wall_a1(5).*Score_E+...
Wall_a1(6).*Score_F;
disp('A1的权重')
[W.a1]'
disp('A21的权重')
[W.a21]'
disp('A22的权重')
[W.a22]'
disp('A23的权重')
[W.a23]'
disp('A24的权重')
[W.a24]'
disp('A25的权重')
[W.a25]'
disp('A26的权重')
[W.a26]'
六 项目分享
提供①项目源码分享②建模编程辅导答疑③项目代码定制等 有需要的欢迎咨询