Análisis preliminar de datos

# carga preliminar de las librerías
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.0     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.1.8
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Carga de los datos

library(xlsx)
# importando
datos <- read.xlsx2("data/mdp_conflictos.xlsx",sheetIndex=1)
  1. Cantidad de filas contenidas en el archivo
count(datos)
##      n
## 1 4529
  1. Cantidad de columnas
columnas <- length(datos)
columnas
## [1] 43
  1. De qué tipo son las columnas (tipos de datos)
# cambiando tipos
datos <- datos %>%
  mutate(año = as.integer(año), dia = as.integer(dia))
head(datos)
##   id_evento id_evento_relacionado  año       mes dia trimestre
## 1   1990001                       1990 DICIEMBRE   3    1990q4
## 2   1990002                       1990 NOVIEMBRE  22    1990q4
## 3   1990003                       1990   OCTUBRE  17    1990q4
## 4   1990004               1991001 1991     ENERO   2    1991q1
## 5   1990005               1991001 1991     ENERO   2    1991q1
## 6   1990006                       1991     MARZO   4    1991q1
##             fecha_reportada    comuna provincia                    region
## 1 LA FECHA NO SE ESPECIFICA  CONTULMO    ARAUCO                   BIO-BIO
## 2 LA FECHA NO SE ESPECIFICA LONQUIMAY   MALLECO                 ARAUCANIA
## 3 LA FECHA NO SE ESPECIFICA  SANTIAGO  SANTIAGO METROPOLITANA DE SANTIAGO
## 4 LA FECHA NO SE ESPECIFICA LONQUIMAY   MALLECO                 ARAUCANIA
## 5 LA FECHA NO SE ESPECIFICA LONQUIMAY   MALLECO                 ARAUCANIA
## 6 LA FECHA NO SE ESPECIFICA   CAÑETE    ARAUCO                   BIO-BIO
##            ubicacion_tipo  rural   evento_tipo_maceda
## 1                  CAMINO  RURAL             PROTESTA
## 2                   FUNDO  RURAL             PROTESTA
## 3                 IGLESIA URBANO             PROTESTA
## 4                   FUNDO  RURAL OCUPACION DE TIERRAS
## 5                   FUNDO  RURAL             COERCION
## 6 TIERRAS NO ESPECIFICADO  RURAL OCUPACION DE TIERRAS
##                                      evento_especifico         actor_tipo_1
## 1           OBSTRUCCION DEL PASO (DIFERENTE DE CAMINO)            COMUNIDAD
## 2           OBSTRUCCION DEL PASO (DIFERENTE DE CAMINO)            COMUNIDAD
## 3 OCUPACION DE PROPIEDAD PRIVADA (DIFERENTE A TIERRAS) ORGANIZACION MAPUCHE
## 4                        OCUPACION DE TIERRAS PACIFICA            COMUNIDAD
## 5                                             DESALOJO            COMUNIDAD
## 6                        OCUPACION DE TIERRAS PACIFICA        OTROS MAPUCHE
##   actor_tipo_1_nombre          actor_especifico_1 actor_especifico_1_num
## 1                        MIEMBROS DE LA COMUNIDAD                       
## 2            QUINQUEN    MIEMBROS DE LA COMUNIDAD                       
## 3     MELI WIXAN MAPU MIEMBROS DE LA ORGANIZACION                       
## 4            QUINQUEN    MIEMBROS DE LA COMUNIDAD                       
## 5            QUINQUEN    MIEMBROS DE LA COMUNIDAD                       
## 6                             GRUPO IDENTIFICABLE                       
##   actor_especifico_1_armas actor_relacionado_1
## 1           NO SE MENCIONA                  PC
## 2           NO SE MENCIONA                    
## 3           NO SE MENCIONA                    
## 4           NO SE MENCIONA                    
## 5           NO SE MENCIONA                    
## 6           NO SE MENCIONA          AD-MAPU;PC
##                        actor_tipo_2                      actor_tipo_2_nombre
## 1                  EMPRESA FORESTAL                                         
## 2       PRIVADOS DUEÑOS DE TIERRAS                                         
## 3 ORGANIZACION NO MAPUCHE - IGLESIA IGLESIA SAN FRANCISCO (IGLESIA CATOLICA)
## 4       PRIVADOS DUEÑOS DE TIERRAS                                         
## 5                            ESTADO                                         
## 6       PRIVADOS DUEÑOS DE TIERRAS                                         
##   actor_especifico_2 actor_especifico_2_num actor_especifico_2_armas
## 1       TRABAJADORES                    150           NO SE MENCIONA
## 2       TRABAJADORES                                  NO SE MENCIONA
## 3                                                                   
## 4                                                                   
## 5        CARABINEROS                                  NO SE MENCIONA
## 6                                                                   
##           actor_relacionado_2              actor_mapuche mapuche_identificado
## 1                             SOLO EL ACTOR 1 ES MAPUCHE                   SI
## 2                             SOLO EL ACTOR 1 ES MAPUCHE                   SI
## 3                             SOLO EL ACTOR 1 ES MAPUCHE                   SI
## 4                             SOLO EL ACTOR 1 ES MAPUCHE                   SI
## 5 PRIVADOS DUEÑOS DE TIERRAS SOLO EL ACTOR 1 ES MAPUCHE                   SI
## 6                             SOLO EL ACTOR 1 ES MAPUCHE                   SI
##   confrontacion iniciador
## 1            NO   ACTOR 1
## 2            NO   ACTOR 1
## 3            NO   ACTOR 1
## 4            NO   ACTOR 1
## 5            NO   ACTOR 2
## 6            NO   ACTOR 1
##                                                                                                                                                         descripcion
## 1                              COMUNIDADES MAPUCHE SE MANIFESTARON BLOQUEANDO CAMINOS E IMPIDIENDO LA EXPLOTACION FORESTAL DE PARTE DE 150 TRABAJADORES EN CONTULMO
## 2 PEHUENCHES BLOQUEAN CAMINOS DE ACCESO AL FUNDO QUINQUEN PARA IMPEDIR QUE LOS DUEÑOS SAQUEN CAMIONADAS DE ARAUCARIAS TALADAS, EL FUNDO TIENE UN LITIGIO PENDIENTE
## 3                   PARA LOGRAR ENTREVISTA CON LOS REYES DE ESPAÑA, LA CORDINADORA METROPOLITANA DE PUEBLOS INDIGENAS OCUPO PACIFICAMENTE LA IGLESIA SAN FRANCISCO
## 4                                                                                 UN GRUPO DE PEHUENCHES DE LA COMUNIDAD QUINQUEN OCUPARON PARTE DEL FUNDO GALLETUE
## 5                                                                     CARABINEROS DESALOJO A UN GRUPO DE PEHUENCHES QUE OCUPABA EL FUNDO GALLETUE, HUBO 2 DETENIDOS
## 6                                             MAPUCHE PROTAGONIZAN OCUPACIONES DE TERRENOS EN CAÑETE, AUTORIDADES SEÑALAN QUE ESTAN INDUCIDOS POR EL PC Y AD MAPU
##   propiedad_destruida propiedad_dañada propiedad_robada perdida_estimada
## 1                                                                       
## 2                                                                       
## 3                                                                       
## 4                                                                       
## 5                                                                       
## 6                                                                       
##   arrestos heridos muertos mercurio mella osal ciudadano biobio
## 1                                SI    SI   NO        NO     NO
## 2                                SI    SI   NO        NO     NO
## 3                                NO    SI   NO        NO     NO
## 4                                SI    SI   NO        NO     NO
## 5        2                       SI    SI   NO        NO     NO
## 6                                SI    SI   NO        NO     NO
glimpse(datos)
## Rows: 4,529
## Columns: 43
## $ id_evento                <chr> "1990001", "1990002", "1990003", "1990004", "…
## $ id_evento_relacionado    <chr> "", "", "", "1991001", "1991001", "", "", "",…
## $ año                      <int> 1990, 1990, 1990, 1991, 1991, 1991, 1991, 199…
## $ mes                      <chr> "DICIEMBRE", "NOVIEMBRE", "OCTUBRE", "ENERO",…
## $ dia                      <int> 3, 22, 17, 2, 2, 4, 15, 5, 12, 12, 12, 15, 16…
## $ trimestre                <chr> "1990q4", "1990q4", "1990q4", "1991q1", "1991…
## $ fecha_reportada          <chr> "LA FECHA NO SE ESPECIFICA", "LA FECHA NO SE …
## $ comuna                   <chr> "CONTULMO", "LONQUIMAY", "SANTIAGO", "LONQUIM…
## $ provincia                <chr> "ARAUCO", "MALLECO", "SANTIAGO", "MALLECO", "…
## $ region                   <chr> "BIO-BIO", "ARAUCANIA", "METROPOLITANA DE SAN…
## $ ubicacion_tipo           <chr> "CAMINO", "FUNDO", "IGLESIA", "FUNDO", "FUNDO…
## $ rural                    <chr> "RURAL", "RURAL", "URBANO", "RURAL", "RURAL",…
## $ evento_tipo_maceda       <chr> "PROTESTA", "PROTESTA", "PROTESTA", "OCUPACIO…
## $ evento_especifico        <chr> "OBSTRUCCION DEL PASO (DIFERENTE DE CAMINO)",…
## $ actor_tipo_1             <chr> "COMUNIDAD", "COMUNIDAD", "ORGANIZACION MAPUC…
## $ actor_tipo_1_nombre      <chr> "", "QUINQUEN", "MELI WIXAN MAPU", "QUINQUEN"…
## $ actor_especifico_1       <chr> "MIEMBROS DE LA COMUNIDAD", "MIEMBROS DE LA C…
## $ actor_especifico_1_num   <chr> "", "", "", "", "", "", "50", "2", "", "5", "…
## $ actor_especifico_1_armas <chr> "NO SE MENCIONA", "NO SE MENCIONA", "NO SE ME…
## $ actor_relacionado_1      <chr> "PC", "", "", "", "", "AD-MAPU;PC", "", "", "…
## $ actor_tipo_2             <chr> "EMPRESA FORESTAL", "PRIVADOS DUE√ëOS DE TIER…
## $ actor_tipo_2_nombre      <chr> "", "", "IGLESIA SAN FRANCISCO (IGLESIA CATOL…
## $ actor_especifico_2       <chr> "TRABAJADORES", "TRABAJADORES", "", "", "CARA…
## $ actor_especifico_2_num   <chr> "150", "", "", "", "", "", "", "", "", "", ""…
## $ actor_especifico_2_armas <chr> "NO SE MENCIONA", "NO SE MENCIONA", "", "", "…
## $ actor_relacionado_2      <chr> "", "", "", "", "PRIVADOS DUE√ëOS DE TIERRAS"…
## $ actor_mapuche            <chr> "SOLO EL ACTOR 1 ES MAPUCHE", "SOLO EL ACTOR …
## $ mapuche_identificado     <chr> "SI", "SI", "SI", "SI", "SI", "SI", "SI", "SI…
## $ confrontacion            <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ iniciador                <chr> "ACTOR 1", "ACTOR 1", "ACTOR 1", "ACTOR 1", "…
## $ descripcion              <chr> "COMUNIDADES MAPUCHE SE MANIFESTARON BLOQUEAN…
## $ propiedad_destruida      <chr> "", "", "", "", "", "", "", "", "", "", "", "…
## $ propiedad_dañada         <chr> "", "", "", "", "", "", "", "", "", "", "DA√ë…
## $ propiedad_robada         <chr> "", "", "", "", "", "", "", "", "", "", "", "…
## $ perdida_estimada         <chr> "", "", "", "", "", "", "", "", "", "", "", "…
## $ arrestos                 <chr> "", "", "", "", "2", "", "", "", "6", "5", ""…
## $ heridos                  <chr> "", "", "", "", "", "", "", "", "", "", "2", …
## $ muertos                  <chr> "", "", "", "", "", "", "", "", "", "", "", "…
## $ mercurio                 <chr> "SI", "SI", "NO", "SI", "SI", "SI", "SI", "SI…
## $ mella                    <chr> "SI", "SI", "SI", "SI", "SI", "SI", "NO", "NO…
## $ osal                     <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ ciudadano                <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ biobio                   <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
  1. Qué representa cada columna

  2. Cuál es el objetivo de los datos

  3. Cuántos valores faltantes hay? por columna

