评价模型-AHP层次分析法(偏应用)

一、应用

人员素质评估、 多方案比较、科技成果评比和工作成效评价等。

二、过程概述

1、构成:目标层+准则层(决策指标)+方案层(选择方案)

2、过程概述图

三、具体实现

1、确定模型结构

确认整个决策事件的目标层+准则层(可以有子准则层)+方案层

2、构造判断矩阵

注意:aij是指j相对i的重要程度

3、一致性检验

用于确定构建的判断矩阵是否存在逻辑问题

(1)层次单排序

在判断矩阵基础上求解各个指标的权重Wi

①方根法

m维向量(行乘积的m次方)-->向量标准化-->权重向量

②和法(列向量的算术平均)

列向量归一化(标准化)-->按指标求和-->按指标的求和结果标准化

(2)求解最大特征根

AW:判断矩阵*标准化的权重

(3)求解CI值

(4)判断一致性

C.R<0.1,则一致性检验通过

4、层次总排序与一致性检验

通过类型层次单排序的方法给方案打分,并且全部判断矩阵都要做一致性检验

四、MATLAB代码实现过程

假设我们有一个目标层(选择最好的手机),三个准则层(价格、性能、外观),和三个方案层(手机A,手机B,手机C)。

1、构造判断矩阵

①准则层判断矩阵

% 准则层判断矩阵 (价格, 性能, 外观)
    criteria_matrix = [1, 1/3, 3;
                       3, 1, 5;
                       1/3, 1/5, 1];

②方案层判断矩阵

 % 对价格的判断矩阵
    price_matrix = [1, 2, 1/5;
                    1/2, 1, 1/7;
                    5, 7, 1];
    
    % 对性能的判断矩阵
    performance_matrix = [1, 1/3, 3;
                          3, 1, 5;
                          1/3, 1/5, 1];
    
    % 对外观的判断矩阵
    appearance_matrix = [1, 5, 9;
                         1/5, 1, 4;
                         1/9, 1/4, 1];
2、计算权重向量和一致性检验
% 计算权重向量和一致性检验
    % 准则层权重和一致性检验
    [criteria_weights, criteria_CR] = ahp(criteria_matrix);
    
    % 价格权重和一致性检验
    [price_weights, price_CR] = ahp(price_matrix);
    
    % 性能权重和一致性检验
    [performance_weights, performance_CR] = ahp(performance_matrix);
    
    % 外观权重和一致性检验
    [appearance_weights, appearance_CR] = ahp(appearance_matrix);
    
% 打印结果
    % 打印准则层权重向量和一致性比率
    disp('准则层权重向量:');
    disp(criteria_weights);
    disp(['准则层一致性比率 CR: ', num2str(criteria_CR)]);
    
    % 打印价格权重向量和一致性比率
    disp('价格权重向量:');
    disp(price_weights);
    disp(['价格一致性比率 CR: ', num2str(price_CR)]);
    
    % 打印性能权重向量和一致性比率
    disp('性能权重向量:');
    disp(performance_weights);
    disp(['性能一致性比率 CR: ', num2str(performance_CR)]);
    
    % 打印外观权重向量和一致性比率
    disp('外观权重向量:');
    disp(appearance_weights);
    disp(['外观一致性比率 CR: ', num2str(appearance_CR)]);
3、层次总排序和一致性检验
 % 方案层综合得分
    scores = criteria_weights(1) * price_weights + ...
             criteria_weights(2) * performance_weights + ...
             criteria_weights(3) * appearance_weights;
         
    disp('方案综合得分:');
    disp(scores);
 >>>自定义ahp()
function [weights, CR] = ahp(matrix)
    % 计算特征向量和特征值
    [V, D] = eig(matrix);
    
    % 找到最大的特征值
    [max_eigenvalue, index] = max(diag(D));
    
    % 对应的特征向量
    max_eigenvector = V(:, index);
    
    % 归一化特征向量
    weights = max_eigenvector / sum(max_eigenvector);
    
    % 一致性指标 (CI)
    CI = (max_eigenvalue - length(matrix)) / (length(matrix) - 1);
    
    % 随机一致性指标 (RI)
    RI = [0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45]; % 当 n <= 10 时的 RI 值
    n = length(matrix);
    
    % 计算一致性比率 (CR)
    CR = CI / RI(n);
end

参考资料

用人话讲明白AHP层次分析法(非常详细原理+简单工具实现)_如何用spss做ahp层次分析-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值