TALLER MINERIA DE DATOS

Integrantes:

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
##  [1] "Código del País"                          
##  [2] "Nombre y Continente"                      
##  [3] "Año"                                      
##  [4] "PIB (miles de millones USD)"              
##  [5] "Tasa de Inflación (%)"                    
##  [6] "Balanza Comercial (miles de millones USD)"
##  [7] "Tipo de Cambio (vs. USD)"                 
##  [8] "Crecimiento del Comercio Exterior (%)"    
##  [9] "Número de Tratados de Libre Comercio"     
## [10] "Riesgo País"
## [1] 220  10

De acuerdo con los resultados podemos ver que la base de datos tiene 10 columnas y 220 columnas

Filtrado de Datos

Importe el archivo a R Studio y revise la estructura de los datos. ¿Cuántas filas y columnas tiene la tabla?

df_filter <- df %>% 
  filter(`PIB (miles de millones USD)` > 5000, Año == 2024)

dim(df_filter)
## [1] 18 10
head(df_filter, 10)
## # A tibble: 10 × 10
##    `Código del País` `Nombre y Continente`         Año PIB (miles de millones …¹
##    <chr>             <chr>                       <dbl>                     <dbl>
##  1 ARG               Argentina - América del Sur  2024                     6850 
##  2 AUS               Australia - Oceanía          2024                    24055.
##  3 BRA               Brasil - América del Sur     2024                    16654.
##  4 CHL               Chile - América del Sur      2024                    24590.
##  5 CHN               China - Asia Norte           2024                     8341.
##  6 COL               Colombia - América del Sur   2024                     6538.
##  7 EGY               Egipto - África Norte        2024                    22013.
##  8 FRA               Francia - Europa Oeste       2024                    21933.
##  9 GBR               Reino Unido - Europa Oeste   2024                    12026.
## 10 IDN               Indonesia - Asia Sur         2024                    17915.
## # ℹ abbreviated name: ¹​`PIB (miles de millones USD)`
## # ℹ 6 more variables: `Tasa de Inflación (%)` <dbl>,
## #   `Balanza Comercial (miles de millones USD)` <dbl>,
## #   `Tipo de Cambio (vs. USD)` <dbl>,
## #   `Crecimiento del Comercio Exterior (%)` <dbl>,
## #   `Número de Tratados de Libre Comercio` <dbl>, `Riesgo País` <chr>

Los paises que en el 2024 mostraron un PIB superior a 5000 mil millones de USD son solo diez, estos son Argentina, Australia, Brasil, Chile, China, Colombia, Egipto, Francia, Reino Unido, e Indonesia.

Transformación de Datos

Filtre los registros para mostrar solo los países con un PIB superior a 5000 mil millones USD en el año 2024. ¿Cuáles son esos países?

df_2024 <- df %>% 
  filter(Año == 2024) %>% 
  mutate(Bal_Com_PIB = `Balanza Comercial (miles de millones USD)` / 
                       `PIB (miles de millones USD)`) %>% 
  arrange(desc(Bal_Com_PIB))

df_2024 %>% 
  select(`Nombre y Continente`, Bal_Com_PIB) %>% 
  head(3)
## # A tibble: 3 × 2
##   `Nombre y Continente`      Bal_Com_PIB
##   <chr>                            <dbl>
## 1 Canadá - América del Norte      0.0957
## 2 Alemania - Europa Oeste         0.0815
## 3 España - Europa Oeste           0.0691

Los tres países con la mejor relación entre la Balanza Comercial y el PIB son Canada, Alemania y España respectivamente con un porcentaje 9,5% , 8,1% , 6,9%.

Conversión de Datos

Convierta la columna de “Riesgo País” en valores numéricos (Muy Bajo=1, Bajo=2, Moderado=3, Alto=4, Muy Alto=5). ¿Cuáles son los tres países con mayor riesgo financiero?