# reemplazando el valor "" por NA
datos[datos == ""] <- NA

# revisando
glimpse(datos)
## Rows: 4,529
## Columns: 43
## $ id_evento                <chr> "1990001", "1990002", "1990003", "1990004", "…
## $ id_evento_relacionado    <chr> NA, NA, NA, "1991001", "1991001", NA, NA, NA,…
## $ año                      <int> 1990, 1990, 1990, 1991, 1991, 1991, 1991, 199…
## $ mes                      <chr> "DICIEMBRE", "NOVIEMBRE", "OCTUBRE", "ENERO",…
## $ dia                      <int> 3, 22, 17, 2, 2, 4, 15, 5, 12, 12, 12, 15, 16…
## $ trimestre                <chr> "1990q4", "1990q4", "1990q4", "1991q1", "1991…
## $ fecha_reportada          <chr> "LA FECHA NO SE ESPECIFICA", "LA FECHA NO SE …
## $ comuna                   <chr> "CONTULMO", "LONQUIMAY", "SANTIAGO", "LONQUIM…
## $ provincia                <chr> "ARAUCO", "MALLECO", "SANTIAGO", "MALLECO", "…
## $ region                   <chr> "BIO-BIO", "ARAUCANIA", "METROPOLITANA DE SAN…
## $ ubicacion_tipo           <chr> "CAMINO", "FUNDO", "IGLESIA", "FUNDO", "FUNDO…
## $ rural                    <chr> "RURAL", "RURAL", "URBANO", "RURAL", "RURAL",…
## $ evento_tipo_maceda       <chr> "PROTESTA", "PROTESTA", "PROTESTA", "OCUPACIO…
## $ evento_especifico        <chr> "OBSTRUCCION DEL PASO (DIFERENTE DE CAMINO)",…
## $ actor_tipo_1             <chr> "COMUNIDAD", "COMUNIDAD", "ORGANIZACION MAPUC…
## $ actor_tipo_1_nombre      <chr> NA, "QUINQUEN", "MELI WIXAN MAPU", "QUINQUEN"…
## $ actor_especifico_1       <chr> "MIEMBROS DE LA COMUNIDAD", "MIEMBROS DE LA C…
## $ actor_especifico_1_num   <chr> NA, NA, NA, NA, NA, NA, "50", "2", NA, "5", N…
## $ actor_especifico_1_armas <chr> "NO SE MENCIONA", "NO SE MENCIONA", "NO SE ME…
## $ actor_relacionado_1      <chr> "PC", NA, NA, NA, NA, "AD-MAPU;PC", NA, NA, "…
## $ actor_tipo_2             <chr> "EMPRESA FORESTAL", "PRIVADOS DUE√ëOS DE TIER…
## $ actor_tipo_2_nombre      <chr> NA, NA, "IGLESIA SAN FRANCISCO (IGLESIA CATOL…
## $ actor_especifico_2       <chr> "TRABAJADORES", "TRABAJADORES", NA, NA, "CARA…
## $ actor_especifico_2_num   <chr> "150", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ actor_especifico_2_armas <chr> "NO SE MENCIONA", "NO SE MENCIONA", NA, NA, "…
## $ actor_relacionado_2      <chr> NA, NA, NA, NA, "PRIVADOS DUE√ëOS DE TIERRAS"…
## $ actor_mapuche            <chr> "SOLO EL ACTOR 1 ES MAPUCHE", "SOLO EL ACTOR …
## $ mapuche_identificado     <chr> "SI", "SI", "SI", "SI", "SI", "SI", "SI", "SI…
## $ confrontacion            <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ iniciador                <chr> "ACTOR 1", "ACTOR 1", "ACTOR 1", "ACTOR 1", "…
## $ descripcion              <chr> "COMUNIDADES MAPUCHE SE MANIFESTARON BLOQUEAN…
## $ propiedad_destruida      <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ propiedad_dañada         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "DA√ë…
## $ propiedad_robada         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ perdida_estimada         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ arrestos                 <chr> NA, NA, NA, NA, "2", NA, NA, NA, "6", "5", NA…
## $ heridos                  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "2", …
## $ muertos                  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ mercurio                 <chr> "SI", "SI", "NO", "SI", "SI", "SI", "SI", "SI…
## $ mella                    <chr> "SI", "SI", "SI", "SI", "SI", "SI", "NO", "NO…
## $ osal                     <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ ciudadano                <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
## $ biobio                   <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO…
# 1. modo simple ( hay valores)
map_dbl(datos, .f = function(x){sum(is.na(x))})
##                id_evento    id_evento_relacionado                      año 
##                        0                     2980                        0 
##                      mes                      dia                trimestre 
##                        0                        0                        0 
##          fecha_reportada                   comuna                provincia 
##                        0                       54                       54 
##                   region           ubicacion_tipo                    rural 
##                       17                        0                       54 
##       evento_tipo_maceda        evento_especifico             actor_tipo_1 
##                        0                        0                        0 
##      actor_tipo_1_nombre       actor_especifico_1   actor_especifico_1_num 
##                     2834                       22                     2787 
## actor_especifico_1_armas      actor_relacionado_1             actor_tipo_2 
##                       22                     4280                        0 
##      actor_tipo_2_nombre       actor_especifico_2   actor_especifico_2_num 
##                     3138                     2242                     3951 
## actor_especifico_2_armas      actor_relacionado_2            actor_mapuche 
##                     2242                     3874                        0 
##     mapuche_identificado            confrontacion                iniciador 
##                        0                        0                        0 
##              descripcion      propiedad_destruida         propiedad_dañada 
##                        0                     3260                     4186 
##         propiedad_robada         perdida_estimada                 arrestos 
##                     4406                     4364                     3926 
##                  heridos                  muertos                 mercurio 
##                     4094                     4486                       40 
##                    mella                     osal                ciudadano 
##                       19                        5                        2 
##                   biobio 
##                        1
# que porcentaje de valores ausente existen
perdidos <- function(x) {sum(is.na(x)) / length(x)*100}

