# 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()`).