UEE_001

2023-03-05

Limpieza de data

library(rio)
ubigeo = import("https://github.com/ernestorivero/Ubigeo-Peru/raw/master/csv/ubigeo_peru_2016_departamentos.csv")
ubigeo$name=casefold(ubigeo$name, upper = FALSE)
library(stringi)
ubigeo$name=stri_trans_general(ubigeo$name,"Latin-ASCII")

Centro de Emergencia Mujer (CEM) 2020

library(rio)
CEM=read.csv("CEM.csv", # Nombre del archivo o ruta completa del archivo
         header = FALSE,        # Leer el encabezado (TRUE) o no (FALSE)
         sep = ";",            # Separador de los valores
         dec = ".",            # Punto decimal
         fill = TRUE)          # Rellenar celdas vacías (TRUE) o no (FALSE)
CEM_limpio = CEM[-1,c(1,7,9,11,16)]
names(CEM_limpio)=c("Año","Linea_intervencion","Nombre_servicio","Departamento","Casos")
CEM_2020 = CEM_limpio[CEM_limpio$Año == "2020",]
CEM_2020$Departamento[CEM_2020$Departamento =="LIMA METROPOLITANA"] = "Lima"
CEM_2020$Departamento[CEM_2020$Departamento =="LIMA PROVINCIA"] = "Lima"
CEM_2020$Casos=as.numeric(CEM_2020$Casos)
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
CEM_2020=CEM_2020 %>% 
  group_by(Departamento) %>%
  summarise(Casos= sum(Casos))
CEM_2020$Porcentaje_Casos_CEM=(CEM_2020$Casos/sum(CEM_2020$Casos))*100
 CEM_2020=CEM_2020[order(CEM_2020$Departamento), ]
CEM_2020= cbind(ubigeo,CEM_2020)
CEM_2020=CEM_2020[,c(1,2,5)]

Encuesta Demografica y de Salud Familiar (ENDES) 2020

library(rio)
ENDES_violencia=read.csv("ENDES_violencia.csv", # Nombre del archivo o ruta completa del archivo
         header = TRUE,        # Leer el encabezado (TRUE) o no (FALSE)
         sep = ";",            # Separador de los valores
         dec = ".",            # Punto decimal
         fill = TRUE)          # Rellenar celdas vacías (TRUE) o no (FALSE)
library(rio)
ENDES_detalle=read.csv("ENDES_detalle.csv", # Nombre del archivo o ruta completa del archivo
         header = TRUE,        # Leer el encabezado (TRUE) o no (FALSE)
         sep = ";",            # Separador de los valores
         dec = ".",            # Punto decimal
         fill = TRUE)          # Rellenar celdas vacías (TRUE) o no (FALSE)
ENDES_detalle_limpio =ENDES_detalle[,c(2,23)]
names(ENDES_detalle_limpio)=c("CASEID","Region")
ENDES_violencia_limpio =ENDES_violencia[,c(1:2,14,15,17,21:25,28,29)]
names(ENDES_violencia_limpio)=c("Año","CASEID","humillacion","amenaza","quitarle_hijos","empujon","bofetada","puñete","patada","estrangular","relaciones_obligadas","actos_sexuales")
data_ENDES=merge(ENDES_detalle_limpio,ENDES_violencia_limpio, by.x="CASEID", by.y="CASEID")
data_ENDES = na.omit(data_ENDES)
data_ENDES$humillacionvf=ifelse(data_ENDES$humillacion==0 | data_ENDES$humillacion== 3,0,1)
data_ENDES$amenazavf=ifelse(data_ENDES$amenaza==0 | data_ENDES$amenaza== 3,0,1)
data_ENDES$quitarle_hijosvf=ifelse(data_ENDES$quitarle_hijos==0 | data_ENDES$quitarle_hijos== 3,0,1)
data_ENDES$empujonvf=ifelse(data_ENDES$empujon==0 | data_ENDES$empujon== 3,0,1)
data_ENDES$bofetadavf=ifelse(data_ENDES$bofetada==0 | data_ENDES$bofetada== 3,0,1)
data_ENDES$puñetevf=ifelse(data_ENDES$puñete==0 | data_ENDES$puñete== 3,0,1)
data_ENDES$patadavf=ifelse(data_ENDES$patada==0 | data_ENDES$patada== 3,0,1)
data_ENDES$estrangularvf=ifelse(data_ENDES$estrangular==0 | data_ENDES$estrangular== 3,0,1)
data_ENDES$relaciones_obligadasvf=ifelse(data_ENDES$relaciones_obligadas==0 | data_ENDES$relaciones_obligadas== 3,0,1)
data_ENDES$actos_sexualesvf=ifelse(data_ENDES$actos_sexuales==0 | data_ENDES$actos_sexuales== 3,0,1)
data_ENDESvf=data_ENDES[,c(1:3,14:23)]
data_ENDESvf$vio_psico=ifelse(data_ENDESvf$humillacionvf==0 & data_ENDESvf$amenazavf == 0 & data_ENDESvf$quitarle_hijosvf == 0 ,0,1)

