AHP
层次分析法
模型引出
问题实例
- 如何让指标在同一数量级,且保证在同一指标下其差距不变?
归一化处理
指标数组 $[a b c]$ 归一化处理得到 $[a/(a+b+c),b/(a+b+c),c/(a+b+c)]$ - 给每一个指标加上权重
基本概念
层次分析法(AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题.
模型原理
目标层
只有一个元素,一般是分析问题的预定目标或者理想结果
准则层
包含为实现目标所涉及的中间元素,它可以由若干个层次组成,包括所需考虑的准则、子准则
措施层
包含为了实现目标可供选择的各种措施、决策方案等
基本步骤
- 建立递阶层次结构模型
- 目标:微博之星
- 准则:粉丝数,颜值,作品数量,作品质量
- 方案:明星ABC
- 构造出各层次中的所有判断矩阵
- 对指标的重要性进行两两比较,构造判断矩阵,从而科学求出权重
- $a^i_j$的意义是第$i$个指标相对于第$j$个指标的重要程度
标度 | 含义 |
1 | 重要性相同 |
3 | 稍微重要 |
5 | 明显重要 |
7 | 强烈重要 |
9 | 极端重要 |
2,4,6,8 | 相邻判断中值 |
$a^i_j*a^j_i = 1$
- 一致性检验
- $a^i_j=a^k_j*a^i_k$
避免出现矛盾的情况
- 一致矩阵:
- 正互反矩阵 $a^i_j>0并且a^i_j*a^j_i=1$
- 正互反矩阵满足$a^i_j=a^k_j*a^i_k$称为一致矩阵
- 步骤
- 计算一致性指标 CI $CI=\frac{\lambda _{\max}-n}{n-1}$
- 查找对应得平均一致性指标RI
- 计算一致性比例$CR=\frac{CI}{RI}<0.1$判断为一致
- $a^i_j=a^k_j*a^i_k$
1 | %代码一致性检验 |
- 求权重后进行评价
- 算数平均法
- 各列归一化(每一个元素除以其所在列的和)
- 将归一化的各列相加(按行求和)
- 相加后得到的向量中每个元素除以n即可得到权重向量
- 算数平均法
1 | %1.算术平均法计算权重 |
- 几何平均法
- 将判断矩阵的元素按行相乘得到一个新的列向量
- 将新的列向量的每个分量开n次方
- 对该列向量进行归一化即可得到权重向量
1 | %2.几何平均法计算权重 |
- 特征值法
- 特征值为n时对应的特征向量刚好为 $k[\frac{a^1_1}{1},\frac{a^1_2}{1},……,\frac{a^1_n}{1}]$
- 求出最大特征值以及其对应的特征向量
- 对特征向量进行归一化
1 | %3.特征值法计算权重 |
Matlab
基本使用
命令行的内容会暂时储存在工作区
1. 快捷键
- 新建脚本: ctrl+N
- 运行脚本:F5
- 注释:ctrl+R
- 取消注释:ctrl+T
- 实时脚本
- 进入或退出实时脚本的代码区域:Alt
实时脚本的代码块可以单独运行
- 插入分节符:ctrl+alt+Enter
- 进入或退出实时脚本的代码区域:Alt
2. 命令
- clear:清空变量区内容
- clc:清空命令行窗口的内容
- 输入矩阵时同一行矩阵用空格或者逗号隔开,不同列用;隔开
- 打印变量disp(<变量名>)
- 打印字符串disp(‘<字符串>’)
- sum(B)按列求和
- sum(B,2)按行求和
- repmat(B,n,1)按行复制n次按列复制1次
- ./点乘 执行对应元素的运算
- 字符串拼接 disp(‘a等于’ num2str(a))
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 PlutoC!