Apuntes sobre preferencia electoral en la Ciudad de Lanús en las legislativas de 2021

codigo
apuntes
Author

Pedro Damian Orden

Published

September 14, 2022

Presentación del tema

En este documento electrónico exploraremos el desempeño de las agrupaciones políticas ponderado por circuito electoral en la Elección General de 2021 para la categoría concejal en el Municipio de Lanús (Provincia de Buenos Aires).

Obtención de datos

Para desandar la exploración se utilizarán los datos detallados de las Elecciones Generales de 2021, obtenidos previamente por medio de un pedido de información pública a la Cámara Nacional Electoral. El dataset contiene los resultados que obtuvieron las agrupaciones para la categoría concejal por escuela, circuito y distrito en Lanús.

Code
library(readr)
library(tidyverse)
library(sf)
library(leaflet)
library(ggthemes)
library(viridis)
library(fst)

mesas_escrutadas<-read.csv("https://raw.githubusercontent.com/pedroorden/concejales2021/main/mesas_escrutadas.csv", encoding="UTF-8")

Apliquemos algunas funciones de resumen para conocer nuestros datos:

head

Code
head(mesas_escrutadas)
  X Agrupacion      Cargo Codigo     Distrito
1 1       <NA> CONCEJALES   6370 Buenos Aires
2 2       <NA> CONCEJALES   6370 Buenos Aires
3 3       <NA> CONCEJALES   6370 Buenos Aires
4 4       <NA> CONCEJALES   6370 Buenos Aires
5 5       <NA> CONCEJALES   6370 Buenos Aires
6 6     JUNTOS CONCEJALES   6370 Buenos Aires
                        Establecimiento            Fecha IdCargo IdCircuito
1 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
2 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
3 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
4 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
5 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
6 ESCUELA EP N<U+00B0>19/ES N<U+00B0>48 14-11-2021 18:55       7        276
  IdDistrito IdSeccion   Mesa  Seccion electores envio idAgrupacion
1          2        62 01015X Lan<fa>s       355     6           NA
2          2        62 01015X Lan<fa>s       355     6           NA
3          2        62 01015X Lan<fa>s       355     6           NA
4          2        62 01015X Lan<fa>s       355     6           NA
5          2        62 01015X Lan<fa>s       355     6           NA
6          2        62 01015X Lan<fa>s       355     6          506
  idAgrupacionInt   tipoVoto votos
1              NA    blancos     6
2              NA      nulos     0
3              NA recurridos     0
4              NA    comando     0
5              NA impugnados     0
6              43   positivo   133

summary

Code
summary(mesas_escrutadas)
       X          Agrupacion           Cargo               Codigo     
 Min.   :    1   Length:11230       Length:11230       Min.   : 6216  
 1st Qu.: 2808   Class :character   Class :character   1st Qu.: 6272  
 Median : 5616   Mode  :character   Mode  :character   Median : 6331  
 Mean   : 5616                                         Mean   :11242  
 3rd Qu.: 8423                                         3rd Qu.:11589  
 Max.   :11230                                         Max.   :40223  
                                                                      
   Distrito         Establecimiento       Fecha              IdCargo 
 Length:11230       Length:11230       Length:11230       Min.   :7  
 Class :character   Class :character   Class :character   1st Qu.:7  
 Mode  :character   Mode  :character   Mode  :character   Median :7  
                                                          Mean   :7  
                                                          3rd Qu.:7  
                                                          Max.   :7  
                                                                     
   IdCircuito      IdDistrito   IdSeccion      Mesa          
 Min.   :259.0   Min.   :2    Min.   :62   Length:11230      
 1st Qu.:262.0   1st Qu.:2    1st Qu.:62   Class :character  
 Median :265.0   Median :2    Median :62   Mode  :character  
 Mean   :267.8   Mean   :2    Mean   :62                     
 3rd Qu.:274.0   3rd Qu.:2    3rd Qu.:62                     
 Max.   :276.0   Max.   :2    Max.   :62                     
                                                             
   Seccion            electores         envio        idAgrupacion  
 Length:11230       Min.   : 98.0   Min.   : 6.00   Min.   :503.0  
 Class :character   1st Qu.:350.0   1st Qu.:19.00   1st Qu.:504.0  
 Mode  :character   Median :351.0   Median :24.00   Median :506.0  
                    Mean   :356.2   Mean   :27.49   Mean   :505.6  
                    3rd Qu.:353.0   3rd Qu.:36.00   3rd Qu.:507.0  
                    Max.   :576.0   Max.   :68.00   Max.   :508.0  
                                                    NA's   :5615   
 idAgrupacionInt   tipoVoto             votos       
 Min.   :40.0    Length:11230       Min.   :  0.00  
 1st Qu.:41.0    Class :character   1st Qu.:  0.00  
 Median :43.0    Mode  :character   Median :  8.00  
 Mean   :42.6                       Mean   : 24.73  
 3rd Qu.:44.0                       3rd Qu.: 21.00  
 Max.   :45.0                       Max.   :164.00  
 NA's   :5615                                       