data_ENDESvf$vio_fisica=ifelse(data_ENDESvf$empujonvf==0 & data_ENDESvf$bofetadavf==0 & data_ENDESvf$puñetevf==0 & data_ENDESvf$patadavf==0 & data_ENDESvf$estrangularvf== 0, 0,1)

data_ENDESvf$vio_sexual= ifelse(data_ENDESvf$relaciones_obligadasvf==0 & data_ENDESvf$actos_sexualesvf==0,0,1)
data_ENDESvf$violencia=ifelse(data_ENDESvf$vio_psico==1 | data_ENDESvf$vio_fisica==1 | data_ENDESvf$vio_sexual==1 ,1,0)
data_ENDESvf=data_ENDESvf[,c(1:3,14:17)]
library(dplyr)
data=data_ENDESvf %>% 
  group_by(Region) %>%
  summarise(violencia_psico = sum(vio_psico), 
            violencia_fisica = sum(vio_fisica),
            violencia_sexual = sum(vio_sexual),
            violencia=sum(violencia),
            total=n())
data$Porcentaje_violencia_psico=(data$violencia_psico/data$total)*100
data$Porcentaje_violencia_fisica=(data$violencia_fisica/data$total)*100
data$Porcentaje_violencia_sexual=(data$violencia_sexual/data$total)*100
data$Porcentaje_violencia=(data$violencia/data$total)*100
data=data[,c(1,7:10)]

Expresiones declaradas

library(readxl)
Expresiones_declaradas <- read_xlsx("Patrimonio Inmaterial.xlsx",
                          sheet = 1,
                          col_names = TRUE)
## New names:
## • `` -> `...2`
Expresiones_declaradas=Expresiones_declaradas[-c(1,2,28),]
names(Expresiones_declaradas)=c("Departamentos","Cantidad_Expresiones_declaradas")
Expresiones_declaradas$Departamentos=tolower(Expresiones_declaradas$Departamentos)
library(stringi)
Expresiones_declaradas$Departamentos=stri_trans_general(Expresiones_declaradas$Departamentos,"Latin-ASCII")
Expresiones_declaradas$Departamentos[Expresiones_declaradas$Departamentos =="ancash"] = "ancash"
Expresiones_declaradas$Departamentos[Expresiones_declaradas$Departamentos =="apuramac"] = "apurimac"
Expresiones_declaradas$Departamentos[Expresiones_declaradas$Departamentos =="huanuco"] = "huanuco"
Expresiones_declaradas$Departamentos[Expresiones_declaradas$Departamentos =="junan"] = "junin"
Expresiones_declaradas$Departamentos[Expresiones_declaradas$Departamentos =="san martan"] = "san martin"
Expresiones_declaradas$Cantidad_Expresiones_declaradas=as.numeric(Expresiones_declaradas$Cantidad_Expresiones_declaradas)

Sitios arqueologicos

library(readxl)
Sitios_arqueologicos<- read_xlsx("Patrimonio Inmaterial.xlsx",
                          sheet = 2,
                          col_names = TRUE)
Sitios_arqueologicos=Sitios_arqueologicos[-c(1,26,27),]
names(Sitios_arqueologicos)=c("Departamentos","Cantidad_Sitios_arqueologicos")
Sitios_arqueologicos$Departamentos=casefold(Sitios_arqueologicos$Departamentos, upper = FALSE)
Sitios_arqueologicos$Cantidad_Sitios_arqueologicos=as.numeric(Sitios_arqueologicos$Cantidad_Sitios_arqueologicos)

Museos

library(readxl)
Museos<- read_xlsx("museos_reconocidos_1.xlsx",
                          sheet = 1,
                          col_names = TRUE)
