GG19027_P1

Rebeca Isabel Galvez Gonzalez

2022-10-05

Portada



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


“Resolución del Parcial N°1”

Alumna:

Apellido Nombre DUE
Gálvez González Rebeca Isabel GG19027

Ciclo: II-2022

Fecha: Miércoles 12 de Octubre de 2022

Ciudad Universitaria, San Salvador, El Salvador

Parte I:50% (Teórica)

Explique ¿Qué son las estructuras de datos? (10%)

Son contenedores que almacenan datos, para manejar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos. Se basan generalmente en la capacidad de un ordenador para recuperar y almacenar datos en cualquier lugar de su memoria y nos permiten tener una batería de herramientas para solucionar un problemas.
Las estructuras de datos básicos de R pueden agrupar por su dimensionalidad y según si son homogéneas (todos los elementos son del mismo tipo) o heterogéneas (hay elementos de distintos tipos).(Estructura de Datos, 2016)

Explique ¿Cómo se clasifican las estructuras de datos en R? (20%)

Las estructuras de datos se clasifican por ser, homogéneas y heterogenias. En las columnas está representada por la clasificación de las estructuras de datos, y en las filas hace referencia a la dimensión.
Las estructuras de datos se clasifican de 2 maneras la cual una de ella es la homogéneos estas puedan albergar un solo tipo de datos a la vez, dentro de ellos los tipos de datos que están permitidos son, numéricos, carácter, fecha y vector lógico. Dentro de ellas se encuentran, los vectores atómicos, matriz y el array.(Estructura de Datos, 2016)

Clasificación de Estructuras de Datos

Dimensión Homogénea Heterogénea
1 Vector atómico: hacen referencia a un conjunto de valores que hacen referencia a una interrupción manual de datos, esos solo tienen 1 dimensión. Listas: es el objeto más general que se encuentra en R, puede contener a todos los demás objetos, puede tener, dataframe, matriz, vector atómico, array y otras listas. Hace dimensión a lo largo.
2 Matriz: está compuesta por filas y columnas, en las cuales tiene 2 dimensiones ya que puede recopilar la información en los elementos. Dataframe: este es un objeto general que recopila las características o representar nuestra información, ya sea en casos o variables, podemos tener un objeto en el cual en las columnas aparecen representadas las variables y en las filas los casos, estas pueden tener datos cualitativas y cuantitativas.
n Array: tiene dimensión n, es un arreglo para guardar datos de panel.

Fuente: Elaboración propia

Represente gráficamente la instrucción anti_join(A,B), a través de un diagrama de Venn y explique su significado práctico. (20%)

El anti_joins es todo lo que esta en X pero que no se encuentra en Y, estas no se relacionan, es decir que este solo tomaria los datos que se encuentren en X. Cuando queremos analizar una base de datos y tenemos dos tablas con la función anti_join le indicaremos cual tabla es la que necesitamos, sin incluir los demas datos en la base, aunque tengan datos relacionados
#ejemplo del amti_join en R
library(dplyr)

library(readxl)
tab_1 <- read_excel("C:/Users/Usuario/Desktop/tab_1.xlsx")

#imprimiremos la tabla para ver su contenido
print(tab_1)
## # A tibble: 3 × 2
##   x1       x2
##   <chr> <dbl>
## 1 A         1
## 2 B         2
## 3 C         3
tab_2 <- read_excel("C:/Users/Usuario/Desktop/tab_2.xlsx")

#imprimiremos la tabla para ver su contenido
print(tab_2)
## # A tibble: 3 × 2
##   x1    x3   
##   <chr> <chr>
## 1 A     T    
## 2 B     F    
## 3 D     T
#usaremos el anti_join para que nos seleccione solo los datos que se encuentran en la tab_1 pero que no se encuentre en tab_2

anti_join(tab_1, tab_2, by = "x1")
## # A tibble: 1 × 2
##   x1       x2
##   <chr> <dbl>
## 1 C         3
Como pudimos observar en este corto ejemplo, aplicando el anti_joins solo obtuvimos los datos que estaban en la tab_1 pero que no se relacionaban con la tab_2.