class

Code
class(mesas_escrutadas)
[1] "data.frame"

names

Code
names(mesas_escrutadas)
 [1] "X"               "Agrupacion"      "Cargo"           "Codigo"         
 [5] "Distrito"        "Establecimiento" "Fecha"           "IdCargo"        
 [9] "IdCircuito"      "IdDistrito"      "IdSeccion"       "Mesa"           
[13] "Seccion"         "electores"       "envio"           "idAgrupacion"   
[17] "idAgrupacionInt" "tipoVoto"        "votos"          

dim

Code
dim(mesas_escrutadas)
[1] 11230    19

Los primeros resultados indican que se trata de un conjunto de datos con 11.230 observaciones y 19 variables, en formato numérico y de texto.

Transformación

Creamos un nuevo conjunto de datos que filtra sólo los votos positivos que obtuvieron las agrupaciones, tal como lo establece la Constitución Nacional para realizar los conteos en las elecciones generales.

Llegado este punto se procesa, por circuito electoral, la cantidad de votos de cada una de las agrupaciones por la cantidad de electores, con el objetivo de generar una nueva variable de ponderación llamada ratio_electoral.

Code
lanus1<-mesas_escrutadas%>%
  filter(tipoVoto=="positivo")%>% #filtra votos positivos
  group_by(IdCircuito, Agrupacion)%>%
  summarise(votosxcirc=sum(votos),
            electoresxcirc=sum(electores))%>%
  mutate(ratio_electoral=votosxcirc/electoresxcirc)%>% #crea ratio_electoral
  mutate(IdCircuito=as.factor(IdCircuito))

El agregado de ratio_electoral es una decisión teórica que procura dar cuenta de la especificidad local de cada circuito electoral de Lanús, y coadyuvar a una exploración comparativa de los datos en dos sentidos:

  1. La lectura del fenómeno del voto para una agrupación particular, por circuito electoral, para detectar zonas con mejor o peor ratio_electoral voto/electores.

  2. La comparación general del ratio_electoral por circuito electoral de las distintas agrupaciones.

Primeras impresiones

El nuevo df lanus1 consta de 5 variables, 65 observaciones. Suma los votos afirmativos totales por circuito electoral de las distintas agrupaciones, además de calcular la performance de las mismas ponderando la razón votos/electores.

Con este set ya estaremos en condiciones de comenzar a reflexionar en torno a la preferencia electoral en 2021 de los y las lanusenses a escala de circuito electoral.

Exploración Gráfica

Antes de generar nuestros mapas será importante visualizar la cantidad de electores por circuito para conocer el peso cuantitativo de cada uno.

