UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

CICLO II-2022

Asignatura:

Métodos para el Análisis Ecocómico.

Facilitador:

Carlos Ademir Pérez Alas.

Contenido:

Resolucion del primer parcial.

Grupo Teórico:

03.

Alumna:

Orellana Alvarado, Nathaly Eunice. OA18024.

Ciudad Universitaria, Lunes 10 de octubre de 2022.

Resolución del primer parcial (Teoria y practica).

PARTE I: TEÓRICA (50%):

1) [10%] Explique ¿Qué significa las estructuras de datos?

Una estructura de datos es un conjunto de variables (que podrían ser de distinto tipo) relacionadas entre sí y que se puede operar como un todo, bajo un nombre único. (Sanz, 2014)

El termino de estructura de datos se refiere a un contenedor, es decir, son objetos que almacenan de manera eficeinte diferentetes tipo de datos segun su caracteristicas. En otras palabra, es una forma de almacenar y organizar un conjunto de datos que pueden ser de todos del mismo tipo o de diferentes, permitiendo el manejo de grandes cantidades de datos con el objetivo de facilitar su manipulación y realizar un conjunto de operaciones sobre ellos.

2) [10%] Explique ¿Cómo se clasifican las estructuras de datos en R?

La estructura de datos se clasifica en Homogénea y Heterogénea, podemos entender por Homogéneas a todos los objetos que son del mismo tipo y la estructura Heterogéneas aquellos objetos en cual el contenido puede ser de diferentes tipos

La clasificaión de las Estructuras de datos

Dimensiones Homogénea Heterogénea
1 Vector atómico Lista
2 Matriz Data frame
n Array

Fuente: Elaborado con Información obtenida del libro R para principiantes

Explicación:

A)Estructuras Homogéneas:

se refiere a que una estructura de datos será homogénea si solo si pueda albergar un solo tipo de datos a la vez, ya sea Numeric, Character (cadena o string), Fecha, vector lógico. En esta estructura solo se puede permitir un solo tipo de datos a la vez.

Vector atómico: Es tipo más básico de estructura de dato en R es el vector. El vector es una estructura compuesta de un número de elementos finitos, homogéneos y donde dicha estructura tiene un tamaño fijo. Se dice que es finito porque existe un último elemento y homogéneo porque todos los elementos son del mismo tipo y tamaño fijo porque el tamaño del vector debe ser conocido en tiempo de ejecución o compilación. Los vectores atómicos pueden ser creados con la función c( ), que corresponde a la sigla de concatenar o combinar.

Matriz: se utiliza para representar datos de un único tipo en dos dimensiones(numero de filas, numero de columnas). Un método más directo para crear la matriz función matrix() que permite organizar los datos en una matriz con tantas filas y columnas como se indiquen.

Array: se emplean para representar datos multidimensionales de un único tipo. Los arrays son raramente utilizados en el análisis de datos, ya que los arrays tienen la restricción de que todos sus datos deben ser del mismo tipo, no importando en cuántas dimensiones se encuentren, esto limita sus usos prácticos.

B) Estrcturas Heterogénea: Una estructura de datos se dice heterogénea si los datos que la componen son de distinto tipo

Lista: Es estructuras de datos unidimensionales, pero a diferencia de los vectores cada uno de sus elementos puede ser de diferente tipo o incluso de diferente clase, por lo que son estructuras heterogéneas. Podemos tener listas que contengan datos vectores atómicos, matrices, arrays, data frames u otras listas. Esta última característica es la razón por la que una lista puede ser considerada un vector recursivo, pues es un objeto que puede contener objetos de su misma clase.

la lista es el objeto más general que se puede encontrar en R.

Data frame: es una estructura de datos bidimensional similar a una matriz, pero funciona de manera muy diferente. Si bien un data frame parece una tabla simple, de hecho es una lista de vectores de la misma longitud. La principal diferencia entre la matriz y la data frame, es que un data frame permite tipos de datos mixtos (por ejemplo, numérico, lógico, carácter). Esto les permite almacenar diferentes tipos de variables, lo cual es muy útil en el análisis estadístico.

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

Ilustración de un anti_join (A, B) a través de un diagrama de Venn

Explicación:

Descarta todas las observaciones en A con coincidencias en B, es decir es todo lo que esta en A pero excluyento todo la parte de B. El anti_join es el mecanismo inverso al semi_join, ya que, su finalidad consiste en identificar aquellas observaciones que no se encuentran en el segundo dataset. Aunque parezca de poca relevancia, los anti_join pueden resultar de gran utilidad a la hora de identificar errores o discrepancias entre dos datasets.

PARTE II: PRACTICA (50%):

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

