Desarrolle el siguiente ejercicio:

Se necesita construir un indicador multivariado sintético, que mida la “Seguridad Municipal” Para ello se dispone de la siguiente información:

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: 1.1 Los ponderadores normalizados para cada factor. 1.2 Las variables incluidas en cada factor.
  2. (25%) Para el factor 1, utilice el método CRITIC para obtener los ponderadores normalizados para cada variable.
  3. (25%) Para el factor 2, utilice el método de Entropía para obtener los ponderadores normalizados para cada variable.
  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).

# SOLUCION

### Matriz de informacion: X

# MATRIZ DE INFORMACION 
library(readr)
library(kableExtra)
load("C:/Users/Torres/Desktop/Parcial1Ej1/data_parcial_2_A_rev.RData")
head(datos_parcial_2, n=10) %>%
  kable(caption = "Tabla 1: Tabla de datos",
        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 datos proporcionados")
Tabla 1: Tabla de datos
ID Municipio X1 X2 X3 X4 X5 X6 X7 X8
1 ATIQUIZAYA 9 2 20.00 20.00 0.00 0.00 2 56.40
2 EL CARMEN 10 6 62.50 50.00 37.50 3.95 11 147.37
3 ALEGRIA 10 20 50.00 50.00 50.00 2.56 16 135.00
4 SAN JULIAN 8 3 42.86 42.86 14.29 1.35 35 121.14
5 TEJUTLA 7 7 75.00 75.00 75.00 9.09 8 202.50
6 PASAQUINA 6 13 30.00 30.00 30.00 8.11 25 81.00
7 JUAYUA 11 9 72.73 72.73 63.64 9.21 9 197.45
8 SAN SALVADOR 9 3 62.50 50.00 25.00 2.70 6 129.38
9 SAN PABLO TACACHICO 10 4 50.00 43.75 12.50 4.55 5 126.00
10 TEPECOYO 12 6 73.33 53.33 40.00 8.45 6 156.20
Fuente:
Elaboración propia con datos proporcionados
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))
}

# Normalización de Variables con correlación teórica  positiva
datos_parcial_2 %>%
  select(X1, X2, X3, X5, X7, X8) %>%
  apply(MARGIN = 2,
        FUN = norm_directa) %>%
  as.data.frame() -> variables_positivas
# Normalización de Variables con correlación teórica esperada negativa
datos_parcial_2 %>%
  select(X4,  X6) %>%
  apply(MARGIN = 2,
        FUN = norm_inversa) %>%
  as.data.frame() -> variables_negativas

# Suprimir Val=NULL
datos_parcial_2 %>% replace_na(
  list(
    X1 = 0,
    X2 = 0,
    X3 = 0,
    X4 = 0,
    X5 = 0,
    X6 = 0,
    X7 = 0,
    X8 = 0
  )
) -> datos_parcial_2

# Acoplamiento de las variables previamente normalizadas según su correlación
variables_positivas %>%
  bind_cols(variables_negativas) %>%
  select(X1,
         X2,
         X3,
         X4,
         X5,
         X6,
         X7,
         X8) -> datos_normalizados

# formato de presentación de la muestra
head(datos_normalizados) %>%
  kable(caption = "Tabla 2: DatOS NormalizadOS.",
    col.names = c(
      "X1",
                  "X2",
                  "X3",
                  "X4",
                  "X5",
                  "X6",
                  "X7",
                  "X8"
    ),
    align = "c",
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "Fuente:",
           general = "Elaboracion propia con datos proporcionados")
Tabla 2: DatOS NormalizadOS.
X1 X2 X3 X4 X5 X6 X7 X8
0.19 0.00 0.04 0.80 0.00 1.00 0.00 0.16
0.23 0.02 0.55 0.50 0.43 0.78 0.10 0.52
0.23 0.08 0.40 0.50 0.57 0.86 0.15 0.47
0.16 0.00 0.31 0.57 0.16 0.93 0.36 0.41
0.13 0.02 0.70 0.25 0.86 0.50 0.07 0.73
0.10 0.05 0.16 0.70 0.34 0.56 0.25 0.26
Fuente:
Elaboracion propia con datos proporcionados
# Matriz-Correlación
library(PerformanceAnalytics)
chart.Correlation(as.matrix(datos_normalizados),
                  histogram = TRUE,
                  pch = 12)