Parte II: 50% (Práctica)

Usando la base de comercio exterior proporcionada en clases, resuelva los siguientes ejercicios.

Usando los datos de comercio exterior

library(dplyr)
library(readxl)
library(stringr)
#Data para las funciones
load("C:/Users/Usuario/Desktop/EMA/Rebeca Isabel Gálvez González - data_parcial_1_2021.RData")
nombre_archivo <- nombres_iso_paises
nombres_iso_paises <- nombre_archivo
data_comercio_exterior %>%
  left_join(nombres_iso_paises,
            by=c("pais"="nom_pais_esp"))-> data_comercio_exterior

Ejercicio 1 [10%]

Elabore una función que se llame totales_pais_anios que use de argumento el código de país iso de tres caracter, para elegir el socio comercial de El Salvador, y permita obtener las Exportaciones y las Importaciones para un periodo especifico.
library(dplyr)
totales_pais_anios <- function(codigo, periodo) {
  Exp_Imp_Total <- data_comercio_exterior %>%
    group_by(iso_3, anio) %>%
    summarise(Exp = sum(valor_fob) / 1e6,
              Imp = sum(valor_cif) / 1e6)
  
  Exp_Imp_Total %>% filter(iso_3 == codigo, anio %in% periodo)
}

Ejercicio 2 [10%]

Usando la función creada en el ejercicio 1 y los comandos que sean necesarios, genere la siguiente tabla: (nota ratio es el cocienteentre importaciones y exportaciones) GTM= Guatemala, HD= Honduras.
tabla_HND <- totales_pais_anios("HND", 2017:2020)
colnames(tabla_HND) <- c("Pais", "anio", "Exp_HND", "Imp_HND")

tabla_HND %>% mutate(Exp_Netas_HND = Exp_HND - Imp_HND) -> tabla_HND

tabla_GTM <- totales_pais_anios("GTM", 2017:2020)
colnames(tabla_GTM) <- c("Pais", "anio", "Exp_GTM", "Imp_GTM")
tabla_GTM %>% mutate(Exp_Netas_GTM = Exp_GTM - Imp_GTM) -> tabla_GTM

tabla_HND %>% left_join(tabla_GTM, by = c("anio" = "anio")) -> mi_tabla

mi_tabla %>% select("anio",
                    "Exp_HND",
                    "Imp_HND",
                    "Exp_Netas_HND",
                    "Exp_GTM",
                    "Imp_GTM",
                    "Exp_Netas_GTM")
## # A tibble: 4 × 7
##    anio Exp_HND Imp_HND Exp_Netas_HND Exp_GTM Imp_GTM Exp_Netas_GTM
##   <dbl>   <dbl>   <dbl>         <dbl>   <dbl>   <dbl>         <dbl>
## 1  2017    797.    583.         214.     792.   1046.         -254.
## 2  2018    906.    754.         152.     848.   1170.         -322.
## 3  2019    946.    827.         119.     948.   1273.         -325.
## 4  2020    475.    412.          62.6    523.    774.         -251.

Ejercicio 3 [10%]

Obtenga los indicadores de Balassa, para el capitulo “01”, usando las funciones provistas en clase.
source(file = "C:/Users/Usuario/Desktop/REBE/METODOS MAE/COMERCIO EXTERIOR/R/funciones_comercio_exterior.R")
library(readr)
library(dplyr)
library(knitr)
library(kableExtra)
resultado_balassa = data.frame(
  "años" = 2017:2020,
  "IB_GTA" = sapply(
    X = 2017:2020,
    FUN = indicadores_Balassa_capitulo,
    codigo_pais = 320,
    capitulo = "01"
  ),
  "IB_HND" = sapply(
    X = 2017:2020,
    FUN = indicadores_Balassa_capitulo,
    codigo_pais = 340,
    capitulo = "01"
  )
)
resultado_balassa %>% head() %>%
  kable(
    caption = "**Índice de Balassa: Guatemala y Honduras para el periodo 2017-2020",
    col.names = c("Año", "IB_GTA", "IB_HND"),
    align = c("c", "c", "c"),
    digits = 2
  ) %>%
  kable_classic(html_font = "Times New Roman",
                font_size = 14) %>%
  row_spec(0, bold = T) %>%
  footnote(general_title = "**Fuente:**",
           general = "Elaboración propia con base en datos del BCR")
