R语言: 层次分析法(AHP)

电脑杂谈  发布时间:2020-07-20 23:34:53  来源:网络整理

层次信任模型_层次分析模型_层次分析模型

美国运筹学家托马斯·萨蒂(Thomas Saaty)(T.L.Saaty)在1970年代中期正式提出了缩写为AHP的层次分析法. 这是一种系统的,层次化的分析方法,将定性和定量分析相结合. 由于它在处理复杂的决策问题上的实用性和有效性,因此迅速在全世界引起了关注. 它的应用遍及经济计划与管理,能源政策与分配,行为科学,军事指挥,交通,农业,教育,人才,医疗保健和环境领域.

层次分析法的基本思想与思考和判断一个复杂的决策问题的过程大致相同. 以度假旅行为例: 如果有3个旅游景点A,B和C供您选择,您将根据一些标准(例如风景,费用和生活,食物和旅行条件)反复比较这3个候选地点. 首先,您将确定要考虑的标准中有多少. 如果您在经济上宽容并渴望旅行,那么您自然会分别评估风景和条件,而那些节俭或有经济​​需要的人会优先考虑费用. 中游客也将更加注重生活,饮食和其他条件. 其次,您将比较每个条件的三个位置. 例如,A的风景最佳,B的风景第二. B成本最低,C成本第二. C有更好的生活条件等等. 最后层次分析模型,您必须整合比较和判断这两个级别,并确定A,B和C中哪一个是最佳位置.

层次分析法的基本步骤

1. 建立层次结构模型. 在对实际问题进行深入分析的基础上,根据不同的属性将相关因素从上到下分解为几个层次. 同一级别的因素从属于或影响较高级别的因素,同时主导下一个级别. 水平因素可能会受到潜在因素的影响. 最上层是目标层,通常只有一个因素,最下层通常是方案或目标层,并且中间可以有一层或几层,通常是标准层或指示层. 如果标准太多(例如,超过9条),则应进一步分解子标准层.

2. 构造成对比较矩阵. 从层次结构模型的第二层开始,对于属于(或影响)上层各个因子的同一层级的因子,使用成对比较法和1-9比较量表来构建成对比较矩阵直到最低级别.

3. 计算权重向量并检查一致性. 对于每个成对的比较矩阵,计算最大特征根和相应的特征向量,并使用一致性指标,随机一致性指标和一致性比率进行一致性测试. 如果测试通过,则特征向量(归一化后)就是权重向量: 如果失败,则需要将其重构为一对比较矩阵.

4. 计算组合权向量,并检查组合的一致性. 计算最低层到目标的组合权重向量,并根据公式检查组合的一致性. 如果测试通过,则可以根据组合权向量表示的结果做出决定. 否则,必须重新考虑模型或重建具有较大一致性比率的模型. 成对比较.

关键部分是从成对比较矩阵中计算权重向量并检查一致性. R代码如下:

代码1: 用于计算权重向量的函数权重

功能(B)

层次分析模型_层次分析模型_层次信任模型

{

A =矩阵(B,nrow = sqrt(length(B)),ncol = sqrt(length(B)),

byrow = TRUE)

n = ncol(A)

mul_collect = c(1: n)

for(i in 1: n)mul_collect [i] = prod(A [i,])

体重= mul_collect ^(1 / n)

weight_one =体重/总和(体重)

回合(weight_one,4)

}

层次分析模型_层次分析模型_层次信任模型

代码2: 计算函数CI_CR进行一致性检查

功能(B)

{

RI = c(0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,

1.51)

Wi =体重(B)

n =长度(Wi)

如果(n> 2){

W =矩阵(Wi,ncol = 1)

A =矩阵(B,nrow = sqrt(length(B)),ncol = sqrt(length(B)),

层次信任模型_层次分析模型_层次分析模型

byrow = TRUE)

AW = A%*%W

aw = as.vector(AW)

la_max = sum(aw / Wi)/ n

CI =(la_max-n)/(n-1)

CR = CI / RI [n]

cat(“ \ n CI =”,round(CI层次分析模型,4),“ \ n”)

cat(“ \ n CR =”,round(CR,4),“ \ n”)

cat(“ \ n la_max =”,round(la_max,4),“ \ n \ n”)

如果(CR

层次信任模型_层次分析模型_层次分析模型

cat(“通过一致性检查!\ n”)

cat(“ \ n Wi: ”,round(Wi,4),“ \ n”)

}

其他{

cat(“请调整判断矩阵!\ n”)

Wi =空

休息

}

}

否则,如果(n

return(Wi)

}

}

注意: 此代码由“多元统计分析和R语言建模”的作者王斌辉先生编写.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-287632-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 彭元逊
        彭元逊

        只有成大神才有钱拿

      热点图片
      拼命载入中...