carga de datos
library(dplyr)
##
## Attaching package: '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)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
load("E:/data_parcial_2_A.RData")
head(datos_parcial_2)
## # A tibble: 6 × 10
## ID Municipio X1 X2 X3 X4 X5 X6 X7 X8
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 ATIQUIZAYA 9 2 20 20 0 0 2 56.4
## 2 2 EL CARMEN 10 6 62.5 50 37.5 3.95 11 147.
## 3 3 ALEGRIA 10 20 50 50 50 2.56 16 135
## 4 4 SAN JULIAN 8 3 42.9 42.9 14.3 1.35 35 121.
## 5 5 TEJUTLA 7 7 75 75 75 9.09 8 202.
## 6 6 PASAQUINA 6 13 30 30 30 8.11 25 81
Normalización de los datos
library(dplyr)
options(scipen = 99999)
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
datos_parcial_2 %>%
select(X1,X2,X3,X5,X7,X8) %>%
apply(MARGIN = 2,FUN = norm_directa) %>% as.data.frame()->variables_corr_positiva
#Seleccionando las variables con correlación negativa
datos_parcial_2 %>%
select(X4,X6) %>%
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)->datos_parcial_2_normalizados
head(datos_parcial_2_normalizados)
## X1 X2 X3 X4 X5 X6 X7
## 1 0.19354839 0.000000000 0.0400000 0.8000000 0.0000000 1.0000000 0.00000000
## 2 0.22580645 0.017167382 0.5500000 0.5000000 0.4285714 0.7844130 0.09890110
## 3 0.22580645 0.077253219 0.4000000 0.5000000 0.5714286 0.8599606 0.15384615
## 4 0.16129032 0.004291845 0.3142857 0.5714286 0.1632653 0.9261954 0.36263736
## 5 0.12903226 0.021459227 0.7000000 0.2500000 0.8571429 0.5034965 0.06593407
## 6 0.09677419 0.047210300 0.1600000 0.7000000 0.3428571 0.5571726 0.25274725
## X8
## 1 0.1582266
## 2 0.5167488
## 3 0.4679803
## 4 0.4133709
## 5 0.7339901
## 6 0.2551724
Matriz de Correlación & Pruebas de Barlett y KMO
#Matriz de correlación
library(PerformanceAnalytics)
chart.Correlation(as.matrix(datos_parcial_2_normalizados),histogram = TRUE,pch=12)
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
Solución Rotada
library(psych)
data<-datos_parcial_2[,-2]
modelo_3<-principal(r = data,nfactors = 3,covar = FALSE,rotate = "varimax")
modelo_3$loadings
##
## Loadings:
## RC1 RC2 RC3
## ID 0.973
## X1 -0.152 0.798
## X2 0.831 0.104
## X3 0.930 -0.103
## X4 0.939 0.105
## X5 0.804 -0.233
## X6 0.696
## X7 0.834
## X8 0.948
##
## RC1 RC2 RC3
## SS loadings 3.813 2.053 1.049
## Proportion Var 0.424 0.228 0.117
## Cumulative Var 0.424 0.652 0.768
Normalización de datos y cálculos
#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(X1,X3,X4,X5,X6,X8) %>% dplyr::transmute(X1=norm_inverza(X1),X3=norm_directa(X3),X4=norm_directa(X4),X5=norm_directa(X5),X6=norm_directa(X6), X8=norm_directa(X8)) ->data_factor_1
print(data_factor_1)
## # A tibble: 108 × 6
## X1 X3 X4 X5 X6 X8
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.806 0.04 0.2 0 0 0.158
## 2 0.774 0.55 0.5 0.429 0.216 0.517
## 3 0.774 0.4 0.5 0.571 0.140 0.468
## 4 0.839 0.314 0.429 0.163 0.0738 0.413
## 5 0.871 0.7 0.75 0.857 0.497 0.734
## 6 0.903 0.16 0.3 0.343 0.443 0.255
## 7 0.742 0.673 0.727 0.727 0.503 0.714
## 8 0.806 0.55 0.5 0.286 0.148 0.446
## 9 0.774 0.4 0.437 0.143 0.248 0.433
## 10 0.710 0.68 0.533 0.457 0.462 0.552
## # … with 98 more rows
#Cálculo de las desviaciones estándar de cada variable
data_factor_1 %>% dplyr::summarise(S6=sd(X1),S3=sd(X3),S4=sd(X4), S5=sd(X5),S6=sd(X6),S8=sd(X8))-> sd_vector
print(sd_vector)
## # A tibble: 1 × 5
## S6 S3 S4 S5 S8
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.250 0.246 0.201 0.245 0.209
#Cálculo de la matriz de correlación
cor(data_factor_1)->mat_R_F1
print(mat_R_F1)
## X1 X3 X4 X5 X6 X8
## X1 1.00000000 0.1997783 0.1821490 0.1648052 0.08668403 0.1867325
## X3 0.19977834 1.0000000 0.9387159 0.5994166 0.50608068 0.9590445
## X4 0.18214897 0.9387159 1.0000000 0.6100016 0.48172812 0.9958479
## X5 0.16480518 0.5994166 0.6100016 1.0000000 0.69377337 0.6191349
## X6 0.08668403 0.5060807 0.4817281 0.6937734 1.00000000 0.4913386
## X8 0.18673249 0.9590445 0.9958479 0.6191349 0.49133862 1.0000000
#Cálculo de los ponderadores brutos
1-mat_R_F1->sum_data
colSums(sum_data)->sum_vector
sd_vector*sum_vector->vj
print(vj)
## S6 S3 S4 S5 S8
## 1 1.04679 0.442555 0.3603048 0.567286 0.5720347
#Cálculo de los ponderadores netos
vj/sum(vj)->wj
print(wj)
## S6 S3 S4 S5 S8
## 1 0.3502177 0.1480627 0.1205448 0.1897931 0.1913818
#Ponderadores:
print(round(wj*100,2))
## S6 S3 S4 S5 S8
## 1 35.02 14.81 12.05 18.98 19.14
Método de Entropía
#Normalización de los datos
datos_parcial_2 %>% dplyr::select(X1,X2,X3,X7)->data_norm
apply(data_norm,2,prop.table)->data_norm
print(data_norm)
## X1 X2 X3 X7
## [1,] 0.007812500 0.0007073386 0.003187702 0.001398601
## [2,] 0.008680556 0.0021220159 0.009961569 0.007692308
## [3,] 0.008680556 0.0070733864 0.007969255 0.011188811
## [4,] 0.006944444 0.0010610080 0.006830790 0.024475524
## [5,] 0.006076389 0.0024756852 0.011953883 0.005594406
## [6,] 0.005208333 0.0045977011 0.004781553 0.017482517
## [7,] 0.009548611 0.0031830239 0.011591644 0.006293706
## [8,] 0.007812500 0.0010610080 0.009961569 0.004195804
## [9,] 0.008680556 0.0014146773 0.007969255 0.003496503
## [10,] 0.010416667 0.0021220159 0.011688241 0.004195804
## [11,] 0.011284722 0.0014146773 0.014344660 0.002097902
## [12,] 0.009548611 0.0007073386 0.010142689 0.006293706
## [13,] 0.010416667 0.0042440318 0.013946197 0.001398601
## [14,] 0.014756944 0.0014146773 0.003984628 0.002797203
## [15,] 0.008680556 0.0063660477 0.007969255 0.016083916
## [16,] 0.010416667 0.0007073386 0.011250713 0.004895105
## [17,] 0.007812500 0.0014146773 0.011953883 0.012587413
## [18,] 0.006076389 0.0024756852 0.009563106 0.012587413
## [19,] 0.006944444 0.0031830239 0.013946197 0.002797203
## [20,] 0.009548611 0.0028293546 0.012750809 0.015384615
## [21,] 0.010416667 0.0070733864 0.007305151 0.009790210
## [22,] 0.009548611 0.0056587091 0.006375404 0.001398601
## [23,] 0.009548611 0.0017683466 0.005795822 0.011188811
## [24,] 0.006076389 0.0106100796 0.005312837 0.020979021
## [25,] 0.006944444 0.0056587091 0.009961569 0.002797203
## [26,] 0.008680556 0.0063660477 0.013282092 0.004895105
## [27,] 0.010416667 0.0056587091 0.006375404 0.006293706
## [28,] 0.005208333 0.0106100796 0.007969255 0.011188811
## [29,] 0.008680556 0.0682581786 0.007356236 0.002097902
## [30,] 0.009548611 0.0014146773 0.003984628 0.006993007
## [31,] 0.008680556 0.0007073386 0.002656418 0.001398601
## [32,] 0.004340278 0.0014146773 0.011953883 0.002797203
## [33,] 0.011284722 0.0123784262 0.013282092 0.006993007
## [34,] 0.006944444 0.0014146773 0.012396619 0.005594406
## [35,] 0.006076389 0.0010610080 0.011953883 0.004895105
## [36,] 0.019097222 0.0081343943 0.005976942 0.007692308
## [37,] 0.008680556 0.0021220159 0.010625674 0.003496503
## [38,] 0.007812500 0.0035366932 0.010957726 0.009090909
## [39,] 0.007812500 0.0159151194 0.003984628 0.002797203
## [40,] 0.007812500 0.0028293546 0.002988471 0.001398601
## [41,] 0.009548611 0.0028293546 0.011953883 0.003496503
## [42,] 0.009548611 0.0035366932 0.010142689 0.007692308
## [43,] 0.005208333 0.0007073386 0.009563106 0.013986014
## [44,] 0.011284722 0.0017683466 0.011780638 0.003496503
## [45,] 0.006944444 0.0424403183 0.007969255 0.020979021
## [46,] 0.006944444 0.0007073386 0.011034354 0.001398601
## [47,] 0.008680556 0.0014146773 0.007437972 0.002797203
## [48,] 0.006076389 0.0010610080 0.011780638 0.002097902
## [49,] 0.008680556 0.0035366932 0.005795822 0.006993007
## [50,] 0.008680556 0.0038903625 0.009563106 0.002797203
## [51,] 0.006944444 0.0007073386 0.007356236 0.001398601
## [52,] 0.005208333 0.0038903625 0.009961569 0.007692308
## [53,] 0.012152778 0.0028293546 0.007969255 0.002797203
## [54,] 0.005208333 0.0007073386 0.007969255 0.006293706
## [55,] 0.013020833 0.0015915119 0.007969255 0.020979021
## [56,] 0.009548611 0.0010610080 0.007969255 0.002097902
## [57,] 0.005208333 0.0045977011 0.004346867 0.065034965
## [58,] 0.018229167 0.0007073386 0.005312837 0.004195804
## [59,] 0.009548611 0.0007073386 0.014610302 0.001398601
## [60,] 0.010416667 0.0017683466 0.007589767 0.004895105
## [61,] 0.006944444 0.0024756852 0.005312837 0.012587413
## [62,] 0.029513889 0.0831122900 0.008854728 0.065034965
## [63,] 0.007812500 0.0007073386 0.010625674 0.009790210
## [64,] 0.010416667 0.0682581786 0.011156958 0.044055944
## [65,] 0.006944444 0.0070733864 0.009297465 0.003496503
## [66,] 0.010416667 0.0106100796 0.007305151 0.002097902
## [67,] 0.008680556 0.0679045093 0.009563106 0.011888112
## [68,] 0.008680556 0.0045977011 0.010035359 0.020979021
## [69,] 0.010416667 0.0056587091 0.006198310 0.006993007
## [70,] 0.005208333 0.0007073386 0.012750809 0.011188811
## [71,] 0.010416667 0.0159151194 0.005976942 0.001398601
## [72,] 0.008680556 0.0031830239 0.012473617 0.019580420
## [73,] 0.008680556 0.0021220159 0.005312837 0.004195804
## [74,] 0.007812500 0.0007073386 0.008766181 0.001398601
## [75,] 0.011284722 0.0021220159 0.014167565 0.004195804
## [76,] 0.008680556 0.0021220159 0.015938511 0.002097902
## [77,] 0.008680556 0.0679045093 0.010625674 0.001398601
## [78,] 0.008680556 0.0024756852 0.004346867 0.004195804
## [79,] 0.008680556 0.0010610080 0.012396619 0.002797203
## [80,] 0.006944444 0.0063660477 0.007969255 0.012587413
## [81,] 0.007812500 0.0106100796 0.013282092 0.020979021
## [82,] 0.029513889 0.0831122900 0.004781553 0.065034965
## [83,] 0.006076389 0.0686118479 0.013946197 0.003496503
## [84,] 0.009548611 0.0007073386 0.015938511 0.001398601
## [85,] 0.008680556 0.0017683466 0.008582275 0.003496503
## [86,] 0.006076389 0.0007073386 0.006130196 0.001398601
## [87,] 0.005208333 0.0010610080 0.015214033 0.002797203
## [88,] 0.013020833 0.0017683466 0.003541891 0.006293706
## [89,] 0.008680556 0.0007073386 0.008438035 0.001398601
## [90,] 0.013888889 0.0021220159 0.002656418 0.006993007
## [91,] 0.007812500 0.0017683466 0.012396619 0.006293706
## [92,] 0.004340278 0.0014146773 0.012750809 0.001398601
## [93,] 0.003472222 0.0014146773 0.005312837 0.002097902
## [94,] 0.012152778 0.0505747126 0.011953883 0.002797203
## [95,] 0.007812500 0.0014146773 0.007969255 0.004895105
## [96,] 0.019965278 0.0024756852 0.008315745 0.004895105
## [97,] 0.008680556 0.0014146773 0.009740201 0.002797203
## [98,] 0.007812500 0.0024756852 0.011087660 0.004895105
## [99,] 0.009548611 0.0028293546 0.008906815 0.044055944
## [100,] 0.029513889 0.0831122900 0.007969255 0.065034965
## [101,] 0.006076389 0.0010610080 0.015938511 0.003496503
## [102,] 0.005208333 0.0014146773 0.011953883 0.002097902
## [103,] 0.010416667 0.0010610080 0.011156958 0.001398601
## [104,] 0.010416667 0.0056587091 0.012143627 0.002097902
## [105,] 0.006076389 0.0007073386 0.010625674 0.001398601
## [106,] 0.010416667 0.0063660477 0.007969255 0.012587413
## [107,] 0.002604167 0.0028293546 0.011384651 0.011188811
## [108,] 0.009548611 0.0021220159 0.006520300 0.002097902
#Fórmula de entropía
entropy<-function(x){
return(x*log(x))
}
apply(data_norm,2,entropy)->data_norm_2
print(data_norm_2)
## X1 X2 X3 X7
## [1,] -0.03790649 -0.005131035 -0.01832436 -0.009192004
## [2,] -0.04120373 -0.013061833 -0.04591308 -0.037442573
## [3,] -0.04120373 -0.035023278 -0.03850875 -0.050269550
## [4,] -0.03451259 -0.007266351 -0.03406047 -0.090806195
## [5,] -0.03100991 -0.014857176 -0.05291624 -0.029012521
## [6,] -0.02738279 -0.024745742 -0.02554779 -0.070743949
## [7,] -0.04441402 -0.018302144 -0.05166942 -0.031897795
## [8,] -0.03790649 -0.007266351 -0.04591308 -0.022966449
## [9,] -0.04120373 -0.009281491 -0.03850875 -0.019776195
## [10,] -0.04754529 -0.013061833 -0.05200300 -0.022966449
## [11,] -0.05060414 -0.009281491 -0.06088415 -0.012937379
## [12,] -0.04441402 -0.005131035 -0.04656511 -0.031897795
## [13,] -0.04754529 -0.023181927 -0.05958580 -0.009192004
## [14,] -0.06221589 -0.009281491 -0.02201631 -0.016445134
## [15,] -0.04120373 -0.032191680 -0.03850875 -0.066425536
## [16,] -0.04754529 -0.005131035 -0.05048559 -0.026039606
## [17,] -0.03790649 -0.009281491 -0.05291624 -0.055070660
## [18,] -0.03100991 -0.014857176 -0.04446694 -0.055070660
## [19,] -0.03451259 -0.018302144 -0.05958580 -0.016445134
## [20,] -0.04441402 -0.016601823 -0.05562107 -0.064221343
## [21,] -0.04754529 -0.035023278 -0.03593532 -0.045293156
## [22,] -0.04441402 -0.029281327 -0.03222963 -0.009192004
## [23,] -0.04441402 -0.011207268 -0.02985207 -0.050269550
## [24,] -0.03100991 -0.048232900 -0.02782667 -0.081067811
## [25,] -0.03451259 -0.029281327 -0.04591308 -0.016445134
## [26,] -0.04120373 -0.032191680 -0.05739642 -0.026039606
## [27,] -0.04754529 -0.029281327 -0.03222963 -0.031897795
## [28,] -0.02738279 -0.048232900 -0.03850875 -0.050269550
## [29,] -0.04120373 -0.183236215 -0.03613535 -0.012937379
## [30,] -0.04441402 -0.009281491 -0.02201631 -0.034705207
## [31,] -0.04120373 -0.005131035 -0.01575462 -0.009192004
## [32,] -0.02361032 -0.009281491 -0.05291624 -0.016445134
## [33,] -0.05060414 -0.054363574 -0.05739642 -0.034705207
## [34,] -0.03451259 -0.009281491 -0.05442527 -0.029012521
## [35,] -0.03100991 -0.007266351 -0.05291624 -0.026039606
## [36,] -0.07559086 -0.039139891 -0.03060102 -0.037442573
## [37,] -0.04120373 -0.013061833 -0.04828819 -0.019776195
## [38,] -0.03790649 -0.019963088 -0.04946000 -0.042731640
## [39,] -0.03790649 -0.065896324 -0.02201631 -0.016445134
## [40,] -0.03790649 -0.016601823 -0.01737196 -0.009192004
## [41,] -0.04441402 -0.016601823 -0.05291624 -0.019776195
## [42,] -0.04441402 -0.019963088 -0.04656511 -0.037442573
## [43,] -0.02738279 -0.005131035 -0.04446694 -0.059716048
## [44,] -0.05060414 -0.011207268 -0.05232132 -0.019776195
## [45,] -0.03451259 -0.134096826 -0.03850875 -0.081067811
## [46,] -0.03451259 -0.005131035 -0.04972898 -0.009192004
## [47,] -0.04120373 -0.009281491 -0.03645467 -0.016445134
## [48,] -0.03100991 -0.007266351 -0.05232132 -0.012937379
## [49,] -0.04120373 -0.019963088 -0.02985207 -0.034705207
## [50,] -0.04120373 -0.021588606 -0.04446694 -0.016445134
## [51,] -0.03451259 -0.005131035 -0.03613535 -0.009192004
## [52,] -0.02738279 -0.021588606 -0.04591308 -0.037442573
## [53,] -0.05359615 -0.016601823 -0.03850875 -0.016445134
## [54,] -0.02738279 -0.005131035 -0.03850875 -0.031897795
## [55,] -0.05652610 -0.010254224 -0.03850875 -0.081067811
## [56,] -0.04441402 -0.007266351 -0.03850875 -0.012937379
## [57,] -0.02738279 -0.024745742 -0.02363956 -0.177729518
## [58,] -0.07300293 -0.005131035 -0.02782667 -0.022966449
## [59,] -0.04441402 -0.005131035 -0.06174355 -0.009192004
## [60,] -0.04754529 -0.011207268 -0.03704531 -0.026039606
## [61,] -0.03451259 -0.014857176 -0.02782667 -0.055070660
## [62,] -0.10397431 -0.206747032 -0.04185456 -0.177729518
## [63,] -0.03790649 -0.005131035 -0.04828819 -0.045293156
## [64,] -0.04754529 -0.183236215 -0.05015824 -0.137555654
## [65,] -0.03451259 -0.035023278 -0.04349367 -0.019776195
## [66,] -0.04754529 -0.048232900 -0.03593532 -0.012937379
## [67,] -0.04120373 -0.182639556 -0.04446694 -0.052690684
## [68,] -0.04120373 -0.024745742 -0.04617911 -0.081067811
## [69,] -0.04754529 -0.029281327 -0.03150898 -0.034705207
## [70,] -0.02738279 -0.005131035 -0.05562107 -0.050269550
## [71,] -0.04754529 -0.065896324 -0.03060102 -0.009192004
## [72,] -0.04120373 -0.018302144 -0.05468608 -0.077014200
## [73,] -0.04120373 -0.013061833 -0.02782667 -0.022966449
## [74,] -0.03790649 -0.005131035 -0.04152412 -0.009192004
## [75,] -0.05060414 -0.013061833 -0.06030849 -0.022966449
## [76,] -0.04120373 -0.013061833 -0.06596977 -0.012937379
## [77,] -0.04120373 -0.182639556 -0.04828819 -0.009192004
## [78,] -0.04120373 -0.014857176 -0.02363956 -0.022966449
## [79,] -0.04120373 -0.007266351 -0.05442527 -0.016445134
## [80,] -0.03451259 -0.032191680 -0.03850875 -0.055070660
## [81,] -0.03790649 -0.048232900 -0.05739642 -0.081067811
## [82,] -0.10397431 -0.206747032 -0.02554779 -0.177729518
## [83,] -0.03100991 -0.183831041 -0.05958580 -0.019776195
## [84,] -0.04441402 -0.005131035 -0.06596977 -0.009192004
## [85,] -0.04120373 -0.011207268 -0.04083495 -0.019776195
## [86,] -0.03100991 -0.005131035 -0.03123046 -0.009192004
## [87,] -0.02738279 -0.007266351 -0.06367890 -0.016445134
## [88,] -0.05652610 -0.011207268 -0.01998723 -0.031897795
## [89,] -0.04120373 -0.005131035 -0.04029167 -0.009192004
## [90,] -0.05939814 -0.013061833 -0.01575462 -0.034705207
## [91,] -0.03790649 -0.011207268 -0.05442527 -0.031897795
## [92,] -0.02361032 -0.009281491 -0.05562107 -0.009192004
## [93,] -0.01966306 -0.009281491 -0.02782667 -0.012937379
## [94,] -0.05359615 -0.150930296 -0.05291624 -0.016445134
## [95,] -0.03790649 -0.009281491 -0.03850875 -0.026039606
## [96,] -0.07813932 -0.014857176 -0.03982913 -0.026039606
## [97,] -0.04120373 -0.009281491 -0.04511168 -0.016445134
## [98,] -0.03790649 -0.014857176 -0.04991578 -0.026039606
## [99,] -0.04441402 -0.016601823 -0.04204853 -0.137555654
## [100,] -0.10397431 -0.206747032 -0.03850875 -0.177729518
## [101,] -0.03100991 -0.007266351 -0.06596977 -0.019776195
## [102,] -0.02738279 -0.009281491 -0.05291624 -0.012937379
## [103,] -0.04754529 -0.007266351 -0.05015824 -0.009192004
## [104,] -0.04754529 -0.029281327 -0.05356494 -0.012937379
## [105,] -0.03100991 -0.005131035 -0.04828819 -0.009192004
## [106,] -0.04754529 -0.032191680 -0.03850875 -0.055070660
## [107,] -0.01549646 -0.016601823 -0.05095188 -0.050269550
## [108,] -0.04441402 -0.013061833 -0.03281559 -0.012937379
#Número de variables en el factor:
ncol(data_norm)->m
#Constante de entropía:
-1/log(m)->K
print(K)
## [1] -0.7213475
#Cálculo de las entropías
K*colSums(data_norm_2)->Ej
print(Ej)
## X1 X2 X3 X7
## 3.313007 2.538238 3.330032 2.933705
#Cálculo de las especificidades:
1-Ej->vj
print(vj)
## X1 X2 X3 X7
## -2.313007 -1.538238 -2.330032 -1.933705
#Cálculo de los ponderadores:
prop.table(vj)->wj #es igual a usar vj/sum(vj)
print(wj)
## X1 X2 X3 X7
## 0.2850292 0.1895553 0.2871272 0.2382883
Metodo de Ranking
library(magrittr)
#Vector de Jerarquías
rj<-c( 2,4,5 )
names(rj)<-c("X2","X4","X5")
#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
## X2 X4 X5
## 2 0 -1
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)
## X2 X4 X5
## 2 0 -1
#Gráfico de los pesos normalizados
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking de Suma",
ylim = c(0,0.5),col = "red")
y los pesos normalizados mediante: w¯j=wj/∑wj
library(magrittr)
#Vector de Jerarquías
rj<-c(2,4,5)
names(rj)<-c("X2","X4","X5")
#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
## X2 X4 X5
## 0.50 0.25 0.20
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)
## X2 X4 X5
## 0.526 0.263 0.211
#Gráfico de los pesos normalizados
barplot(pesos_ranking_reciproco$w_normalizados,
main = "Ponderadores Ranking Recíproco",
ylim = c(0,0.5),col = "green")
El peso (bruto) se asigna mediante la expresión: wj=(n−rj+1)p
y los pesos normalizados mediante: w¯j=wj/∑wj
library(magrittr)
#Vector de Jerarquías
rj<-c(2,4,5)
names(rj)<-c("X2","X4","X5")
#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
## X2 X4 X5
## 16 0 1
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)
## X2 X4 X5
## 0.941 0.000 0.059
#Gráfico de los pesos normalizados (por default p=4)
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking Exponencial",
ylim = c(0,0.5),col = "coral")
#Comparación de valores de "p"
par(mfrow=c(1,3))
for(p in 2:4){
pesos<-ponderadores_subjetivos_rank_exponencial(vector_jerarquias = rj,p = p)
barplot(pesos$w_normalizados,main = paste0("p=",p),ylim = c(0,0.7),col = "coral",cex.main=3,cex.axis = 3)
}
carga de datos
load("E:/data_parcial_2_B.RData")
head(data_parcial_2)
## # A tibble: 6 × 26
## PAÍS POBLAC DENSI…¹ URBANA RELIG ESPVI…² ESPVI…³ ALFABET INC_POB MORTINF
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Acerbaján 7400 86 54 Musu… 75 67 98 1.4 35
## 2 Afganistán 20500 25 18 Musu… 44 45 29 2.8 168
## 3 Alemania 81200 227 85 Prot… 79 73 99 0.36 6.5
## 4 Arabia Sa… 18000 7.7 77 Musu… 70 66 62 3.2 52
## 5 Argentina 33900 12 86 Cató… 75 68 95 1.3 25.6
## 6 Armenia 3700 126 68 Orto… 75 68 98 1.4 27
## # … with 16 more variables: PIB_CAP <dbl>, REGIÓN <hvn_lbll>, CALORÍAS <dbl>,
## # SIDA <dbl>, TASA_NAT <dbl>, TASA_MOR <dbl>, TASASIDA <dbl>, LOG_PIB <dbl>,
## # LOGTSIDA <dbl>, NAC_DEF <dbl>, FERTILID <dbl>, LOG_POB <dbl>,
## # CREGRANO <dbl>, ALFABMAS <dbl>, ALFABFEM <dbl>, CLIMA <hvn_lbll>, and
## # abbreviated variable names ¹DENSIDAD, ²ESPVIDAF, ³ESPVIDAM
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)[-]. Entre Corchetes aparece la correlación teórica esperada entre la variable compleja y el indicador.
Normalizacion de datos
library(dplyr)
library(tidyr)
##
## Attaching package: 'tidyr'
## The following object is masked from 'package:magrittr':
##
## extract
norm_directa<-function(x){(x-min(x))/(max(x)-min(x))}
norm_inversa<-function(x){(max(x)-x)/(max(x)-min(x))}
## Eliminando valores nulos
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
## Seleccionando variables con correlación positiva con desarrollo de economias
data_parcial_2%>%
dplyr::select(ALFABET,INC_POB,ESPVIDAF,FERTILID,TASA_NAT,LOG_PIB,URBANA) %>%
apply(MARGIN = 2,FUN = norm_directa) %>% as.data.frame()->var_corr_positiva
## Seleccionando variables con correlación negativa con desarrollo de economias
data_parcial_2 %>%
dplyr::select(MORTINF,TASA_MOR) %>%
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(ALFABET,INC_POB,ESPVIDAF,FERTILID,TASA_NAT,LOG_PIB,URBANA,MORTINF,TASA_MOR)->data_p2_normalizados
head(data_p2_normalizados)
## ALFABET INC_POB ESPVIDAF FERTILID TASA_NAT LOG_PIB URBANA MORTINF
## 1 0.98 0.3068592 0.82051282 0.3418803 0.30232558 0.60885423 0.54 0.8109756
## 2 0.29 0.5595668 0.02564103 0.8424908 1.00000000 0.09867408 0.18 0.0000000
## 3 0.99 0.1191336 0.92307692 0.1794872 0.02325581 0.94458420 0.85 0.9847561
## 4 0.62 0.6317690 0.69230769 0.8144078 0.65116279 0.76022519 0.77 0.7073171
## 5 0.95 0.2888087 0.82051282 0.3418803 0.23255814 0.63309802 0.86 0.8682927
## 6 0.98 0.3068592 0.82051282 0.3894994 0.30232558 0.70597624 0.68 0.8597561
## TASA_MOR
## 1 0.70833333
## 2 0.08333333
## 3 0.54166667
## 4 0.75000000
## 5 0.62500000
## 6 0.75000000
## Matriz de correlación
library(PerformanceAnalytics)
chart.Correlation(as.matrix(data_p2_normalizados),histogram = TRUE,pch=12)
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
Pruebas KMO y Barlett
#KMO
library(rela)
KMO<-paf(as.matrix(data_p2_normalizados))$KMO
print(KMO)
## [1] 0.85275
#Prueba de Barlett
library(psych)
options(scipen = 99999)
Barlett<-cortest.bartlett(data_p2_normalizados)
## R was not square, finding R from data
print(Barlett)
## $chisq
## [1] 1478.1
##
## $p.value
## [1] 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017846
##
## $df
## [1] 36
Como el KMO > 0.5 y el pvalue < 0.05, se tiene que puede procederse al análisis factorial porque existe multicolinealidad en los valores de la matriz de información
library(FactoMineR)
library(factoextra)
## Loading required package: ggplot2
##
## Attaching package: '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
library(kableExtra)
Rx<-cor(data_p2_normalizados)
PC<-princomp(x = data_p2_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_material_dark(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("hover"))
| eigenvalue | variance.percent | cumulative.variance.percent | |
|---|---|---|---|
| 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 |
Gráfico de sedimentación
fviz_eig(PC,
choice = "eigenvalue",
barcolor = "pink",
barfill = "blue",
addlabels = TRUE,
)+labs(title = "Gráfico de Sedimentación",subtitle = "Usando princomp, con Autovalores")+
xlab(label = "Componentes")+
ylab(label = "Autovalores")+geom_hline(yintercept = 1)
R/ Basado en el criterio de raíz latente (que se verifica en el gréfico de sedimentación), en el criterio del autovalor mayor que 1, en el criterio que están por encima del turning point y en que ambos explican más del 70% de la varianza acumulada, se extraen los primeros 2 componentes.
library(corrplot)
## corrplot 0.92 loaded
#Modelo de 2 Factores (Rotada)
numero_de_factores<-2
modelo_2_factores<-principal(r = Rx,
nfactors = numero_de_factores,
covar = FALSE,
rotate = "varimax")
print(modelo_2_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
#Gráfico de aglomeración de las variables en los factores
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 = "circle",
addCoef.col="black",
number.cex = 0.75)
En el factor 1 quedan representadas ALFABET, INC_POB, FERTILID, TASA_NAT Y LOG_PIB En el factor 2 quedan representadas ESPVIDAF, URBANA, MORTINF Y TASA_MOR
# Cargas de cada dimensión
library(kableExtra)
cargas<-rotacion$loadings[1:6,1:numero_de_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_material_dark(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Dim.1 | Dim.2 |
|---|---|
| 0.72 | 0.28 |
# Contribuciones
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_dark(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
| Dim.1 | Dim.2 | |
|---|---|---|
| ALFABET | 0.13 | 0.17 |
| INC_POB | 0.25 | 0.00 |
| ESPVIDAF | 0.10 | 0.38 |
| FERTILID | 0.20 | 0.11 |
| TASA_NAT | 0.21 | 0.11 |
| LOG_PIB | 0.10 | 0.23 |
r/ Al factor 1 debe asignarse el peso 0.72 y al factor 2 el peso 0.28. Para ALFABET será al facor 1: 0.13 y al factor 2: 0.17 Para INC_POB serán al F1: 0.25 y F2: 0 Para ESPVIDAF serán al F1: 0.1 y F2: 0.38 Para FERTILID serán al F1: 0.2 y F2: 0.11 Para TASA_NAT serán al F1: 0.2 y F2 0.11 Para LOG_PIB serán al F1: 0.1 y F2: 0.23
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)
library(magrittr)
#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_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
## X1 X2 X3 X4
## 2 1 3 4
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4
## 0.2 0.1 0.3 0.4
### GRAFICO
#Gráfico de los pesos normalizados
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking de Suma",
ylim = c(0,0.5),col = "light green")
#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
## X1 X2 X3 X4
## 0.33333 0.25000 0.50000 1.00000
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4
## 0.16 0.12 0.24 0.48
### Grafico
#Gráfico de los pesos normalizados
barplot(pesos_ranking_reciproco$w_normalizados,
main = "Ponderadores Ranking Recíproco",
ylim = c(0,0.5),col = "RED")
### 3. Por exponencial
#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
## X1 X2 X3 X4
## 16 1 81 256
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4
## 0.045 0.003 0.229 0.723
### Grafica
#Gráfico de los pesos normalizados (por default p=4)
barplot(pesos_ranking_exponencial$w_normalizados,
main = "Ponderadores Ranking Exponencial",
ylim = c(0,0.8),col = "brown")
## Ejercicio 2 Usando la técnica de comparación por pares, calcule los
pesos normalizados para las variables:
comparación por pares
library(FuzzyAHP)
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
# Matriz_1
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 método comparación de pares",
ylim = c(0,0.7),col = "yellow")
# Matriz_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 método comparación de pares",
ylim = c(0,0.7),col = "blue")
# Matriz_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 método comparación de pares",
ylim = c(0,0.7),col = "pink")
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
show(promedio_tot)
## w_X1 w_X2 w_X3 w_X4
## 0.610848 0.198207 0.115739 0.075207
sum(promedio_tot)
## [1] 1
normalizacion_1<-promedio_tot/sum(promedio_tot)
show(normalizacion_1)
## w_X1 w_X2 w_X3 w_X4
## 0.610848 0.198207 0.115739 0.075207
ponderacion_expertos_distintas<-(pesos_normalizados_1@weights*0.25)+(pesos_normalizados_2@weights*0.35)+(pesos_normalizados_3@weights*0.4)
show(ponderacion_expertos_distintas)
## w_X1 w_X2 w_X3 w_X4
## 0.611569 0.194412 0.119180 0.074838
sum(ponderacion_expertos_distintas)
## [1] 1
normalizacion_2<-ponderacion_expertos_distintas/sum(ponderacion_expertos_distintas)
show(normalizacion_2)
## w_X1 w_X2 w_X3 w_X4
## 0.611569 0.194412 0.119180 0.074838