names(Museos)=c("COD","Cantidad_Museos","Departamento")
Museos$Departamento=as.factor(Museos$Departamento)
Museos$Cantidad_Museos=as.factor(Museos$Cantidad_Museos)
library(dplyr)
Museosvf=Museos %>% 
  group_by(Departamento)  %>% 
  count()
names(Museosvf)=c("Departamentos","Cantidad_Museos")
Museosvf$Departamentos=tolower(Museosvf$Departamentos)
library(stringi)
Museosvf$Departamentos=stri_trans_general(Museosvf$Departamentos,"Latin-ASCII")

Puntos de cultura

library(rio)
Puntos_cultura=read.csv("puntos_de_cultura.csv", # Nombre del archivo o ruta completa del archivo
         header = TRUE,        # Leer el encabezado (TRUE) o no (FALSE)
         sep = ";",            # Separador de los valores
         dec = ".",            # Punto decimal
         fill = TRUE)          # Rellenar celdas vacías (TRUE) o no (FALSE)
Puntos_cultura$DEPARTAMENTO=as.factor(Puntos_cultura$DEPARTAMENTO)
Puntos_cultura$ORGANIZACION=as.factor(Puntos_cultura$ORGANIZACION)
Puntos_cultura$DEPARTAMENTO[Puntos_cultura$DEPARTAMENTO =="Callao "] = "Callao"
Puntos_cultura$DEPARTAMENTO[Puntos_cultura$DEPARTAMENTO =="junín"] = "Junín"
Puntos_cultura$DEPARTAMENTO[Puntos_cultura$DEPARTAMENTO =="Junín "] = "Junín"
Puntos_cultura$DEPARTAMENTO[Puntos_cultura$DEPARTAMENTO =="LIMA"] = "Lima"
Puntos_culturavf=Puntos_cultura %>% 
  group_by(DEPARTAMENTO)  %>% 
  count()
names(Puntos_culturavf)=c("Departamentos","Num_Puntos_Culturales")
Puntos_culturavf$Departamentos=tolower(Puntos_culturavf$Departamentos)
library(stringi)
Puntos_culturavf$Departamentos=stri_trans_general(Puntos_culturavf$Departamentos,"Latin-ASCII")

Racismo

library(readxl)
Racismo<- read_xlsx("racismo.xlsx",
                          sheet = 1,
                          col_names = TRUE)
Racismo=Racismo[,-c(2:8)]
names(Racismo)=c("Departamentos","Porcentaje_Racismo_2019")
library(readr)

parse_number(Racismo$Porcentaje_Racismo_2019)
##  [1]  7.9 12.7  6.3 20.6  5.3  6.1 16.1 14.7  7.0 11.8  5.6  9.4 11.2  4.5 17.1
## [16] 11.8  4.2 20.5 11.5 11.2  5.5 20.3  6.0 20.7 12.1  5.9
library(stringr)
Racismo$Por_racismo_2019=str_extract_all(string= Racismo$Porcentaje_Racismo_2019,
                ("\\d+\\.*\\d*"))
Racismo$Por_racismo_2019=as.numeric(Racismo$Por_racismo_2019)
Racismo=Racismo[,-c(2)]
Racismo$Departamentos[Racismo$Departamentos =="Lima Metropolitana"] = "Lima"
Racismo$Departamentos[Racismo$Departamentos =="Prov. Const. del Callao"] = "Callao"
library(dplyr)
Racismo=Racismo%>% 
  group_by(Departamentos)  %>% 
  summarise(Por_racismo_2019= mean(Por_racismo_2019))
Racismo$Departamentos=tolower(Racismo$Departamentos)
library(stringi)
Racismo$Departamentos=stri_trans_general(Racismo$Departamentos,"Latin-ASCII")

NBI

library(readxl)
NBI<- read_xlsx("NBI.xlsx",
                          sheet = 1,
                          col_names = TRUE)
## New names:
## • `` -> `...1`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
NBI= na.omit(NBI)
NBI=NBI[-c(1:9),-c(1,2,4,5,8)]
names(NBI)=c("Departamentos","Pob_total","Pob_almenosuna_NBI")
NBI$Pob_total=as.numeric(NBI$Pob_total)
NBI$Pob_almenosuna_NBI=as.numeric(NBI$Pob_almenosuna_NBI)
library(dplyr)
NBI=NBI %>% 
  group_by(Departamentos)  %>% 
  summarise(Pob_total = sum(Pob_total), 
            Pob_almenosuna_NBI = sum(Pob_almenosuna_NBI))