df <- df %>% 
  mutate(Riesgo_Pais_Nivel = case_when(
    `Riesgo País` == "Muy Bajo" ~ 1,
    `Riesgo País` == "Bajo" ~ 2,
    `Riesgo País` == "Moderado" ~ 3,
    `Riesgo País` == "Alto" ~ 4,
    `Riesgo País` == "Muy Alto" ~ 5
  ))

df %>% 
  arrange(desc(Riesgo_Pais_Nivel)) %>% 
  select(`Nombre y Continente`, `Riesgo País`, Riesgo_Pais_Nivel) %>% 
  head(3)
## # A tibble: 3 × 3
##   `Nombre y Continente`       `Riesgo País` Riesgo_Pais_Nivel
##   <chr>                       <chr>                     <dbl>
## 1 Argentina - América del Sur Muy Alto                      5
## 2 Argentina - América del Sur Muy Alto                      5
## 3 Australia - Oceanía         Muy Alto                      5

Se realiza la conversión creando un bucle, donde los tres países con mayor nivel de riesgo serian Argentina, Australia y Brasil.

Eliminación de valores nulos

Identifique cuáles columnas contienen valores nulos y elimine las filas donde el PIB o la inflación estén vacíos. ¿Cuántas filas quedan después de la limpieza?

colSums(is.na(df))   # columnas con NA
##                           Código del País 
##                                         0 
##                       Nombre y Continente 
##                                         0 
##                                       Año 
##                                         0 
##               PIB (miles de millones USD) 
##                                        12 
##                     Tasa de Inflación (%) 
##                                         8 
## Balanza Comercial (miles de millones USD) 
##                                         0 
##                  Tipo de Cambio (vs. USD) 
##                                         0 
##     Crecimiento del Comercio Exterior (%) 
##                                         0 
##      Número de Tratados de Libre Comercio 
##                                        21 
##                               Riesgo País 
##                                         0 
##                         Riesgo_Pais_Nivel 
##                                         0
df_clean <- df %>%
  filter(!is.na(`PIB (miles de millones USD)`),
         !is.na(`Tasa de Inflación (%)`))

dim(df_clean)
## [1] 201  11

Luego de la limpieza de datos se identifica que la variable “Número de Tratados de Libre Comercio” posee 21 valores nulos, el PIB (miles de millones USD) posee 12 valores nulos, la Tasa de Inflación (%) tiene 8 valores nulos, finalmente la nueva variable relacion presenta 12 valores nulos. Por lo que quedan 201 filas luego de la limpieza

División de Columnas

Separe la columna “Nombre y Continente” en dos columnas nuevas: “Nombre País” y “Continente”. ¿Cuántos países pertenecen a cada continente después de la transformación?

df_clean <- df_clean %>%
  separate(`Nombre y Continente`, into = c("Nombre_Pais", "Continente"), sep = " - ")

df_clean %>%
  count(Continente)
## # A tibble: 9 × 2
##   Continente            n
##   <chr>             <int>
## 1 América del Norte    28
## 2 América del Sur      46
## 3 Asia Norte           19
## 4 Asia Sur             16
## 5 Europa Este          10
## 6 Europa Oeste         45
## 7 Oceanía              18
## 8 África Norte          9
## 9 África Sur           10

Al separar la variable Nombre y Continente en “Nombre País” y “Continente”, se pueden identificar los países que pertenecen a cada continente. En África Norte hay 9 países, África Sur hay 10 países, América del Norte hay 28 países, América del Sur hay 46 países, Asia Norte hay 19 países, Asia sur hay 16 países, Europa Este hay 10 países, Eurpoa Oeste hay 45 países, finalmente en Oceanía hay 18 países.

Agrupación de Datos

Duplique la hoja y agrupe los datos por “Año” y calcule el promedio del PIB para cada año. ¿En qué año se observa el mayor promedio de PIB?

df_promedio <- df_clean %>%
  group_by(Año) %>%
  summarise(Promedio_PIB = mean(`PIB (miles de millones USD)`, na.rm = TRUE))

