Exportación

En este post, el objetivo es analizar la composición de las exportaciones en América Latina. Cómo hemos visto en los últimos posts, el comercio exterior han aumentado en América Latina desde los años 1990s. Pero aún parece que hay un sesgo de que se importan productos de alta tecnología a la región. En este post, entonces, se enfoca en los flujos de exportaciones de la región.

El post está divido en dos partes:

  1. Un analisis sobre los niveles de exportación de los países de América Latina en 2018 utilizando un mapa de estilo cartograma.

Si aún no tienes el paquete de cartograma se puede descargar con el siguiente comando:

install.packages("cartogram")
  1. Un analisis sobre las categorías de productos que los países más exportaron durante el 2018.

Las libraría utilizadas:

library(tidyverse)
library(tradestatistics)
library(ggplot2)
library(ggthemes)
library(scales)
library(maptools)
library(cartogram)
library(sf)
library(tmap)

Cartograma de las exportaciones en América Latina 2018

Descargando los datos

Cómo en el post sobre importación necesito descargar dos diferentes bases de datos desde Open Trade Statistics y después unirlos en uno para separar la región de las Americas:

comercio_mundo_api <- tradestatistics::ots_create_tidy_data(
  years = 2018, 
  reporters = "all", 
  partners = "all", 
  products = "all") %>%
  rename(country_iso = 'reporter_iso')

countries_LATAM <- tradestatistics::ots_countries %>%
  filter(continent == "Americas") 

export_latam <- merge(x = comercio_mundo_api, y = countries_LATAM,
      by = "country_iso") %>%
  select(country_iso,
         reporter_fullname_english,
         export_value_usd,
         top_export_trade_value_usd,
         top_export_product_code) %>%
  filter(
         reporter_fullname_english != "USA, Puerto Rico and US Virgin Islands (excludes Virgin Islands until 1981)",
         reporter_fullname_english != "Canada",
         reporter_fullname_english != "Greenland",
         reporter_fullname_english != "Br. Virgin Isds",
         reporter_fullname_english != "United States Minor Outlying Islands",
         reporter_fullname_english != "South Georgia and the South Sandwich Islands") %>% # Saco los países no correspondiendo a América Latina
  drop_na()

Generando cartogramas

Estuve trabajando mucho tiempo para lograr hacer el cartograma correctamente que encontré dos diferentes metodos de hacer el cartograma.

Las mayoría de las guías que encontré online utilizaban principalmente la información que viene cargada con el parquete de maptools (donde se encuentra “wrld_simpl”) (como por ejemplo este articulo ).

Así, durante mucho tiempo estuve buscando como hacer para poder utilizar los datos de exportación que tenía de Open Trade Statistics. En el camino de idas y vueltas, encontré que había encontrado dos diferente metodos de hacer los cartogramas, así decidí mostrar ambos metodos acá:

Metodo 1:

Este primer metodo se base principalmente en un articulo de r-graph-gallery.com y los ejemplos de graficos del Github del paquete de “cartogram”.

El articlo de r-graph-gallery.com me ayudó mucho a entender como transformar los datos de Open Trade Statistics para poder conectarlos con el cartograma:

# Data of world map:
data(wrld_simpl)

# Eligo el subset de América de Sur y América Central
latam <- subset(wrld_simpl,wrld_simpl$SUBREGION==5|wrld_simpl$SUBREGION==13) 

# Generando un "geospatial object" que cubre América Latina:
latam <- spTransform(latam, CRS("+init=epsg:31972"))

# Añadí una variable que se llama "reporter_fullname_english" al geospatial object"
# y indico que es igual al "NAME" en el objeto "latam", así puedo unir los dos data frames más adelante
latam@data = latam@data %>%
  mutate(reporter_fullname_english = latam$NAME)

# Generé un data frame con la importación cargada arriba de información de las exportaciones:
export_latam_2018 <- data.frame(reporter_fullname_english = export_latam$reporter_fullname_english, export = export_latam$export_value_usd)

# Uno los dos elementos:
latam@data <- latam@data %>% left_join(., export_latam_2018, by=c("NAME" = "reporter_fullname_english"))

# Genero el cartograma con el package "cartogram"
cartogram <- cartogram_cont(latam, 'export', itermax = 5)

# Usando "tmap" para dujar el mapa:
tm_shape(cartogram) + tm_polygons("export", style = "jenks") +
  tm_layout(frame = FALSE, 
            legend.position = c("left", "bottom"), 
            title = "Exportación 2018 América Latina",
            title.size = 10,
            title.bg.color = "light grey")

Metodo 2:

Durante el tiempo que intenté unir las data frames correctamente y terminé con muchos errores de R, y terminé encontrando este segundo método de generar el “geospatial object” y que permite utilizar ggplot para graficar el mapa.

Así, en este metodo de graficar un cartograma, sigo el metodo explicado acá en Stack Overflow

La mayoría de los pasos son iguales pero el mapa que puedo graficar es diferente con este metodo y por eso lo incluí también. Además me gustó mucho más este cartograma que el primero que logré hacer y es más fácil customizarlo ya que es nada más utilizando ggplot:

