1. Jerarquia de Suma
library(magrittr)
#Vector de jerarquia
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Funcion para generar los pesos
ponderadores_subjetivos_rank_suma<-function(vector_jerarquias){
n<-length(vector_jerarquias)
vector_peso<-n-vector_jerarquias+1
list(w_brutos=vector_peso,w_normalizados=vector_peso/sum(vector_peso))
}
#Aplicando la funcion
pesos_ranking_suma<-ponderadores_subjetivos_rank_suma(rj)
#Pesos brutos
pesos_ranking_suma$w_brutos
## X1 X2 X3 X4 X5
## 2 4 1 5 3
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.133 0.267 0.067 0.333 0.200
#Grafico de los pesos normalizados
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking de Suma",
ylim = c(0,0.5),col = "blue")

2. Jerarquia Reciproca
library(magrittr)
#Vector de Jerarquias
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Funcion ara generar los pesos
ponderadores_subjetivos_rank_reciproco<-function(vector_jerarquias){
vector_pesos<-1/vector_jerarquias
list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la funcionn
pesos_ranking_reciproco<-ponderadores_subjetivos_rank_reciproco(rj)
#Pesos brutos
pesos_ranking_reciproco$w_brutos
## X1 X2 X3 X4 X5
## 0.2500000 0.5000000 0.2000000 1.0000000 0.3333333
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.109 0.219 0.088 0.438 0.146
#Gráfico de los pesos normalizados
barplot(pesos_ranking_reciproco$w_normalizados,
main = "Ponderadores Ranking Reciproco",
ylim = c(0,0.5),col = "yellow")

3. Jerarquia Exponencial
library(magrittr)
#Vector de Jerarquias
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Funcion para generar los pesos
ponderadores_subjetivos_rank_exponencial<-function(vector_jerarquias,p=2){
n<-length(vector_jerarquias)
vector_pesos<-(n-vector_jerarquias+1)^p
list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la funcion:
pesos_ranking_exponencial<-ponderadores_subjetivos_rank_exponencial(rj)
#Pesos brutos
pesos_ranking_exponencial$w_brutos
## X1 X2 X3 X4 X5
## 4 16 1 25 9
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.073 0.291 0.018 0.455 0.164
#Grafico de los pesos normalizados (por default p=2)
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking Exponencial",
ylim = c(0,0.5),col = "coral")

#Comparacion de valores de "p"
par(mfrow=c(1,3))
for(p in 2:4){
pesos<-ponderadores_subjetivos_rank_exponencial(vector_jerarquias = rj,p = p)
barplot(pesos$w_normalizados,main = paste0("p=",p),ylim = c(0,0.7),col = "coral",cex.main=3,cex.axis = 3)
}
