Datos

library(tidyverse)
creditos <- read_csv(file = "Colocaciones_de_cr_dito_Sector_Agropecuario_2020.csv")
head(creditos)

Depuración de datos

    1. Editar (limpiar) los nombres de las variables
    1. Seleccionar las variables de interés
    1. Editar los nombres. Esta edición de nombres la vamos a realizar en el mismo paso 2 a través de la función select(). Similar a la función rename() select() permite editar los nombres, a la izquierda del igual (=) estará el nuevo nombre y a la derecha el nombre a editar.
    1. Conversión en variables de tipo character de mayúsculas a minúsculas con la primera letra en mayúscula.
    1. Conversión de la variable “mes” a factor. Editamos las etiquetas para que queden con los nombres de los meses en lugar de números.
    1. Conversión de la variable “postconflicto” a factor, editando las etiquetas (labels) del “N” y “S” por “No” y “Si”, respectivamente.
    1. Conversión de la variable “departamento” a factor. Añadiendo tilde a las etiquetas.
    1. Conversión de la variable “línea de producción” a factor. Unificamos las etiquetas.
    1. Conversión de la variable “género” a factor. Unificamos las etiquetas.
    1. Conversión de todas las variables que son de tipo character a tipo factor.
    1. Filtrar rubros de colocación de créditos que estén en rangos lógicos, es decir, que no aparezcan montos que puedan ser considerados errados o “raros”. Se filtran rubros entre 600.000 y 10 mil millones de pesos.

Distribución del rubro de colocación

  • ¿Cuál es el rango del rubro de colocación de crédito?
range(creditos$Colocacion)
## [1] 9e+00 2e+11
  • ¿Cuáles son los valores de los cuartiles para el monto de colocación de crédito?
quantile(creditos$Colocacion)
##           0%          25%          50%          75%         100% 
##            9      3000000      6764947     12970000 200000000000
  • ¿Cuáles son los valores de los deciles para el monto de colocación de crédito?
quantile(creditos$Colocacion, probs = seq(0, 1, 0.1))
##           0%          10%          20%          30%          40%          50% 
##            9      1745112      2700000      3569776      5000000      6764947 
##          60%          70%          80%          90%         100% 
##      9000000     11000000     15000000     27000000 200000000000
  • ¿Cuáles son los valores de los percentiles para el monto de colocación de crédito?
quantile(creditos$Colocacion, probs = seq(0, 1, 0.01))
##           0%           1%           2%           3%           4%           5% 
## 9.000000e+00 6.000000e+05 7.996057e+05 1.000000e+06 1.054000e+06 1.106062e+06 
##           6%           7%           8%           9%          10%          11% 
## 1.237195e+06 1.400000e+06 1.500000e+06 1.600000e+06 1.745112e+06 1.900000e+06 
##          12%          13%          14%          15%          16%          17% 
## 2.000000e+06 2.000000e+06 2.094911e+06 2.187500e+06 2.252055e+06 2.400000e+06 
##          18%          19%          20%          21%          22%          23% 
## 2.500000e+06 2.550000e+06 2.700000e+06 2.800000e+06 2.980237e+06 3.000000e+06 
##          24%          25%          26%          27%          28%          29% 
## 3.000000e+06 3.000000e+06 3.130106e+06 3.200000e+06 3.340000e+06 3.500000e+06 
##          30%          31%          32%          33%          34%          35% 
## 3.569776e+06 3.750000e+06 4.000000e+06 4.000000e+06 4.000000e+06 4.206569e+06 
##          36%          37%          38%          39%          40%          41% 
## 4.500000e+06 4.747195e+06 5.000000e+06 5.000000e+06 5.000000e+06 5.000000e+06 
##          42%          43%          44%          45%          46%          47% 
## 5.191273e+06 5.500000e+06 5.750000e+06 6.000000e+06 6.000000e+06 6.000000e+06 
##          48%          49%          50%          51%          52%          53% 
## 6.000000e+06 6.407854e+06 6.764947e+06 7.000000e+06 7.000000e+06 7.291073e+06 
##          54%          55%          56%          57%          58%          59% 
## 7.688012e+06 8.000000e+06 8.000000e+06 8.000000e+06 8.294869e+06 8.700000e+06 
##          60%          61%          62%          63%          64%          65% 
## 9.000000e+06 9.570063e+06 1.000000e+07 1.000000e+07 1.000000e+07 1.000000e+07 
##          66%          67%          68%          69%          70%          71% 
## 1.000000e+07 1.000000e+07 1.000000e+07 1.050000e+07 1.100000e+07 1.199904e+07 
##          72%          73%          74%          75%          76%          77% 
## 1.200000e+07 1.200000e+07 1.200000e+07 1.297000e+07 1.374771e+07 1.423947e+07 
##          78%          79%          80%          81%          82%          83% 
## 1.500000e+07 1.500000e+07 1.500000e+07 1.500000e+07 1.600000e+07 1.700000e+07 
##          84%          85%          86%          87%          88%          89% 
## 1.800000e+07 2.000000e+07 2.000000e+07 2.000000e+07 2.142000e+07 2.500000e+07 
##          90%          91%          92%          93%          94%          95% 
## 2.700000e+07 3.000000e+07 3.500000e+07 4.000000e+07 5.000000e+07 6.500000e+07 
##          96%          97%          98%          99%         100% 
## 9.278933e+07 1.266968e+08 2.042265e+08 5.000000e+08 2.000000e+11
  • ¿Cuáles y cuántos son los créditos que superan los 5 mil millones de pesos?
