UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONOMICAS

ESCUELA DE ECONOMIA

Materia: Métodos para el Análisis Económico

Docente: Carlos Ademir Pérez Alas


“Laboratorio 1 Parte 2”

Integrantes:

Apellidos Nombres DUE Participación
Arias Monterroza Juan José AM19005 100%
Guerrero Martínez Linda Lisseth GM19074 100%
Palomo Portillo Jefferson Enrique PP19005 100%

Ciclo: II-2021

Fecha: Domingo 5 de septiembre de 2021

Ciudad Universitaria, San Salvador, El Salvador

Ejercicio 1

Reproduzca los ejemplos vistos en clase sobre el uso de la libreria dplyr, usando la informacion actualizada recopilada en la tarera 1, y usando los nombres estandarizados que se han agregado para los paises, utilice paises diferentes a los que se emplearon en los ejemplos.

Manejo de la Base de Datos usando la libreria dplyr

Uso del verbo select

Ejemplo 1:
Usando la base de datos de comercio exteriror, para El Salvador, seleccionar las columnas de “país”, “sac”, “anio”, “mes”, “valor_cif”.

Cargar la Base de Datos de Comercio Exterior

library(kableExtra)

load("C:/MEGA DOCS/Ciclo 6/METODOS PARA EL ANALISIS ECONOMICO/Objetos de Clase/comercio exterior/data_comercio_exterior_estandarizada.Rdata") 

Para seleccionar las columnas especificadas

#Cargamos el paquete "dplyr"
library(dplyr)
#Para darle formato a la tabla
library(kableExtra)

#usamos select para elegir las columnas que necesitamos
comercio_join_isopais %>%
  select("region", "pais", "iso_3", "anio", "mes", "valor_fob") %>%
  head(10) %>%
  kable(caption = "Ejemplo 1: Selección de Columnas", align = "c") %>%
  kable_styling()
Ejemplo 1: Selección de Columnas
region pais iso_3 anio mes valor_fob
Asia Afganistan AFG 2018 6 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2018 10 0
Asia Afganistan AFG 2019 2 0
Asia Afganistan AFG 2019 2 0
Asia Afganistan AFG 2019 2 0

Uso del verbo filter

Ejemplo 2:

Seleccionar toas las transacciones de importación del año 2021, con Canada o Mexico, que sean mayores a 50,000 US$
library(dplyr)
comercio_join_isopais %>%
  select("pais", "sac", "anio", "mes", "valor_fob") %>%
  filter(anio == "2019",
         pais %in% c("Canada", "Mexico"),
         valor_fob > 100000) %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 2: filtro de filas",
        align = "c")  %>%
  kable_styling()
Ejemplo 2: filtro de filas
pais sac anio mes valor_fob
Canada 0602100000 2019 1 790154.1
Canada 1701140000 2019 1 13353874.0
Canada 6107110000 2019 1 166775.4
Canada 6109100000 2019 1 131862.9
Canada 6109900000 2019 1 184011.0
Canada 6210400000 2019 1 145783.6
Canada 0602100000 2019 2 688634.0
Canada 0901113000 2019 2 224643.8
Canada 1701140000 2019 2 12683063.7
Canada 6107110000 2019 2 214355.7
Ejemplo 3:
Seleccione todas las transacciones, exportación e importación, para el ultimo trimestre de cada año disponible en el data frame, que se han ralizado con Panama
comercio_join_isopais %>%
  select("pais", "sac", "anio", "mes", "valor_fob", "valor_cif") %>%
  filter(anio == c(2018, 2019, 2020, 2021), pais == "Panama", mes %in% 10:12) %>%
  head(10) %>%
  # 10:12 genera el vector c(10,11,12)
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 3: filtro de filas",
        align = "c")  %>%
  kable_styling()
Ejemplo 3: filtro de filas
pais sac anio mes valor_fob valor_cif
Panama 0201300000 2018 10 0.00 153963.82
Panama 0402911000 2018 10 0.00 23078.51
Panama 0906200000 2018 10 1675.60 0.00
Panama 1601003000 2018 10 0.00 1190.93
Panama 1604110000 2018 10 0.00 3352.44
Panama 1806900000 2018 10 28080.00 0.00
Panama 2103200000 2018 10 22320.00 0.00
Panama 2106902000 2018 10 37729.00 0.00
Panama 2209000000 2018 10 0.00 10021.31
Panama 2710199200 2018 10 55883.04 0.00
Ejemplo 4:
Seleccione todas las transacciones, exportación e importacion, para el utlimo trimestre de cada año disponible en el dataframe, y que excluyan el comercio con EStados Unidos, Guatemala y Costa Rica
library(kableExtra)
library(purrr) #librería necesaria para la función personalizada `%not_in%`
`%not_in%` <-
  purrr::negate(`%in%`) #esta función permite excluir los elementos que se incluyan en un vector
