Una empresa ha propuesto la creación de un indicador, que debe sintetizar la información de 6 variables de interés sobre el estado del entorno de la actividad comercial de la misma.
Para ello han contratado a un consultor, que ha recurrido a la opinión de 3 expertos en el área, para asignar los ponderadores del indicador, de acuerdo a la importancia de las variables.
El experto 1, tiene 20 años de experiencia en el sector, el experto 2 10 años de trabajar en el mismo rubro de la empresa y el experto 3 8 años de experiencia en la gestión estratégica.
Los puntajes que cada experto asignó son los siguientes:
library(readxl)
puntaje_expertos <- read_excel("puntaje_expertos.xlsx")
print(puntaje_expertos)## # A tibble: 6 x 4
## var `Experto 1` `Experto 2` `Experto 3`
## <chr> <dbl> <dbl> <dbl>
## 1 X1 4 6 6
## 2 X2 2 3 2
## 3 X3 1 1 5
## 4 X4 3 5 1
## 5 x5 6 4 3
## 6 X6 5 5 4
Se va a ponderar a cada experto por sus años de experiencia, y los expertos 1 y 2 han asignado su ranking asumiendo que los pesos para el indicador, se obtendrán mediante ranking reciproco, por otro lado el experto 3 los asigno proponiendo que los pesos se optengan con el ranking exponencial, saturando fuertemente los primeros lugares (sugiere un valor de p=3)
Obtenga los ponderadores para las variables, a partir de las sugerencias de los expertos
# Solución Propuesta
#Funciones de las clases anteriores:
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)
}
puntaje_expertos[,2:3] %>% apply(2,ponderadores_subjetivos_rank_reciproco) %>% as.data.frame() %>% bind_cols(as.data.frame(puntaje_expertos[,4] %>% apply(2,ponderadores_subjetivos_rank_exponencial,p=3))) ->ponderadores_expertos
ponderadores_expertos## Experto 1 Experto 2 Experto 3
## 1 0.10204082 0.07751938 0.002267574
## 2 0.20408163 0.15503876 0.283446712
## 3 0.40816327 0.46511628 0.018140590
## 4 0.13605442 0.09302326 0.489795918
## 5 0.06802721 0.11627907 0.145124717
## 6 0.08163265 0.09302326 0.061224490
ponderadores_expertos %>%
mutate(W = round(20 / 38 * `Experto 1` + 10 / 38 *`Experto 2` + 8 / 38 * `Experto 3`,
digits = 4) * 100)## Experto 1 Experto 2 Experto 3 W
## 1 0.10204082 0.07751938 0.002267574 7.46
## 2 0.20408163 0.15503876 0.283446712 20.79
## 3 0.40816327 0.46511628 0.018140590 34.10
## 4 0.13605442 0.09302326 0.489795918 19.92
## 5 0.06802721 0.11627907 0.145124717 9.70
## 6 0.08163265 0.09302326 0.061224490 8.03