creditos %>% 
  filter(Colocacion > 5000000000)
  • ¿Cuáles y cuántos son los créditos que superan los 10 mil millones de pesos?
creditos %>% 
  filter(Colocacion > 10000000000)
  • ¿Cuáles y cuántos son los créditos que superan los 100 mil millones de pesos?
creditos %>% 
  filter(Colocacion > 100000000000)

Data final

library(janitor)
library(Hmisc)
creditos2 <- creditos %>%
  clean_names() %>%
  select(mes,
         fuente = fuente_colocacion,
         productor = tipo_productor,
         colocacion,
         postconf = municipio_de_post_conflico,
         depto = departamento_de_colocacion_de_credito,
         municipio = municipio_colocacion_de_credito,
         plazo,
         linea_credito = linea_de_credito,
         linea_prod = linea_de_produccion,
         destino = destino_de_credito,
         genero) %>%
  mutate(fuente = capitalize(tolower(fuente)),
         productor = capitalize(tolower(productor)),
         depto = capitalize(tolower(depto)),
         municipio = capitalize(tolower(municipio)),
         linea_prod = capitalize(tolower(linea_prod)),
         destino = capitalize(tolower(destino)),
         genero = capitalize(tolower(genero)),
         mes = factor(mes,
                      labels = c("Enero", "Febrero", "Marzo", "Abril",
                                 "Mayo", "Junio", "Julio", "Agosto",
                                 "Septiembre")),
         postconf = factor(postconf,
                           labels = c("No", "Si")),
         depto = factor(depto,
                        labels = c("Amazonas", "Antioquia", "Arauca", "Atlántico",
                                   "Bogotá D.C.", "Bolívar", "Boyacá", "Caldas",
                                   "Caquetá", "Casanare", "Cauca", "Cesar",
                                   "Chocó", "Córdoba", "Cundinamarca", "Guainía",
                                   "La Guajira", "Guaviare", "Huila", "Magdalena",
                                   "Meta", "Nariño", "Norte de Santander",
                                   "Putumayo", "Quindío", "Risaralda",
                                   "San Andrés y Providencia", "Santander",
                                   "Sucre", "Tolima", "Valle del Cauca",
                                   "Vaupés", "Vichada")),
         linea_prod = factor(linea_prod,
                             labels = c("Actividades rurales", "Actividades rurales",
                                        "Comercialización", "Comercialización",
                                        "Compra de animales", "Consolidación de pasivos",
                                        "Infraestructura y tierras", "Maquinaria y equipo",
                                        "Microcrédito", "Otras actividades", "Producción",
                                        "Servicios de apoyo", "Servicios de apoyo",
                                        "Servicios de apoyo", "Siembras", "Sostenimiento")),
         genero = factor(genero,
                         labels = c("Hombre", "Hombre", "Mujer", "Mujer", "No aplica",
                                    "No informado", "P. Jurídica", "Sociedad")),
         fuente = as.factor(fuente),
         productor = factor(productor,
                            levels = c("Pequeño", "Mediano", "Grande")),
         municipio = as.factor(municipio),
         linea_credito = as.factor(linea_credito),
         destino = as.factor(destino)) %>% 
  filter(colocacion >= 600000) %>% 
  filter(colocacion <= 10000000000)

Exportando datos finales

  • Las bases de datos puedes ser exportadas en diferentes formatos, por ejemplo csv o xlsx. R tiene su propio formato para las bases de datos, denominado .Rdata
  • Exportar las bases de datos en formato .Rdata es posible a través de la función save().
  • Cargar o importar las bases de datos en formato .Rdata es posible a través de la función load().
save(creditos2, file = "creditosFinal.Rdata")

Datos Depurados

load("creditosFinal.Rdata")
head(creditos2)