comercio_join_isopais %>%
  filter(mes %in% 10:12,
         pais %not_in% c("Guatemala", "Costa Rica", "Estados Unidos (U.S.A.)")) %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 4: Exclusion de paises",
        align = "c")  %>%
  kable_styling()
Ejemplo 4: Exclusion de paises
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones nom_pais_ingles iso_2 iso_3 codigo_pais region cod_region sub_region cod_sub_region region_intermedia cod_region_intermedia
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 6104620000 2018 10 946.01 722.28 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 6405900000 2018 10 2260.03 1725.55 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 8206000000 2018 10 6.56 5.02 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 0910200000 2019 10 1821.00 34.90 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 9018900000 2020 11 501.48 19.00 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Afganistan 8521900000 2020 12 115.53 1.70 0 0 Afghanistan AF AFG 4 Asia 142 Asia Meridional 34 NA NA
Albania 6103430000 2018 10 54.16 0.57 0 0 Albania AL ALB 8 Europa 150 Europa Del Sur 39 NA NA

Uso del verbo mutate

Ejemplo 5: div style=“text-align: justify”>Calcule el saldo de la balanza comercial para todas las transacciones disponibles en la base de comercio exterior
library(dplyr)
comercio_join_isopais %>%
  mutate(saldo_bc = valor_fob - valor_cif) %>%
  select("pais", "sac", "anio", "mes", "saldo_bc") %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 5: Saldo de la Balanza Comercial",
        align = "c")  %>%
  kable_styling()
Ejemplo 5: Saldo de la Balanza Comercial
pais sac anio mes saldo_bc
Afganistan 0806200000 2018 6 -6448.43
Afganistan 6104220000 2018 10 -3153.37
Afganistan 6104620000 2018 10 -946.01
Afganistan 6105100000 2018 10 -9405.39
Afganistan 6106100000 2018 10 -1353.32
Afganistan 6405900000 2018 10 -2260.03
Afganistan 8206000000 2018 10 -6.56
Afganistan 6404110000 2019 2 -7752.13
Afganistan 6405100000 2019 2 -508.03
Afganistan 6405900000 2019 2 -12.45
Ejemplo 6:
Calcule las exportaciones y las importaciones como porcentaje del comercio total, en cada transaccion disponible en la base de comercio exterior, muestre solo aquellas que registren exportaciones
library(kableExtra)
library(dplyr)
options(scipen = 99999)
comercio_join_isopais %>%
  mutate(Xpt = round(valor_fob / (valor_cif + valor_fob) * 100, 2),
         Mpt = round(valor_cif / (valor_cif + valor_fob) * 100, 2)) %>%
  select("pais", "sac", "anio", "mes", "Xpt", "Mpt") %>% filter(Xpt > 0) %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 6: Exportaciones e Importaciones como porcentaje del Comercio Total",
        align = "c")  %>%
  kable_styling()
Ejemplo 6: Exportaciones e Importaciones como porcentaje del Comercio Total
pais sac anio mes Xpt Mpt
Afganistan 3004909100 2019 9 100 0
Afganistan 7009920000 2021 5 100 0
Afganistan 8302419000 2021 5 100 0
Afganistan 8306290000 2021 5 100 0
Afganistan 9401710000 2021 5 100 0
Afganistan 9403200000 2021 5 100 0
Afganistan 9403600000 2021 5 100 0
Albania 1701140000 2019 2 100 0
Alemania 0106200000 2018 1 100 0
Alemania 0409000000 2018 1 100 0

Uso del verbo arrange

Ejemplo 7:
Ordenar los resultados del Ejemplo 6 de mutate, mostrando los primeros resultados mas recientes
library(dplyr)
library(kableExtra)

options(scipen = 99999)
comercio_join_isopais %>%
  mutate(Xpt = round(valor_fob / (valor_cif + valor_fob) * 100, 2),
         Mpt = round(valor_cif / (valor_cif + valor_fob) * 100, 2)) %>%
  select("pais", "sac", "anio", "mes", "Xpt", "Mpt") %>%
  filter(Xpt > 0) %>%
  arrange(desc(anio), desc(mes)) %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 7: Orden de los resultados del Ejemplo 6",
        align = "c")  %>%
  kable_styling()
