Tarea #3

Considere la base de datos indicada en el enlace y con respecto a tasas de suicidios mundiales entre 1985 y 2016.

Punto 1

Cargamos las librerias que necesitamos para la realización del código.

Punto 2

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.

Punto 3

Visualizamos los primeros 5 datos

Punto 4

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>

Punto 5

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

Punto 6

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…

Tarea #4

Punto 7

Filtramos la base de datos para Colombia en el año 2000

Punto 8

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

Punto 9

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")

Punto 10

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()

Punto 11

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()

Punto 12

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()

Punto 13

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()

Punto 14

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()

Punto 15

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()