Peru

El 6 de junio de 2021, en las últimas elecciones generales, los peruanos escogieron al Presidente de la República, los Vicepresidentes, Representantes a la Cámara y Miembros del Parlamento Andino. De 24,290,921 electores habilitados, se registraron 17,485,814 en total, para una tasa de participación de 72%. No obstante, 1,087,222 de votos fueron nulos, es decir, el 6.2% del total.

Librerías

library(readr)
library(tidyr)
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2

Base de datos nacional

Primero, importamos la base de datos nacional que contiene los resultados de las elecciones utilizando la función read_delim de la librería readr. Especificamos la codificación ISO-8859-1 para asegurar la correcta interpretación de caracteres especiales.

Peru_NAL <- read_delim("C:\\Users\\tomas\\OneDrive\\Desktop\\ArcGIS\\UniAndes\\Peru\\RESUMEN_VOTOS_PRESI_EG2021_NAL.csv", 
                       locale = locale(encoding = "ISO-8859-1"))
## Rows: 2912 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (4): DEPARTAMENTO, PROVINCIA, DISTRITO, CCPP
## num (6): Electores Habiles, Votos Emitidos, Votos Validos, Votos Blancos, Vo...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
str(Peru_NAL)
## spc_tbl_ [2,912 × 10] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ DEPARTAMENTO     : chr [1:2912] "AMAZONAS" "AMAZONAS" "AMAZONAS" "AMAZONAS" ...
##  $ PROVINCIA        : chr [1:2912] "BAGUA" "BAGUA" "BAGUA" "BAGUA" ...
##  $ DISTRITO         : chr [1:2912] "ARAMANGO" "ARAMANGO" "ARAMANGO" "BAGUA" ...
##  $ CCPP             : chr [1:2912] "EL MUYO" "EL PORVENIR" NA "PECA PALACIOS" ...
##  $ Electores Habiles: num [1:2912] 934 1537 6055 388 18334 ...
##  $ Votos Emitidos   : num [1:2912] 684 1046 3842 299 13303 ...
##  $ Votos Validos    : num [1:2912] 531 679 2607 209 9959 ...
##  $ Votos Blancos    : num [1:2912] 120 273 933 72 1981 ...
##  $ Votos Nulos      : num [1:2912] 33 94 302 18 1363 ...
##  $ Ausentismo       : num [1:2912] 250 491 2213 89 5031 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   DEPARTAMENTO = col_character(),
##   ..   PROVINCIA = col_character(),
##   ..   DISTRITO = col_character(),
##   ..   CCPP = col_character(),
##   ..   `Electores Habiles` = col_number(),
##   ..   `Votos Emitidos` = col_number(),
##   ..   `Votos Validos` = col_number(),
##   ..   `Votos Blancos` = col_number(),
##   ..   `Votos Nulos` = col_number(),
##   ..   Ausentismo = col_number()
##   .. )
##  - attr(*, "problems")=<externalptr>

Creación bases de datos reigonales

Agrupamos los datos a nivel de departamento, provincia y distrito con group_by(), y calculamos diversas estadísticas como el número de electores, votos emitidos, votos válidos, votos en blanco, votos nulos, y ausentismo con summarise(). También calculamos las tasas de ausentismo, nulidad y votos en blanco con mutate().

Peru_Dep <- Peru_NAL %>% 
  group_by(DEPARTAMENTO) %>% 
  summarize(
    Electores = sum(`Electores Habiles`),
    Emitidos_Dep = sum(`Votos Emitidos`),
    Validos_Dep = sum(`Votos Validos`),
    Blancos_Dep = sum(`Votos Blancos`),
    Nulos_Dep = sum(`Votos Nulos`),
    Ausentismo_Dep = sum(Ausentismo),
    Tasa_ausentismo = sum(Ausentismo) / sum(`Electores Habiles`),
    Tasa_nulos = sum(`Votos Nulos`) / sum(`Votos Emitidos`)
  )

Peru_Prov <- Peru_NAL %>% 
  group_by(DEPARTAMENTO, PROVINCIA) %>% 
  summarize(
    Electores = sum(`Electores Habiles`),
    Emitidos_Prov = sum(`Votos Emitidos`),
    Validos_Prov = sum(`Votos Validos`),
    Blancos_Prov = sum(`Votos Blancos`),
    Nulos_Prov = sum(`Votos Nulos`),
    Ausentismo_Prov = sum(Ausentismo),
    Tasa_ausentismo = sum(Ausentismo) / sum(`Electores Habiles`),
    Tasa_nulos = sum(`Votos Nulos`) / sum(`Votos Emitidos`)
  ) %>%
  mutate(Territorio = paste(DEPARTAMENTO, PROVINCIA, sep = "-x|"),
         Tasa_blancos = Blancos_Prov / Emitidos_Prov)
## `summarise()` has grouped output by 'DEPARTAMENTO'. You can override using the
## `.groups` argument.
Peru_Dist <- Peru_NAL %>% 
  group_by(DEPARTAMENTO, PROVINCIA, DISTRITO) %>% 
  summarize(
    Electores = sum(`Electores Habiles`),
    Emitidos_Dist = sum(`Votos Emitidos`),
    Validos_Dist = sum(`Votos Validos`),
    Blancos_Dist = sum(`Votos Blancos`),
    Nulos_Dist = sum(`Votos Nulos`),
    Ausentismo_Dist = sum(Ausentismo),
    Tasa_ausentismo = sum(Ausentismo) / sum(`Electores Habiles`),
    Tasa_nulos = sum(`Votos Nulos`) / sum(`Votos Emitidos`)
    ) %>%
  mutate(Territorio = paste(DEPARTAMENTO, PROVINCIA, DISTRITO, sep = "-"),
         Tasa_blancos = Blancos_Dist / Emitidos_Dist)
## `summarise()` has grouped output by 'DEPARTAMENTO', 'PROVINCIA'. You can
## override using the `.groups` argument.

Exportar datos

Exportamos las bases de datos procesadas a archivos CSV para su posterior análisis espacial en ArcGIS.

write_csv2(Peru_Dep, 'C:/Users/tomas/OneDrive/Desktop/ArcGIS/UniAndes/Peru/RESUMEN_VOTOS_PRESI_EG2021_DEP.csv')

write.csv2(Peru_Prov, 'C:/Users/tomas/OneDrive/Desktop/ArcGIS/UniAndes/Peru/RESUMEN_VOTOS_PRESI_EG2021_PROV.csv')

write.csv2(Peru_Dist, 'C:/Users/tomas/OneDrive/Desktop/ArcGIS/UniAndes/Peru/RESUMEN_VOTOS_PRESI_EG2021_DIST.csv')

Gráficas

Creamos una matriz de gráficos que muestra las relaciones entre la tasa de votos en blanco, la tasa de ausentismo y la tasa de nulidad para los distritos, utilizando la función ggpairs del paquete GGally. Los puntos están coloreados según el departamento y tienen una transparencia ajustada para mejorar la visualización.

ggpairs(Peru_Dist, columns = c("Tasa_blancos", "Tasa_ausentismo", "Tasa_nulos"), 
        aes(color = DEPARTAMENTO, alpha = 0.6)) +
  labs(title = "Matriz de gráficos: Tasa de Votos en Blanco, Tasa de Ausentismo y Tasa de Nulidad")