Ejemplo 7: Orden de los resultados del Ejemplo 6
pais sac anio mes Xpt Mpt
Alemania 0409000000 2021 7 100.00 0.00
Alemania 0901113000 2021 7 100.00 0.00
Alemania 1604149000 2021 7 100.00 0.00
Alemania 3808930000 2021 7 99.78 0.22
Alemania 3919101000 2021 7 0.02 99.98
Alemania 3923309900 2021 7 0.06 99.94
Alemania 4202990000 2021 7 100.00 0.00
Alemania 4908900000 2021 7 30.59 69.41
Alemania 5202990000 2021 7 100.00 0.00
Alemania 5512990000 2021 7 100.00 0.00

Uso del verbo summarise

Ejemplo 8:
Obtenga los totales anuales de importaciones y exportaciones
library(dplyr)
library(kableExtra)

comercio_join_isopais %>%
  group_by(anio) %>%
  summarise(
    `Total Exportaciones MM US$` = sum(valor_fob) / 1e6,
    `Total Importaciones MM US$` = sum(valor_cif) / 1e6
  ) %>%
  
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 8: Totales anuales de importaciones y exportaciones",
        align = "c")  %>%
  kable_styling()
Ejemplo 8: Totales anuales de importaciones y exportaciones
anio Total Exportaciones MM US$ Total Importaciones MM US$
2018 5905.411 11464.322
2019 5904.730 11603.836
2020 5044.011 10326.578
2021 3846.314 8354.539
Ejemplo 9:
Obtenga los totales anuales de importaciones y exportaciones, que se realizan por país
library(dplyr)
library(kableExtra)

comercio_join_isopais %>%
  group_by(pais, anio) %>%
  summarise(
    `Total Exportaciones` = sum(valor_fob),
    `Total Importaciones` = sum(valor_cif)
  ) %>%
  head(10) %>%
  #Para darle formato a la tabla
  kable(caption = "Ejemplo 8: Totales anuales de importaciones y exportaciones, por país",
        align = "c")  %>%
  kable_styling()
Ejemplo 8: Totales anuales de importaciones y exportaciones, por país
pais anio Total Exportaciones Total Importaciones
Afganistan 2018 0.00 23573.11
Afganistan 2019 382.13 13113.77
Afganistan 2020 0.00 5426.74
Afganistan 2021 37873.33 0.00
Albania 2018 0.00 18307.36
Albania 2019 51392.50 25660.16
Albania 2020 0.00 368297.55
Albania 2021 0.00 27110.62
Alemania 2018 20425282.52 181276788.54
Alemania 2019 21447920.87 168946136.71

Funciones para el calculo de Indicadores

Carga de las funciones

