UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

CICLO II-2022

Asignatura:

Métodos para el Análisis Ecocómico.

Facilitador:

Carlos Ademir Pérez Alas.

Contenido:

Resolución de la clave A y B del segundo parcial.

Grupo Teórico:

03.

Alumna:

Orellana Alvarado, Nathaly Eunice. OA18024.

Ciudad Universitaria, 25 de octubre de 2022.

Resolución de la clave A del segundo parcial.

CLAVE A - SOLUCION

Se necesita construir un indicador multivariado sintetico, que mida la “Seguridad Municipal” para ello se dispone de la siguiente informacion:

Variable

Correlación con la variable compleja

X1

% de Negocios victimizados durante el año por - robo o hurto

positiva

X2

% de Negocios victimizados durante el año - extorsión o secuestro

positiva

X3

% de Negocios que consideran que el crimen fue mayor en el año actual comparado con el año anterior

positiva

X4

% de Negocios que consideran que el crimen local es mayor que en los municipios vecinos

negativa

X5

Erogaciones municipales per cápita en seguridad pública (US$)

positiva

X6

Costo del crimen a negocios por cada US$1,000 de ventas durante el año previo

negativa

X7

% de Negocios que califican a la municipalidad como buena en prevención y control del delito

positiva

X8

% de Negocios que consideran que la calidad del alumbrado público es adecuada para la seguridad de los negocios en el municipio

positiva

 

1) [25%] A través del análisis de componentes principales, identifique para un modelo de 3 factores:

Cargando la base de datos

library(dplyr)
library(tidyr)
library(kableExtra)
load("E:/MAE/EXAM 2/Resolucion-P02-Clave A y Clave B/data_parcial_2_A_rev.RData")
norm_directa<-function(x){(x-min(x))/(max(x)-min(x))}
norm_inversa<-function(x){(max(x)-x)/(max(x)-min(x))}

## Seleccionando variables con correlación positiva
datos_parcial_2 %>% 
  dplyr::select(X1,X2,X3,X5,X7,X8) %>% 
  apply(MARGIN = 2,FUN = norm_directa) %>% as.data.frame()->var_corr_positiva

## Seleccionando variables con correlación negativa
datos_parcial_2 %>% 
  dplyr::select(X4,X6) %>% 
  apply(MARGIN = 2,FUN = norm_inversa) %>% as.data.frame()->var_corr_negativa 

## Juntando y reordenando las variables
var_corr_positiva %>% 
  bind_cols(var_corr_negativa) %>%
  dplyr::select(X1,X2,X3,X4,X5,X6,X7,X8) ->datos_normalizados

head(datos_normalizados) %>%
  kable(caption = "**Tabla:** las variables reordenadas.",
        align = "c",
        digits = 1) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Tabla: las variables reordenadas.
X1 X2 X3 X4 X5 X6 X7 X8
0.2 0.0 0.0 0.8 0.0 1.0 0.0 0.2
0.2 0.0 0.5 0.5 0.4 0.8 0.1 0.5
0.2 0.1 0.4 0.5 0.6 0.9 0.2 0.5
0.2 0.0 0.3 0.6 0.2 0.9 0.4 0.4
0.1 0.0 0.7 0.2 0.9 0.5 0.1 0.7
0.1 0.0 0.2 0.7 0.3 0.6 0.3 0.3
Fuente:
Elaboración propia con base data Parcial 2 A.

Matriz Rx

## Matriz de correlación
library(PerformanceAnalytics)
chart.Correlation(as.matrix(datos_normalizados),histogram = TRUE,pch=12)

Pruebas KMO y Barlett

library(rela)
library(kableExtra)

#KMO
KMO<-paf(as.matrix(datos_normalizados))$KMO

