Una institucion no gubernamental (ONG) debe generar una linea base sobre la cual pueda verificar el desempeño de sus funcion de acuerdo a sus estatutos, para ello ha considerado crear un indicador, que debe sintetizar la informacion de 6 variables para tal fin (X1, X2, X3, X4, X5, X6)
Para ello ha contratado a un consultor, que ha recurrido a la opinion de 3 expertos en el area, para asignar los ponderadores del indicador, de acuerdo a la importancia de las variables que cada uno considera.
El experto 1, tiene 10 años de experiencia y asignó el siguiente ranking 4,3,3,1,4,5
El experto 2, 15 años de trabajar en el mismo rubro de la ONG y asignó el siguiente ranking a las variables: 4,4,2,1,2,3
Y el experto 3, 5 años de experiencia en la tematica de la ONG, y asignó el siguiente ranking a las variables: 5,6,4,1,3,2
Se va a ponderar a cada experto por sus años de experiencia, y los expertos 1 y 3 han asignado su ranking asumiendo que los pesos para el indicador, se obtendrá mediante ranking reciproco, por otro lado, el experto 2 los asignó proponiendo que los pesos se obtengan a través del ranking exponencial, saturando fuertemente los primeros lugares (sugiere un valor de p=4)
Obtenga los ponderadores para las variables, a partir de la sugerencia de los expertos.
library(readxl)
data_expertos <- read_excel("data_expertos.xlsx")
print(data_expertos)
## # A tibble: 6 × 3
## `Experto 1` `Experto 2` `Experto 3`
## <dbl> <dbl> <dbl>
## 1 4 4 5
## 2 3 4 6
## 3 3 2 4
## 4 1 1 1
## 5 4 2 3
## 6 5 3 2
#Carga de funciones hechas en clases
library(magrittr)
library(dplyr)
ponderadores_subjetivos_rank_reciproco<-function(vector_jerarquias){
vector_pesos<-1/vector_jerarquias
vector_pesos/sum(vector_pesos)
}
ponderadores_subjetivos_rank_exponencial<-function(vector_jerarquias,p=2){
n<-length(vector_jerarquias)
vector_pesos<-(n-vector_jerarquias+1)^p
vector_pesos/sum(vector_pesos)
}
#Ranking Reciproco
data_expertos[,c(1,3)] %>% apply(2,ponderadores_subjetivos_rank_reciproco) %>% as.data.frame() %>% bind_cols(as.data.frame(data_expertos[,2] %>% apply(2,ponderadores_subjetivos_rank_exponencial,p=4))) ->ponderadores_expertos
ponderadores_expertos
## Experto 1 Experto 3 Experto 2
## 1 0.10563380 0.08163265 0.02732794
## 2 0.14084507 0.06802721 0.02732794
## 3 0.14084507 0.10204082 0.21086370
## 4 0.42253521 0.40816327 0.43724696
## 5 0.10563380 0.13605442 0.21086370
## 6 0.08450704 0.20408163 0.08636977
#Ranking Exponencial
ponderadores_expertos %>%
mutate(W = round(10 / 30 * `Experto 1` + 15 / 30 *`Experto 2` + 5 / 30 * `Experto 3`,
digits = 3) * 100)
## Experto 1 Experto 3 Experto 2 W
## 1 0.10563380 0.08163265 0.02732794 6.2
## 2 0.14084507 0.06802721 0.02732794 7.2
## 3 0.14084507 0.10204082 0.21086370 16.9
## 4 0.42253521 0.40816327 0.43724696 42.7
## 5 0.10563380 0.13605442 0.21086370 16.3
## 6 0.08450704 0.20408163 0.08636977 10.5