NBI$Porc_almenosuna_NBI=(NBI$Pob_almenosuna_NBI/NBI$Pob_total)*100
NBI=NBI[,-c(2,3)]
NBI$Departamentos[NBI$Departamentos =="Madre De Dios"] = "Madre de Dios"
NBI$Departamentos=tolower(NBI$Departamentos)
library(stringi)
NBI$Departamentos=stri_trans_general(NBI$Departamentos,"Latin-ASCII")

Base consolidada

data_madre=merge(CEM_2020,data, by.x="id", by.y="Region")
data_madre=merge(data_madre,Racismo,by.x="name", by.y="Departamentos")
data_madre=merge(data_madre,NBI,by.x="name", by.y="Departamentos")
data_madre=merge(data_madre,Puntos_culturavf,by.x="name", by.y="Departamentos")
data_madre=merge(data_madre,Sitios_arqueologicos,by.x="name", by.y="Departamentos",all.x = TRUE)
data_madre=merge(data_madre,Museosvf,by.x="name", by.y="Departamentos",all.x = TRUE)
data_madre=merge(data_madre,Expresiones_declaradas,by.x="name", by.y="Departamentos",all.x = TRUE)
row.names(data_madre)=data_madre$name
data_madre[is.na(data_madre)] = 0

Análisis de componentes principales (SERVICIOS CULTURALES)

subdata = data_madre[,c(10:13)]
library(PerformanceAnalytics)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
chart.Correlation(subdata)
## 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

En tanto no planteamos un estructura subyacente que explique las covarianzas entre las variables, utilizamos el Análisis de Componentes Principales para explorar si es posible reducir nuestra cantidad de variables en indicadores que expliquen un adecuado porcentaje de la varianza. Al hacer la prueba de KMO con toda la base de datos, se reportó que, si bien pasa la prueba, la variable TASA_MAS80 no muestra una correlación significativa con las demás variables. La retiramos para continuar con el análisis.

Obtenemos un Overall MSA de .57. Así, continuamos con el test de Barlett

library(psych)
KMO(subdata)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = subdata)
## Overall MSA =  0.57
## MSA for each item = 
##           Num_Puntos_Culturales   Cantidad_Sitios_arqueologicos 
##                            0.53                            0.71 
##                 Cantidad_Museos Cantidad_Expresiones_declaradas 
##                            0.60                            0.40

Con un p-value igual a 0, rechazamos la hipotesis nula, que plantea que la matriz de correlaciones es una matriz de identidad:

matrixcor = cor(subdata)
cortest.bartlett(matrixcor,n=dim(subdata)[1])
## $chisq
## [1] 46.91536
## 
## $p.value
## [1] 1.945292e-08
## 
## $df
## [1] 6

La prueba sugiere 1 componente. Aplicamos la técnica de componentes principales:

fa.parallel(subdata,fa="pc") 

## Parallel analysis suggests that the number of factors =  NA  and the number of components =  1

Los resultados muestran que los dos primeros componentes acumulan una varianza explicada del 86%:

pc = prcomp(x=subdata,scale=TRUE, center=TRUE)
summary(pc)
## Importance of components:
##                           PC1    PC2    PC3     PC4
## Standard deviation     1.6148 0.9240 0.6414 0.35686
## Proportion of Variance 0.6519 0.2134 0.1028 0.03184
## Cumulative Proportion  0.6519 0.8653 0.9682 1.00000
pc$rotation
##                                       PC1         PC2        PC3        PC4
## Num_Puntos_Culturales           0.5386589 -0.44939041  0.1492196  0.6968704
## Cantidad_Sitios_arqueologicos   0.5251554 -0.02366537 -0.8140666 -0.2468751
## Cantidad_Museos                 0.5609295 -0.09343233  0.5500515 -0.6116141
## Cantidad_Expresiones_declaradas 0.3455668  0.88812083  0.1116799  0.2816959
library(dplyr)
data_madre = select(data_madre,c(1,2,7:9,14))
data_madre = data_madre |> rename (Servicio_cultural=pc1)
rownames(data_madre) = data_madre$name
export(data_madre,"data_vf.csv")
rm(list = ls())

Análisis

df = import("data_vf.csv")
rownames(df) = df$name

Analisis univariado