Code
lanus1%>%
  select(IdCircuito, electoresxcirc)%>%
  unique()%>%
  arrange(electoresxcirc)%>%
  ggplot() +
  aes(x=reorder(IdCircuito,-electoresxcirc), 
      y = electoresxcirc) +
  geom_point(aes(size = electoresxcirc, 
                 fill = electoresxcirc),
             shape = 21, alpha = 0.7) +
  scale_fill_viridis_c(guide = "legend") +
  labs(x = "Circuito número",
       y = "Total electores",
       title = "Cuadro 1: Total de electores por circuito electoral",
       subtitle = "",
       caption = "Fuente: elaboración propia en base a datos de la CNE.")+
  theme_minimal()

El circuito con mayor cantidad de electores es el 262 y el que menos tiene el 264.

Seguidamente nos interesará conocer cómo se plasma la variable ratio_electoral de cada fuerza por circuito electoral, para ello se presenta un cuadro con gráficas barra facetadas.

Code
ggplot(lanus1) +
  aes(x = IdCircuito, y = ratio_electoral, fill = IdCircuito) +
  geom_col() +
  labs(
    x = "Circuito número",
    y = "ratio votos/electores",
    title = "Cuadro 2: Razon votantes/electores por circuito",
    subtitle = "",
    caption = "Fuente: elaboración propia en base a datos de la CNE.") +
  coord_flip() +
  theme_linedraw() +
  theme(legend.position = "none",
        strip.text.x = element_text(size = 4.1))+
  facet_wrap(vars(Agrupacion))

Con esta primera imagen podremos observar que las agrupaciones Juntos y Frente de Todos presentaron las valores más altos para la variable ratio_electoral, destacando el Frente de Izquierda como la que tuvo mejor performance entre aquellas fuerzas con menor caudal de votos.

Mapeo de electores por circuito

Para localizar los datos previamente explorados procederemos a obtener un archivo con las coordenadas geográficas de los circuitos electorales de Lanús.

Code
circuitos <- read_sf("https://github.com/pedroorden/concejales2021/raw/main/circuitos02_cne.geojson")%>%
  filter(departamen=="Lanús")%>%
  mutate(IdCircuito=substring(circuito, 2))

Los mismos se unen al objeto lanus1 para crear lanus2 como conjunto de datos geográficos.

Code
lanus2<-lanus1%>%
  left_join(circuitos, by="IdCircuito")%>%
  st_as_sf()

Se genera un mapa leaflet recreando espacialmente el ejercicio propuesto en el cuadro 1. La escala viridis será utilizada aquí, y a lo largo de todo el trabajo, para reflejar visualmente la mayor (color claro) o menor (color oscuro) magnitud de un fenómeno, por ej: electores, votos, ratio_electoral, etc.

La localización de los datos en un mapa permite reconocer los circuitos más poblados, son el 273 y 262, al norte y sur del municipio respectivamente. 264 y 259 son aquellos circuitos que cuentan con menos electores.

ratio_electoral por agrupación

Posteriormente, se recrea con ggplot la propuesta del cuadro 2 para visualizar en un mapa de cloropetas la variable ratio_electoral (votos/electores) por circuito electoral para las distintas agrupaciones.

Juntos

FPV

Avanza Libertad

Frente de Izquierda

Vamos con vos

Comparativas

La próxima secuencia realiza un facetado que compara mediante dos gráficos con escalas diferenciadas las dos agrupaciones con mayor ratio_electoral por un lado y las terceras fuerzas con sus respectivos valores por otro.

Code
a1<-lanus2%>%
  # filter(!Agrupacion %in% c("JUNTOS","FRENTE DE TODOS"))%>%
  filter(Agrupacion %in% c("FRENTE DE TODOS", "JUNTOS"))%>%
  ggplot() +  
labs(title = "Razon votantes/electores por circuito",
         subtitle = "Elecciones generales 2021 para la categoría concejal en Lanús.",
       caption = "Fuente: elaboración propia en base a datos de la CNE.") +  geom_sf(aes(fill = ratio_electoral)) + 
  facet_wrap(~Agrupacion)+
  scale_fill_viridis_c() +
  theme_map()+
  theme(legend.position = "bottom") +
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        strip.text.x = element_text(size = 6),
        axis.title.y=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank())