Consultas

Consulta 1

  • ¿Cuál es el número de créditos (frecuencia absoluta) por tipo de productor?
table(creditos2$productor)
## 
## Pequeño Mediano  Grande 
##  303904   42926    8777
  • ¿Cuál es la frecuencia relativa de créditos por tipo de productor?
prop.table(table(creditos2$productor))
## 
##    Pequeño    Mediano     Grande 
## 0.85460635 0.12071191 0.02468174
  • Los mismos resultados se pueden obtener con el dplyr a través de las funciones group_by() y count()
creditos2 %>% 
  group_by(productor) %>% 
  count()

Consulta 2

  • ¿Cuánto es el total de dinero por tipo de productor?
creditos2 %>% 
  group_by(productor) %>% 
  summarise(total_dinero = sum(colocacion) / 1000000)

Consulta 3

  • ¿Cuál es el promedio de dinero (colocación) y plazo por género (hombres y mujeres) y productor? ¿Cuántos créditos son otorgados por género y productor?
creditos2 %>% 
  filter(genero %in% c("Hombre", "Mujer")) %>% 
  group_by(productor, genero) %>% 
  summarise(promedio_dinero = mean(colocacion),
            promedio_plazo = mean(plazo),
            total_creditos = n())

Consulta 4

  • ¿Cuál es rubro (colocación) total por género (hombres y mujeres) y la variable municipio de post-conflicto? ¿Cuántos créditos son otorgados por género (hombres y mujeres) y la variable municipio de post-conflicto?
creditos2 %>% 
  filter(genero %in% c("Hombre", "Mujer")) %>%
  group_by(genero, postconf) %>% 
  summarise(total_dinero = sum(colocacion) / 1000000,
            total_creditos = n())

Consulta 5

  • ¿Cuáles son los 10 municipios con mayor rubro total de créditos?
creditos2 %>% 
  group_by(municipio) %>% 
  summarise(total_dinero = sum(colocacion) / 1000000) %>% 
  ungroup() %>% 
  arrange(desc(total_dinero)) %>% 
  slice(1:10)

Consulta 6

  • Construya una tabla descriptiva para la variable colocación por género, con los siguientes estadísticos:
    • Mínimo
    • Máximo
    • Promedio
    • Mediana
    • Desviación estándar
    • Coeficiente de variación = (desviación estándar / proemdio) * 100
    • Percentil 75
    • Número de créditos
creditos2 %>% 
  filter(genero %in% c("Hombre", "Mujer", "P. Jurídica", "Sociedad")) %>% 
  group_by(genero) %>% 
  summarise(minimo = min(colocacion) / 1000000,
            maximo = max(colocacion) / 1000000,
            promedio = mean(colocacion) / 1000000,
            mediana = median(colocacion) / 1000000,
            desviacion = sd(colocacion) / 1000000,
            CV = (desviacion / promedio) * 100,
            p75 = quantile(colocacion, probs = 0.75) / 1000000,
            total_creditos = n())

Consulta 7

  • Construya una tabla descriptiva para la variable colocación por departamento, con los siguientes estadísticos:
    • Mínimo
    • Máximo
    • Promedio
    • Mediana
    • Desviación estándar
    • Coeficiente de variación = (desviación estándar / proemdio) * 100
    • Percentil 75
    • Número de créditos
  • Información de la biblioteca DT
library(DT)
creditos2 %>% 
  group_by(depto) %>% 
  summarise(minimo = min(colocacion) / 1000000,
            maximo = max(colocacion) / 1000000,
            promedio = mean(colocacion) / 1000000,
            mediana = median(colocacion) / 1000000,
            desviacion = sd(colocacion) / 1000000,
            CV = (desviacion / promedio) * 100,
            p75 = quantile(colocacion, probs = 0.75) / 1000000,
            total_creditos = n()) %>% 
  datatable(rownames = FALSE,
            options = list(scrollX = TRUE))

Resumen numérico rápido

Función summary()