# Dando formato de Salida al valor KMO
KMO %>%
  kable(
    caption = "**Tabla:** Prueba de adecuación muestral de Kaiser Meyer Olkin.",
    col.names = "KMO",
    align = "c",
    digits = 4
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Tabla: Prueba de adecuación muestral de Kaiser Meyer Olkin.
KMO
0.6793
Fuente:
Elaboración propia con base data Parcial 2 A.
# Prueba de Barlett
library(psych)
Prueba_Barlett <- cortest.bartlett(datos_normalizados)
# Dando formato de Salida a Valores de la Prueba de Barlett
Prueba_Barlett <-
  data.frame(Prueba_Barlett$chisq, Prueba_Barlett$p.value, Prueba_Barlett$df) 
colnames(Prueba_Barlett) <- c("Chisq", "P-Value", "Df")
Prueba_Barlett %>%
  kable(caption = "**Tabla:** Prueba de Barlett.",
        align = "c",
        digits = 1) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Tabla: Prueba de Barlett.
Chisq P-Value Df
1025.9 0 28
Fuente:
Elaboración propia con base data Parcial 2 A.

Debido que el pvalue < 0.05, se puede procederse al análisis factorial porque existe multicolinealidad en los valores de la matriz de información

Componentes Principales

library(factoextra)
library(kableExtra)
Rx<-cor(datos_normalizados)
PC<-princomp(x = datos_normalizados,cor = TRUE,fix_sign = FALSE)
variables_pca<-get_pca_var(PC)
factoextra::get_eig(PC) %>% kable(caption="Resumen PCA",
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Resumen PCA
eigenvalue variance.percent cumulative.variance.percent
Dim.1 3.90 48.72 48.72
Dim.2 1.96 24.55 73.27
Dim.3 0.84 10.52 83.78
Dim.4 0.50 6.24 90.03
Dim.5 0.45 5.68 95.70
Dim.6 0.28 3.45 99.16
Dim.7 0.07 0.82 99.98
Dim.8 0.00 0.02 100.00
Fuente:
Elaboración propia con base data Parcial 2 A.

Gráfico de sedimentación

fviz_eig(PC,
         choice = "eigenvalue",
         barcolor = "black",
         barfill = "gray",
         addlabels = TRUE, 
       )+labs(title = "Gráfico de Sedimentación",subtitle = "Usando princomp, con Autovalores")+
  xlab(label = "Componentes")+
  ylab(label = "Autovalores")+geom_hline(yintercept = 1)

Modelo de 3 Factores Rotados

library(corrplot)
library(factoextra)
library(psych)

#Modelo de 2 Factores (Rotada)
numero_factores<-3
modelo_factores<-principal(r = Rx,
                             nfactors = numero_factores,
                             covar = FALSE,
                             rotate = "varimax")
modelo_factores
## Principal Components Analysis
## Call: principal(r = Rx, nfactors = numero_factores, rotate = "varimax", 
##     covar = FALSE)
## Standardized loadings (pattern matrix) based upon correlation matrix
##      RC1   RC2   RC3   h2     u2 com
## X1 -0.16  0.80 -0.03 0.67 0.3316 1.1
## X2  0.08  0.84 -0.03 0.71 0.2879 1.0
## X3  0.93 -0.09  0.28 0.95 0.0493 1.2
## X4 -0.95  0.05 -0.26 0.98 0.0208 1.2
## X5  0.43 -0.06  0.80 0.83 0.1742 1.5
## X6 -0.25  0.03 -0.91 0.89 0.1142 1.2
## X7 -0.07  0.83 -0.04 0.69 0.3107 1.0
## X8  0.96 -0.06  0.27 0.99 0.0087 1.2
## 
##                        RC1  RC2  RC3
## SS loadings           2.97 2.05 1.68
## Proportion Var        0.37 0.26 0.21
## Cumulative Var        0.37 0.63 0.84
## Proportion Explained  0.44 0.31 0.25
## Cumulative Proportion 0.44 0.75 1.00
## 
## Mean item complexity =  1.2
## Test of the hypothesis that 3 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.06 
## 
## Fit based upon off diagonal values = 0.98
correlaciones_modelo<-variables_pca$coord
rotacion<-varimax(correlaciones_modelo[,1:numero_factores])
correlaciones_modelo_rotada<-rotacion$loadings

a) Los ponderadores normalizados para cada factor.

Al factor 1 se le debe asignar 0.41, al factor 2 se le debe asignar 0.27 y al factor 3 se le debe asignar 0.32

library(kableExtra)
cargas<-rotacion$loadings[1:6,1:numero_factores]
ponderadores<-prop.table(apply(cargas^2,MARGIN = 2,sum))
t(ponderadores) %>% kable(caption="Ponderadores de los Factores Extraídos",
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Ponderadores de los Factores Extraídos
Dim.1 Dim.2 Dim.3
0.41 0.27 0.32
Fuente:
Elaboración propia con base data Parcial 2 A.

b) Las variables incluidas en cada factor.

corrplot(correlaciones_modelo_rotada[,1:numero_factores],
         is.corr = FALSE,
         method = "square",
         addCoef.col="grey",
         number.cex = 0.75)

FACTOR 1 estan incluidas las variables X3, X4 FACTOR 2 estan incluidas las variables X1, X2 FACTOR 3 estan incluidas las variables X5, X6

2) [25%] Para el factor 1, utilice el método CRITIC para obtener los ponderadores normalizados para cada variable.

Para el Factor 1 Factor 1: Agrupa las Variables X3, X4, X8

**Normalización de datos y cálculos:*

library(dplyr)
library(kableExtra)
#data_normalizada
datos_normalizados[,c(3,4,8)] -> data_factor_1
head(data_factor_1)
##        X3      X4      X8
## 1 0.04000 0.80000 0.15823
## 2 0.55000 0.50000 0.51675
## 3 0.40000 0.50000 0.46798
## 4 0.31429 0.57143 0.41337
## 5 0.70000 0.25000 0.73399
## 6 0.16000 0.70000 0.25517
#Cálculo de las desviaciones estándar de cada variable

data_factor_1 %>% 
  summarise(S3=sd(X3),S4=sd(X4),S8=sd(X8))-> sd_vector
print(sd_vector)
##        S3      S4      S8
## 1 0.24628 0.20111 0.20874
#Cálculo de la matriz de correlación de la agrupacion 

cor(data_factor_1)->mat_R_F1
print(mat_R_F1)
##          X3       X4       X8
## X3  1.00000 -0.93872  0.95904
## X4 -0.93872  1.00000 -0.99585
## X8  0.95904 -0.99585  1.00000
#Cálculo de los ponderadores brutos
1-mat_R_F1->sum_data
colSums(sum_data)->sum_vector
sd_vector*sum_vector->vj
print(vj)
##        S3      S4      S8
## 1 0.48755 0.79129 0.42517
#Cálculo de los ponderadores netos

vj/sum(vj)->wj
names(wj)<- c("w_X3", "w_X4", "w_X8")
print(wj)
##      w_X3    w_X4    w_X8
## 1 0.28612 0.46437 0.24951
#Ponderadores:
round(wj*100,2) %>%  
kable(caption = "Ponderadores normalizados de las variables correspondientes a la Agrupacion del factor 1",
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Ponderadores normalizados de las variables correspondientes a la Agrupacion del factor 1
w_X3 w_X4 w_X8
28.61 46.44 24.95
Fuente:
Elaboración propia con base data Parcial 2 A.

3) [25%] Para el factor 2, utilice el método de Entropía para obtener los ponderadores normalizados para cada variable.

Metodo de Entropia

