library(readr)
library(dplyr)
library(ggplot2)Resultados Dashboard con R
Créditos agropecuarios y evaluaciones agropecuarias en café
1 Importando bibliotecas
2 Importando datos
# Datos de créditos agropecuarios en café
creditos_cafe <- read_csv("datos/créditos_café_colombia.csv")
creditos_cafe |> head()# Datos de evaluaciones agropecuarias
eva_cafe <- read_csv("datos/evas_café.csv")
eva_cafe |> head()3 Municipios en ambas tablas
- Primero identificamos a partir de cuáles variables podríamos unir las dos bases de datos.
- ¿Unimos los créditos a las EVAs o las EVAs a los créditos? En este caso nos interesan municipios que estén en ambas bases de datos.
- ¿Cuántos municipios hay en la base de datos de créditos?
- ¿Cuántos municipios hay en la base de datos de EVAs?
# Total de municipios direrentes
mpios_unicos_creditos <-unique(creditos_cafe$id_munic)
mpios_unicos_evas <- unique(eva_cafe$codigo_dane_municipio)
length(mpios_unicos_creditos)
length(mpios_unicos_evas)- ¿Cuántos municipios comparten las dos bases de datos?
sum(unique(creditos_cafe$id_munic) %in% unique(eva_cafe$codigo_dane_municipio))4 Resumen por municipio
- Para simplificar el ejercicio vamos a calcular algunas métricas estadísticas por municipio.
resumen_creditos <-
creditos_cafe |>
group_by(id_depto,
departamento_inversion,
id_munic,
municipio_inversion) |>
reframe(
promedio_plazo = mean(plazo, na.rm = TRUE),
promedio_valor = mean(vlr_inic_garantia, na.rm = TRUE)
)
resumen_creditos |>
head()resumen_evas <-
eva_cafe |>
group_by(codigo_dane_departamento,
departamento,
codigo_dane_municipio,
municipio) |>
reframe(
promedio_rto = mean(rendimiento_t_ha, na.rm = TRUE),
promedio_pdn = mean(produccion_t, na.rm = TRUE)
)
resumen_evas |>
head()5 Unión de datos
- Ahora unimos los dos resúmenes. La unión se realiza teniendo en cuenta la variable municipio, pero es importante tener en cuenta que tienen diferente nombre en cada tabla.
names(resumen_creditos)
names(resumen_evas)- Opcional: para facilitar el proceso podemos hacer dos cosas antes de unir las bases de datos:
- Editar los nombres de la variable que es común en ambas tablas y a través de la cual realizamos la unión.
- Como el nombre del municipio y departamento está en ambas tablas, solo es necesario que lo mantengamos en una tabla, ya que se repetirá.
# Editando nombres y seleccionando columnas en evas
resumen_evas2 <-
resumen_evas |>
select(id_munic = codigo_dane_municipio, promedio_rto, promedio_pdn)
resumen_evas2 |> head()- Ahora unimos las dos tablas.
df_completa <-
inner_join(resumen_creditos, resumen_evas2, by = "id_munic")
df_completa |> head()- ¿Cuál es la dimensión de esta nueva base de datos?
df_completa |> dim()6 Visualizaciones
- Plazo del crédito:
df_completa |>
ggplot(aes(x = promedio_plazo)) +
geom_histogram(color = "black") +
labs(x = "Plazo (meses)",
y = "Frecuencia",
title = "Distribución del plazo en créditos agropecuarios",
subtitle = "Colombia") +
theme_minimal()- Valor del crédito:
df_completa |>
ggplot(aes(x = promedio_valor)) +
geom_histogram(color = "black") +
labs(x = "Valor ($)",
y = "Frecuencia",
title = "Distribución del valor en créditos agropecuarios",
subtitle = "Colombia") +
theme_minimal()- Promedio de rendimiento:
df_completa |>
ggplot(aes(x = promedio_rto)) +
geom_histogram(color = "black") +
labs(x = "Rendimiento (t/ha)",
y = "Frecuencia",
title = "Distribución del rendimiento promedio en café",
subtitle = "Colombia") +
theme_minimal()- Producción en toneladas del cultivo de café:
df_completa |>
ggplot(aes(x = promedio_pdn)) +
geom_histogram(color = "black") +
labs(x = "Producción (t)",
y = "Frecuencia",
title = "Distribución de producción promedio en café",
subtitle = "Colombia") +
theme_minimal()- ¿En qué departamentos se solicita mayor monto de créditos?
df_completa |>
ggplot(aes(x = departamento_inversion, y = promedio_valor)) +
geom_boxplot() +
labs(x = "Departamento",
y = "Valor ($)",
title = "Distribución de monto de crédito por departamento",
subtitle = "Colombia") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))- ¿En qué departamentos hay mayores rendimientos?
df_completa |>
ggplot(aes(x = departamento_inversion, y = promedio_rto)) +
geom_boxplot() +
labs(x = "Departamento",
y = "Rendimiento (t/ha)",
title = "Distribución del rendimiento por departamento",
subtitle = "Colombia") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))- ¿Existe asociación entre el monto del crédito y el rendimiento?
cor(df_completa$promedio_valor, df_completa$promedio_rto, use = "pairwise.complete.obs")- Graficamos el diagrama de dispersión:
df_completa |>
# filter(promedio_valor <= 4e+07) |>
ggplot(aes(x = promedio_valor, y = promedio_rto)) +
geom_point() +
labs(x = "Valor ($)",
y = "Rendimiento (t/ha)",
title = "Monto del crédito vs rendimiento",
subtitle = "Colombia") +
theme_minimal()- Ahora relacionamos el valor del crédito con la producción:
cor(df_completa$promedio_valor, df_completa$promedio_pdn, use = "pairwise.complete.obs")- Gráfico:
df_completa |>
# filter(promedio_valor <= 4e+07) |>
ggplot(aes(x = promedio_valor, y = promedio_pdn)) +
geom_point() +
labs(x = "Valor ($)",
y = "Producción (t)",
title = "Monto del crédito vs producción",
subtitle = "Colombia") +
theme_minimal() +
scale_y_log10()