本文介绍使用R语言确定指标权重的方法,包括:层次分析法、熵权法和CRITIC方法,内容包含了逆向指标正向化处理。
1、层次分析法
#######层次分析法######
###几何平均法求权重
options(digits = 2)
library(tidyverse)
macro <- tibble(x1=c(1,1/3,1/9), x2=c(3,1,1/5), x3=c(9,5,1))
macro %>% mutate(w = '^'(x1*x2*x3, 1/3)) -> macro
macro
# 定义归一化函数
std <- function(x){
x / sum(x)
}
# 通过归一化计算权重
macro %>% mutate_at(c("w"), .funs = std) -> macro
macro
# 随机一致性表
ri_table <- c(0, 0, 0.58, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 1.49, 1.52,1.54)
# 一致性检验
b <- as.matrix(macro[,-4])
w <- as.matrix(macro[,4])
bw <- b