source(file="C:/MEGA DOCS/Ciclo 6/METODOS PARA EL ANALISIS ECONOMICO/Objetos de Clase/comercio exterior/funciones_comercio_exterior.R",echo = TRUE,max.deparse.length = 100,encoding = "utf-8")
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("C:/MEGA DOCS/Ciclo 6/METODOS PARA EL ANALISIS ECONOMICO/Objetos de Clase/data_comercio_exter ..." ... [TRUNCATED] 
## 
## > nombre_archivo <- "C:/MEGA DOCS/Ciclo 6/METODOS PARA EL ANALISIS ECONOMICO/Objetos de Clase/comerc ..." ... [TRUNCATED] 
## 
## > nombres_iso_paises <- read_excel(nombre_archivo)
## 
## > data_comercio_exterior <- data_comercio_exterior_actualizada %>% 
## +     left_join(nombres_iso_pais .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises <- function() {
## +     paises <- nombres_iso_paises %>% select(nom_pais .... [TRUNCATED] 
## 
## > herramientas_mostrar_regiones <- function() {
## +     nombres_iso_paises %>% group_by(region, cod_re .... [TRUNCATED] 
## 
## > herramientas_mostrar_paises_en_tabla <- function() {
## +     data_comercio_exterior %>% group_by(pai .... [TRUNCATED] 
## 
## > indicadores_IVCR_capitulo <- function(codigo_pais, 
## +     capitulo, anio) {
## +     codigo_pais <- e .... [TRUNCATED] 
## 
## > indicadores_IVCR_partida <- function(codigo_pais, 
## +     partida, anio) {
## +     codigo_pais <- enq .... [TRUNCATED] 
## 
## > indicadores_Balassa_capitulo <- function(codigo_pais, 
## +     capitulo, anio, normalizado = TRUE) { .... [TRUNCATED] 
## 
## > indicadores_Balassa_partida <- function(codigo_pais, 
## +     partida, anio, normalizado = TRUE) {
## + .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual_texto <- function(codigo_pais, 
## +     anio, normalizad .... [TRUNCATED] 
## 
## > indicadores_IHH_Herfindahl_Hirschmann_anual <- function(codigo_pais, 
## +     anio, normalizado = TR .... [TRUNCATED]

Función para consultar los países

library(kableExtra)
herramientas_mostrar_paises() %>%
  head() %>%
  kable() %>%
  kable_material(html_font = "sans-serif")
nom_pais_esp codigo_pais region cod_region region_intermedia cod_region_intermedia
Afganistan 4 Asia 142 NA NA
Albania 8 Europa 150 NA NA
Alemania 276 Europa 150 NA NA
Andorra 20 Europa 150 NA NA
Angola 24 África 2 África Central 17
Anguila (R.U.) 660 Américas 19 Caribe 29

Función para ver Regiones

library(kableExtra)
herramientas_mostrar_regiones() %>%
  head() %>%
  kable() %>%
  kable_material(html_font = "sans-serif")
region cod_region region_intermedia cod_region_intermedia # de Paises incluidos
África 2 África Central 17 8
África 2 Africa Del Sur 18 5
África 2 África Occidental 11 16
África 2 África Oriental 14 17
África 2 NA NA 6
Américas 19 Caribe 29 26

Función para ver Países con transacciones

library(kableExtra)
herramientas_mostrar_paises_en_tabla() %>%
  head() %>%
  kable() %>%
  kable_material(html_font = "sans-serif")
pais anio # Transacciones
Afganistan 2018 7
Afganistan 2019 10
Afganistan 2020 29
Afganistan 2021 6
Albania 2018 27
Albania 2019 46

Indíce de Ventaja Comparativa Revelada

En este ejemplo se analizara el IVCR con Canada, para el periodo 2018-2021, para el capitulo 01
Resultados_IVCR <- data.frame(
  "años" = 2018:2021,
  "IVCR" = sapply(
    X = 2018:2021,
    FUN = indicadores_IVCR_capitulo,
    codigo_pais = 124,
    capitulo = "01"
  )
)
Resultados_IVCR %>% kable(align = "l") %>%
  kable_material(html_font = "sans-serif")
años IVCR
2018 0.0000473
2019 0.0001743
2020 -0.0007548
2021 -0.0080842

Indíce de Ventaja Comparativa Revelada Partida  Anual

En este ejemplo se analizara el IVCR con Canada, para el periodo 2018-2021, para el producto “0105110000”
Resultados_IVCR_sac <- data.frame(
  "años" = 2017:2020,
  "IVCR" = sapply(
    X = 2017:2020,
    FUN = indicadores_IVCR_partida,
    codigo_pais = 840,
    partida = "0105110000"
  )
)
Resultados_IVCR_sac %>% kable(align = "l") %>%
  kable_material(html_font = "sans-serif")
años IVCR
2017 NaN
2018 -0.1611116
2019 -0.1628364
2020 -0.1506879

Indíce de Balassa Capitulo  Anual

En este ejemplo se analizara el IB con Panama, para el periodo 2018-2021, para el capitulo 01
Resultados_Balassa <- data.frame(
  "años" = 2018:2021,
  "IB" = sapply(
    X = 2018:2021,
    FUN = indicadores_Balassa_capitulo,
    codigo_pais = 591,
    capitulo = "01"
  )
)
Resultados_Balassa %>% kable(align = "l") %>%
  kable_material(html_font = "sans-serif")
años IB
2018 -0.7287596
2019 -0.8369806
2020 -0.9981763
2021 -1.0000000
En este ejemplo se analizara el IB con Panama, para el periodo 2018-2021, para el producto “0105110000”
Resultados_IB_sac <- data.frame(
  "años" = 2018:2021,
  "IB" = sapply(
    X = 2018:2021,
    FUN = indicadores_Balassa_partida,
    codigo_pais = 591,
    partida = "0105110000",
    normalizado = TRUE
  )
)
Resultados_IB_sac %>% kable(align = "l") %>%
  kable_material(html_font = "sans-serif")
años IB
2018 0.5560822
2019 0.5561221
2020 0.6081481
2021 0.6866135

Indíce de Herfindahl Hirschmann como aparece en el Texto

Ambos ejemplos son para Mexico para el periodo 2018_2021
Resultados_IHH_texto <-
  data.frame(
    "años" = 2018:2021,
    "IHH" = sapply(
      X = 2018:2021,
      FUN = indicadores_IHH_Herfindahl_Hirschmann_anual_texto,
      codigo_pais = 484,
      normalizado = TRUE
    )
  )
Resultados_IHH_texto %>% kable(align = "l", digits = 6) %>%
  kable_material(html_font = "sans-serif")
años IHH
2018 -0.000659
2019 -0.000613
2020 -0.000674
2021 -0.001166

Indíce de Herfindahl Hirschmann

Resultados_IHH <-
  data.frame(
    "años" = 2018:2021,
    "IHH" = sapply(
      X = 2018:2021,
      FUN = indicadores_IHH_Herfindahl_Hirschmann_anual,
      codigo_pais = 484,
      normalizado = TRUE
    )
  )
Resultados_IHH %>% kable(align = "l", digits = 6) %>%
  kable_material(html_font = "sans-serif")
años IHH
2018 0.018216
2019 0.014366
2020 0.010351
2021 0.014738

Ejercicio 2

Generé una función pesonalizada que Obtenga un ranking, anual, de los K principales socios comerciales de El Salvador, para el periodo año inicio - año final.
Ranking.Socios.Comerciales.Exportaciones <-
  function(data_base, K, anios_ranking, decimals) {
    library(dplyr)
    library(tidyr)
    library(kableExtra)
    
    data_base %>%
      filter(anio %in% anios_ranking) %>%
      as.data.frame() %>%
      group_by(anio, iso_3) %>%
      summarise(total_exportaciones = sum(valor_fob)) %>%
      mutate(porcentaje_exportaciones = round(prop.table(total_exportaciones) * 100, decimals)) %>%
      slice_max(n = K, order_by = total_exportaciones) %>%
      as.data.frame() %>%
      group_by(anio) %>%
      mutate(rank = row_number(),
             data = paste(iso_3, "|", porcentaje_exportaciones, sep = "")) %>%
      select(anio, data, rank) %>%
      as.data.frame() %>%
      pivot_wider(names_from = rank, values_from = data) %>%
      
      kable(caption = paste(
        "Top",
        K,
        "de Exportaciones periodo",
        min(anios_ranking),
        "-",
        max(anios_ranking)
      )) %>%
      add_footnote(label = "Elaboración propia con base en datos del BCR") %>%
      kable_material(c("striped", "hover"))
  }

Probamos la Funcion

  1. Mostrar los Top 5 Socios Comerciales a los que mas exportaciones anuales registra El Salvador en el periodo 2018-2021
Ranking.Socios.Comerciales.Exportaciones(data_base = data_comercio_exterior, K = 5,anios_ranking = 2018:2021 ,decimals = 2)
Top 5 de Exportaciones periodo 2018 - 2021
anio 1 2 3 4 5
2018 USA|44.07 HND|15.34 GTM|14.36 NIC|6.87 CRI|4.39
2019 USA|42.03 GTM|15.92 HND|15.9 NIC|6.66 CRI|4.46
2020 USA|39.18 GTM|16.89 HND|15.44 NIC|7.26 CRI|4.65
2021 USA|40.59 GTM|16.98 HND|15.82 NIC|6.99 CRI|4.04
a Elaboración propia con base en datos del BCR
  1. Mostrar los Top 7 Socios Comerciales a los que mas exportaciones anuales registra El Salvador en lo que va del año 2021
Ranking.Socios.Comerciales.Exportaciones(data_base = data_comercio_exterior, K = 7,anios_ranking = 2021 ,decimals = 2)
Top 7 de Exportaciones periodo 2021 - 2021
anio 1 2 3 4 5 6 7
2021 USA|40.59 GTM|16.98 HND|15.82 NIC|6.99 CRI|4.04 MEX|2.15 KOR|1.98
a Elaboración propia con base en datos del BCR
  1. Mostrar el Top 3 Socios Comerciales a los que mas exportaciones anuales registra El Salvador en en el periodo 2019-2020
Ranking.Socios.Comerciales.Exportaciones(data_base = data_comercio_exterior, K = 3,anios_ranking = 2019:2020 ,decimals = 2)
Top 3 de Exportaciones periodo 2019 - 2020
anio 1 2 3
2019 USA|42.03 GTM|15.92 HND|15.9
2020 USA|39.18 GTM|16.89 HND|15.44
a Elaboración propia con base en datos del BCR