mapDEP1=merge(mapDEP,df,by.x='OBJECTID',by.y='id', all.x = T)
library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
custom_limits = c(0, 25)
mapa1 = ggplot(mapDEP1) + geom_sf(data=mapDEP1,
              aes(fill=Porcentaje_violencia), color = "black") + coord_sf() +
   scale_fill_gradient(low = "#FAEFD1",  high = "#550307", breaks=seq(from=0, to=25, by=5), limits=custom_limits) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.1,0.55)) + labs(fill=" ") + 
  labs(title = "Porcentaje de mujeres víctimas de violencia, 2020",caption = "Fuente: Encuesta Demográfica y de Salud Familiar (ENDES) 2020\nElaboración: Unidad de Estudios Economicos - MC") + 
  theme( plot.title = element_text(color="black", size=12, face="bold"), plot.caption = element_text(color = "black", size=8))

mapa1

custom_limits = c(0, 25)
mapa2= ggplot(mapDEP1)+ geom_sf() + geom_sf(data=mapDEP1, aes(fill=Por_racismo_2019),color = "black") + coord_sf() + 
  scale_fill_gradient(low = "#FAEFD1",  high = "#550307", breaks=seq(from=0, to=100, by=5), limits=custom_limits) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.3,0.50)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Porcentaje de racismo en el 2019",caption = "Fuente: Encuesta Nacional de Hogares (ENAHO) 2019\nElaborado por: Unidad de Estudios Economicos-MC") +
  theme(plot.title = element_text(color="black", size=12, face="bold"), plot.caption = element_text(color = "black", size=8))
mapa2

custom_limits = c(0, 75)
mapa3= ggplot(mapDEP1)+ geom_sf() + geom_sf(data=mapDEP1, aes(fill=Porc_almenosuna_NBI),color = "black") +
  coord_sf() + scale_fill_gradient(low = "#FAEFD1",  high = "#550307", breaks=seq(from=0, to=100, by=25), limits=custom_limits) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.3,0.50)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Porcentaje de poblacion con al menos una NBI",caption = "Fuente: INEI 2017\nElaborado por: Unidad de Estudios Economicos-MC") + 
  theme(plot.title = element_text(color="black", size=12, face="bold"), plot.caption = element_text(color = "black", size=8))
mapa3

custom_limits = c(-1.5, 6.5)
mapa4= ggplot(mapDEP1)+ geom_sf() + geom_sf(data=mapDEP1, aes(fill=Servicio_cultural),color = "black") +
  coord_sf() + scale_fill_gradient(low = "#FAEFD1",  high = "#550307", breaks=seq(from=-1.5, to=6.5, by=1.5), limits=custom_limits) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.3,0.50)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Servicios culturales al 2023",caption = "Fuente: Datos abiertos MC\nElaborado por: Unidad de Estudios Economicos-MC") +
  theme(plot.title = element_text(color="black", size=12, face="bold"), plot.caption = element_text(color = "black", size=8))
mapa4

Correlaciones

Exploración total

df0 =select(df, c(3:6))
library(PerformanceAnalytics)
chart.Correlation(df0, histogram = TRUE, method = "spearman")
## Warning in cor.test.default(as.numeric(x), as.numeric(y), method = method):
## Cannot compute exact p-value with ties
## 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 cor.test.default(as.numeric(x), as.numeric(y), method = method):
## Cannot compute exact p-value with ties
## 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 cor.test.default(as.numeric(x), as.numeric(y), method = method):
## Cannot compute exact p-value with ties
## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

Clusterización de NBI y servicios culturales

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ tibble  3.1.7     ✔ purrr   0.3.4
## ✔ tidyr   1.2.0     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%()   masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ xts::first()     masks dplyr::first()
## ✖ dplyr::lag()     masks stats::lag()
## ✖ xts::last()      masks dplyr::last()
library(cluster)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(NbClust)
df1 =select(df0, c(3,4))
fviz_nbclust(df1, kmeans, method = "silhouette")

##   cluster size ave.sil.width
## 1       1    5          0.58
## 2       2   12          0.53
## 3       3    8          0.56

Ningún departamentos reporta un width negativo

## [1] 0
df1 %>%
  group_by(particion) %>%
  summarise(
    NBI = mean(Porc_almenosuna_NBI),
    Servicios_cult = mean(Servicio_cultural)
  )