df_promedio %>%
  arrange(desc(Promedio_PIB)) %>%
  head(1)
## # A tibble: 1 × 2
##     Año Promedio_PIB
##   <dbl>        <dbl>
## 1  2020       14795.

Al duplicar las variables, y obtener el promedio del PIB, se puede analizar que el PIB del año 2020 tuvo el mayor promedio, sinedo 14.749,54

Cálculo de Variaciones

Cree una columna nueva que calcule la variación del PIB con respecto al año anterior para cada país; debe duplicar hojas para “PIB Inicial” y “PIB Final”. ¿Cuáles son los países con mayor crecimiento del PIB en 2024?

df_variacion <- df_clean %>%
  group_by(`Código del País`) %>%
  arrange(Año) %>%
  mutate(Var_PIB = `PIB (miles de millones USD)` - lag(`PIB (miles de millones USD)`))

df_variacion %>%
  filter(Año == 2024) %>%
  arrange(desc(Var_PIB)) %>%
  select(Nombre_Pais, Año, Var_PIB) %>%
  head(5)
## Adding missing grouping variables: `Código del País`
## # A tibble: 5 × 4
## # Groups:   Código del País [5]
##   `Código del País` Nombre_Pais   Año Var_PIB
##   <chr>             <chr>       <dbl>   <dbl>
## 1 EGY               Egipto       2024  15382.
## 2 FRA               Francia      2024  13747.
## 3 AUS               Australia    2024  12510.
## 4 BRA               Brasil       2024  12361.
## 5 RUS               Rusia        2024   7420.

La variación del producto interno bruto, se calcula el valor de crecimiento. Las cinco empresas con mayor crecimiento en el producto interno bruto son Egipto, Francia, Australia, Brasil, y Rusia.

Filtrado Avanzado

Aplique un filtro para mostrar solo los países que han firmado más de 10 tratados de libre comercio y tienen un crecimiento del comercio exterior superior al 3% en 2024. ¿Cuáles cumplen con estos criterios?

df_clean %>%
  filter(Año == 2024,
         `Número de Tratados de Libre Comercio` > 10,
         `Crecimiento del Comercio Exterior (%)` > 3) %>%
  select(Nombre_Pais, Continente, `Número de Tratados de Libre Comercio`, `Crecimiento del Comercio Exterior (%)`)
## # A tibble: 1 × 4
##   Nombre_Pais Continente Número de Tratados de Libre Co…¹ Crecimiento del Come…²
##   <chr>       <chr>                                 <dbl>                  <dbl>
## 1 Japón       Asia Norte                               24                   6.51
## # ℹ abbreviated names: ¹​`Número de Tratados de Libre Comercio`,
## #   ²​`Crecimiento del Comercio Exterior (%)`

De los países que han firmado más de 10 tratados de libre comercio y tinen un crecimiento del comercio exterior superior al 3% en 2024 es solo Japón, en este caso el número de tratados de libre comercio son 24 y el crecimiento del comercio exterior es 6,51%

Ordenamiento de Datos

Ordene los países por tasa de inflación en 2024, de menor a mayor. ¿Cuál es el país con la menor inflación?

df_clean %>%
  filter(Año == 2024) %>%
  arrange(`Tasa de Inflación (%)`) %>%
  select(Nombre_Pais, `Tasa de Inflación (%)`) %>%
  head(1)
## # A tibble: 1 × 2
##   Nombre_Pais `Tasa de Inflación (%)`
##   <chr>                         <dbl>
## 1 Canadá                        -0.33

Al organizar los países por la tasa de inflación nos damos cuenta que el país con la menor inflación es Canadá, con una inflación negativa.

Medida Calculada - Relación PIB e Inflación

Cree una columna que divida el PIB entre la tasa de inflación para obtener una relación ajustada. ¿Qué país tiene la mejor relación PIB-Inflación en 2024?

