Skip to content
Ventaja Comparativa Revelada por industrias
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_allCá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]