# calculo por columna
apply(datos,2, perdidos)
##                id_evento    id_evento_relacionado                      año 
##               0.00000000              65.79818945               0.00000000 
##                      mes                      dia                trimestre 
##               0.00000000               0.00000000               0.00000000 
##          fecha_reportada                   comuna                provincia 
##               0.00000000               1.19231618               1.19231618 
##                   region           ubicacion_tipo                    rural 
##               0.37535880               0.00000000               1.19231618 
##       evento_tipo_maceda        evento_especifico             actor_tipo_1 
##               0.00000000               0.00000000               0.00000000 
##      actor_tipo_1_nombre       actor_especifico_1   actor_especifico_1_num 
##              62.57451976               0.48575845              61.53676308 
## actor_especifico_1_armas      actor_relacionado_1             actor_tipo_2 
##               0.48575845              94.50209759               0.00000000 
##      actor_tipo_2_nombre       actor_especifico_2   actor_especifico_2_num 
##              69.28681828              49.50320159              87.23780084 
## actor_especifico_2_armas      actor_relacionado_2            actor_mapuche 
##              49.50320159              85.53764628               0.00000000 
##     mapuche_identificado            confrontacion                iniciador 
##               0.00000000               0.00000000               0.00000000 
##              descripcion      propiedad_destruida         propiedad_dañada 
##               0.00000000              71.98056966              92.42658423 
##         propiedad_robada         perdida_estimada                 arrestos 
##              97.28416869              96.35681166              86.68580261 
##                  heridos                  muertos                 mercurio 
##              90.39523074              99.05056304               0.88319717 
##                    mella                     osal                ciudadano 
##               0.41951866               0.11039965               0.04415986 
##                   biobio 
##               0.02207993

Visualizando valores nulos

library(visdat) # visualización de datos
library(naniar)

vis_dat(datos)
## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `gather()` instead.
## ℹ The deprecated feature was likely used in the visdat package.
##   Please report the issue at <https://github.com/ropensci/visdat/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Determinación del porcentaje de datos perdidos.

vis_miss(datos ,sort_miss = TRUE)

# cluster agrupa los datos faltantes
vis_miss(datos ,sort_miss = TRUE, cluster = TRUE)

Deshagamosnos de las columnas con muchos datos faltantes.

datos <- datos %>%
  select(-propiedad_dañada, -propiedad_destruida, -propiedad_robada, -arrestos, -heridos, -muertos, -actor_tipo_1_nombre, -actor_tipo_2_nombre, actor_relacionado_1, -actor_tipo_1_nombre)
vis_miss(datos ,sort_miss = TRUE, cluster = TRUE)

  1. Hay valores mal ingresados?

Tarea: Crear una nueva columna fecha basados en los campos año, mes y dia. este nuevo campo debe ser de tipo fecha (date)