**Índice de Balassa: Guatemala y Honduras para el periodo 2017-2020
Año IB_GTA IB_HND
2017 0.86 -0.04
2018 0.86 -0.13
2019 0.84 -0.24
2020 0.92 0.41
Fuente:
Elaboración propia con base en datos del BCR

Ejercicio 4 [20%]

Genera una función que obtenga un raking, anual, de los “k” principales socios comerciales de El Salvador, para el periodo año inicio-año final. Presente sus resultados en el siguiente formato:
Top k Socios comerciales, periodo año inicio- año fina, datos en porcentaje de las exportaciones totales.
top_socios_comerciales <-
  function(anios_ranking = 2017:2020,
           numero_socios = 10,
           posiciones_decimales = 2,
           titulo_pie_tabla = "Fuente:",
           pie_tabla = "Elaboración para el Parcial 1 MAE118 2022") {
    #Filtro Años Requeridos
    data_comercio_exterior %>%
      filter(anio %in% anios_ranking) -> data_ranking
    
    #Cálculo de Porcentajes
    data_ranking %>%
      group_by(anio, iso_3) %>%
      summarise(total = sum(valor_fob)) %>%
      mutate(percent = round(prop.table(total) * 100, posiciones_decimales)) %>%
      slice_max(n = numero_socios, order_by = total) %>%
      as.data.frame() %>%
      group_by(anio) %>%
      mutate(rank = row_number(),
             data = paste(iso_3, "|", percent, "%", sep = "")) %>%
      select(anio, data, rank) %>%
      as.data.frame() -> insumo_reporte
    names(insumo_reporte) <- c("Año", "Data", "Rank")
    
    #Formato Tabla original
    library(tidyr)
    insumo_reporte %>%
      pivot_wider(names_from = Rank, values_from = Data) -> mi_tabla
    
    #Formato Tabla Final
    library(kableExtra)
    mi_tabla %>%
      kable(
        caption = paste(
          "Top",
          numero_socios,
          "de Exportaciones Periodo",
          min(anios_ranking),
          "-",
          max(anios_ranking),
          "."
        ),
        align = "c"
      ) %>%
      kable_classic(html_font = "Times New Roman",
                    font_size = 14) %>%
      column_spec(1, bold = T) %>%
      row_spec(0, bold = T, color = "black") %>%
      footnote(general_title = titulo_pie_tabla,
               general = pie_tabla)
  }
#Prueba con Valores por Default
top_socios_comerciales()
Top 10 de Exportaciones Periodo 2017 - 2020 .
Año 1 2 3 4 5 6 7 8 9 10
2017 USA|44.52% HND|13.83% GTM|13.75% NIC|7.48% CRI|4.55% PAN|2.11% MEX|1.96% DOM|1.45% TWN|0.93% ESP|0.84%
2018 USA|44.07% HND|15.34% GTM|14.36% NIC|6.87% CRI|4.39% MEX|2.44% PAN|2.08% DOM|1.65% CHN|1.45% ESP|0.82%
2019 USA|41.88% GTM|15.95% HND|15.91% NIC|6.68% CRI|4.5% MEX|2.53% PAN|2.05% DOM|1.77% CAN|1.08% CHN|0.87%
2020 USA|36.8% GTM|16.92% HND|15.34% NIC|7.52% CRI|5.08% MEX|2.42% PAN|1.97% DOM|1.81% KOR|1.61% CHN|1.6%
Fuente:
Elaboración para el Parcial 1 MAE118 2022