# Prueba: KMO
library(rela)
KMO <- paf(as.matrix(datos_normalizados))$KMO
# formato de Salida al valor KMO
KMO %>%
  kable(
    caption = "Tabla 3: Prueba de adecuacion 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 = "Elaboracion propia con datos proporcionados")
Tabla 3: Prueba de adecuacion muestral de Kaiser Meyer Olkin.
KMO
0.6793
Fuente:
Elaboracion propia con datos proporcionados
# Prueba de Barlett
library(psych)
Barlett <- cortest.bartlett(datos_normalizados)
# 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 = "Elaboracion propia con datos proporcionados")
Tabla 4: Prueba de Barlett
Chisq P-Value Df
1025.9 0 28
Fuente:
Elaboracion propia con datos proporcionados

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 análisis factorial empleado porque existe multicolinealidad en los valores de la matriz de información

Analisis Factorial

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 analisis 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 datos proporcionados")
Tabla 5: Resumen de analisis de Componentes Principales (PCA)
Autovalores Varianza (%) Varianza Acumulada (%)
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 datos proporcionados
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
## X1 -0.14  0.80 0.67 0.335 1.1
## X2  0.06  0.84 0.71 0.293 1.0
## X3  0.93 -0.10 0.88 0.117 1.0
## X4 -0.94  0.06 0.90 0.104 1.0
## X5  0.79 -0.06 0.62 0.376 1.0
## X6 -0.69  0.03 0.48 0.516 1.0
## X7 -0.07  0.83 0.69 0.311 1.0
## X8  0.95 -0.07 0.91 0.088 1.0
## 
##                        RC1  RC2
## SS loadings           3.80 2.06
## Proportion Var        0.48 0.26
## Cumulative Var        0.48 0.73
## Proportion Explained  0.65 0.35
## Cumulative Proportion 0.65 1.00
## 
## Mean item complexity =  1
## Test of the hypothesis that 2 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.1 
## 
## Fit based upon off diagonal values = 0.96

grafica

#grafica
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 
)

Podenradores normalizados

