# Carga de librerías
library(ggplot2)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
# mmam es donde está el data frame
mmam <- read_csv("master.csv")
## Rows: 27820 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): country, sex, age, country-year, generation
## dbl (6): year, suicides_no, population, suicides/100k pop, HDI for year, gdp...
## num (1): gdp_for_year ($)
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
master <- mmam
# Cargar librería magrittr para uso de pipe (%>%)
suppressWarnings(require(magrittr))
## Cargando paquete requerido: magrittr

##1.Edite y explore reglas para verificar que la base de datos no contenga posibles registros erróneos.

master <- master %>%
  rename(IDH_anio = `HDI for year`,
         suicidios_por_100k = `suicides/100k pop`,
         PIB_anio = `gdp_for_year ($)`,
         PIB_per_capita = `gdp_per_capita ($)`)
names(master)
##  [1] "country"            "year"               "sex"               
##  [4] "age"                "suicides_no"        "population"        
##  [7] "suicidios_por_100k" "country-year"       "IDH_anio"          
## [10] "PIB_anio"           "PIB_per_capita"     "generation"
head(master)
## # A tibble: 6 × 12
##   country  year sex    age         suicides_no population suicidios_por_100k
##   <chr>   <dbl> <chr>  <chr>             <dbl>      <dbl>              <dbl>
## 1 Albania  1987 male   15-24 years          21     312900               6.71
## 2 Albania  1987 male   35-54 years          16     308000               5.19
## 3 Albania  1987 female 15-24 years          14     289700               4.83
## 4 Albania  1987 male   75+ years             1      21800               4.59
## 5 Albania  1987 male   25-34 years           9     274300               3.28
## 6 Albania  1987 female 75+ years             1      35600               2.81
## # ℹ 5 more variables: `country-year` <chr>, IDH_anio <dbl>, PIB_anio <dbl>,
## #   PIB_per_capita <dbl>, generation <chr>
# Contar valores faltantes por columna
colSums(is.na(master))
##            country               year                sex                age 
##                  0                  0                  0                  0 
##        suicides_no         population suicidios_por_100k       country-year 
##                  0                  0                  0                  0 
##           IDH_anio           PIB_anio     PIB_per_capita         generation 
##              19456                  0                  0                  0
# Mostrar filas que contienen NAs
master[!complete.cases(master), ]
## # A tibble: 19,456 × 12
##    country  year sex    age         suicides_no population suicidios_por_100k
##    <chr>   <dbl> <chr>  <chr>             <dbl>      <dbl>              <dbl>
##  1 Albania  1987 male   15-24 years          21     312900               6.71
##  2 Albania  1987 male   35-54 years          16     308000               5.19
##  3 Albania  1987 female 15-24 years          14     289700               4.83
##  4 Albania  1987 male   75+ years             1      21800               4.59
##  5 Albania  1987 male   25-34 years           9     274300               3.28
##  6 Albania  1987 female 75+ years             1      35600               2.81
##  7 Albania  1987 female 35-54 years           6     278800               2.15
##  8 Albania  1987 female 25-34 years           4     257200               1.56
##  9 Albania  1987 male   55-74 years           1     137500               0.73
## 10 Albania  1987 female 5-14 years            0     311000               0   
## # ℹ 19,446 more rows
## # ℹ 5 more variables: `country-year` <chr>, IDH_anio <dbl>, PIB_anio <dbl>,
## #   PIB_per_capita <dbl>, generation <chr>
# Renombrar columnas para mayor claridad
columnas <- names(master)
master %<>% rename(pais = columnas[1],
                   ano = columnas[2],
                   sexo = columnas[3],
                   edad = columnas[4],
                   num_suicidios = columnas[5],
                   poblacion = columnas[6],
                   suicidios_por_100k = columnas[7],
                   pais_anio = columnas[8],
                   IDH_anio = columnas[9],
                   PIB_anio = columnas[10],
                   PIB_per_capita = columnas[11],
                   generacion = columnas[12])
