Clave A

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$) - positva

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

Se cargan los datos

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(kableExtra)
## 
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(knitr)
load("C:/Users/SANCHEZ/Desktop/GABRIEL2021/Universidad/Ciclo VI/Metodos para el analisis economico/data_parcial_2_A_rev.RData")
datos_A <- datos_parcial_2
datos_A %>% head()%>% 
  kable(caption ="Data frame:" ,align = "c",digits = 6) %>% 
  kable_material(html_font = "sans-serif")
Data frame:
ID Municipio X1 X2 X3 X4 X5 X6 X7 X8
1 ATIQUIZAYA 9 2 20.00000 20.00000 0.00000 0.000000 2 56.4000
2 EL CARMEN 10 6 62.50000 50.00000 37.50000 3.947368 11 147.3750
3 ALEGRIA 10 20 50.00000 50.00000 50.00000 2.564103 16 135.0000
4 SAN JULIAN 8 3 42.85714 42.85714 14.28571 1.351351 35 121.1429
5 TEJUTLA 7 7 75.00000 75.00000 75.00000 9.090909 8 202.5000
6 PASAQUINA 6 13 30.00000 30.00000 30.00000 8.108108 25 81.0000

Se convierte en matriz

matriz_A<-datos_A[,c(-1,-2)]
matriz_A %>% head()%>% 
  kable(caption ="Matriz de información:" ,align = "c",digits = 6) %>% 
  kable_material(html_font = "sans-serif")
Matriz de información:
X1 X2 X3 X4 X5 X6 X7 X8
9 2 20.00000 20.00000 0.00000 0.000000 2 56.4000
10 6 62.50000 50.00000 37.50000 3.947368 11 147.3750
10 20 50.00000 50.00000 50.00000 2.564103 16 135.0000
8 3 42.85714 42.85714 14.28571 1.351351 35 121.1429
7 7 75.00000 75.00000 75.00000 9.090909 8 202.5000
6 13 30.00000 30.00000 30.00000 8.108108 25 81.0000

Ejercicio 1

A través del análisis de componentes principales, identifique para un modelo de 3 factores:

A

Los ponderadores normalizados para cada factor

library(dplyr)
norm_directa<-function(x){(x-min(x))/(max(x)-min(x))}
norm_inversa<-function(x){(max(x)-x)/(max(x)-min(x))}
#Seleccionando las variables con correlación positiva
matriz_A %>% 
  select(X1,X2,X3,X5,X6,X8) %>% 
  apply(MARGIN = 2,FUN = norm_directa) %>% as.data.frame()->variables_corr_positiva
#Seleccionando las variables con correlación negativa 
matriz_A %>% 
  select(X4,X7) %>% 
  apply(MARGIN = 2,FUN = norm_inversa) %>% as.data.frame()->variables_corr_negativa
#Juntando y reordenando las variables
variables_corr_positiva %>% 
  bind_cols(variables_corr_negativa) %>% 
  select(X1,X2,X3,X4,X5,X6,X7,X8)->datnorm_A
datnorm_A %>% head()%>% 
  kable(caption = "Datos normalizados:" ,align = "c",digits = 6) %>% 
  kable_material(html_font = "sans-serif")
Datos normalizados:
X1 X2 X3 X4 X5 X6 X7 X8
0.193548 0.000000 0.040000 0.800000 0.000000 0.000000 1.000000 0.158227
0.225806 0.017167 0.550000 0.500000 0.428571 0.215587 0.901099 0.516749
0.225806 0.077253 0.400000 0.500000 0.571429 0.140039 0.846154 0.467980
0.161290 0.004292 0.314286 0.571429 0.163265 0.073805 0.637363 0.413371
0.129032 0.021459 0.700000 0.250000 0.857143 0.496503 0.934066 0.733990
0.096774 0.047210 0.160000 0.700000 0.342857 0.442827 0.747253 0.255172
library(corrplot)
## corrplot 0.95 loaded
library(psych)
# Se calcula la matriz de correlacion

matriz_correlacion<-cor(datnorm_A)


num_fact<-3

modelo_fact<-principal(r = matriz_correlacion,
                             nfactors = num_fact,
                             covar = FALSE,
                             rotate = "varimax")
modelo_fact
## Principal Components Analysis
## Call: principal(r = matriz_correlacion, nfactors = num_fact, 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

B

Las variables incluidas en cada factor.