Factor 2: Agrupa X1, X2, X7

# Normalizamos los datso 
datos_parcial_2 %>% dplyr::select(X1,X2,X7)->data_factor_2
apply(data_factor_2,2,prop.table)->data_factor_2
head(data_factor_2)
##             X1         X2        X7
## [1,] 0.0078125 0.00070734 0.0013986
## [2,] 0.0086806 0.00212202 0.0076923
## [3,] 0.0086806 0.00707339 0.0111888
## [4,] 0.0069444 0.00106101 0.0244755
## [5,] 0.0060764 0.00247569 0.0055944
## [6,] 0.0052083 0.00459770 0.0174825
#Fórmula de entropía
entropy<-function(x){
  return(x*log(x))
}
apply(data_factor_2,2,entropy)->data_norm_2
head(data_norm_2)
##             X1         X2        X7
## [1,] -0.037906 -0.0051310 -0.009192
## [2,] -0.041204 -0.0130618 -0.037443
## [3,] -0.041204 -0.0350233 -0.050270
## [4,] -0.034513 -0.0072664 -0.090806
## [5,] -0.031010 -0.0148572 -0.029013
## [6,] -0.027383 -0.0247457 -0.070744
#Número de variables en el factor:
ncol(data_factor_2)->m
#Constante de entropía:
-1/log(m)->K
print(K)
## [1] -0.91024
#Cálculo de las entropías
K*colSums(data_norm_2)->Ej
print(Ej)
##     X1     X2     X7 
## 4.1805 3.2029 3.7019
#Cálculo de las especificidades:
1-Ej->vj_2
print(vj_2)
##      X1      X2      X7 
## -3.1805 -2.2029 -2.7019
#Cálculo de los ponderadores:
prop.table(vj_2)->wj_2 
print(wj_2)
##      X1      X2      X7 
## 0.39337 0.27245 0.33417
t(wj_2) %>% as.data.frame()->wj_2

round(wj_2*100,2) %>% 
    kable(caption = "Ponderadores de las Variables de la Agrupacion del Factor 2",
        align = "c",
        digits = 5) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Ponderadores de las Variables de la Agrupacion del Factor 2
X1 X2 X7
39.34 27.25 33.42
Fuente:
Elaboración propia con base data Parcial 2 A.

4) [25%] Para el factor 3, utilice el método de Ranking para obtener los ponderadores normalizados para cada variable (utilice la numeración de las variables para establecer la jerarquía).

Metodos de Ranking

Factor 3: Agrupa X5, X6

rj_f3 <- c(1,2)

names(rj_f3)<-c("X5", "X6")
print(rj_f3)
## X5 X6 
##  1  2

los 3 metodos de ranking y a cada metodo trenda la misma importancia para determinar el ponderador final de cada variable

Jerarquia de Suma

#Función para generar los pesos
ponderadores_subjetivos_rank_suma<-function(vector_jerarquias){
  n<-length(vector_jerarquias)
  vector_pesos<-n-vector_jerarquias+1
  list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la función:
pesos_ranking_suma<-ponderadores_subjetivos_rank_suma(rj_f3)

#Pesos brutos
pesos_ranking_suma$w_brutos
## X5 X6 
##  2  1
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)
##    X5    X6 
## 0.667 0.333

Jerarquia reciproca

library(magrittr)

#Función para 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 función:
pesos_ranking_reciproco<-ponderadores_subjetivos_rank_reciproco(rj_f3)

#Pesos brutos
pesos_ranking_reciproco$w_brutos
##  X5  X6 
## 1.0 0.5
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)
##    X5    X6 
## 0.667 0.333

Jerarquia Exponencial

#Función 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 función:
pesos_ranking_exponencial<-ponderadores_subjetivos_rank_exponencial(rj_f3)

#Pesos brutos
pesos_ranking_exponencial$w_brutos
## X5 X6 
##  4  1
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)
##  X5  X6 
## 0.8 0.2

Ponderadores por los tres metodos de ranking

pesos_ranking_suma$w_normalizados %>% 
  rbind(pesos_ranking_reciproco$w_normalizados) %>% 
  rbind(pesos_ranking_exponencial$w_normalizados) -> pesos_ranking
rownames(pesos_ranking)<- c("pesos_ranking_suma", "pesos_ranking_reciproco", "pesos_ranking_exponencial")
t(pesos_ranking) %>% as.data.frame()-> pesos_ranking