# Crear nueva columna con PIB en millones y convertir textos en factores
master %<>% mutate(PIB_anio_millones = PIB_anio / 1000000)
master %<>% mutate_if(is.character, as.factor)
glimpse(master)
## Rows: 27,820
## Columns: 13
## $ pais               <fct> Albania, Albania, Albania, Albania, Albania, Albani…
## $ ano                <dbl> 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 198…
## $ sexo               <fct> male, male, female, male, male, female, female, fem…
## $ edad               <fct> 15-24 years, 35-54 years, 15-24 years, 75+ years, 2…
## $ num_suicidios      <dbl> 21, 16, 14, 1, 9, 1, 6, 4, 1, 0, 0, 0, 2, 17, 1, 14…
## $ poblacion          <dbl> 312900, 308000, 289700, 21800, 274300, 35600, 27880…
## $ suicidios_por_100k <dbl> 6.71, 5.19, 4.83, 4.59, 3.28, 2.81, 2.15, 1.56, 0.7…
## $ pais_anio          <fct> Albania1987, Albania1987, Albania1987, Albania1987,…
## $ IDH_anio           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ PIB_anio           <dbl> 2156624900, 2156624900, 2156624900, 2156624900, 215…
## $ PIB_per_capita     <dbl> 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 7…
## $ generacion         <fct> Generation X, Silent, Generation X, G.I. Generation…
## $ PIB_anio_millones  <dbl> 2156.625, 2156.625, 2156.625, 2156.625, 2156.625, 2…
# Ajustar los niveles de la columna 'edad'
master$edad %<>% factor(levels = c("5-14years", "15-24years", "25-34years", "35-54years", "55-74years", "75+years"))

# Ajustar los niveles de la columna 'generacion'
master$generacion %<>% factor(levels = c("G.I.Generation", "Silent", "Boomers", "GenerationX", "Millennials", "GenerationZ"))

###2 Filtre los datos de Colombia y los de EEUU, generando dos bases de datos, llamadas master_col y master_eu.

# Filtrar datos de Colombia
master_col <- subset(master, subset = (pais == "Colombia")) %>% droplevels()
glimpse(master_col)
## Rows: 372
## Columns: 13
## $ pais               <fct> Colombia, Colombia, Colombia, Colombia, Colombia, C…
## $ ano                <dbl> 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 198…
## $ sexo               <fct> male, male, male, male, male, female, female, femal…
## $ edad               <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ num_suicidios      <dbl> 21, 113, 193, 256, 188, 117, 45, 3, 31, 12, 12, 10,…
## $ poblacion          <dbl> 123400, 1015200, 2323700, 3190200, 2451100, 3140700…
## $ suicidios_por_100k <dbl> 17.02, 11.13, 8.31, 8.02, 7.67, 3.73, 1.98, 1.72, 1…
## $ pais_anio          <fct> Colombia1985, Colombia1985, Colombia1985, Colombia1…
## $ IDH_anio           <dbl> 0.573, 0.573, 0.573, 0.573, 0.573, 0.573, 0.573, 0.…
## $ PIB_anio           <dbl> 34894411352, 34894411352, 34894411352, 34894411352,…
## $ PIB_per_capita     <dbl> 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 139…
## $ generacion         <fct> NA, NA, Boomers, NA, Silent, NA, Boomers, NA, Silen…
## $ PIB_anio_millones  <dbl> 34894.41, 34894.41, 34894.41, 34894.41, 34894.41, 3…
# Filtrar datos de Estados Unidos
master_eu <- subset(master, subset = (pais == "United States")) %>% droplevels()
glimpse(master_eu)
## Rows: 372
## Columns: 13
## $ pais               <fct> United States, United States, United States, United…
## $ ano                <dbl> 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 198…
## $ sexo               <fct> male, male, male, male, male, female, female, femal…
## $ edad               <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ num_suicidios      <dbl> 2177, 5302, 5134, 6053, 4267, 2105, 1568, 466, 1242…
## $ poblacion          <dbl> 4064000, 17971000, 20986000, 26589000, 19962000, 27…
## $ suicidios_por_100k <dbl> 53.57, 29.50, 24.46, 22.77, 21.38, 7.58, 7.34, 6.24…
## $ pais_anio          <fct> United States1985, United States1985, United States…
## $ IDH_anio           <dbl> 0.841, 0.841, 0.841, 0.841, 0.841, 0.841, 0.841, 0.…
## $ PIB_anio           <dbl> 4.346734e+12, 4.346734e+12, 4.346734e+12, 4.346734e…
## $ PIB_per_capita     <dbl> 19693, 19693, 19693, 19693, 19693, 19693, 19693, 19…
## $ generacion         <fct> NA, NA, Boomers, Silent, NA, Silent, NA, NA, Boomer…
## $ PIB_anio_millones  <dbl> 4346734, 4346734, 4346734, 4346734, 4346734, 434673…
# Resumen Colombia
resumen_col <- master_col %>%
  group_by(ano) %>%
  summarise(PIB_anio_millones = mean(PIB_anio_millones),
            suicidios_por_100k = mean(suicidios_por_100k),
            IDH_anio = mean(IDH_anio))

