Skip to content

Este notebook contiene el cálculo de Ventajas Comparativas Revelada (Revealed comparative advange)

¿En qué productos/industrias están especializados los países? o ¿En qué industrias están especializados regiones dentro de un mismo país? Tomando como referencia a Hidalgo et al. (2007), se calcula la Ventaja Comparativa Revelada (RCA) de cada par provincia-industria. Es decir, ¿cuánto una provincia "sobre produce" una industria en comparación con todos las demás provincias?

Técnicamente, este es el índice de ventaja comparativa de Balassa

# Importamos Librerías
import warnings
warnings.filterwarnings("ignore")
import os
import pandas as pd
import numpy as np
# Librerías para visualizacion
import matplotlib.pyplot as plt
import matplotlib.colors as colors
from matplotlib import cm
import re

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all' 

# More about intertools: https://docs.python.org/3/library/itertools.html
from itertools import count
from itertools import combinations
from itertools import product #Cartesian product of input iterables. Roughly equivalent to nested for-loops in a generator expression. For example, product(A, B) returns the same as ((x,y) for x in A for y in B).
print('librerías cargadas')
# cargo la base
df = pd.read_csv('df_ind.csv')
print('dataframe cargado')
df.head()
## Función para el cálculo de RCA

def calc_rca(data,pais_col,prod_col,anio_col,value_col):
    """
      La función que calcula la RCA
    
    """
    print('Creando las combinaciones de país-producto-tiempo')
    df_all = pd.DataFrame(list(product(data[anio_col].unique(), data[pais_col].unique(),data[prod_col].unique())))
    df_all.columns=[anio_col,pais_col,prod_col]
    print('Se procede a fusionar los datos')
    df_all = pd.merge(df_all,data[[anio_col,pais_col,prod_col,value_col]],how='left',on=[anio_col,pais_col,prod_col])
    df_all.loc[df_all[value_col].isnull(),value_col] = 0

    # En esta parte se calculan propiedades
    print('calculando')
    df_all['Xcpt'] = df_all[value_col]
    df_all['Xct'] = df_all.groupby([pais_col, anio_col])[value_col].transform(sum)
    df_all['Xpt'] = df_all.groupby([prod_col, anio_col])[value_col].transform(sum)
    df_all['Xt'] = df_all.groupby([anio_col])[value_col].transform('sum')

    df_all['RCAcpt'] = (df_all['Xcpt']/df_all['Xct'])/(df_all['Xpt']/df_all['Xt']) #--> ecuación de las ventaja comparativa revelada RCA
    
    ## 0 si el producto / país tiene 0 exportaciones
    df_all.loc[df_all['RCAcpt'].isnull(),'RCAcpt'] = 0 
    # drop the properties 
    df_all.drop(['Xcpt','Xct','Xpt','Xt'],axis=1,inplace=True,errors='ignore')

    return df_all

Cálculo de RCA de toda la base

df_rca = calc_rca(data=df,pais_col='provincia', prod_col='clase',
anio_col='anio', value_col='ventas_totales')

print('rca listo!!')

# Se muestran resultados
df_rca[0:20]

¿Cuáles son los valores de RCA para Guayas, Pichincha y Manabí en el año 2019?

# Guayas
print("\n Guayas: \n")

df_rca[ (df_rca['anio']==2019) & (df_rca['provincia']=='Guayas')].sort_values(by=['RCAcpt'],ascending=False)[['clase','RCAcpt','anio']][0:10]

print("\n Pichincha: \n")

df_rca[ (df_rca['anio']==2019) & (df_rca['provincia']=='Pichincha')].sort_values(by=['RCAcpt'],ascending=False)[['clase','RCAcpt','anio']][0:10]

print("\n Manabí: \n")

df_rca[ (df_rca['anio']==2019) & (df_rca['provincia']=='Manabí')].sort_values(by=['RCAcpt'],ascending=False)[['clase','RCAcpt','anio']][0:10]