b2<-lanus2%>%
  # filter(!Agrupacion %in% c("JUNTOS","FRENTE DE TODOS"))%>%
  filter(Agrupacion %in% c("FRENTE DE IZQUIERDA Y DE TRABAJADORES - UNIDAD", "FRENTE VAMOS CON VOS", "AVANZA LIBERTAD"))%>%
  ggplot() +  
  geom_sf(aes(fill = ratio_electoral)) + 
      labs(title = "Razon votantes/electores por circuito",
         subtitle = "Elecciones generales 2021 para la categoría concejal en Lanús.",
       caption = "Fuente: elaboración propia en base a datos de la CNE.") +
  facet_wrap(~Agrupacion)+
  scale_fill_viridis_c() +
  theme_map()+
  theme(legend.position = "bottom") +
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        strip.text.x = element_text(size = 6),
        axis.title.y=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank())

Juntos | Frente De todos

El mapa que compara FDT y Juntos denota un patrón en el cual los circuitos del centro tienden a manifestar una preferencia electoral por Juntos y los de la periferia por el Frente de Todos.

Frente de Izquierda| Avanza Libertad| Vamos Con Vos

Con respecto a las terceras fuerzas el panorama presenta mayor complejidad puesto que el Frente de Izquierda y Avanza Libertad presentan situaciones similares, aunque la Izquierda con una leve mejoría en la variable ratio_electoral circuito por circuito. Con respecto al Frente Vamos Con Vos en la comparativa sólo muestra mayor presencia en un territorio del norte del municipio.

Conclusiones

El presente documento electrónico procuró abordar un fenómeno concreto y medible: las Elecciones Generales en Lanús de 2021, específicamente los resultados para la categoría concejal , con datos agrupados por circuito electoral.

Con la intensión de encontrar en los datos uno o mas insights, se construyó la variable ratio_electoral que ha permitido realizar una lectura ponderada de los votos por circuito electoral para reconocer visualmente cual fue el desempeño de cada agrupación en cuanto a los votos ajustados por la cantidad de electores totales por territorio.

Los resultados de esta exploración gráfica de carácter general indican que la fuerza que mejor desempeño ha tenido en la compulsa por circuito electoral ha sido Juntos, aunque el Frente de Todos ese mantuvo cerca, ganando en los circuitos con mayor cantidad de electores.

Las terceras fuerzas quedaron lejos de las dos primeras, lo cual daría cuenta de un aparente carácter bipartidista en la gimnasia política de Lanús. Aún así, el Frente de Izquierda es la agrupación que levemente emerge con una mejor performance por sobre Avanza Libertad y el Frente Vamos Con Vos.

Si bien como reza el refrán popular “al final del día todos los votos valen 1”, la exploración de la relación voto/electores ponderada por circuito ha permitido conocer la penetración de una agrupación en un territorio dado y se presta como un insumo complementario para evaluar cuestiones tales como estrategias políticas, campañas de comunicación y la gestión de los siempre escasos rescursos de militancia.

Quedará para futuros trabajos seguir explorando estos datos con nuevas aperturas, temporalidades y sumando nuevos algoritmos.

Reuse

Citation

BibTeX citation:
@online{damian orden2022,
  author = {Damian Orden, Pedro},
  title = {Apuntes Sobre Preferencia Electoral En La {Ciudad} de {Lanús}
    En Las Legislativas de 2021},
  date = {2022-09-14},
  url = {https://tecysoc.netlify.app/posts/elecciones},
  langid = {en}
}
For attribution, please cite this work as:
Damian Orden, Pedro. 2022. “Apuntes Sobre Preferencia Electoral En La Ciudad de Lanús En Las Legislativas de 2021.” September 14, 2022. https://tecysoc.netlify.app/posts/elecciones.