## # A tibble: 3 × 3
##   particion   NBI Servicios_cult
##       <int> <dbl>          <dbl>
## 1         1  48.3         -1.17 
## 2         2  32.1          0.119
## 3         3  18.4          0.553
df1$name = rownames(df1)
df1$particion = factor(df1$particion)
levels(df1$particion) = c("Alto NBI - Bajo SC", "Medio NBI - Medio SC", "Bajo NBI - Alto SC")
df1$name=toupper(df1$name)
mapDEP1=merge(mapDEP,df1,by.x='NOMBDEP',by.y='name', all.x = T)
library(wesanderson)
mapa5 = ggplot(mapDEP1)+ geom_sf() + theme_light() + geom_sf(data=mapDEP1, aes(fill=particion),color = "gray") +
  coord_sf() + scale_fill_manual(values=wes_palette(n=3, name="Darjeeling2")) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.1,0.55)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Necesidades Básicas Insatisfechas (NBI) vs Servicios Culturales (SC)",caption = "Fuente: Datos abiertos MC\nElaborado por: Unidad de Estudios Economicos-MC") + theme(plot.title = element_text(color="black", size=15, face="bold"), plot.caption = element_text(color = "black", size=10))

mapa5

Clusterización de Violencia contra la mujer y servicios culturales

df2 =select(df0, c(1,4))
fviz_nbclust(df2, kmeans, method = "silhouette")

##   cluster size ave.sil.width
## 1       1    9          0.62
## 2       2   16          0.42

Solo un departamentos reportan un width negativo.

## [1] 1
df2 %>%
  group_by(particion) %>%
  summarise(
    Violencia = mean(Porcentaje_violencia),
    Servicios_cult = mean(Servicio_cultural)
  )
## # A tibble: 2 × 3
##   particion Violencia Servicios_cult
##       <int>     <dbl>          <dbl>
## 1         1      11.4         -0.379
## 2         2      16.8          0.213
df2$name = rownames(df2)
df2$particion = factor(df2$particion)
levels(df2$particion) = c("Bajo Violencia - Bajo SC", "Alto Violencia - Alto SC")
df2$name=toupper(df2$name)
mapDEP1=merge(mapDEP,df2,by.x='NOMBDEP',by.y='name', all.x = T)
library(wesanderson)
mapa6 = ggplot(mapDEP1)+ geom_sf() + theme_light() + geom_sf(data=mapDEP1, aes(fill=particion),color = "gray") +
  coord_sf() + scale_fill_manual(values=wes_palette(n=3, name="Darjeeling2")) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.1,0.55)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Violencia contra la mujer vs Servicios Culturales (SC)",caption = "Fuente: Datos abiertos MC\nElaborado por: Unidad de Estudios Economicos-MC") + theme(plot.title = element_text(color="black", size=15, face="bold"), plot.caption = element_text(color = "black", size=10))

mapa6

Clusterización de Racismo y servicios culturales

df3 =select(df0, c(2,4))
fviz_nbclust(df3, kmeans, method = "silhouette")

##   cluster size ave.sil.width
## 1       1   18          0.61
## 2       2    7          0.50

Solo 2 departamentos reportan un width negativo.

## [1] 0
df3 %>%
  group_by(particion) %>%
  summarise(
    Racismo = mean(Por_racismo_2019),
    Servicios_cult = mean(Servicio_cultural)
  )
## # A tibble: 2 × 3
##   particion Racismo Servicios_cult
##       <int>   <dbl>          <dbl>
## 1         1    8.01         -0.290
## 2         2   18.2           0.746
df3$name = rownames(df3)
df3$particion = factor(df3$particion)
levels(df3$particion) = c("Bajo Racismo - Bajo SC", "Alto Racismo - Alto SC")
df3$name=toupper(df3$name)
mapDEP1=merge(mapDEP,df3,by.x='NOMBDEP',by.y='name', all.x = T)
library(wesanderson)
mapa7 = ggplot(mapDEP1)+ geom_sf() + theme_light() + geom_sf(data=mapDEP1, aes(fill=particion),color = "gray") +
  coord_sf() + scale_fill_manual(values=wes_palette(n=3, name="Darjeeling2")) + theme_void() + 
  theme(axis.title = element_blank(), axis.text = element_blank(), legend.position = c(1.1,0.55)) + labs(fill=" ") + theme(legend.text = element_text(size = 13)) +
  labs(title = "Racismo vs Servicios Culturales (SC)",caption = "Fuente: Datos abiertos MC\nElaborado por: Unidad de Estudios Economicos-MC") + theme(plot.title = element_text(color="black", size=15, face="bold"), plot.caption = element_text(color = "black", size=10))

mapa7