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"