library(tidyverse)
library(lubridate)
# 0. Resultado 1era vuelta ####
resultado_1era_vuelta_2022 <- tribble(~pronostico,~nombres,
39.84,"Gustavo Petro",
23.64,"Federico Gutierrez",
4.13,"Sergio Fajardo",
27.82,"Rodolfo Hernandez") %>%
dplyr::mutate(plato = "Resultado")
# 1. Base: promedio de las encuestas ####
encuestas_ulr_2022 <- "https://raw.githubusercontent.com/nelsonamayad/Elecciones-presidenciales-2022/main/Encuestas%202022/encuestas_2022.csv"
encuestas_2022 <- readr::read_csv(encuestas_ulr_2022)
encuestas_sancocho_2022 <- encuestas_2022 %>%
# Filter despues de consultas
dplyr::filter(fecha >= lubridate::as_date("2022-03-13")) %>%
# Seleccionar candidatos que encabezan las encuestas
dplyr::select(n,fecha,contains(c("petro","gutierrez","fajardo","hernandez","betancourt")),blanco,otros) %>%
# Pivotear los datos
tidyr::pivot_longer(cols = c(contains("_"),"blanco","otros"),
names_to = "candidato", values_to = "int_voto") %>%
# Promedios
dplyr::group_by(candidato) %>%
dplyr::summarise(pronostico = mean(int_voto,na.rm=TRUE),
high = max(int_voto,na.rm=TRUE),
low = min(int_voto,na.rm=TRUE)) %>%
dplyr::mutate(plato= paste0("Encuestas"),
nombres = case_when(candidato=="sergio_fajardo" ~ "Sergio Fajardo",
candidato=="ingrid_betancourt" ~ "Ingrid Betancourt",
candidato=="federico_gutierrez" ~ "Federico Gutierrez",
candidato=="rodolfo_hernandez" ~ "Rodolfo Hernandez",
candidato=="gustavo_petro" ~ "Gustavo Petro",
candidato=="blanco" ~ "Voto en blanco",
candidato=="otros" ~ "Otros candidatos",
)
) %>%
dplyr::filter(nombres!="Ingrid Betancourt")
# 2. Calentao ####
calentao_sancocho_2022 <- readr::read_csv("calentao-2022_resultados.csv") %>%
#Predicciones
dplyr::group_by(modelo) %>%
dplyr::summarise(m_all = mean(value),
p10 = quantile(value,0.1),
p90 = quantile(value,0.9)) %>%
dplyr::mutate(candidato = str_sub(modelo, start = 1L,end = 2L),
plato = ifelse(str_sub(modelo, start = 4L,end=8L)=="mixto", "Mixto 2022","Simple 2022")) %>%
dplyr::left_join(tribble(~candidato,~nombres,
"gp","Gustavo Petro",
"fg","Federico Gutierrez",
"sf","Sergio Fajardo",
"rh","Rodolfo Hernandez"),
by=c("candidato")) %>%
dplyr::rename(pronostico=m_all,low=p10,high=p90)
# 3. Ajiaco ####
ajiaco_sancocho_2022 <- readr::read_csv("ajiaco_fit.csv") %>%
dplyr::group_by(parameter) %>%
dplyr::summarise(pronostico = quantile(estimate,0.5),
low = quantile(estimate,0.1),
high = quantile(estimate,0.9)) %>%
dplyr::mutate(n=stringr::str_extract(parameter,"[:digit:]") %>% as.numeric()) %>%
#Join names
dplyr::left_join(tribble(~n,~nombres,
1,"Gustavo Petro",
2,"Federico Gutierrez",
3,"Sergio Fajardo",
4,"Rodolfo Hernandez",
#5,"Ingrid Betancourt",
5,"Resto (Otros, Blanco e Indecisos)"),
by="n") %>%
dplyr::mutate(plato = "Ajiaco")
# 4. El País ####
elpais_2022 <- readr::read_csv("https://raw.githubusercontent.com/JorgeGalindo/co-elect-2022/main/modelo_1av/promedio_norm.csv") %>% dplyr::mutate(plato= "@JorgeGalindo El Pais",
nombres = case_when(candidato=="sergio_fajardo" ~ "Sergio Fajardo",
candidato=="ingrid_betancourt" ~ "Ingrid Betancourt",
candidato=="federico_gutierrez" ~ "Federico Gutierrez",
candidato=="rodolfo_hernandez" ~ "Rodolfo Hernandez",
candidato=="gustavo_petro" ~ "Gustavo Petro"
),
pronostico=promedio
) %>%
dplyr::select(plato,nombres,pronostico) %>%
dplyr::filter(nombres!="Ingrid Betancourt")
# 5. La Silla Vacia ####
lsv_2022 <- tribble(~pronostico,~nombres,
39,"Gustavo Petro",
25,"Federico Gutierrez",
5,"Sergio Fajardo",
20,"Rodolfo Hernandez",
#NA,"Ingrid Betancourt",
4,"Voto en blanco") %>%
dplyr::mutate(plato = "La Silla Vacia")
# 6. PoliticaConDato ####
politicacondato <- readr::read_csv(paste0("recetario/","2022-05-21","_PoliticaConDato.csv")) %>%
dplyr::mutate(nombres = case_when(candidato=="Fajardo" ~ "Sergio Fajardo",
candidato=="Fico" ~ "Federico Gutierrez",
candidato=="Petro" ~ "Gustavo Petro",
candidato=="Ingrid" ~ "Ingrid Betancourt",
candidato=="Rodolfo" ~ "Rodolfo Hernandez",
candidato=="Perez" ~ "Luis Perez",
candidato=="Milton" ~ "John M. Rodriguez",
candidato=="Gomez" ~ "Enrique Gomez",
candidato=="Blanco" ~ "Voto en blanco"),
plato = "@PoliticaConDato") %>%
dplyr::rename(pronostico=int_voto) %>%
tidyr::separate(inter,sep="-",into = c("low","high")) %>%
dplyr::mutate(across(c("low","high"),as.numeric)) %>%
dplyr::filter(nombres!="Ingrid Betancourt")
# 7. Colombia Risk Analysis ####
colombiarisk_2022 <- tribble(~pronostico,~nombres,
34.99,"Gustavo Petro",
19.24,"Federico Gutierrez",
7.49,"Sergio Fajardo",
12.46,"Rodolfo Hernandez",
#1.68,"Ingrid Betancourt",
NA,"Voto en blanco") %>%
dplyr::mutate(plato = "@ColombiaRisk")
# 8. Calculo Electoral ####
calculo_electoral <- tribble(~nombres,~pronostico,~low,~high,
"Gustavo Petro",43.1,32.7,53.9,
"Federico Gutierrez",24.9,17.6,32.8,
"Sergio Fajardo",5.7,2.9,9.5,
"Rodolfo Hernandez",22.3,15.8,29.7
) %>%
dplyr::mutate(plato = "@calc_electoral")
# Preparar Sancocho ####
sancocho_2022 <- dplyr::bind_rows(
resultado_1era_vuelta_2022,
encuestas_sancocho_2022,
calentao_sancocho_2022,
ajiaco_sancocho_2022,
elpais_2022,
lsv_2022,
colombiarisk_2022,
politicacondato,
calculo_electoral
) %>%
dplyr::select(plato,nombres,pronostico,high,low) %>%
dplyr::mutate(nombres = factor(nombres, levels=c("Gustavo Petro","Federico Gutierrez","Rodolfo Hernandez","Sergio Fajardo","Ingrid Betancourt")),
plato = factor(plato,levels = c("Resultado","Ajiaco","Mixto 2022","Simple 2022","@JorgeGalindo El Pais","La Silla Vacia","@PoliticaConDato","@ColombiaRisk","@calc_electoral","Encuestas"))) %>%
dplyr::filter(nombres!="Ingrid Betancourt")
# Guardar sancocho ####
sancocho_2022 %>%
readr::write_csv("sancocho_resultados.csv")