## Cargando data
library(dplyr)
load("F:/MAE/examen/Nathaly Eunice Orellana Alvarado - 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 Nº 1 [10%]:

Elabore una función que se llame totales_pais_anios que se use como argumento el código de país iso de tres características, para elegir el socio comercial de El Salvador, y permita obtener las Exportaciones y las Importaciones para un período específico.

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 Nº 2 [10%]:

Usando la función creada en el ejercicio 1 y los comandos que sea necesarios, genere la siguiente tabla: (nota ratio es el consciente entre Importaciones y Exportaciones) GTM= Guatemala y HNA= Honduras.

library(kableExtra)

## Creamos la tabla de GTM
tabla_GTM<-totales_pais_anios("GTM", 2017:2020)
colnames(tabla_GTM)<-c("Pais", "anio", "Exportaciones_GTM", "Importaciones_GTM")
tabla_GTM %>% mutate(ratio_GTM=Importaciones_GTM/Exportaciones_GTM)->tabla_GTM

## Creamos la Tabla de HND
tabla_HND<-totales_pais_anios("HND",2017:2020)
colnames(tabla_HND)<-c("Pais", "anio", "Exportaciones_HND", "Importaciones_HND") 
tabla_HND %>% mutate(ratio_HND=Importaciones_HND/Exportaciones_HND)->tabla_HND

## usando left_join
Mi_tabla <- tabla_GTM %>% left_join(tabla_HND, by= c("anio"="anio"))

###Formato Tabla
Mi_tabla %>% select("anio","Exportaciones_GTM", "Importaciones_GTM","ratio_GTM","Exportaciones_HND", "Importaciones_HND","ratio_HND")%>%
  head(4) %>%
  kable(col.names = (c("anio","Exportaciones_GTM", "Importaciones_GTM","ratio_GTM","Exportaciones_HND", "Importaciones_HND","ratio_HND")),
        align = "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.")
anio Exportaciones_GTM Importaciones_GTM ratio_GTM Exportaciones_HND Importaciones_HND ratio_HND
2017 792.23 1045.86 1.32 796.86 583.36 0.73
2018 847.91 1169.60 1.38 905.73 753.92 0.83
2019 948.26 1273.10 1.34 945.69 826.92 0.87
2020 523.38 774.02 1.48 474.65 412.01 0.87
Fuente:
Elaboración propia con base en datos del BCR.

Ejercicio Nº 3 [10%]:

Obtenga los indicadores de Balassa, para el capítulo “01”, usando las funciones provistas en clase.

library(readr)
library(dplyr)
library(knitr)
library(kableExtra)

## Cargando funciones para el calculo de los indices:

source("F:/MAE/examen/funciones_comercio_exterior.R",
  echo = TRUE,
  max.deparse.length = 100,
  encoding = "utf-8"
)
## 
## > options(scipen = 999)
## 
## > library(dplyr)
## 
## > library(readxl)
## 
## > library(stringr)
## 
## > load("F:/MAE/examen/Nathaly Eunice Orellana Alvarado - data_parcial_1_2021.RData")
## 
## > nombre_archivo <- nombres_iso_paises
## 
## > nombres_iso_paises <- nombre_archivo
## 
## > data_comercio_exterior <- data_comercio_exterior %>% 
## +     left_join(nombres_iso_paises, by = c(p .... [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]
## realizamos el calculo del indicador Balassa

resultado_balassa = data.frame("años"=2017:2020,
                               "IB_GTM"= 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"))

#Formato Tabla
resultado_balassa%>%head()%>%
 kable(
    caption = "Índice de Balassa: Guatemala y Honduras para el periodo 2017-2020",
    col.names = c("Año", "IB_GTM", "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_GTM 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 Nº 4 [20%]:

Genera una función que obtenga un ranking anual, de los “K” principales socios comerciales de El Salvador para el período año inició-año final presente sus resultados en el siguiente formato:

## Creamos la función 
top_socios_comerciales <-
  function(anios_ranking = 2018:2020,
           k = 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 = k, 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",
          k,
          "socios comerciales para el periodo de ",
          min(anios_ranking),
          "-",
          max(anios_ranking),
          ",datos en porcentaje de las exportaciones totales."
        ),
        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)
  }

#Resultado
top_socios_comerciales()
Top 10 socios comerciales para el periodo de 2018 - 2020 ,datos en porcentaje de las exportaciones totales.
Año 1 2 3 4 5 6 7 8 9 10
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.

Bibliografia:

Vega, J. B. (2014). R para principiantes. Retrieved from https://bookdown.org/jboscomendoza/r-principiantes4/estructuras-de-datos.html


h1,h2,h3,h4{
    font-size:14px;
    font-weight: bold;
    font-family: 'Times New Roman', Times, serif;
    line-height:2;
}
h1 {
    text-align: center;
}
h4{
    text-align:center;
    font-weight: bold
}
p, li{
  text-indent: 40px;
    font-size:12 px;
    font-family: 'Times New Roman', Times, serif;
      line-height: 2;
}