summary(creditos2)
##          mes                 fuente         productor        colocacion       
##  Septiembre:93971   Agropecuaria:  2122   Pequeño:303904   Min.   :6.000e+05  
##  Agosto    :45064   Redescuento :286333   Mediano: 42926   1st Qu.:3.100e+06  
##  Julio     :39124   Sustituta   : 67152   Grande :  8777   Median :6.999e+06  
##  Febrero   :35333                                          Mean   :3.385e+07  
##  Enero     :34698                                          3rd Qu.:1.300e+07  
##  Marzo     :32967                                          Max.   :1.000e+10  
##  (Other)   :74450                                                             
##  postconf             depto                         municipio     
##  No:251506   Boyacá      : 40232   Santafe de bogota d.c.:  6195  
##  Si:104101   Antioquia   : 38395   Pasto                 :  4603  
##              Cundinamarca: 36701   Pitalito              :  3961  
##              Nariño      : 33501   Tunja                 :  3772  
##              Huila       : 26369   Medellin              :  3707  
##              Santander   : 23950   Ipiales               :  3652  
##              (Other)     :156459   (Other)               :329717  
##      plazo                         linea_credito   
##  Min.   :  0.00   Capital de Trabajo      :160142  
##  1st Qu.: 17.00   Inversión               :101994  
##  Median : 36.00   Normalización de Cartera: 93471  
##  Mean   : 40.53                                    
##  3rd Qu.: 60.00                                    
##  Max.   :218.00                                    
##                                                    
##                      linea_prod   
##  Sostenimiento            :98661  
##  Compra de animales       :75276  
##  Siembras                 :74399  
##  Microcrédito             :42312  
##  Producción               :21911  
##  Infraestructura y tierras:15969  
##  (Other)                  :27079  
##                                                                            destino      
##  Capital de trabajo unidad prod campesina                                      : 29588  
##  160000 capital de trabajo - unidad productiva campesina                       : 28119  
##  Capital de trabajo microcredito rural                                         : 24757  
##  253400 vientres bovinos comreciales cría y d. p. - comercial - compra - hembra: 20132  
##  165000 capital de trabajo - microcrédito agropecuario y rural                 : 17555  
##  Vientres bovinos cria y doble proposito                                       : 14490  
##  (Other)                                                                       :220966  
##           genero      
##  Hombre      :223945  
##  Mujer       :118269  
##  No aplica   :   295  
##  No informado:   207  
##  P. Jurídica :  9293  
##  Sociedad    :  3598  
## 

Función skim()

library(skimr)
skim(creditos2)
Data summary
Name creditos2
Number of rows 355607
Number of columns 12
_______________________
Column type frequency:
factor 10
numeric 2
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
mes 0 1 FALSE 9 Sep: 93971, Ago: 45064, Jul: 39124, Feb: 35333
fuente 0 1 FALSE 3 Red: 286333, Sus: 67152, Agr: 2122
productor 0 1 FALSE 3 Peq: 303904, Med: 42926, Gra: 8777
postconf 0 1 FALSE 2 No: 251506, Si: 104101
depto 0 1 FALSE 33 Boy: 40232, Ant: 38395, Cun: 36701, Nar: 33501
municipio 0 1 FALSE 770 San: 6195, Pas: 4603, Pit: 3961, Tun: 3772
linea_credito 0 1 FALSE 3 Cap: 160142, Inv: 101994, Nor: 93471
linea_prod 0 1 FALSE 12 Sos: 98661, Com: 75276, Sie: 74399, Mic: 42312
destino 0 1 FALSE 756 Cap: 29588, 160: 28119, Cap: 24757, 253: 20132
genero 0 1 FALSE 6 Hom: 223945, Muj: 118269, P. : 9293, Soc: 3598

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
colocacion 0 1 33849204.66 257213486.14 6e+05 3100000 6999139 1.3e+07 1.00e+10 ▇▁▁▁▁
plazo 0 1 40.53 29.98 0e+00 17 36 6.0e+01 2.18e+02 ▇▃▁▁▁

Unión de datos

  • Vamos a unir los datos del mercado laboral con datos resumidos por departamento de créditos agropecuarios para el 2020.

Créditos agropecuarios resumidos

  • La base de datos resumida por departamento tendrá información del total de rubro (colocación), promedio de rubro y promedio de plazo.
creditos_deptos <- creditos2 %>% 
  group_by(depto) %>% 
  summarise(total_rubro = sum(colocacion),
            promedio_rubro = mean(colocacion),
            promedio_plazo = mean(plazo)) %>% 
  ungroup()
creditos_deptos

Mercado laboral

library(readxl)
library(janitor)
desempleo <- read_excel("desempleo.xlsx") %>% 
  clean_names() %>% 
  rename(depto = dominio)
desempleo

Datos unidos

  • El identificador común es del departamento (“depto”)
creditos_empleo <- inner_join(x = creditos_deptos, y = desempleo, by = "depto")
creditos_empleo
  • Ejemplo con left_join():
ejemplo <- left_join(x = creditos_deptos, y = desempleo, by = "depto")
ejemplo

Consulta

  • ¿Cuál es la correlación entre la tasa de ocupación y el rubro total?
cor(creditos_empleo$to, creditos_empleo$total_rubro)
## [1] 0.3672535

Anexo