Considere la base de datos indicada en el enlace y con respecto a tasas de suicidios mundiales entre 1985 y 2016.
Cargamos las librerias que necesitamos para la realización del código.
Cargamos el archivo que corresponde a la actividad.
# 1. Cargar librerías necesarias
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(ggplot2)
library(readr)
library(tidyr)
# 2. Asegúrate de que has descargado el archivo y provee la ruta adecuada en el siguiente paso.
df <- read_csv("C:/Users/ASUS/Desktop/Visual/Suicidios/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.
Visualizamos los primeros 5 datos
Mostramos las características de la base de datos, como el número de filas, columnas, nombre de las variables y tipo.
# 3. Ver las primeras filas del dataset
head(df)
## # A tibble: 6 × 12
## country year sex age suicides_no population `suicides/100k pop`
## <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>, `HDI for year` <dbl>,
## # `gdp_for_year ($)` <dbl>, `gdp_per_capita ($)` <dbl>, generation <chr>
# 4. Análisis de las características de la base de datos
# Número de filas y columnas
dim(df)
## [1] 27820 12
# 4.1 Nombres de las variables y tipos
str(df)
## spc_tbl_ [27,820 × 12] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ country : chr [1:27820] "Albania" "Albania" "Albania" "Albania" ...
## $ year : num [1:27820] 1987 1987 1987 1987 1987 ...
## $ sex : chr [1:27820] "male" "male" "female" "male" ...
## $ age : chr [1:27820] "15-24 years" "35-54 years" "15-24 years" "75+ years" ...
## $ suicides_no : num [1:27820] 21 16 14 1 9 1 6 4 1 0 ...
## $ population : num [1:27820] 312900 308000 289700 21800 274300 ...
## $ suicides/100k pop : num [1:27820] 6.71 5.19 4.83 4.59 3.28 2.81 2.15 1.56 0.73 0 ...
## $ country-year : chr [1:27820] "Albania1987" "Albania1987" "Albania1987" "Albania1987" ...
## $ HDI for year : num [1:27820] NA NA NA NA NA NA NA NA NA NA ...
## $ gdp_for_year ($) : num [1:27820] 2.16e+09 2.16e+09 2.16e+09 2.16e+09 2.16e+09 ...
## $ gdp_per_capita ($): num [1:27820] 796 796 796 796 796 796 796 796 796 796 ...
## $ generation : chr [1:27820] "Generation X" "Silent" "Generation X" "G.I. Generation" ...
## - attr(*, "spec")=
## .. cols(
## .. country = col_character(),
## .. year = col_double(),
## .. sex = col_character(),
## .. age = col_character(),
## .. suicides_no = col_double(),
## .. population = col_double(),
## .. `suicides/100k pop` = col_double(),
## .. `country-year` = col_character(),
## .. `HDI for year` = col_double(),
## .. `gdp_for_year ($)` = col_number(),
## .. `gdp_per_capita ($)` = col_double(),
## .. generation = col_character()
## .. )
## - attr(*, "problems")=<externalptr>
Visualizamos las variables númericas y categóricas.
# 5. Resumen estadístico de las variables numéricas
summary(df)
## country year sex age
## Length:27820 Min. :1985 Length:27820 Length:27820
## Class :character 1st Qu.:1995 Class :character Class :character
## Mode :character Median :2002 Mode :character Mode :character
## Mean :2001
## 3rd Qu.:2008
## Max. :2016
##
## suicides_no population suicides/100k pop country-year
## Min. : 0.0 Min. : 278 Min. : 0.00 Length:27820
## 1st Qu.: 3.0 1st Qu.: 97498 1st Qu.: 0.92 Class :character
## Median : 25.0 Median : 430150 Median : 5.99 Mode :character
## Mean : 242.6 Mean : 1844794 Mean : 12.82
## 3rd Qu.: 131.0 3rd Qu.: 1486143 3rd Qu.: 16.62
## Max. :22338.0 Max. :43805214 Max. :224.97
##
## HDI for year gdp_for_year ($) gdp_per_capita ($) generation
## Min. :0.483 Min. :4.692e+07 Min. : 251 Length:27820
## 1st Qu.:0.713 1st Qu.:8.985e+09 1st Qu.: 3447 Class :character
## Median :0.779 Median :4.811e+10 Median : 9372 Mode :character
## Mean :0.777 Mean :4.456e+11 Mean : 16866
## 3rd Qu.:0.855 3rd Qu.:2.602e+11 3rd Qu.: 24874
## Max. :0.944 Max. :1.812e+13 Max. :126352
## NA's :19456
# 5.1 Resumen de las variables categóricas
df %>% select_if(is.character) %>% summary()
## country sex age country-year
## Length:27820 Length:27820 Length:27820 Length:27820
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## generation
## Length:27820
## Class :character
## Mode :character
Identificamos los valores NA y visualizamos los datos.
# 6. Identificación de valores NA
colSums(is.na(df))
## country year sex age
## 0 0 0 0
## suicides_no population suicides/100k pop country-year
## 0 0 0 0
## HDI for year gdp_for_year ($) gdp_per_capita ($) generation
## 19456 0 0 0
# 6.1 Visualización de datos
glimpse(df)
## Rows: 27,820
## Columns: 12
## $ country <chr> "Albania", "Albania", "Albania", "Albania", "Alba…
## $ year <dbl> 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1…
## $ sex <chr> "male", "male", "female", "male", "male", "female…
## $ age <chr> "15-24 years", "35-54 years", "15-24 years", "75+…
## $ suicides_no <dbl> 21, 16, 14, 1, 9, 1, 6, 4, 1, 0, 0, 0, 2, 17, 1, …
## $ population <dbl> 312900, 308000, 289700, 21800, 274300, 35600, 278…
## $ `suicides/100k pop` <dbl> 6.71, 5.19, 4.83, 4.59, 3.28, 2.81, 2.15, 1.56, 0…
## $ `country-year` <chr> "Albania1987", "Albania1987", "Albania1987", "Alb…
## $ `HDI for year` <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ `gdp_for_year ($)` <dbl> 2156624900, 2156624900, 2156624900, 2156624900, 2…
## $ `gdp_per_capita ($)` <dbl> 796, 796, 796, 796, 796, 796, 796, 796, 796, 796,…
## $ generation <chr> "Generation X", "Silent", "Generation X", "G.I. G…
Filtramos la base de datos para Colombia en el año 2000
Utilizamos la funcion “Table” para explorar los datos
# 7. Filtrado de la base de datos para entender mejor su estructura
# 7.1 Filtrar datos para Colombia en el año 2000
df_filtered <- df %>% filter(country == "Colombia" & year == 2000)
head(df_filtered)
## # A tibble: 6 × 12
## country year sex age suicides_no population `suicides/100k pop`
## <chr> <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 Colombia 2000 male 75+ years 60 290481 20.7
## 2 Colombia 2000 male 15-24 years 629 3998961 15.7
## 3 Colombia 2000 male 55-74 years 198 1491171 13.3
## 4 Colombia 2000 male 25-34 years 438 3310535 13.2
## 5 Colombia 2000 male 35-54 years 453 4391802 10.3
## 6 Colombia 2000 female 15-24 years 262 3921422 6.68
## # ℹ 5 more variables: `country-year` <chr>, `HDI for year` <dbl>,
## # `gdp_for_year ($)` <dbl>, `gdp_per_capita ($)` <dbl>, generation <chr>
# 8. Uso de la función table para explorar la base de datos
table(df$country)
##
## Albania Antigua and Barbuda
## 264 324
## Argentina Armenia
## 372 298
## Aruba Australia
## 168 360
## Austria Azerbaijan
## 382 192
## Bahamas Bahrain
## 276 252
## Barbados Belarus
## 300 252
## Belgium Belize
## 372 336
## Bosnia and Herzegovina Brazil
## 24 372
## Bulgaria Cabo Verde
## 360 12
## Canada Chile
## 348 372
## Colombia Costa Rica
## 372 360
## Croatia Cuba
## 262 288
## Cyprus Czech Republic
## 178 322
## Denmark Dominica
## 264 12
## Ecuador El Salvador
## 372 288
## Estonia Fiji
## 252 132
## Finland France
## 348 360
## Georgia Germany
## 264 312
## Greece Grenada
## 372 310
## Guatemala Guyana
## 360 300
## Hungary Iceland
## 310 382
## Ireland Israel
## 360 372
## Italy Jamaica
## 372 204
## Japan Kazakhstan
## 372 312
## Kiribati Kuwait
## 132 300
## Kyrgyzstan Latvia
## 312 252
## Lithuania Luxembourg
## 262 372
## Macau Maldives
## 12 120
## Malta Mauritius
## 372 382
## Mexico Mongolia
## 372 10
## Montenegro Netherlands
## 120 382
## New Zealand Nicaragua
## 348 72
## Norway Oman
## 360 36
## Panama Paraguay
## 300 324
## Philippines Poland
## 180 288
## Portugal Puerto Rico
## 324 372
## Qatar Republic of Korea
## 178 372
## Romania Russian Federation
## 334 324
## Saint Kitts and Nevis Saint Lucia
## 36 336
## Saint Vincent and Grenadines San Marino
## 300 36
## Serbia Seychelles
## 216 216
## Singapore Slovakia
## 372 264
## Slovenia South Africa
## 252 240
## Spain Sri Lanka
## 372 132
## Suriname Sweden
## 336 358
## Switzerland Thailand
## 252 334
## Trinidad and Tobago Turkey
## 324 84
## Turkmenistan Ukraine
## 348 336
## United Arab Emirates United Kingdom
## 72 372
## United States Uruguay
## 372 336
## Uzbekistan
## 264
Filtramos los datos que necesitamos, que son los de Colombia y Estados Unidos.
# 9. Filtrar datos de Colombia y EEUU
master_col <- df %>% filter(country == "Colombia")
master_usa <- df %>% filter(country == "United States")
Mostramos la evolución de Colombia
# 10. Evolución en Colombia
ggplot(master_col, aes(x = year)) +
geom_line(aes(y = `suicides/100k pop`, color = "Suicidios/100k")) +
geom_line(aes(y = `gdp_per_capita ($)`, color = "PIB per cápita")) +
labs(title = "Evolución en Colombia: Suicidios/100k y PIB per cápita",
x = "Año", y = "Tasa/PIB") +
scale_y_continuous(sec.axis = sec_axis(~./1000, name = "PIB per cápita")) +
theme_minimal()
Mostramos la evolución de Estados Unidos
# Evolución en Estados Unidos
ggplot(master_usa, aes(x = year)) +
geom_line(aes(y = `suicides/100k pop`, color = "Suicidios/100k")) +
geom_line(aes(y = `gdp_per_capita ($)`, color = "PIB per cápita")) +
labs(title = "Evolución en Estados Unidos: Suicidios/100k y PIB per cápita",
x = "Año", y = "Tasa/PIB") +
scale_y_continuous(sec.axis = sec_axis(~./1000, name = "PIB per cápita")) +
theme_minimal()
Mostramos la evolución de género en Colombia
# Evolución por género en Colombia
ggplot(master_col, aes(x = year, y = `suicides/100k pop`, color = sex)) +
geom_line() +
labs(title = "Evolución de suicidios en Colombia por género",
x = "Año", y = "Suicidios/100k") +
theme_minimal()
Mostramos la evolución de género en Estados Unidos
# Evolución por género en Estados Unidos
ggplot(master_usa, aes(x = year, y = `suicides/100k pop`, color = sex)) +
geom_line() +
labs(title = "Evolución de suicidios en Estados Unidos por género",
x = "Año", y = "Suicidios/100k") +
theme_minimal()
Mostramos la evolución por edad de Colombia
# Evolución por grupo de edad en Colombia
ggplot(master_col, aes(x = year, y = `suicides/100k pop`, color = age)) +
geom_line() +
labs(title = "Evolución de suicidios en Colombia por grupo de edad",
x = "Año", y = "Suicidios/100k") +
theme_minimal()
Mostramos la evolución por edad de Estados Unidos
# Evolución por grupo de edad en Estados Unidos
ggplot(master_usa, aes(x = year, y = `suicides/100k pop`, color = age)) +
geom_line() +
labs(title = "Evolución de suicidios en Estados Unidos por grupo de edad",
x = "Año", y = "Suicidios/100k") +
theme_minimal()