多级指标的层次分析法实例与python代码
时间: 2024-10-26 08:03:40 浏览: 43
层次分析法(Analytic Hierarchy Process, AHP)是一种用于决策支持的结构化方法,它将复杂的问题分解成各个层次和相互关联的决策因素。对于多级指标的层次分析,例如评估一个城市的发展潜力,可能会包括经济、环境、社会三个大层次,每个大层次下又有若干小指标。
假设我们要分析一个城市投资项目的优劣,可以这样构建层次:
1. 层次一:整体评价 (A)
- 层次二:社会影响 (S) (子指标如生活质量、教育设施)
为了计算权重矩阵,我们通常采用尺度从1到9,其中1表示两个因素完全相等重要,9表示其中一个因素远比另一个更重要。然后通过比较各对子层级的重要性得到判断矩阵,并进行一致性检验。
Python代码示例(使用`pandas`库及`sympy`库进行计算):
```python
import pandas as pd
from sympy import Matrix
# 假设有以下判断矩阵
judgement_matrix = pd.DataFrame({
('E', 'E'): [1, 3, 5],
('E', 'E'): [1/3, 1, 1/3],
('E', 'S'): [7, 4, 1],
('E', 'A'): [1, 1, 1],
# ... 环境影响和社会影响对整体评价的子矩阵类似
})
# 将判断矩阵转换为对角线元素为1的归一化矩阵
norm_matrix = judgement_matrix.apply(lambda x: x / x.sum(), axis=1)
# 计算一致性比率 CR(一致性误差比例)
consistency_index = Matrix(norm_matrix.values).det() ** (1 / norm_matrix.shape[0]) - 1
cr = consistency_index.evalf()
if cr < 0.1:
print("一致性检验通过")
else:
print(f"一致性检验未通过,CR值为 {cr}")
# 对于主成分矩阵(即权重矩阵),需要进一步计算
```
这只是一个基本的层次分析法示例,实际应用可能更复杂,涉及到更多层次和更多的因子。如果你需要在项目中实施,建议参考专门的层次分析法库,如`apyh`(Python的AHP工具包)。
阅读全文