resumen_col %<>% select(ano, PIB_anio_millones, suicidios_por_100k, IDH_anio)
# Resumen Estados Unidos
resumen_eu <- master_eu %>%
  group_by(ano) %>%
  summarise(PIB_anio_millones = mean(PIB_anio_millones),
            suicidios_por_100k = mean(suicidios_por_100k),
            IDH_anio = mean(IDH_anio))

resumen_eu %<>% select(ano, PIB_anio_millones, suicidios_por_100k, IDH_anio)

###3 Realice un análisis de la evolución de los suicidios por cada 100.000 habitantes, del PIB per cápita y del IDH, a lo largo de los años en ambos países.

# Tasa de suicidios por 100.000 habitantes
fig_1 <- ggplot(resumen_col, aes(ano, suicidios_por_100k)) +
  geom_line(color = "darkgreen") +
  labs(title = "Evolución de Suicidios en Colombia")

fig_2 <- ggplot(resumen_eu, aes(ano, suicidios_por_100k)) +
  geom_line(color = "purple") +
  labs(title = "Evolución de Suicidios en EE.UU.")

require(ggpubr)
## Cargando paquete requerido: ggpubr
ggarrange(fig_1, fig_2, labels = c("A", "B"), ncol = 2, nrow = 1)

####Podemos observar para ambos graficos que en los ultimos años han aumentado los casos de suicidio. tambien se puede observar que en el año los suicidios en colombia aumentaron significativamente mientras que en ese mismo año par EE UU disminuyeron.

# Evolución del PIB en millones
fig_3 <- ggplot(resumen_col, aes(ano, PIB_anio_millones)) +
  geom_line(color = "orange") +
  labs(title = "Evolución del PIB en Colombia")

fig_4 <- ggplot(resumen_eu, aes(ano, PIB_anio_millones)) +
  geom_line(color = "blue") +
  labs(title = "Evolución del PIB en EE.UU.")

ggarrange(fig_3, fig_4, labels = c("A", "B"), ncol = 2, nrow = 1)

####Vemos que ambas grafican muestran una tendencia creciente, pero para colombia en los ultimos años comienza a disminuir el valor de PIB.

# Evolución del IDH
fig_5 <- ggplot(resumen_col, aes(ano, IDH_anio)) +
  geom_line(color = "darkred") +
  labs(title = "Evolución del IDH en Colombia")

fig_6 <- ggplot(resumen_eu, aes(ano, IDH_anio)) +
  geom_line(color = "steelblue") +
  labs(title = "Evolución del IDH en EE.UU.")

