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é
<- read_csv("datos/créditos_café_colombia.csv")
creditos_cafe |> head() creditos_cafe
# Datos de evaluaciones agropecuarias
<- read_csv("datos/evas_café.csv")
eva_cafe |> head() eva_cafe
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
<-unique(creditos_cafe$id_munic)
mpios_unicos_creditos <- unique(eva_cafe$codigo_dane_municipio)
mpios_unicos_evas
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)
|> head() resumen_evas2
- Ahora unimos las dos tablas.
<-
df_completa inner_join(resumen_creditos, resumen_evas2, by = "id_munic")
|> head() df_completa
- ¿Cuál es la dimensión de esta nueva base de datos?
|> dim() df_completa
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()