# Data of world map:
data(wrld_simpl)

# Eligo el subset de América de Sur y América Central
latam <- subset(wrld_simpl,wrld_simpl$SUBREGION==5|wrld_simpl$SUBREGION==13) 

# Generando un "geospatial object"
sfno <- st_as_sf(latam)
st_crs(sfno)
## Coordinate Reference System:
##   User input: +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs 
##   wkt:
## GEOGCRS["unknown",
##     DATUM["World Geodetic System 1984",
##         ELLIPSOID["WGS 84",6378137,298.257223563,
##             LENGTHUNIT["metre",1]],
##         ID["EPSG",6326]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433],
##         ID["EPSG",8901]],
##     CS[ellipsoidal,2],
##         AXIS["longitude",east,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433,
##                 ID["EPSG",9122]]],
##         AXIS["latitude",north,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433,
##                 ID["EPSG",9122]]]]
sfnoproj <- st_transform(sfno, coords = c("lon", "lat"), 
                        crs = "+proj=longlat +datum=WGS84", 
                        agr = "constant")
st_crs(sfnoproj)
## Coordinate Reference System:
##   User input: +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs 
##   wkt:
## GEOGCRS["unknown",
##     DATUM["World Geodetic System 1984",
##         ELLIPSOID["WGS 84",6378137,298.257223563,
##             LENGTHUNIT["metre",1]],
##         ID["EPSG",6326]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433],
##         ID["EPSG",8901]],
##     CS[ellipsoidal,2],
##         AXIS["longitude",east,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433,
##                 ID["EPSG",9122]]],
##         AXIS["latitude",north,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433,
##                 ID["EPSG",9122]]]]
sfproj <- st_transform(sfno, crs = 31972)
st_crs(sfproj)
## Coordinate Reference System:
##   User input: EPSG:31972 
##   wkt:
## PROJCRS["SIRGAS 2000 / UTM zone 18N",
##     BASEGEOGCRS["SIRGAS 2000",
##         DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000",
##             ELLIPSOID["GRS 1980",6378137,298.257222101,
##                 LENGTHUNIT["metre",1]]],
##         PRIMEM["Greenwich",0,
##             ANGLEUNIT["degree",0.0174532925199433]],
##         ID["EPSG",4674]],
##     CONVERSION["UTM zone 18N",
##         METHOD["Transverse Mercator",
##             ID["EPSG",9807]],
##         PARAMETER["Latitude of natural origin",0,
##             ANGLEUNIT["degree",0.0174532925199433],
##             ID["EPSG",8801]],
##         PARAMETER["Longitude of natural origin",-75,
##             ANGLEUNIT["degree",0.0174532925199433],
##             ID["EPSG",8802]],
##         PARAMETER["Scale factor at natural origin",0.9996,
##             SCALEUNIT["unity",1],
##             ID["EPSG",8805]],
##         PARAMETER["False easting",500000,
##             LENGTHUNIT["metre",1],
##             ID["EPSG",8806]],
##         PARAMETER["False northing",0,
##             LENGTHUNIT["metre",1],
##             ID["EPSG",8807]]],
##     CS[Cartesian,2],
##         AXIS["(E)",east,
##             ORDER[1],
##             LENGTHUNIT["metre",1]],
##         AXIS["(N)",north,
##             ORDER[2],
##             LENGTHUNIT["metre",1]],
##     USAGE[
##         SCOPE["unknown"],
##         AREA["Latin America - 78°W to 72°West; N hemisphere and SIRGAS by country"],
##         BBOX[0,-78,15.04,-72]],
##     ID["EPSG",31972]]

sfproj = sfproj %>%
  mutate(reporter_fullname_english = sfproj$NAME)

# Data frame sobre exportaciones
export_latam_2018 <- data.frame(reporter_fullname_english = export_latam$reporter_fullname_english, export = export_latam$export_value_usd)

# Unir los dos elementos
sfproj = sfproj %>% left_join(., export_latam_2018, by=c("NAME" = "reporter_fullname_english"))

cartogram_1 <- cartogram_cont(sfproj, 'export', itermax = 5)

# Utilizando ggplot to graficar el cartograma:
ggplot() +
  geom_sf(data=cartogram_1, aes(fill = export)) +
  labs(title = "Exportación 2018 América Latina",
  caption = "Fuerte: Open Trade Statistics") +
  scale_fill_continuous(labels = scales::dollar_format()) +
  theme(
    legend.text = element_text(size = 8),
    plot.background = element_rect(fill = "#f5f5f4", color = NA),
    panel.background = element_rect(fill = "#f5f5f4", color = NA), 
    legend.background = element_rect(fill = "#f5f5f4", color = NA))

Sum-up

En ambos cartogramas queda muy claro que México sin duda ninguna fue el mayor exportador en la región en 2018. Después le sigue Brasil.

Lo interesante de utilizar el cartograma es que además de los colors, expande el tamaño de los países según el nivel de la variable elegido. Por eso, México se ve muy muy grande, mientras que Brasil en realidad se ve más chico de lo que es.