df_clean <- df_clean %>%
  mutate(Rel_PIB_Inflacion = `PIB (miles de millones USD)` / `Tasa de Inflación (%)`)

df_clean %>%
  filter(Año == 2024) %>%
  arrange(desc(Rel_PIB_Inflacion)) %>%
  select(Nombre_Pais, Rel_PIB_Inflacion) %>%
  head(1)
## # A tibble: 1 × 2
##   Nombre_Pais Rel_PIB_Inflacion
##   <chr>                   <dbl>
## 1 Indonesia              33176.

Al obtener esta relación ajustada se permite identificar qué países logran un equilibrio favorable entre crecimiento económico y estabilidad de precios. En este caso el país que tiene la mejor relación PIB-Inflación en 2024 es Indonesia con una relación de 33175.57

Medida Calculada - Impacto del Tipo de Cambio

Calcule una medida nueva que exprese cuánto impacta el tipo de cambio en la balanza comercial (Balanza Comercial * Tipo de Cambio). ¿Qué país muestra el mayor impacto?

df_clean <- df_clean %>%
  mutate(Impacto_TC = `Balanza Comercial (miles de millones USD)` * `Tipo de Cambio (vs. USD)`)

df_clean %>%
  filter(Año == 2024) %>%
  arrange(desc(Impacto_TC)) %>%
  select(Nombre_Pais, Impacto_TC) %>%
  head(1)
## # A tibble: 1 × 2
##   Nombre_Pais Impacto_TC
##   <chr>            <dbl>
## 1 Egipto          34019.

El impacto del tipo de cambio en la balanza comercial, lo que muestra qué países son más sensibles a la volatilidad cambiaria, lo que afecta directamente la rentabilidad de las operaciones internacionales. En este caso el país muestra el mayor impacto es Egipto con un valor de 34.019,03

Medida Calculada - Índice de Competitividad

Cree una fórmula que calcule un índice de competitividad basado en PIB, inflación y tratados comerciales [(PIB / Inflación) + (Tratados TLC * 5)]. ¿Qué país tiene el índice más alto?

df_clean <- df_clean %>%
  mutate(Indice_Compet = (`PIB (miles de millones USD)` / `Tasa de Inflación (%)`) +
                          (`Número de Tratados de Libre Comercio` * 5))

df_clean %>%
  filter(Año == 2024) %>%
  arrange(desc(Indice_Compet)) %>%
  select(Nombre_Pais, Indice_Compet)
## # A tibble: 20 × 2
##    Nombre_Pais    Indice_Compet
##    <chr>                  <dbl>
##  1 Indonesia             33206.
##  2 China                 26107.
##  3 Estados Unidos        15941.
##  4 Japón                  8613.
##  5 India                  6778.
##  6 Francia                3779.
##  7 Rusia                  3486.
##  8 Chile                  3030.
##  9 Australia              2746.
## 10 México                 1712.
## 11 Argentina              1555.
## 12 Alemania               1162.
## 13 Sudáfrica              1112.
## 14 Colombia                922.
## 15 Brasil                   NA 
## 16 Canadá                   NA 
## 17 Egipto                   NA 
## 18 España                   NA 
## 19 Nueva Zelanda            NA 
## 20 Perú                     NA

El índice de competitividad basado en el PIB se da al combinar PIB, inflación y tratados comerciales, mediante el cual se obtiene un indicador integral que resalta los países con mejores condiciones para competir en el mercado global. El país con el indice de competividad mas alto es indonesia.

Exportación de Datos

Una vez transformados los datos, expórtelos a un archivo nuevo de Excel con el nombre “Indicadores_Limpios.xlsx”. ¿Cuántas filas tiene el archivo final después de las transformaciones?

write.csv2(df_clean, "Indicadores_Limpios2.csv", row.names = FALSE)


dim(df_clean)
## [1] 201  15

El archivo final luego de la transformación tiene 201 filas, estas incluyen la relación del PIB y la inflación, el impacto del tipo de cambioi y el indice de competitividad.