En 2022 se realizaron una serie de encuestas a congresistas de la Cámara y el Senado. Acá los resultados.
Librerías de código necesarias para el análisis de datos:
library(readxl)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.3
## ── 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.1 ✔ 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 ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(writexl)
## Warning: package 'writexl' was built under R version 4.2.3
Se importa la base de datos de excel con los resultados de la encuesta.
IADB_2022 <- read_excel("IADB 2022. Encuesta a Legisladores de Colombia.xlsx")
No todas las variables son relevantes para hacer una comparación estadística de promedios significativos entre la Cámara y el Senado, por lo que ahora filtramos solo las variables necesarias.
El diccionario es el siguiente:
chamber <- Cámara
INF3G <- Declaratoria del Estatuto de Oposición
DEM11 <- Elecciones transparentes y confiables DEM13 <- Participación sin riesgos de seguridad
DEM14 <- Democracia mejora calidad de vida
REP41 <- Representar los intereses del país (1) vs. de su departamento (7)
REP42 <- Trabajar con legisladores de su partido (1) vs. de su región (7)
COM12 <- Deben tener más autoridad los legisladores con más experiencia (1) vs. legisladores con más votos (7)
COM13 <- Deben tener más autoridad hombres y mujeres por igual (1) vs. legisladores con más votos (7)
COM2 <- Comisión con más capacidad técnica (1-7)
TRS1N <- Se debe ser muy cuidadoso con otros legisladores (1) vs. se puede confiar en la mayoría (7)
TRS504 <- Qué tanto confía en la información de los legisladores de su comisión (1 a 4)
TRS3A05 <- Que ranta confianza le tiene al Presidente (1 a 4)
PP1N <- La ciudadanía se identifica con líderes políticos (1) vs. con partidos políticos
PP23 <- Dedica más tiempo a visitar lugares donde tuvo una buena elección (1) vs. donde no hizo campaña antes (7)
ELE12 <- Más espacio al candidato y menos al partido en el tarjetón
ELE13 <- Listas abiertas en el tarjetón
ID42 <- Estado, más que sector privado, como proovedor de salud
ID43 <- Estado para reducir desigualdad de género
ID44 <- Estado para reducir desigualdad económica
ID51 <- Derecho a matrimonio igualitario
ID52 <- Legalización de la marihuana
ID53 <- Legalización del aborto
ID54 <- Pena de muerte
ID1 <- Se considera de izquierda o derecha
TRY3N <- Períodos como congresista
TRY4A01 <- Períodos como gobernador/a
TRY4A02 <- Períodos como alcalde/sa
TRY4A03 <- Períodos como diputado/a
TRY4A04 <- Períodos como concejal/a
IADB_filter <- IADB_2022 %>% select(chamber, INF3G, DEM11, DEM13, DEM14, REP41, REP42, COM12, COM13, COM2, TRS1N, TRS504, TRS3A05, TRS503, PP1N, PP21, ELE12, ELE13, ID42, ID43, ID44, ID51, ID52, ID53, ID54, ID1, TRY3N, TRY4A01, TRY4A02, TRY4A03, TRY4A04)
Finalmente, se reemplazan las respuestas enquivalentes a “No sabe” y “No responde” para no afectar los promedios.
IADB_filter <- IADB_filter %>%
mutate(across(everything(), ~replace(., . %in% c(888888, 988888), NA)))
Ahora se deben agrupar las respuestas según la cámara del
representante, es decir 'chamber == "HOUSE"' o
chamber == "SENATE". Luego se calcula el promedio en cada
cámara de las distintas respuestas y se evalua la significancia de la
diferencia entre las respuestas con una prueba T.
Para calcular los promedios, se utiliza gourp_by() para
dividir según Cámara o Senado y sumarise() para crear
nuevas variables con los promedios de cada encuesta, para evitar la
repetición se pueden utilizar las abreviaciones de cada categoría. Se
eliminan los NA para no afectar el promedio.
# Agrupar por cámara y calcular promedios
IADB_promedios <- IADB_filter %>%
group_by(chamber) %>%
summarise(across(starts_with(c("INF", "DEM", "REP", "COM", "TRS", "PP", "ELE", "ID", "TRY")), mean, na.rm = TRUE)) %>%
pivot_longer(cols = -chamber, names_to = "Pregunta", values_to = "mean") %>%
pivot_wider(names_from = chamber, values_from = mean, names_prefix = "mean_")
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(...)`.
## ℹ In group 1: `chamber = "HOUSE"`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
A continuación, se realiza la prueba T para estimar la significancia en la diferencia entre los promedios en Cámara de Representantes y Senado. Mientras mayor sea el valor de T, es más significativa la diferencia.
# Realizar la prueba t para cada variable
Prueba_T <- IADB_filter %>%
pivot_longer(cols = -chamber, names_to = "Pregunta", values_to = "value") %>%
group_by(Pregunta) %>%
summarise(Cámara = mean(value[chamber == "HOUSE"], na.rm = TRUE),
Senado = mean(value[chamber == "SENATE"], na.rm = TRUE),
Prueba_T = t.test(value ~ chamber)$p.value) %>%
arrange(desc(Prueba_T))
# Mostrar los resultados
print(IADB_promedios)
## # A tibble: 30 × 3
## Pregunta mean_HOUSE mean_SENATE
## <chr> <dbl> <dbl>
## 1 INF3G 1.40 1.61
## 2 DEM11 3.52 3.29
## 3 DEM13 2.51 2.52
## 4 DEM14 3.64 3.63
## 5 REP41 4.08 2.27
## 6 REP42 3.55 3.28
## 7 COM12 3.67 3.64
## 8 COM13 2.52 2.61
## 9 COM2 2.41 2.64
## 10 TRS1N 3.29 3.11
## # … with 20 more rows
print(Prueba_T)
## # A tibble: 30 × 4
## Pregunta Cámara Senado Prueba_T
## <chr> <dbl> <dbl> <dbl>
## 1 PP1N 2.08 2.08 1
## 2 TRY4A02 1.32 1.32 0.994
## 3 DEM13 2.51 2.52 0.973
## 4 DEM14 3.64 3.63 0.968
## 5 COM12 3.67 3.64 0.908
## 6 ID53 4.24 4.34 0.773
## 7 COM13 2.52 2.61 0.741
## 8 ID52 4.92 4.77 0.676
## 9 ID42 5.07 5.20 0.640
## 10 ID43 6.49 6.39 0.605
## # … with 20 more rows
Prueba_T <- Prueba_T %>%
mutate(Escala = c("1-7", "1-6", "1-5", "1-5", "1-7", "1-7", "1-7", "1-7", "1-7", "1-7", "1-7",
"1-4", "1-6", "1-7", "1-7", "1-7", "1-6", "1-7", "1-7", "1-7", "1-6", "1-5",
"1-5", "1-6", "1-5", "1-4", "1-7", "1-7", "1-5", "1-7"),
Descripción = c("La ciudadanía se identifica con líderes políticos vs. con partidos políticos",
"Períodos como alcalde/sa",
"Participación sin riesgos de seguridad",
"Democracia mejora calidad de vida",
"Deben tener más autoridad los legisladores con más experiencia vs. legisladores con más votos",
"Legalización del aborto",
"Deben tener más autoridad hombres y mujeres por igual vs. legisladores con más votos",
"Legalización de la marihuana",
"Estado, más que sector privado, como proveedor de salud",
"Estado para reducir desigualdad de género",
"Derecho a matrimonio igualitario",
"Qué tanto confía en la información de los legisladores de su comisión",
"Períodos como congresista",
"Se debe ser muy cuidadoso con otros legisladores vs. se puede confiar en la mayoría",
"Comisión con más capacidad técnica",
"Se considera de izquierda o derecha",
"Períodos como gobernador/a",
"Dedica más tiempo a visitar lugares donde tuvo una buena elección vs. donde no hizo campaña antes",
"Representar los intereses del país vs. de su departamento",
"Qué tanta confianza le tiene al Presidente",
"Períodos como diputado/a",
"Elecciones transparentes y confiables",
"Declaratoria del Estatuto de Oposición",
"Períodos como concejal/a",
"Más espacio al candidato y menos al partido en el tarjetón",
"Qué tanta confianza le tiene al Presidente",
"Estado para reducir desigualdad económica",
"Pena de muerte",
"Listas abiertas",
"Representar los intereses del país vs. de su departamento"),
Análisis = ifelse(Prueba_T < 0.05, "Diferencia significativa entre Cámara y Senado.", "No hay diferencia significativa entre Cámara y Senado.")
)
Por último, se exporta la tabla de Prueba T con los resultados a un archivo excel.
write_xlsx(Prueba_T, "Resultados comparativos crudos.xlsx")