Además, el cartograma demuestra como casi todos los demás países parecen tener más o menos al mismo nivel de exportaciones. Algún lugar entre 100 mil millones USD y 200 mil millones USD.

No obstante, el cartograma no demuestra nada sobre qué tipo de productos que se está exportando, por eso en la siguiente parte trato de hacer un breve analisis de los productos que más se exporta de América Latina.

Exportaciones por categorías de productos

En esta parte, quiero realizar un breve analisis de qué categoría de producto los país exporta más.

Transformando los datos

Como hice en el analisis sobre importaciones, necesito descargar la base de datos con los nombres de los productos y después unirlo con el data frame que generé antes. Para no tener un grafico muy largo excluyo todos los pequeños países del Caribe:

productos_latam <- tradestatistics::ots_products_shortnames %>%
  rename(top_export_product_code = "product_code")

productos_latam_export <- merge(x = export_latam, 
                                y = productos_latam, 
                                by = 'top_export_product_code') %>%
  filter(reporter_fullname_english != "Anguilla",
         reporter_fullname_english != "Neth. Antilles",
         reporter_fullname_english != "Antigua and Barbuda",
         reporter_fullname_english != "Bahamas",
         reporter_fullname_english != "Bahamas",
         reporter_fullname_english != "Barbados",
         reporter_fullname_english != "Belize",
         reporter_fullname_english != "Bermuda",
         reporter_fullname_english != "Bouvet Island",
         reporter_fullname_english != "Cocos Isds",
         reporter_fullname_english != "Cayman Isds",
         reporter_fullname_english != "Cuba",
         reporter_fullname_english != "Grenada",
         reporter_fullname_english != "Guyana",
         reporter_fullname_english != "Haiti",
         reporter_fullname_english != "Jamaica",
         reporter_fullname_english != "Saint Kitts and Nevis (includes Anguilla until 1981)",
         reporter_fullname_english != "Saint Lucia",
         reporter_fullname_english != "Montserrat",
         reporter_fullname_english != "Saint Pierre and Miquelon",
         reporter_fullname_english != "Suriname",
         reporter_fullname_english != "Turks and Caicos Isds",
         reporter_fullname_english != "Trinidad and Tobago",
         reporter_fullname_english != "Saint Vincent and the Grenadines") %>%
  drop_na()
 

Modifico la columna “reporter_fullname_english” para que sea un factor, porqué eso me permite modificar los nombres de las observaciones y juntarlos en la misma observación:

productos_factor <- productos_latam_export %>%
  mutate(reporter_fullname_english = as.factor(reporter_fullname_english))

Ahora eligo las columnas que necesito para graficar, y modifico el nombre de Panama y junto Argentina y Malvinas en un grupo:

export_countries_2018 <- productos_factor %>%
  select(reporter_fullname_english,
         top_export_trade_value_usd,
         product_shortname_english) %>%
  mutate(reporter_fullname_english = fct_collapse(reporter_fullname_english,
             "Panama"    = c("Panama (excludes Panama Canal Zone until 1978)"),
             "Argentina" = c("Argentina", 
                             "Falkland Isds (Malvinas)"))) %>%
  group_by(reporter_fullname_english,
           product_shortname_english)

Graficando

Ahora estoy lista para graficar:

ggplot(export_countries_2018, aes(
  x = reporter_fullname_english,
  y = top_export_trade_value_usd,
  fill = product_shortname_english)) +
    geom_col() +
  labs(
    x = NULL,
    y = NULL,
    fill = NULL,
    title = "Exportaciones por producto (2018)",
    caption = "Fuerte: Open Trade Statistics") +
  scale_y_continuous(labels = scales::dollar_format()) +
  theme_economist() +
  theme(
    plot.title = element_text(size = 14),
    axis.text.x = element_text(size = 9),
    axis.text.y = element_text(size=9),
    legend.text = element_text(size = 8),
    legend.title = element_blank(),
    legend.position = "bottom") +
  coord_flip()

Sum-up

En primer lugar, se nota que el perfil de exportación de los países latinoamericanos es mucho más diverso que el perfil de importación donde la mayoría importan petroleo refinado.

En segundo lugar, también llama la atención que México de nuevo es el mayor comerciante, lo cual explica su posición fuerte en el primer analisis que hice sobre la evolución del comercio exterior. Además, México es el único país en la región que tiene los autos como principal producto de exportación.

En tercer lugar, vale subrayar como muchísimos de los productos exportados son de origen de recursos naturales (petroleo crudo, petroleo gas, cobre) o agropecuarios (bananas y soya). Sin embargo, también es interesante notar el mayor producto de exportación en países como Costa Rica, Dominica y República Dominican es instrumentos medicales, lo cual se podía considerar un producto que requiere cierta nivel del tecnología y mano de obra especializada.


¿Cómo seguir?

Para seguir leyendo, puedes volver a la página principal acá y elegir el tema que más te guste o puedes ir al próximo post de analisis sobre comercio exterior en Argentina.