pesos_ranking %>% kable(caption="Peso ranking",
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 A.")
Peso ranking
pesos_ranking_suma pesos_ranking_reciproco pesos_ranking_exponencial
X5 0.67 0.67 0.8
X6 0.33 0.33 0.2
Fuente:
Elaboración propia con base data Parcial 2 A.

Ponderando cada metodo con la misma importancia relativa

Todos tienen la misma importantancia, por tanto:

# Promediamos los Ponderadores obtenidos por cada metdo de ranking 
pesos_ranking_suma$w_normalizados +pesos_ranking_reciproco$w_normalizados + pesos_ranking_exponencial$w_normalizados -> Ponderadores 
print(Ponderadores)
##      X5      X6 
## 2.13333 0.86667
# Ponderadores
prop.table(Ponderadores)* 100
##     X5     X6 
## 71.111 28.889

Resolución de la clave B del segundo parcial.

CLAVE B - SECCION I [25%]:

Se pretende construir un indicador multivariado sintético sobre el Desarrollo en las Economías.

Los indicadores a considerar son: el índice de alfabetización (alfabet)[+], el incremento de la población (inc_pob)[+], la esperanza de vida femenina (espvidaf)[+], la mortalidad infantil (mortinf)[-], el número promedio de hijos por mujer (fertilid)[+], la tasa de natalidad (tasa_nat)[+], el logaritmo del PIB (log_pib)[+], la población urbana (urbana)[+] y la tasa de mortalidad (tasa_mor)[-].

NOTA: Entre Corchetes aparece la correlación teórica esperada entre la variable compleja y el indicador.

Carga de datos

library(magrittr)
library(kableExtra)
load("E:/MAE/EXAM 2/Resolucion-P02-Clave A y Clave B/data_parcial_2_B_rev.RData")
head(data_parcial_2, n = 10) %>%
  kable(caption = "**Tabla 1:** Data Original.",
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 1: Data Original.
PAÍS POBLAC DENSIDAD URBANA RELIG ESPVIDAF ESPVIDAM ALFABET INC_POB MORTINF PIB_CAP REGIÓN CALORÍAS SIDA TASA_NAT TASA_MOR TASASIDA LOG_PIB LOGTSIDA NAC_DEF FERTILID LOG_POB CREGRANO ALFABMAS ALFABFEM CLIMA
Acerbaján 7400 86.0 54 Musulma. 75 67 98 1.40 35.0 3000 5 NA NA 23 7 NA 3.48 NA 3.29 2.80 3.87 18 100 100 3
Afganistán 20500 25.0 18 Musulma. 44 45 29 2.80 168.0 205 3 NA 0 53 22 0.00 2.31 0.00 2.41 6.90 4.31 12 44 14 3
Alemania 81200 227.0 85 Protest. 79 73 99 0.36 6.5 17539 1 3443 11179 11 11 13.77 4.24 1.69 1.00 1.47 4.91 34 NA NA 8
Arabia Saudí 18000 7.7 77 Musulma. 70 66 62 3.20 52.0 6651 5 2874 61 38 6 0.34 3.82 0.81 6.33 6.67 4.26 1 73 48 1
Argentina 33900 12.0 86 Católica 75 68 95 1.30 25.6 3408 6 3113 3904 20 9 11.52 3.53 1.63 2.22 2.80 4.53 9 96 95 8
Armenia 3700 126.0 68 Ortodoxa 75 68 98 1.40 27.0 5000 5 NA 2 23 6 0.05 3.70 0.56 3.83 3.19 3.57 17 100 100 NA
Australia 17800 2.3 85 Protest. 80 74 100 1.38 7.3 16848 1 3216 4727 15 8 26.56 4.23 1.93 1.88 1.90 4.25 6 100 100 3
Austria 8000 94.0 58 Católica 79 73 99 0.20 6.7 18396 1 3495 1150 12 11 14.38 4.26 1.70 1.09 1.50 3.90 17 NA NA 8
Bahrein 600 828.0 83 Musulma. 74 71 77 2.40 25.0 7875 5 NA 13 29 4 2.17 3.90 1.17 7.25 3.96 2.78 2 55 55 3
Bangladesh 125000 800.0 16 Musulma. 53 53 35 2.40 106.0 202 3 2021 1 35 11 0.00 2.31 0.24 3.18 4.70 5.10 67 47 22 5
Fuente:
Elaboración propia con base data Parcial 2 B.
# Cargando Paquetes
library(dplyr)
library(tidyr)
library(kableExtra)

# Creando funciones para normalización
norm_directa <- function(x) {
  (x - min(x)) / (max(x) - min(x))
}
norm_inversa <- function(x) {
  (max(x) - x) / (max(x) - min(x))
}

# Suprimir Val=NULL
data_parcial_2 %>% replace_na(
  list(
    ALFABET = 0,
    INC_POB = 0,
    ESPVIDAF = 0,
    FERTILID = 0,
    TASA_NAT = 0,
    LOG_PIB = 0,
    URBANA = 0,
    MORTINF = 0,
    TASA_MOR = 0
  )
) -> data_parcial_2

# Normalizacion de Variables con Correlación Teórica Esperada Positiva
data_parcial_2 %>%
  select(ALFABET, INC_POB, ESPVIDAF, FERTILID, TASA_NAT, LOG_PIB, URBANA) %>%
  apply(MARGIN = 2,
        FUN = norm_directa) %>%
  as.data.frame() -> variables_positivas

# Normalizacion de Variables con Correlación Teórica Esperada Negativa
data_parcial_2 %>%
  select(MORTINF, TASA_MOR) %>%
  apply(MARGIN = 2,
        FUN = norm_inversa) %>%
  as.data.frame() -> variables_negativas

# Acoplamiento de las variables previamente normalizadas segun su correlación
variables_positivas %>%
  bind_cols(variables_negativas) %>%
  select(ALFABET,
         INC_POB,
         ESPVIDAF,
         FERTILID,
         TASA_NAT,
         LOG_PIB,
         URBANA,
         MORTINF,
         TASA_MOR) -> datos_normalizados

# Dandole formato a la muestra
head(datos_normalizados, n = 10) %>%
  kable(
    caption = "**Tabla 2:** Data Normalizada.",
    col.names = c(
      "Índice de alfabetización",
      "Incremento Poblacional",
      "Esperanza de Vida Femenina",
      "Mortalidad Infantil",
      "Promedio de Hijos por Mujer",
      "Tasa de Natalidad",
      "Logaritmo del PIB",
      "Poblacion Urbana",
      "Tasa de Mortalidad"
    ),
    align = "c",
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 2: Data Normalizada.
Índice de alfabetización Incremento Poblacional Esperanza de Vida Femenina Mortalidad Infantil Promedio de Hijos por Mujer Tasa de Natalidad Logaritmo del PIB Poblacion Urbana Tasa de Mortalidad
0.98 0.31 0.82 0.34 0.30 0.61 0.54 0.81 0.71
0.29 0.56 0.03 0.84 1.00 0.10 0.18 0.00 0.08
0.99 0.12 0.92 0.18 0.02 0.94 0.85 0.98 0.54
0.62 0.63 0.69 0.81 0.65 0.76 0.77 0.71 0.75
0.95 0.29 0.82 0.34 0.23 0.63 0.86 0.87 0.62
0.98 0.31 0.82 0.39 0.30 0.71 0.68 0.86 0.75
1.00 0.30 0.95 0.23 0.12 0.94 0.85 0.98 0.67
0.99 0.09 0.92 0.18 0.05 0.95 0.58 0.98 0.54
0.77 0.49 0.79 0.48 0.44 0.79 0.83 0.87 0.83
0.35 0.49 0.26 0.57 0.58 0.10 0.16 0.38 0.54
Fuente:
Elaboración propia con base data Parcial 2 B.
# Matriz Correlación
library(PerformanceAnalytics)
chart.Correlation(as.matrix(datos_normalizados),
                  histogram = TRUE,
                  pch = 12)

Pruebas KMO y Barlett

# Prueba KMO
library(rela)
KMO <- paf(as.matrix(datos_normalizados))$KMO
# Dando formato de Salida al valor KMO
KMO %>%
  kable(
    caption = "**Tabla 3:** Prueba de adecuación muestral de Kaiser Meyer Olkin.",
    col.names = "KMO",
    align = "c",
    digits = 4
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 3: Prueba de adecuación muestral de Kaiser Meyer Olkin.
KMO
0.8528
Fuente:
Elaboración propia con base data Parcial 2 B.
# Prueba de Barlett
library(psych)
Barlett <- cortest.bartlett(datos_normalizados)
# Dando formato de Salida a Valores de la Prueba de Barlett
frame_bartlett <-
  data.frame(Barlett$chisq, Barlett$p.value, Barlett$df) 
colnames(frame_bartlett) <- c("Chisq", "P-Value", "Df")
frame_bartlett %>%
  kable(caption = "**Tabla 4:** Prueba de Barlett.",
        align = "c",
        digits = 1) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 4: Prueba de Barlett.
Chisq P-Value Df
1478.1 0 36
Fuente:
Elaboración propia con base data Parcial 2 B.

Ya que la Prueba de Adecuación muestral de Kaiser Meyer Olkin (KMO) > 0.5 y que el P-Value < 0.05, se considera adecuado el emplear Análisis Factorial porque existe multicolinealidad en los valores de la matriz de información.

Ejercicio 1.1:

Usando Análisis Factorial determine cuántos factores deberían retenerse.

Analisis de Componentes

library(FactoMineR)
library(factoextra)
library(kableExtra)
Rx <- cor(datos_normalizados)
PC <-
  princomp(x = datos_normalizados, cor = TRUE, fix_sign = FALSE)
variables_pca <- get_pca_var(PC)
factoextra::get_eig(PC) %>% 
  kable(caption = "**Tabla 5:** Resumen de Análisis de Componentes Principales (PCA)",
        col.names = c("Autovalores",
                      "Varianza (%)",
                      "Varianza Acumulada (%)"),
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2.")
Tabla 5: Resumen de Análisis de Componentes Principales (PCA)
Autovalores Varianza (%) Varianza Acumulada (%)
Dim.1 6.45 71.63 71.63
Dim.2 1.24 13.81 85.44
Dim.3 0.56 6.18 91.62
Dim.4 0.39 4.36 95.98
Dim.5 0.18 2.01 97.99
Dim.6 0.08 0.86 98.85
Dim.7 0.06 0.64 99.49
Dim.8 0.03 0.32 99.81
Dim.9 0.02 0.19 100.00
Fuente:
Elaboración propia con base data Parcial 2.

Gráfico de sedimentación

fviz_eig(
  PC,
  choice = "eigenvalue",
  barcolor = "#F8A29E",
  barfill = "#F8A29E",
  addlabels = TRUE,
) + labs(title = "Gráfico de Sedimentación", 
         subtitle = "Usando princomp, con Autovalores") +
  xlab(label = "Componentes") +
  ylab(label = "Autovalores") + 
  geom_hline(yintercept = 1)

Respuesta ejercicio 1.1 Bajo el:
Criterio del Autovalor: 2 componentes ya que con estos se explica más del 75% de la varianza acumulada, en total un 85.44%. Criterio de la Raíz Latente (Gráfico de Sedimentacion): 2 componentes ya que se nota el “quiebre en ese componente”.

Ejercicio 1.2

¿Qué variables quedan representadas en cada factor?

library(corrplot)
# Modelo de 2 Factores (Rotado)
numero_de_factores <- 2
modelo_factores <- principal(
  r = Rx,
  nfactors = numero_de_factores,
  covar = FALSE,
  rotate = "varimax"
)
modelo_factores
## Principal Components Analysis
## Call: principal(r = Rx, nfactors = numero_de_factores, rotate = "varimax", 
##     covar = FALSE)
## Standardized loadings (pattern matrix) based upon correlation matrix
##            RC1   RC2   h2    u2 com
## ALFABET   0.70  0.51 0.74 0.260 1.8
## INC_POB  -0.98  0.04 0.96 0.041 1.0
## ESPVIDAF  0.62  0.76 0.95 0.048 1.9
## FERTILID -0.87 -0.40 0.91 0.091 1.4
## TASA_NAT -0.90 -0.40 0.96 0.036 1.4
## LOG_PIB   0.62  0.59 0.73 0.270 2.0
## URBANA    0.39  0.71 0.66 0.342 1.6
## MORTINF   0.65  0.71 0.92 0.075 2.0
## TASA_MOR -0.03  0.92 0.85 0.148 1.0
## 
##                        RC1  RC2
## SS loadings           4.35 3.34
## Proportion Var        0.48 0.37
## Cumulative Var        0.48 0.85
## Proportion Explained  0.57 0.43
## Cumulative Proportion 0.57 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 2 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.05 
## 
## Fit based upon off diagonal values = 0.99
# Graficación
correlaciones_modelo <- variables_pca$coord
rotacion <- varimax(correlaciones_modelo[, 1:numero_de_factores])
correlaciones_modelo_rotada <- rotacion$loadings

corrplot(
  correlaciones_modelo_rotada[, 1:numero_de_factores],
  is.corr = FALSE,
  method = "square",
  addCoef.col = "black",
  tl.col = "black",
  number.cex = 0.75 
)

Respuesta ejercicio 1.2: ¿Qué variables quedan representadas en cada factor? En el factor 1 quedan representadas 5 Variables: * ALFABET.
* INC_POB.
* FERTILID.
* TASA_NAT.
* LOG_PIB.
En el factor 2 quedan representadas 4 Variables:
* ESPVIDAF.
* URBANA.
* MORTINF.
* TASA_MOR.

Ejercicio 1.3:

Determine qué pesos deben asignarse a cada factor y a las variables dentro de cada uno de ellos.

# Cargas de cada dimensión
library(kableExtra)
cargas <- rotacion$loadings[1:9, 1:numero_de_factores]
ponderadores <- prop.table(apply(cargas ^ 2, MARGIN = 2, sum))
t(ponderadores) %>%
  kable(caption = "**Tabla 6:** Ponderadores de los Factores Extraídos",
        col.names = c("Factor 1", "Factor 2"),
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 6: Ponderadores de los Factores Extraídos
Factor 1 Factor 2
0.57 0.43
Fuente:
Elaboración propia con base data Parcial 2 B.

Respuesta al ejercicio 1.3: La solucion se presenta por cada variable y Factor(Dim.1 y Dim.1) en la tabla a continuación

library(dplyr)
library(kableExtra)
# Contribuciones
contribuciones <- apply(cargas ^ 2, MARGIN = 2, prop.table)
  data.frame(
    contribuciones,
    row.names = c(
      "Índice de alfabetización",
      "Incremento Poblacional",
      "Esperanza de Vida Femenina",
      "Promedio de Hijos por Mujer",
      "Tasa de Natalidad",
      "Logaritmo del PIB",
      "Poblacion Urbana",
      "Mortalidad Infantil",
      "Tasa de Mortalidad"))%>% 
  kable(caption = "**Tabla 7:** Contribución de las variables en los Factores.",
        col.names = c("Factor 1", "Factor 2"),
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  column_spec(1, bold = T) %>%
  footnote(general_title = "**Fuente**:",
           general = "Elaboración propia con base data Parcial 2 B.")
Tabla 7: Contribución de las variables en los Factores.
Factor 1 Factor 2
Índice de alfabetización 0.11 0.08
Incremento Poblacional 0.22 0.00
Esperanza de Vida Femenina 0.09 0.17
Promedio de Hijos por Mujer 0.17 0.05
Tasa de Natalidad 0.19 0.05
Logaritmo del PIB 0.09 0.10
Poblacion Urbana 0.04 0.15
Mortalidad Infantil 0.10 0.15
Tasa de Mortalidad 0.00 0.25
Fuente:
Elaboración propia con base data Parcial 2 B.

CLAVE B - SECCION II[75%]:

Una empresa se encuentra calculando un Indicador del desempeño de sus líneas de producción, para ello no dispone de información previa, pero hay una importante consultora que posee expertos en el sector donde se ubica la empresa en cuestión.

La consultora, ha han determinado 4 variables que definen adecuadamente el desempeño de las líneas de producción:

X1: Mantenimiento de la línea de producción.
X2: Tamaño de planta.
X3: Logística (entradas y salidas de insumos y producción).
X4: Capacidad de innovación.

La consultora jerarquizó las variables de la siguiente manera:

#Este chun es solo para mostrar el ranking
library(kableExtra)
rango<- c(3,4,2,1)  %>% as.data.frame()
rango_transpose <- data.frame(t(rango))
colnames(rango_transpose)<-c("X1", "X2", "X3", "X4")
rownames(rango_transpose)<-"Ranking (Jerarquía)"
rango_transpose %>% kable() %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
X1 X2 X3 X4
Ranking (Jerarquía) 3 4 2 1

[40%] Ejercicio N°1:

Calcule los pesos normalizados, de las variables, usando los métodos de ranking directo, por suma, por reciproco y por ranking exponencial (use p=4).

Por Método de Suma

library(magrittr)
library(kableExtra)
#Vector jerarquías
rj <- c(3, 4, 2, 1)
names(rj) <- c("X1", "X2", "X3", "X4")
#Función para generar los pesos
ponderadores_subjetivos_rank_suma<-function(vector_jerarquias){
  n <- length(vector_jerarquias)
  vector_pesos <- n-vector_jerarquias+1
  list(w_brutos = vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la función:
pesos_ranking_suma<-ponderadores_subjetivos_rank_suma(rj)
#Pesos brutos
pesos_ranking_suma$w_brutos%>%
  kable(caption = "**Tabla 8:** Peso Bruto por Método de Suma.",
        col.names ="Peso Bruto", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 8: Peso Bruto por Método de Suma.
Peso Bruto
X1 2
X2 1
X3 3
X4 4
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)%>%
  kable(caption = "**Tabla 9:** Peso Normalizado por Método de Suma.",
        col.names ="Peso Normalizado", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 9: Peso Normalizado por Método de Suma.
Peso Normalizado
X1 0.2
X2 0.1
X3 0.3
X4 0.4

Gráfico de pesos normalizados

barplot(
  pesos_ranking_suma$w_normalizados,
  main = "Ponderadores jerarquia de suma",
  ylim = c(0, 0.5),
  col = "#F8A29E"
)

Por método reciproco

#Vector de Jerarquías
rj <- c(3, 4, 2, 1)
names(rj) <- c("X1", "X2", "X3", "X4")
#Función para 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 función:
pesos_ranking_reciproco <- ponderadores_subjetivos_rank_reciproco(rj)
#Pesos brutos
pesos_ranking_reciproco$w_brutos%>%
  kable(caption = "**Tabla 10:** Peso Bruto por Método Recíproco",
        col.names ="Peso Bruto", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 10: Peso Bruto por Método Recíproco
Peso Bruto
X1 0.33
X2 0.25
X3 0.50
X4 1.00
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)%>%
  kable(caption = "**Tabla 11:** Peso Normalizado por Método de Recíproco",
        col.names ="Peso Normalizado", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 11: Peso Normalizado por Método de Recíproco
Peso Normalizado
X1 0.16
X2 0.12
X3 0.24
X4 0.48

Gráfico de pesos normalizados

#Gráfico de los pesos normalizados
barplot(
  pesos_ranking_reciproco$w_normalizados,
  main = "Ponderadores Ranking Recíproco",
  ylim = c(0, 0.5),
  col = "#F8A29E"
)

Por Método Exponencial (p=4)

#Vector de Jerarquías
rj <- c(3, 4, 2, 1)
names(rj) <- c("X1", "X2", "X3", "X4")
#Función para generar los pesos
ponderadores_subjetivos_rank_exponencial <-
  function(vector_jerarquias, p = 4) {
    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 función:
pesos_ranking_exponencial <-
  ponderadores_subjetivos_rank_exponencial(rj)
#Pesos brutos
pesos_ranking_exponencial$w_brutos%>%
  kable(caption = "**Tabla 12:** Peso Bruto por Método Exponencial.",
        col.names ="Peso Bruto", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 12: Peso Bruto por Método Exponencial.
Peso Bruto
X1 16
X2 1
X3 81
X4 256
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)%>%
  kable(caption = "**Tabla 13:** Peso Bruto por Método Exponencial.",
        col.names ="Peso Normalizado", 
        align = "c",
        digits = 2) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 13: Peso Bruto por Método Exponencial.
Peso Normalizado
X1 0.04
X2 0.00
X3 0.23
X4 0.72

Gráfico de pesos normalizados (p=4)

#Gráfico de los pesos normalizados (p=4)
barplot(
  pesos_ranking_exponencial$w_normalizados,
  main = "Ponderadores Ranking Exponencial",
  ylim = c(0, 0.8),
  col = "#F8A29E"
)

[35%] Ejercicio N°2:

Experto 1

library(FuzzyAHP)
valores_matriz_comparacion_1 = c(1, 7, 4, 5,
                                 NA, 1, 6, 3,
                                 NA, NA, 1, 2,
                                 NA, NA, NA, 1)
matriz_comparacion_1 <- matrix(
  valores_matriz_comparacion_1,
  nrow = 4,
  ncol = 4,
  byrow = TRUE
)
matriz_comparacion_1 <- pairwiseComparisonMatrix(matriz_comparacion_1)
matriz_comparacion_1@variableNames <- c("X1", "X2", "X3", "X4")
show(matriz_comparacion_1)
## An object of class "PairwiseComparisonMatrix"
## Slot "valuesChar":
##      [,1]  [,2]  [,3]  [,4]
## [1,] "1"   "7"   "4"   "5" 
## [2,] "1/7" "1"   "6"   "3" 
## [3,] "1/4" "1/6" "1"   "2" 
## [4,] "1/5" "1/3" "1/2" "1" 
## 
## Slot "values":
##         [,1]    [,2] [,3] [,4]
## [1,] 1.00000 7.00000  4.0    5
## [2,] 0.14286 1.00000  6.0    3
## [3,] 0.25000 0.16667  1.0    2
## [4,] 0.20000 0.33333  0.5    1
## 
## Slot "variableNames":
## [1] "X1" "X2" "X3" "X4"
# Cálculo de los pesos:
pesos_normalizados_1 = calculateWeights(matriz_comparacion_1)
show(pesos_normalizados_1)
## An object of class "Weights"
## Slot "weights":
##     w_X1     w_X2     w_X3     w_X4 
## 0.606592 0.223310 0.094748 0.075350
barplot(
  pesos_normalizados_1@weights,
  main = "Ponderadores por el Método de Comparación por Pares Experto 1",
  ylim = c(0, 0.7),
  col = "#F8A29E"
)

Experto 2

valores_matriz_comparacion_2 = c(1, 7, 6, 3,
                                 NA, 1, 5, 2,
                                 NA, NA, 1, 4,
                                 NA, NA, NA, 1)
matriz_comparacion_2 <- matrix(
  valores_matriz_comparacion_2,
  nrow = 4,
  ncol = 4,
  byrow = TRUE
)
matriz_comparacion_2 <- pairwiseComparisonMatrix(matriz_comparacion_2)
matriz_comparacion_2@variableNames <- c("X1", "X2", "X3", "X4")
show(matriz_comparacion_2)
## An object of class "PairwiseComparisonMatrix"
## Slot "valuesChar":
##      [,1]  [,2]  [,3]  [,4]
## [1,] "1"   "7"   "6"   "3" 
## [2,] "1/7" "1"   "5"   "2" 
## [3,] "1/6" "1/5" "1"   "4" 
## [4,] "1/3" "1/2" "1/4" "1" 
## 
## Slot "values":
##         [,1] [,2] [,3] [,4]
## [1,] 1.00000  7.0 6.00    3
## [2,] 0.14286  1.0 5.00    2
## [3,] 0.16667  0.2 1.00    4
## [4,] 0.33333  0.5 0.25    1
## 
## Slot "variableNames":
## [1] "X1" "X2" "X3" "X4"
# Cálculo de los pesos:
pesos_normalizados_2 = calculateWeights(matriz_comparacion_2)
show(pesos_normalizados_2)
## An object of class "Weights"
## Slot "weights":
##    w_X1    w_X2    w_X3    w_X4 
## 0.60919 0.19879 0.10987 0.08215
barplot(
  pesos_normalizados_2@weights,
  main = "Ponderadores por el Método de Comparación por Pares Experto 2",
  ylim = c(0, 0.7),
  col = "#F8A29E"
)

Experto 3

valores_matriz_comparacion_3 = c(1, 7, 5, 4,
                                 NA, 1, 3, 2,
                                 NA, NA, 1, 6,
                                 NA, NA, NA, 1)
matriz_comparacion_3 <- matrix(
  valores_matriz_comparacion_3,
  nrow = 4,
  ncol = 4,
  byrow = TRUE
)
matriz_comparacion_3 <- pairwiseComparisonMatrix(matriz_comparacion_3)
matriz_comparacion_3@variableNames <- c("X1", "X2", "X3", "X4")
show(matriz_comparacion_3)
## An object of class "PairwiseComparisonMatrix"
## Slot "valuesChar":
##      [,1]  [,2]  [,3]  [,4]
## [1,] "1"   "7"   "5"   "4" 
## [2,] "1/7" "1"   "3"   "2" 
## [3,] "1/5" "1/3" "1"   "6" 
## [4,] "1/4" "1/2" "1/6" "1" 
## 
## Slot "values":
##         [,1]    [,2]    [,3] [,4]
## [1,] 1.00000 7.00000 5.00000    4
## [2,] 0.14286 1.00000 3.00000    2
## [3,] 0.20000 0.33333 1.00000    6
## [4,] 0.25000 0.50000 0.16667    1
## 
## Slot "variableNames":
## [1] "X1" "X2" "X3" "X4"
# Cálculo de los pesos:
pesos_normalizados_3 = calculateWeights(matriz_comparacion_3)
show(pesos_normalizados_3)
## An object of class "Weights"
## Slot "weights":
##    w_X1    w_X2    w_X3    w_X4 
## 0.61676 0.17252 0.14259 0.06812
barplot(
  pesos_normalizados_3@weights,
  main = "Ponderadores por el Método de Comparación de Pares Experto 3",
  ylim = c(0, 0.7),
  col = "#F8A29E"
)

Ejercico 2.1:

Asumiendo que la opinión de los 3 expertos es igualmente válida.

library(kableExtra)
ponderacion_expertos <- 1 / 3

pesos_tot <-
  (
    pesos_normalizados_1@weights + pesos_normalizados_2@weights +
      pesos_normalizados_3@weights
  )

promedio_tot <- ponderacion_expertos * pesos_tot
# Comprobando que la suma de 1 para verificar que es correcto 
sum(promedio_tot)
## [1] 1
# Muestra y formato de los Resultados
promedio_tot %>%
  kable(
    caption = "**Tabla 14:** Peso Bruto con una Misma ponderacion de la opinion por Experto.",
    col.names = "Peso Bruto",
    align = "c",
    digits = 4
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 14: Peso Bruto con una Misma ponderacion de la opinion por Experto.
Peso Bruto
w_X1 0.6108
w_X2 0.1982
w_X3 0.1157
w_X4 0.0752
normalizacion_1 <- promedio_tot / sum(promedio_tot)
normalizacion_1 %>%   
  kable(
    caption = "**Tabla 15:** Peso Normalizado con una Misma ponderacion de la opinion por Experto.",
    col.names = "Peso Normalizacion",
    align = "c",
    digits = 4
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 15: Peso Normalizado con una Misma ponderacion de la opinion por Experto.
Peso Normalizacion
w_X1 0.6108
w_X2 0.1982
w_X3 0.1157
w_X4 0.0752

Ejercico 2.2:

Si el experto 1 se pondera con 0.25, el experto 2 con 0.35 y el experto 3 con 0.4

ponderacion_expertos_distintas <-
  (pesos_normalizados_1@weights * 0.25)*100 +
  (pesos_normalizados_2@weights * 0.35)*100 +
  (pesos_normalizados_3@weights * 0.40)*100

ponderacion_expertos_distintas %>%
  kable(
    caption = "**Tabla X:** Peso Bruto con Diferente ponderacion de la opinion por Experto.",
    col.names = "Peso Bruto",
    align = "c",
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla X: Peso Bruto con Diferente ponderacion de la opinion por Experto.
Peso Bruto
w_X1 61.16
w_X2 19.44
w_X3 11.92
w_X4 7.48
# Verificando 
sum(ponderacion_expertos_distintas)
## [1] 100
normalizacion_final <-
  (ponderacion_expertos_distintas / sum(ponderacion_expertos_distintas))*100
#Verificando
sum(normalizacion_final)
## [1] 100
normalizacion_final %>%
  kable(
    caption = "**Tabla 16:** Peso Normalizado con Diferente ponderacion de la opinion por Experto.",
    col.names = "Peso Normalizacion",
    align = "c",
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T)
Tabla 16: Peso Normalizado con Diferente ponderacion de la opinion por Experto.
Peso Normalizacion
w_X1 61.16
w_X2 19.44
w_X3 11.92
w_X4 7.48