ggarrange(fig_5, fig_6, labels = c("A", "B"), ncol = 2, nrow = 1)
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
## Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).

####Vemos en los graficos q probablemente por el metodo de imputacion implementado no podemos observar una tendencia clara.

###Realice un análisis de la evolución de los suicidios por cada 100.000 habitantes, del PIB per cápita y del IDH, a lo largo de los años en ambos países por género.

# Evolución de suicidios por género en Colombia
ggplot(master_col %>%
         group_by(ano, sexo) %>%
         summarise(suicidios_por_100k = mean(suicidios_por_100k)),
       aes(ano, suicidios_por_100k, color = sexo)) +
  geom_line() +
  labs(title = "Suicidios en Colombia por Género", x = "Año", y = "Suicidios por 100k")
## `summarise()` has grouped output by 'ano'. You can override using the `.groups`
## argument.

# Evolución de suicidios por género en EE.UU.
ggplot(master_eu %>%
         group_by(ano, sexo) %>%
         summarise(suicidios_por_100k = mean(suicidios_por_100k)),
       aes(ano, suicidios_por_100k, color = sexo)) +
  geom_line() +
  labs(title = "Suicidios en EE.UU. por Género", x = "Año", y = "Suicidios por 100k")
## `summarise()` has grouped output by 'ano'. You can override using the `.groups`
## argument.

#Graficamos suicidios
# Suicidios por generación en Colombia
ggplot(master_col %>%
         group_by(generacion, sexo) %>%
         summarise(suicidios_por_100k = sum(suicidios_por_100k)),
       aes(generacion, suicidios_por_100k, fill = sexo)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = suicidios_por_100k), position = position_stack(vjust = 0.5), color = "white") +
  labs(title = "Suicidios por Generación en Colombia", x = "Generación", y = "Suicidios por 100k")
## `summarise()` has grouped output by 'generacion'. You can override using the
## `.groups` argument.

# Suicidios por generación en EE.UU.
ggplot(master_eu %>%
         group_by(generacion, sexo) %>%
         summarise(suicidios_por_100k = sum(suicidios_por_100k)),
       aes(generacion, suicidios_por_100k, fill = sexo)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = suicidios_por_100k), position = position_stack(vjust = 0.5), color = "white") +
  labs(title = "Suicidios por Generación en EE.UU.", x = "Generación", y = "Suicidios por 100k")
## `summarise()` has grouped output by 'generacion'. You can override using the
## `.groups` argument.

# PIB Colombia
ggplot(master_col, aes(x = ano, y = PIB_anio_millones, color = sexo)) +
  geom_line(cex = 1) +
  labs(
    title = "Evolución del PIB por Año en Colombia según Género",
    x = "Año",
    y = "PIB (en millones)",
    color = "Género"
  )
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# PIB EE. UU.
ggplot(master_eu, aes(x = ano, y = PIB_anio_millones, color = sexo)) +
  geom_line(cex = 1) +
  labs(
    title = "Evolución del PIB por Año en EE. UU. según Género",
    x = "Año",
    y = "PIB (en millones)",
    color = "Género"
  )

# IDH Colombia
ggplot(master_col, aes(x = ano, y = IDH_anio, color = sexo)) +
  geom_line(cex = 1) +
  labs(
    title = "Evolución del IDH por Año en Colombia según Género",
    x = "Año",
    y = "Índice de Desarrollo Humano (IDH)",
    color = "Género"
  )
## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`geom_line()`).

# IDH EE. UU.
ggplot(master_eu, aes(x = ano, y = IDH_anio, color = sexo)) +
  geom_line(cex = 1) +
  labs(
    title = "Evolución del IDH por Año en EE. UU. según Género",
    x = "Año",
    y = "Índice de Desarrollo Humano (IDH)",
    color = "Género"
  )
## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`geom_line()`).