library(FactoMineR)
library(factoextra)
## Cargando paquete requerido: ggplot2
## 
## Adjuntando el paquete: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
PC1<-princomp(x = datnorm_A,cor = TRUE,fix_sign = FALSE)
variables_pca1<-get_pca_var(PC1)

corrmodel1<-variables_pca1$coord
rot1<-varimax(corrmodel1[,1:num_fact])
corr_model_rot1<-rot1$loadings

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

library(kableExtra)
cargas<-rot1$loadings[1:8,1:num_fact]
ponderadores<-prop.table(apply(cargas^2,MARGIN = 2,sum))
t(ponderadores) %>% kable(caption="Ponderadores de los Factores Extraídos",
        align = "c",
        digits = 2) %>% 
  kable_material(html_font = "sans-serif") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Ponderadores de los Factores Extraídos
Dim.1 Dim.2 Dim.3
0.44 0.31 0.25

Se le asigna al primer factor el 44% al segundo un peso del 31% y finalmente al tercer factor un peso de 25%

contribuciones<-apply(cargas^2,MARGIN = 2,prop.table)
contribuciones %>% kable(caption="Contribución de las variables en los Factores",
        align = "c",
        digits = 2) %>% 
  kable_material(html_font = "sans-serif") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Contribución de las variables en los Factores
Dim.1 Dim.2 Dim.3
X1 0.01 0.31 0.00
X2 0.00 0.34 0.00
X3 0.29 0.00 0.05
X4 0.31 0.00 0.04
X5 0.06 0.00 0.38
X6 0.02 0.00 0.49
X7 0.00 0.33 0.00
X8 0.31 0.00 0.04

Ejercicio 2

Para el factor 1, utilice el método CRITIC para obtener los ponderadores normalizados para cada variable.

ponderadores_critic <- function(matriz_datos) {
  # Desviaciones de las variables
  sigma <- apply(X = matriz_datos, MARGIN = 2, sd)
  # Correlaciones entre las variables
  rho <- cor(matriz_datos)
  # Suma de las correlaciones excedentes
  cj <- apply(X = 1 - rho, MARGIN = 2, sum)
  # Cálculos de ponderadores
  pesos_brutos <- sigma * cj
  pesos_normalizados <- prop.table(pesos_brutos)
  # Salida de resultados
  resultados <- list(pesos_brutos = pesos_brutos,
                     pesos_normalizados = pesos_normalizados)
  return(resultados) }
#Para el ponderador 1
data_pon1<-as.matrix(matriz_A[, c("X3", "X4", "X8")])
pesos_CRITIC<-ponderadores_critic(matriz_datos = data_pon1) %>% print()
## $pesos_brutos
##       X3       X4       X8 
## 2.098290 1.316004 2.389264 
## 
## $pesos_normalizados
##        X3        X4        X8 
## 0.3615524 0.2267580 0.4116896

Ejercicio 3

Para el factor 2, utilice el método de Entropía para obtener los ponderadores normalizados para cada variable.

### Método de Entropía
ponderadores_entropia <- function(matriz_datos, constante = 0){
  aij <- apply(X = matriz_datos + constante, MARGIN = 2, prop.table)
  log_aij <- apply(X = aij, MARGIN = 2, log10)
  aij_log_aij <- aij * log_aij
  sum_aij_log_aij <- apply(X = aij_log_aij, MARGIN = 2, sum)
  n <- nrow(matriz_datos)
  K <- 1 / log10(n)
  E <- (-K * sum_aij_log_aij)
  pesos_brutos <- 1 - E
  pesos_normalizados <- prop.table(pesos_brutos)
  resultados <- list(pesos_brutos = pesos_brutos,
                     pesos_normalizados = pesos_normalizados)
  return(resultados)
}
data_pon2<-as.matrix(matriz_A[, c("X1", "X2", "X7")])
pesos_entropia<-ponderadores_entropia(matriz_datos = data_pon2) %>% print()
## $pesos_brutos
##         X1         X2         X7 
## 0.01907864 0.24847378 0.13138306 
## 
## $pesos_normalizados
##         X1         X2         X7 
## 0.04782388 0.62284201 0.32933411

Ejercicio 4

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).

Clave B

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)[+]

La tasa de mortalidad (tasa_mor)[-]

Se cargan los datos

Seccion I

1.1

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

1.2

¿Qué variables quedan representadas en cada factor?

1.3

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

Seccion II

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.

Ejercicio 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)

Ejercicio 2

Usando la técnica de comparación por pares, calcule los pesos normalizados para las variables:

2.1

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

2.2

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