library(rio)
data=import("data5_preparada.csv")
names(data)
## [1] "Código" "Departamento" "Provincia"
## [4] "No.usa.electricidad" "Sí.usa.electricidad" "Total"
## [7] "No.usa.gas..balón.GLP." "Sí.usa.gas..balón.GLP." "Total.1"
## [10] "No.usa.carbón" "Sí.usa.carbón" "Total.2"
## [13] "No.usa.leña" "Sí.usa.leña" "Total.3"
Pasamos a porcentajes los casos positivos
# Cargar librerías necesarias
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## 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(tidyr)
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
# Calcular los porcentajes y agregarlos como nuevas columnas
data <- data %>%
mutate(
Porcentaje_Usa_Electricidad = (`Sí.usa.electricidad` / Total) * 100,
Porcentaje_Usa_Gas_GLP = (`Sí.usa.gas..balón.GLP.` / Total.1) * 100,
Porcentaje_Usa_Carbon = (`Sí.usa.carbón` / Total.2) * 100,
Porcentaje_Usa_Leña = (`Sí.usa.leña` / Total.3) * 100
)
# Transformar al formato largo para consolidar las variables de porcentaje
data_largo <- data %>%
select(Provincia,
Porcentaje_Usa_Electricidad,
Porcentaje_Usa_Gas_GLP,
Porcentaje_Usa_Carbon,
Porcentaje_Usa_Leña) %>%
pivot_longer(
cols = starts_with("Porcentaje_"),
names_to = "Recurso",
values_to = "Porcentaje"
)
# Transformar al formato ancho necesario para el KMO
data_ancha <- data_largo %>%
pivot_wider(
names_from = Recurso,
values_from = Porcentaje
)
# Remover columnas no numéricas si las hubiera
data_fact <- data_ancha %>%
select(-Provincia)
Calculamos el KMO
# Calcular el índice KMO
kmo_result <- KMO(data_fact)
# Mostrar los resultados del KMO
print(kmo_result)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data_fact)
## Overall MSA = 0.63
## MSA for each item =
## Porcentaje_Usa_Electricidad Porcentaje_Usa_Gas_GLP
## 0.91 0.59
## Porcentaje_Usa_Carbon Porcentaje_Usa_Leña
## 0.72 0.59
Ahora realizaremos el Test de Bartlett
# Test de esfericidad de Bartlett
bartlett_result <- cortest.bartlett(cor(data_fact), n = nrow(data_fact))
print(bartlett_result)
## $chisq
## [1] 338.9104
##
## $p.value
## [1] 3.704739e-70
##
## $df
## [1] 6
Verificamos si es viable resumirlo en 1 factor
# Realizar el análisis factorial con un solo factor
fa_un_factor <- fa(data_fact, nfactors = 1, rotate = "none")
# Revisar la varianza explicada
print(fa_un_factor$Vaccounted)
## MR1
## SS loadings 2.0645612
## Proportion Var 0.5161403
# Revisar las cargas factoriales
print(fa_un_factor$loadings)
##
## Loadings:
## MR1
## Porcentaje_Usa_Electricidad 0.491
## Porcentaje_Usa_Gas_GLP 0.912
## Porcentaje_Usa_Carbon 0.280
## Porcentaje_Usa_Leña -0.956
##
## MR1
## SS loadings 2.065
## Proportion Var 0.516
El primer factor explica 51.6% de la varianza, por lo que podría ser viable resumirlo en 1 factor.
Verificaremos si la cargas del factor sí varían si se usa oblimin o variamax
# Realizar el análisis factorial con rotación varimax
fa_varimax <- fa(data_fact, nfactors = 1, rotate = "varimax")
# Realizar el análisis factorial con rotación oblimin
fa_oblimin <- fa(data_fact, nfactors = 1, rotate = "oblimin")
# Comparar las cargas factoriales
print("Cargas con rotación Varimax:")
## [1] "Cargas con rotación Varimax:"
print(fa_varimax$loadings)
##
## Loadings:
## MR1
## Porcentaje_Usa_Electricidad 0.491
## Porcentaje_Usa_Gas_GLP 0.912
## Porcentaje_Usa_Carbon 0.280
## Porcentaje_Usa_Leña -0.956
##
## MR1
## SS loadings 2.065
## Proportion Var 0.516
print("Cargas con rotación Oblimin:")
## [1] "Cargas con rotación Oblimin:"
print(fa_oblimin$loadings)
##
## Loadings:
## MR1
## Porcentaje_Usa_Electricidad 0.491
## Porcentaje_Usa_Gas_GLP 0.912
## Porcentaje_Usa_Carbon 0.280
## Porcentaje_Usa_Leña -0.956
##
## MR1
## SS loadings 2.065
## Proportion Var 0.516
# Comparar visualmente (opcional)
comparison <- data.frame(
Variable = rownames(fa_varimax$loadings),
Varimax = fa_varimax$loadings[, 1],
Oblimin = fa_oblimin$loadings[, 1]
)
print(comparison)
## Variable Varimax Oblimin
## Porcentaje_Usa_Electricidad Porcentaje_Usa_Electricidad 0.4909612 0.4909612
## Porcentaje_Usa_Gas_GLP Porcentaje_Usa_Gas_GLP 0.9119569 0.9119569
## Porcentaje_Usa_Carbon Porcentaje_Usa_Carbon 0.2799748 0.2799748
## Porcentaje_Usa_Leña Porcentaje_Usa_Leña -0.9557546 -0.9557546
La varianza explicada es mayor a 0.5, por lo que esta afirmación “la varianza explicada es menor a 0.5” es incorrecta.
#####SEGUNDA PARTE
library(rio)
data1=import("dataOK_all.xlsx")
## New names:
## • `` -> `...1`
names(data1)
## [1] "...1" "key"
## [3] "Código" "pared1_Ladrillo"
## [5] "pared2_Piedra" "pared3_Adobe"
## [7] "pared4_Tapia" "pared5_Quincha"
## [9] "pared6_Piedra" "pared7_Madera"
## [11] "pared8_Triplay" "pared9_Otro"
## [13] "pared10_Total" "techo1_Concreto"
## [15] "techo2_Madera" "techo3_Tejas"
## [17] "techo4_Planchas" "techo5_Caña"
## [19] "techo6_Triplay" "techo7_Paja"
## [21] "techo8_Otro" "techo9_Total"
## [23] "piso1_Parquet" "piso2_Láminas"
## [25] "piso3_Losetas" "piso4_Madera"
## [27] "piso5_Cemento" "piso6_Tierra"
## [29] "piso7_Otro" "piso8_Total"
## [31] "agua1_Red" "agua2_Red_fueraVivienda"
## [33] "agua3_Pilón" "agua4_Camión"
## [35] "agua5_Pozo" "agua6_Manantial"
## [37] "agua7_Río" "agua8_Otro"
## [39] "agua9_Vecino" "agua10_Total"
## [41] "elec1_Sí" "elec2_No"
## [43] "elec3_Total" "departamento"
## [45] "provincia" "Castillo"
## [47] "Keiko" "ganaCastillo"
## [49] "covidPositivos" "covidFallecidos"
Primero calcularemos “porcentaje de viviendas que tiene agua de red publica dentro de la vivienda”
# Cargar librerías necesarias
library(dplyr)
# Calcular el porcentaje de viviendas con agua dentro de la vivienda
data1 <- data1 %>%
dplyr::mutate(
Porcentaje_Agua_Dentro = (agua1_Red / agua10_Total) * 100
)
# Mostrar las primeras filas del dataset con la nueva columna
print(head(data1))
## ...1 key Código pared1_Ladrillo pared2_Piedra
## 1 1 AMAZONAS+BAGUA 102 4633 46
## 2 2 AMAZONAS+BONGARA 103 1602 9
## 3 3 AMAZONAS+CHACHAPOYAS 101 3782 22
## 4 4 AMAZONAS+CONDORCANQUI 104 291 7
## 5 5 AMAZONAS+LUYA 105 430 7
## 6 6 AMAZONAS+RODRIGUEZ DE MENDOZA 106 1546 7
## pared3_Adobe pared4_Tapia pared5_Quincha pared6_Piedra pared7_Madera
## 1 6639 222 2518 127 4484
## 2 2729 240 157 36 2505
## 3 5881 2476 309 168 1270
## 4 672 8 386 7 8145
## 5 5217 6052 346 54 606
## 6 2778 155 720 28 3646
## pared8_Triplay pared9_Otro pared10_Total techo1_Concreto techo2_Madera
## 1 851 0 19520 2187 294
## 2 30 0 7308 692 75
## 3 91 0 13999 2262 160
## 4 200 0 9716 56 188
## 5 45 0 12757 187 43
## 6 24 0 8904 480 48
## techo3_Tejas techo4_Planchas techo5_Caña techo6_Triplay techo7_Paja
## 1 179 13186 160 106 3408
## 2 382 6084 38 5 32
## 3 3393 8005 50 14 115
## 4 177 2036 15 10 7234
## 5 3071 9343 26 12 75
## 6 2810 5495 15 5 51
## techo8_Otro techo9_Total piso1_Parquet piso2_Láminas piso3_Losetas
## 1 0 19520 6 19 647
## 2 0 7308 5 2 165
## 3 0 13999 23 36 1077
## 4 0 9716 2 0 20
## 5 0 12757 4 0 46
## 6 0 8904 3 4 264
## piso4_Madera piso5_Cemento piso6_Tierra piso7_Otro piso8_Total agua1_Red
## 1 157 7121 11569 1 19520 9429
## 2 132 2917 4087 0 7308 4569
## 3 240 6189 6434 0 13999 10647
## 4 1523 943 7228 0 9716 1307
## 5 295 1911 10501 0 12757 7172
## 6 176 2974 5483 0 8904 5256
## agua2_Red_fueraVivienda agua3_Pilón agua4_Camión agua5_Pozo agua6_Manantial
## 1 4392 793 59 1792 270
## 2 1497 215 0 474 67
## 3 1619 184 49 876 92
## 4 867 1003 2 2564 431
## 5 3097 1112 0 819 132
## 6 1278 154 0 1020 211
## agua7_Río agua8_Otro agua9_Vecino agua10_Total elec1_Sí elec2_No elec3_Total
## 1 2648 56 81 19520 13204 6316 19520
## 2 388 61 37 7308 6025 1283 7308
## 3 488 24 20 13999 12248 1751 13999
## 4 3428 80 34 9716 1792 7924 9716
## 5 369 9 47 12757 10886 1871 12757
## 6 948 29 8 8904 6895 2009 8904
## departamento provincia Castillo Keiko ganaCastillo covidPositivos
## 1 AMAZONAS BAGUA 25629 10770 1 8126
## 2 AMAZONAS BONGARA 8374 5209 1 389
## 3 AMAZONAS CHACHAPOYAS 15671 10473 1 2174
## 4 AMAZONAS CONDORCANQUI 13154 1446 1 3481
## 5 AMAZONAS LUYA 12606 7840 1 456
## 6 AMAZONAS RODRÍGUEZ DE MENDOZA 7967 5491 1 110
## covidFallecidos Porcentaje_Agua_Dentro
## 1 462 48.30430
## 2 72 62.52053
## 3 281 76.05543
## 4 111 13.45204
## 5 88 56.22011
## 6 60 59.02965
data1 <- data1 %>%
dplyr::mutate(
# Razón de votación de Keiko entre Castillo
Razon_Keiko_Castillo = Keiko / Castillo,
# Tasa de fallecidos por cada 1000 contagiados
Tasa_Fallecidos = (covidFallecidos / covidPositivos) * 1000
)
# Verificar las primeras filas del dataset con las nuevas columnas
print(head(data1))
## ...1 key Código pared1_Ladrillo pared2_Piedra
## 1 1 AMAZONAS+BAGUA 102 4633 46
## 2 2 AMAZONAS+BONGARA 103 1602 9
## 3 3 AMAZONAS+CHACHAPOYAS 101 3782 22
## 4 4 AMAZONAS+CONDORCANQUI 104 291 7
## 5 5 AMAZONAS+LUYA 105 430 7
## 6 6 AMAZONAS+RODRIGUEZ DE MENDOZA 106 1546 7
## pared3_Adobe pared4_Tapia pared5_Quincha pared6_Piedra pared7_Madera
## 1 6639 222 2518 127 4484
## 2 2729 240 157 36 2505
## 3 5881 2476 309 168 1270
## 4 672 8 386 7 8145
## 5 5217 6052 346 54 606
## 6 2778 155 720 28 3646
## pared8_Triplay pared9_Otro pared10_Total techo1_Concreto techo2_Madera
## 1 851 0 19520 2187 294
## 2 30 0 7308 692 75
## 3 91 0 13999 2262 160
## 4 200 0 9716 56 188
## 5 45 0 12757 187 43
## 6 24 0 8904 480 48
## techo3_Tejas techo4_Planchas techo5_Caña techo6_Triplay techo7_Paja
## 1 179 13186 160 106 3408
## 2 382 6084 38 5 32
## 3 3393 8005 50 14 115
## 4 177 2036 15 10 7234
## 5 3071 9343 26 12 75
## 6 2810 5495 15 5 51
## techo8_Otro techo9_Total piso1_Parquet piso2_Láminas piso3_Losetas
## 1 0 19520 6 19 647
## 2 0 7308 5 2 165
## 3 0 13999 23 36 1077
## 4 0 9716 2 0 20
## 5 0 12757 4 0 46
## 6 0 8904 3 4 264
## piso4_Madera piso5_Cemento piso6_Tierra piso7_Otro piso8_Total agua1_Red
## 1 157 7121 11569 1 19520 9429
## 2 132 2917 4087 0 7308 4569
## 3 240 6189 6434 0 13999 10647
## 4 1523 943 7228 0 9716 1307
## 5 295 1911 10501 0 12757 7172
## 6 176 2974 5483 0 8904 5256
## agua2_Red_fueraVivienda agua3_Pilón agua4_Camión agua5_Pozo agua6_Manantial
## 1 4392 793 59 1792 270
## 2 1497 215 0 474 67
## 3 1619 184 49 876 92
## 4 867 1003 2 2564 431
## 5 3097 1112 0 819 132
## 6 1278 154 0 1020 211
## agua7_Río agua8_Otro agua9_Vecino agua10_Total elec1_Sí elec2_No elec3_Total
## 1 2648 56 81 19520 13204 6316 19520
## 2 388 61 37 7308 6025 1283 7308
## 3 488 24 20 13999 12248 1751 13999
## 4 3428 80 34 9716 1792 7924 9716
## 5 369 9 47 12757 10886 1871 12757
## 6 948 29 8 8904 6895 2009 8904
## departamento provincia Castillo Keiko ganaCastillo covidPositivos
## 1 AMAZONAS BAGUA 25629 10770 1 8126
## 2 AMAZONAS BONGARA 8374 5209 1 389
## 3 AMAZONAS CHACHAPOYAS 15671 10473 1 2174
## 4 AMAZONAS CONDORCANQUI 13154 1446 1 3481
## 5 AMAZONAS LUYA 12606 7840 1 456
## 6 AMAZONAS RODRÍGUEZ DE MENDOZA 7967 5491 1 110
## covidFallecidos Porcentaje_Agua_Dentro Razon_Keiko_Castillo Tasa_Fallecidos
## 1 462 48.30430 0.4202271 56.85454
## 2 72 62.52053 0.6220444 185.08997
## 3 281 76.05543 0.6683045 129.25483
## 4 111 13.45204 0.1099285 31.88739
## 5 88 56.22011 0.6219261 192.98246
## 6 60 59.02965 0.6892180 545.45455
data1$Razon_Keiko_Castillo
## [1] 0.42022709 0.62204442 0.66830451 0.10992854 0.62192607 0.68921802
## [7] 0.52605364 0.60774194 0.15585443 0.28916084 0.51937581 0.45737714
## [13] 0.26261219 1.37235169 0.67157314 0.56616293 0.24615272 1.21086472
## [19] 1.06069725 0.19420255 1.05298417 0.36961482 0.28444394 0.36444159
## [25] 1.04652423 0.35815455 0.47170769 0.34714642 0.20737686 0.18970190
## [31] 0.25103399 0.19897933 0.09786894 0.15201484 0.58860952 0.68840615
## [37] 1.12016148 0.31921569 0.16124491 0.21949983 0.40345356 0.16358491
## [43] 0.12247500 0.21539372 0.13273288 0.20465686 0.17367999 0.37396435
## [49] 0.22170284 0.37004261 0.30394161 0.11080617 0.17404562 0.79518661
## [55] 0.69573711 0.23918519 0.16765150 0.64372945 0.36801587 0.10702357
## [61] 0.42891699 0.26846792 0.35843373 0.40683230 0.26510582 0.39271632
## [67] 2.06979240 0.07528667 0.13356592 0.14170124 0.04600077 0.09030484
## [73] 0.03799828 0.39792897 0.08445377 0.18254677 0.08664012 0.08126392
## [79] 0.11472124 0.15626338 0.14779643 0.12757889 0.47820471 0.18754988
## [85] 0.13638641 0.48258345 0.18737768 0.47772004 0.23892100 0.20190611
## [91] 0.21001584 0.56456889 0.16756879 0.83967168 0.44399114 0.22304688
## [97] 0.62303552 0.10312273 1.13747968 1.12697768 1.03769812 0.99407070
## [103] 1.04225552 0.87216071 0.46827921 0.76035761 0.66095672 0.94108577
## [109] 0.46798279 0.79839216 0.94321622 0.48253040 1.50040352 0.62947189
## [115] 1.29782274 2.14614472 0.78597143 0.90367415 1.34016583 0.72623531
## [121] 0.96404428 0.77750737 1.97388403 0.77822131 1.48031335 0.94786641
## [127] 1.31914304 1.26626569 1.21711900 1.20698378 0.92178263 1.29922435
## [133] 0.88276111 1.15519292 1.91817205 0.80629102 0.68685415 0.44965301
## [139] 0.48711081 1.22237294 2.47472456 1.24129494 1.93454545 1.80000000
## [145] 0.73699005 0.26433283 0.55018029 0.41494621 0.18167939 0.54759316
## [151] 0.27385222 0.16629387 1.34496887 0.32274480 0.36497172 0.45037894
## [157] 1.35181639 1.39153816 1.79644764 1.54417287 2.53098578 1.28777785
## [163] 0.04896231 0.11554052 0.06804741 0.05632856 0.05468049 0.09433319
## [169] 0.07136654 0.05606071 0.17432338 0.07239583 0.19681656 0.11773590
## [175] 0.08952821 0.56785213 0.62831705 0.71119795 0.83254778 0.79306878
## [181] 0.74526304 0.85085297 0.64097167 1.14354686 0.50371312 0.10738255
## [187] 0.21098602 0.39718585 0.16921534 2.66255144 1.70036525 2.65645161
## [193] 1.16025100 1.22238876 0.44681406 2.85636856
data1$Tasa_Fallecidos
## [1] 56.85454 185.08997 129.25483 31.88739 192.98246 545.45455
## [7] 89.62390 329.11392 574.07407 355.93220 396.69421 295.28986
## [13] 607.14286 375.90862 513.51351 167.18588 560.00000 151.68897
## [19] 202.05479 279.06977 301.20482 975.90361 265.36313 233.12883
## [25] 252.26473 276.00000 326.38889 151.01850 290.02193 464.28571
## [31] 380.00000 467.04871 204.58265 574.80315 209.12356 319.16427
## [37] 301.69051 310.16043 283.32404 278.38828 271.04377 779.66102
## [43] 342.10526 130.42613 272.72727 158.05627 185.30351 263.29442
## [49] 175.62254 282.72251 1055.55556 309.64467 532.60870 357.14286
## [55] 180.94622 511.73709 299.80080 466.36771 260.57143 156.87919
## [61] 122.87614 122.97872 460.37736 372.43402 329.26829 276.16279
## [67] 264.59022 397.16312 421.68675 423.78049 720.58824 381.42748
## [73] 533.33333 158.57509 158.38150 171.05653 694.44444 514.28571
## [79] 515.94203 399.63834 216.66667 189.37644 234.69388 201.68067
## [85] 134.49074 269.23077 192.20999 283.89155 300.54645 187.50000
## [91] 204.22535 145.80981 866.66667 357.83133 131.94444 174.02597
## [97] 46.68305 318.18182 474.33930 258.90222 288.25911 162.30366
## [103] 258.49411 249.10851 198.26590 343.24324 283.78576 540.24052
## [109] 261.81818 116.63849 501.20482 296.10829 421.12421 1222.22222
## [115] 317.68650 149.90138 333.33333 227.37819 481.50470 145.09804
## [121] 126.22549 235.95506 292.82248 310.90652 307.95371 202.71467
## [127] 246.00264 259.48187 1742.85714 296.64812 228.11671 224.55001
## [133] 374.67866 274.28800 230.31283 853.21101 411.01695 176.61488
## [139] 49.30468 47.92043 110.86798 244.18431 19.08714 128.65497
## [145] 197.40260 79.15994 52.07329 99.60913 129.67033 178.31638
## [151] 78.14680 197.76119 230.90909 156.30975 300.95238 457.48988
## [157] 736.54709 240.96386 291.71745 426.70401 267.77977 371.02754
## [163] 313.24004 263.55140 316.86047 422.38267 308.90052 263.15789
## [169] 324.86631 359.37500 246.61556 222.22222 210.91881 297.22222
## [175] 604.57516 164.37247 45.19774 91.85606 117.50366 160.82359
## [181] 132.60160 189.18919 114.58333 140.73352 104.23305 135.33835
## [187] 105.91133 159.73742 242.85714 331.27572 179.40423 176.36023
## [193] 229.81366 180.20777 115.75179 17.09402
Filtraremos Lima
# Cargar librerías necesarias
library(dplyr)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
##
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
##
## %+%, alpha
# Filtrar datos excluyendo Lima
data_filtrada <- data1 %>%
filter(departamento != "Lima")
# Seleccionar solo columnas numéricas
data_num <- data_filtrada %>%
select(where(is.numeric)) # Selecciona únicamente columnas numéricas
# Normalizar las columnas numéricas
data_normalizada <- scale(data_num)
# Cargar librerías necesarias
library(dplyr)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(cluster)
# Filtrar datos excluyendo Lima
data_filtrada <- data1 %>%
filter(departamento != "Lima")
# Seleccionar y normalizar variables numéricas
data_num <- data_filtrada %>%
select(where(is.numeric)) %>% # Solo columnas numéricas
scale() # Normalización
# Calcular la distancia con método euclidiano
g.dist <- dist(data_num, method = "euclidean")
# Determinar el número óptimo de clusters usando "gap_stat"
fviz_nbclust(data_num, FUN = hcut, diss = g.dist,
method = "gap_stat",
k.max = 10, # Máximo número de clusters a considerar
hc_func = "agnes", # Algoritmo jerárquico (agnes en este caso)
verbose = FALSE)
str(data_filtrada)
## 'data.frame': 196 obs. of 53 variables:
## $ ...1 : num 1 2 3 4 5 6 7 8 9 10 ...
## $ key : chr "AMAZONAS+BAGUA" "AMAZONAS+BONGARA" "AMAZONAS+CHACHAPOYAS" "AMAZONAS+CONDORCANQUI" ...
## $ Código : num 102 103 101 104 105 106 107 202 203 204 ...
## $ pared1_Ladrillo : num 4633 1602 3782 291 430 ...
## $ pared2_Piedra : num 46 9 22 7 7 7 35 1 0 3 ...
## $ pared3_Adobe : num 6639 2729 5881 672 5217 ...
## $ pared4_Tapia : num 222 240 2476 8 6052 ...
## $ pared5_Quincha : num 2518 157 309 386 346 ...
## $ pared6_Piedra : num 127 36 168 7 54 28 518 65 7 6 ...
## $ pared7_Madera : num 4484 2505 1270 8145 606 ...
## $ pared8_Triplay : num 851 30 91 200 45 24 210 18 0 1 ...
## $ pared9_Otro : num 0 0 0 0 0 0 0 0 0 0 ...
## $ pared10_Total : num 19520 7308 13999 9716 12757 ...
## $ techo1_Concreto : num 2187 692 2262 56 187 ...
## $ techo2_Madera : num 294 75 160 188 43 48 340 57 12 8 ...
## $ techo3_Tejas : num 179 382 3393 177 3071 ...
## $ techo4_Planchas : num 13186 6084 8005 2036 9343 ...
## $ techo5_Caña : num 160 38 50 15 26 15 196 10 8 5 ...
## $ techo6_Triplay : num 106 5 14 10 12 5 62 17 4 3 ...
## $ techo7_Paja : num 3408 32 115 7234 75 ...
## $ techo8_Otro : num 0 0 0 0 0 0 0 0 0 0 ...
## $ techo9_Total : num 19520 7308 13999 9716 12757 ...
## $ piso1_Parquet : num 6 5 23 2 4 3 20 0 0 5 ...
## $ piso2_Láminas : num 19 2 36 0 0 4 32 0 0 1 ...
## $ piso3_Losetas : num 647 165 1077 20 46 ...
## $ piso4_Madera : num 157 132 240 1523 295 ...
## $ piso5_Cemento : num 7121 2917 6189 943 1911 ...
## $ piso6_Tierra : num 11569 4087 6434 7228 10501 ...
## $ piso7_Otro : num 1 0 0 0 0 0 0 0 0 0 ...
## $ piso8_Total : num 19520 7308 13999 9716 12757 ...
## $ agua1_Red : num 9429 4569 10647 1307 7172 ...
## $ agua2_Red_fueraVivienda: num 4392 1497 1619 867 3097 ...
## $ agua3_Pilón : num 793 215 184 1003 1112 ...
## $ agua4_Camión : num 59 0 49 2 0 0 117 0 0 0 ...
## $ agua5_Pozo : num 1792 474 876 2564 819 ...
## $ agua6_Manantial : num 270 67 92 431 132 211 471 121 61 27 ...
## $ agua7_Río : num 2648 388 488 3428 369 ...
## $ agua8_Otro : num 56 61 24 80 9 29 104 2 1 6 ...
## $ agua9_Vecino : num 81 37 20 34 47 8 177 9 4 6 ...
## $ agua10_Total : num 19520 7308 13999 9716 12757 ...
## $ elec1_Sí : num 13204 6025 12248 1792 10886 ...
## $ elec2_No : num 6316 1283 1751 7924 1871 ...
## $ elec3_Total : num 19520 7308 13999 9716 12757 ...
## $ departamento : chr "AMAZONAS" "AMAZONAS" "AMAZONAS" "AMAZONAS" ...
## $ provincia : chr "BAGUA" "BONGARA" "CHACHAPOYAS" "CONDORCANQUI" ...
## $ Castillo : num 25629 8374 15671 13154 12606 ...
## $ Keiko : num 10770 5209 10473 1446 7840 ...
## $ ganaCastillo : num 1 1 1 1 1 1 1 1 1 1 ...
## $ covidPositivos : num 8126 389 2174 3481 456 ...
## $ covidFallecidos : num 462 72 281 111 88 60 336 26 31 21 ...
## $ Porcentaje_Agua_Dentro : num 48.3 62.5 76.1 13.5 56.2 ...
## $ Razon_Keiko_Castillo : num 0.42 0.622 0.668 0.11 0.622 ...
## $ Tasa_Fallecidos : num 56.9 185.1 129.3 31.9 193 ...
##Quédese solo con las variables necesarias para realizar un análisis de conglomerados
names(data1)
## [1] "...1" "key"
## [3] "Código" "pared1_Ladrillo"
## [5] "pared2_Piedra" "pared3_Adobe"
## [7] "pared4_Tapia" "pared5_Quincha"
## [9] "pared6_Piedra" "pared7_Madera"
## [11] "pared8_Triplay" "pared9_Otro"
## [13] "pared10_Total" "techo1_Concreto"
## [15] "techo2_Madera" "techo3_Tejas"
## [17] "techo4_Planchas" "techo5_Caña"
## [19] "techo6_Triplay" "techo7_Paja"
## [21] "techo8_Otro" "techo9_Total"
## [23] "piso1_Parquet" "piso2_Láminas"
## [25] "piso3_Losetas" "piso4_Madera"
## [27] "piso5_Cemento" "piso6_Tierra"
## [29] "piso7_Otro" "piso8_Total"
## [31] "agua1_Red" "agua2_Red_fueraVivienda"
## [33] "agua3_Pilón" "agua4_Camión"
## [35] "agua5_Pozo" "agua6_Manantial"
## [37] "agua7_Río" "agua8_Otro"
## [39] "agua9_Vecino" "agua10_Total"
## [41] "elec1_Sí" "elec2_No"
## [43] "elec3_Total" "departamento"
## [45] "provincia" "Castillo"
## [47] "Keiko" "ganaCastillo"
## [49] "covidPositivos" "covidFallecidos"
## [51] "Porcentaje_Agua_Dentro" "Razon_Keiko_Castillo"
## [53] "Tasa_Fallecidos"
dataClus=data1[,c(51:53)]
row.names(dataClus)=data1$Country
fviz_nbclust(dataClus, hcut,diss=g.dist,method = "gap_stat",k.max = 10,verbose = F,hc_func = "diana")
Clusterizar via DIANA
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
set.seed(123)
res.diana <- hcut(g.dist, k = 4,hc_func='diana')
dataClus$diana=res.diana$cluster
# veamos
head(dataClus,15)%>%kbl%>%kable_styling()
| Porcentaje_Agua_Dentro | Razon_Keiko_Castillo | Tasa_Fallecidos | diana |
|---|---|---|---|
| 48.30430 | 0.4202271 | 56.85454 | 1 |
| 62.52053 | 0.6220444 | 185.08997 | 1 |
| 76.05543 | 0.6683045 | 129.25483 | 1 |
| 13.45204 | 0.1099285 | 31.88739 | 1 |
| 56.22011 | 0.6219261 | 192.98246 | 1 |
| 59.02965 | 0.6892180 | 545.45455 | 1 |
| 48.71039 | 0.5260536 | 89.62390 | 1 |
| 74.75528 | 0.6077419 | 329.11392 | 1 |
| 85.28790 | 0.1558544 | 574.07407 | 1 |
| 71.32928 | 0.2891608 | 355.93220 | 1 |
| 72.30859 | 0.5193758 | 396.69421 | 1 |
| 73.07544 | 0.4573771 | 295.28986 | 1 |
| 66.24904 | 0.2626122 | 607.14286 | 1 |
| 60.43541 | 1.3723517 | 375.90862 | 1 |
| 75.16049 | 0.6715731 | 513.51351 | 1 |
silDIANA=data.frame(res.diana$silinfo$widths)
silDIANA$country=row.names(silDIANA)
poorDIANA=silDIANA[silDIANA$sil_width<0,'country']%>%sort()
poorDIANA
## character(0)
Decidir cantidad de cluster
fviz_nbclust(dataClus, hcut,diss=g.dist,method = "gap_stat",k.max = 10,verbose = F,hc_func = "agnes")
Clusterizar via AGNES
set.seed(123)
library(factoextra)
res.agnes<- hcut(g.dist, k = 7,hc_func='agnes',hc_method = "ward.D")
dataClus$agnes=res.agnes$cluster
# ver
head(dataClus,15)%>%kbl()%>%kable_styling()
| Porcentaje_Agua_Dentro | Razon_Keiko_Castillo | Tasa_Fallecidos | diana | agnes |
|---|---|---|---|---|
| 48.30430 | 0.4202271 | 56.85454 | 1 | 1 |
| 62.52053 | 0.6220444 | 185.08997 | 1 | 1 |
| 76.05543 | 0.6683045 | 129.25483 | 1 | 1 |
| 13.45204 | 0.1099285 | 31.88739 | 1 | 2 |
| 56.22011 | 0.6219261 | 192.98246 | 1 | 1 |
| 59.02965 | 0.6892180 | 545.45455 | 1 | 1 |
| 48.71039 | 0.5260536 | 89.62390 | 1 | 1 |
| 74.75528 | 0.6077419 | 329.11392 | 1 | 1 |
| 85.28790 | 0.1558544 | 574.07407 | 1 | 1 |
| 71.32928 | 0.2891608 | 355.93220 | 1 | 1 |
| 72.30859 | 0.5193758 | 396.69421 | 1 | 1 |
| 73.07544 | 0.4573771 | 295.28986 | 1 | 1 |
| 66.24904 | 0.2626122 | 607.14286 | 1 | 1 |
| 60.43541 | 1.3723517 | 375.90862 | 1 | 3 |
| 75.16049 | 0.6715731 | 513.51351 | 1 | 1 |
Evaluando el uso de AGNES
silAGNES=data.frame(res.agnes$silinfo$widths)
silAGNES$country=row.names(silAGNES)
poorAGNES=silAGNES[silAGNES$sil_width<0,'country']%>%sort()
poorAGNES
## [1] "100" "102" "104" "107" "109" "112" "121" "127" "128" "130" "133" "134"
## [13] "137" "14" "145" "153" "157" "166" "167" "168" "169" "172" "18" "187"
## [25] "19" "21" "25" "37" "39" "4" "50" "55" "57" "59" "61" "62"
## [37] "67" "73" "74" "76" "92" "94" "97" "99"