# Cargas de cada dimension
library(kableExtra)
cargas <- rotacion$loadings[1:8, 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 datos proporcionados")
Tabla 6: Ponderadores de los Factores Extraídos
Factor 1 Factor 2
0.65 0.35
Fuente:
Elaboración propia con datos proporcionados
library(dplyr)
library(kableExtra)
# Contribuciones
contribuciones <- apply(cargas ^ 2, MARGIN = 2, prop.table)
  data.frame(
    contribuciones,
    row.names = c(
      "X1",
                  "X2",
                  "X3",
                  "X4",
                  "X5",
                  "X6",
                  "X7",
                  "X8"
      
      ))%>% 
  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 datos proporcionados")
Tabla 7: Contribución de las variables en los Factores.
Factor 1 Factor 2
X1 0.01 0.31
X2 0.00 0.34
X3 0.23 0.01
X4 0.23 0.00
X5 0.16 0.00
X6 0.13 0.00
X7 0.00 0.33
X8 0.24 0.00
Fuente:
Elaboración propia con datos proporcionados

factor 1: Método crítico

#Funciones para normalizar los datos
norm_directa <- function(x){
  return((x-min(x)) / (max(x)-min(x)))
}
norm_inverza <- function(x){
  return((max(x)-x) / (max(x)-min(x)))
}

# Normalización de los datos
library(dplyr)
datos_parcial_2 %>% dplyr::select(X3,X4,X8) %>% dplyr::transmute(X3=norm_directa(X3),X4=norm_directa(X4), X8=norm_inverza(X8)) ->data_factor_1
print(data_factor_1)
## # A tibble: 108 × 3
##       X3    X4    X8
##    <dbl> <dbl> <dbl>
##  1 0.04  0.2   0.842
##  2 0.55  0.5   0.483
##  3 0.4   0.5   0.532
##  4 0.314 0.429 0.587
##  5 0.7   0.75  0.266
##  6 0.16  0.3   0.745
##  7 0.673 0.727 0.286
##  8 0.55  0.5   0.554
##  9 0.4   0.437 0.567
## 10 0.68  0.533 0.448
## # … with 98 more rows

Desviaciones estandar

data_factor_1 %>% dplyr::summarise(S3=sd(X3),S4=sd(X4),S8=sd(X8))-> sd_vector
print(sd_vector)
## # A tibble: 1 × 3
##      S3    S4    S8
##   <dbl> <dbl> <dbl>
## 1 0.246 0.201 0.209

matriz de correlacion

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

calculo de pondedadores brutos

1-mat_R_F1->sum_data
colSums(sum_data)->sum_vector
sd_vector*sum_vector->vj
print(vj)
##        S3      S4      S8
## 1 0.49757 0.41372 0.82555

calculo de podnedadores netos

vj/sum(vj)->wj
#print(wj)

print(round(wj*100,2))
##      S3    S4    S8
## 1 28.65 23.82 47.53

FAcTOR 2: metodo de entopia

normanlización de daytos

datos_parcial_2 %>% dplyr::select(X1,X2,X7)->data_norm
apply(data_norm,2,prop.table)->data_norm
print(head(data_norm, n=10))
##              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
##  [7,] 0.0095486 0.00318302 0.0062937
##  [8,] 0.0078125 0.00106101 0.0041958
##  [9,] 0.0086806 0.00141468 0.0034965
## [10,] 0.0104167 0.00212202 0.0041958

formula de entropia

funcion_entropia<-function(x){
  return(x*log(x))
}
apply(data_norm,2,funcion_entropia)->data_norm_2
#data_norm_2[is.na(data_norm_2)] <- 0
print(head(data_norm_2, n=10))
##              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
##  [7,] -0.044414 -0.0183021 -0.031898
##  [8,] -0.037906 -0.0072664 -0.022966
##  [9,] -0.041204 -0.0092815 -0.019776
## [10,] -0.047545 -0.0130618 -0.022966
#Número de variables en el factor:
ncol(data_norm)->m
#Constante de entropía:
-1/log(m)->K
print(K)
## [1] -0.91024

calculo de entropias

K*colSums(data_norm_2)->Ej
print(Ej)
##     X1     X2     X7 
## 4.1805 3.2029 3.7019

calculo de especificidades

1-Ej->vj
print(vj)
##      X1      X2      X7 
## -3.1805 -2.2029 -2.7019

calculo de pondedadores

prop.table(vj)->wj #es igual a usar vj/sum(vj)
print(wj)
##      X1      X2      X7 
## 0.39337 0.27245 0.33417

factor 3: metodo de Ranking

library(magrittr)
#Vector de Jerarquías
datos_ranking_suma<-select(datos_parcial_2,"X5","X6")
names(datos_ranking_suma)<-c("X1","X2")

#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(datos_ranking_suma)

#Pesos brutos
pesos_ranking_suma$w_brutos
##           X1         X2
## 1     3.0000   3.000000
## 2   -34.5000  -0.947368
## 3   -47.0000   0.435897
## 4   -11.2857   1.648649
## 5   -72.0000  -6.090909
## 6   -27.0000  -5.108108
## 7   -60.6364  -6.210526
## 8   -22.0000   0.297297
## 9    -9.5000  -1.545455
## 10  -37.0000  -5.450704
## 11  -42.0000  -8.688312
## 12  -42.4545  -3.756757
## 13  -72.0000  -4.692308
## 14   -5.3333   1.550725
## 15    3.0000   3.000000
## 16  -20.5294  -2.970149
## 17    3.0000   3.000000
## 18  -27.0000  -4.317073
## 19  -84.5000  -5.860759
## 20  -57.0000  -2.660377
## 21  -17.8333   1.344371
## 22    3.0000   3.000000
## 23  -15.1818   0.183099
## 24  -13.6667   0.959184
## 25  -47.0000  -2.263158
## 26  -63.6667  -2.128205
## 27    3.0000   3.000000
## 28  -47.0000   1.734177
## 29  -20.0769  -1.285714
## 30    3.0000   3.000000
## 31    3.0000   3.000000
## 32  -72.0000  -6.090909
## 33  -63.6667  -2.128205
## 34  -52.5556  -3.578947
## 35  -40.7500  -6.859155
## 36   -9.5000   1.630137
## 37  -30.3333  -4.894737
## 38  -47.0000  -8.428571
## 39    3.0000   3.000000
## 40  -15.7500  -1.477612
## 41  -47.0000   0.468354
## 42  -15.1818   1.591549
## 43  -37.0000  -2.405405
## 44  -49.1739 -14.391304
## 45  -27.0000  -4.894737
## 46  -27.7692  -2.633803
## 47  -10.3333  -0.030303
## 48  -57.8696 -15.309859
## 49  -24.2727   0.222222
## 50  -37.0000  -5.450704
## 51   -4.6923   1.550725
## 52  -22.0000  -4.692308
## 53    3.0000   3.000000
## 54  -13.6667   1.666667
## 55    3.0000   3.000000
## 56  -17.0000  -1.687500
## 57  -15.1818   0.183099
## 58  -30.3333   1.507463
## 59  -30.3333  -2.555556
## 60  -30.3333  -7.606061
## 61    3.0000   3.000000
## 62  -19.2222   0.260274
## 63  -38.6667  -3.849315
## 64  -37.0000  -2.405405
## 65  -30.3333  -5.510638
## 66  -13.6667  -5.163265
## 67  -30.3333  -4.142857
## 68  -37.7407  -3.321839
## 69  -24.7778  -4.575758
## 70  -17.0000  -2.405405
## 71  -22.0000   1.648649
## 72  -44.8261 -13.176471
## 73    3.0000   3.000000
## 74   -2.0000   1.360656
## 75  -41.4444  -8.428571
## 76  -30.3333  -1.054054
## 77  -30.3333  -4.142857
## 78   -6.0909   1.734177
## 79  -41.4444  -8.428571
## 80  -47.0000  -0.508772
## 81  -30.3333  -0.508772
## 82  -17.0000  -3.153846
## 83  -34.5000  -8.111111
## 84    3.0000   3.000000
## 85  -12.3846   0.101449
## 86   -4.6923   1.529412
## 87  -51.5455 -14.142857
## 88   -8.1111   1.611111
## 89  -44.0588  -6.859155
## 90    3.0000   3.000000
## 91  -63.6667  -4.792208
## 92  -43.6667 -10.725490
## 93    3.0000   3.000000
## 94   -5.3333   1.550725
## 95    3.0000   3.000000
## 96  -27.4348  -7.937500
## 97  -30.3333  -6.523810
## 98  -27.4348  -7.937500
## 99  -29.3529  -2.583756
## 100 -18.4286  -1.347826
## 101   3.0000   3.000000
## 102 -47.0000  -5.108108
## 103 -57.0000 -13.666667
## 104 -58.9048 -15.055556
## 105 -30.3333   0.368421
## 106 -18.4286  -1.347826
## 107 -68.4286  -3.410256
## 108 -24.2727  -6.375000

pesos normalizados

pesos_ranking_suma$w_normalizados %>% round(digits = 3)
##         X1     X2
## 1   -0.001 -0.001
## 2    0.011  0.000
## 3    0.015  0.000
## 4    0.004 -0.001
## 5    0.022  0.002
## 6    0.008  0.002
## 7    0.019  0.002
## 8    0.007  0.000
## 9    0.003  0.000
## 10   0.012  0.002
## 11   0.013  0.003
## 12   0.013  0.001
## 13   0.022  0.001
## 14   0.002  0.000
## 15  -0.001 -0.001
## 16   0.006  0.001
## 17  -0.001 -0.001
## 18   0.008  0.001
## 19   0.026  0.002
## 20   0.018  0.001
## 21   0.006  0.000
## 22  -0.001 -0.001
## 23   0.005  0.000
## 24   0.004  0.000
## 25   0.015  0.001
## 26   0.020  0.001
## 27  -0.001 -0.001
## 28   0.015 -0.001
## 29   0.006  0.000
## 30  -0.001 -0.001
## 31  -0.001 -0.001
## 32   0.022  0.002
## 33   0.020  0.001
## 34   0.016  0.001
## 35   0.013  0.002
## 36   0.003 -0.001
## 37   0.009  0.002
## 38   0.015  0.003
## 39  -0.001 -0.001
## 40   0.005  0.000
## 41   0.015  0.000
## 42   0.005  0.000
## 43   0.012  0.001
## 44   0.015  0.004
## 45   0.008  0.002
## 46   0.009  0.001
## 47   0.003  0.000
## 48   0.018  0.005
## 49   0.008  0.000
## 50   0.012  0.002
## 51   0.001  0.000
## 52   0.007  0.001
## 53  -0.001 -0.001
## 54   0.004 -0.001
## 55  -0.001 -0.001
## 56   0.005  0.001
## 57   0.005  0.000
## 58   0.009  0.000
## 59   0.009  0.001
## 60   0.009  0.002
## 61  -0.001 -0.001
## 62   0.006  0.000
## 63   0.012  0.001
## 64   0.012  0.001
## 65   0.009  0.002
## 66   0.004  0.002
## 67   0.009  0.001
## 68   0.012  0.001
## 69   0.008  0.001
## 70   0.005  0.001
## 71   0.007 -0.001
## 72   0.014  0.004
## 73  -0.001 -0.001
## 74   0.001  0.000
## 75   0.013  0.003
## 76   0.009  0.000
## 77   0.009  0.001
## 78   0.002 -0.001
## 79   0.013  0.003
## 80   0.015  0.000
## 81   0.009  0.000
## 82   0.005  0.001
## 83   0.011  0.003
## 84  -0.001 -0.001
## 85   0.004  0.000
## 86   0.001  0.000
## 87   0.016  0.004
## 88   0.003 -0.001
## 89   0.014  0.002
## 90  -0.001 -0.001
## 91   0.020  0.001
## 92   0.014  0.003
## 93  -0.001 -0.001
## 94   0.002  0.000
## 95  -0.001 -0.001
## 96   0.009  0.002
## 97   0.009  0.002
## 98   0.009  0.002
## 99   0.009  0.001
## 100  0.006  0.000
## 101 -0.001 -0.001
## 102  0.015  0.002
## 103  0.018  0.004
## 104  0.018  0.005
## 105  0.009  0.000
## 106  0.006  0.000
## 107  0.021  0.001
## 108  0.008  0.002

grafica

barplot(as.matrix(pesos_ranking_suma$w_normalizados),
        main = "Ponderadores Ranking de Suma",
        ylim = c(0,1.0),col = "blue")