Introducción

El análisis de datos faltantes es esencial en estudios que abordan fenómenos complejos como el aumento de las tasas de suicidio a nivel mundial. Este trabajo explora un conjunto de datos con 27.820 observaciones que incluyen información socioeconómica y demográfica de varios países. El objetivo es evaluar la calidad de los datos, identificar patrones de ausencia y proponer técnicas apropiadas para manejar los datos faltantes, con el fin de mejorar la validez de los resultados al buscar señales relacionadas con las tasas de suicidio.

Exploración de datos

summary(Data)
##    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

Analicemos las características de cada una de las variables de forma individual.

summary(Data$year)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1985    1995    2002    2001    2008    2016
summary(Data$suicides_no)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     3.0    25.0   242.6   131.0 22338.0
summary(Data$population)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##      278    97498   430150  1844794  1486143 43805214
summary(Data$`suicides/100k pop`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.92    5.99   12.82   16.62  224.97
summary(Data$`HDI for year`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.483   0.713   0.779   0.777   0.855   0.944   19456
summary(Data$`gdp_for_year ($)`)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 4.692e+07 8.985e+09 4.811e+10 4.456e+11 2.602e+11 1.812e+13
summary(Data$`gdp_per_capita ($)`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     251    3447    9372   16866   24874  126352
table(Data$sex)
## 
## female   male 
##  13910  13910
table(Data$age)
## 
## 15-24 years 25-34 years 35-54 years  5-14 years 55-74 years   75+ years 
##        4642        4642        4642        4610        4642        4642
table(Data$generation)
## 
##         Boomers G.I. Generation    Generation X    Generation Z      Millenials 
##            4990            2744            6408            1470            5844 
##          Silent 
##            6364

Identificación de valores faltantes (NA)

Los gráficos muestran que la variable “HDI for year” tiene un 70% de datos faltantes, mientras que las demás variables están completas. Este patrón indica que la ausencia de datos es exclusiva de esta variable, lo que sugiere un problema sistemático. Según su relevancia en el análisis, podría optarse por imputación, exclusión o un análisis segmentado. Ignorar estos faltantes podría afectar los resultados, especialmente si el Índice de Desarrollo Humano es clave en el estudio.

Decisión sobre los valores NA

Dado que el 70% de los datos de “HDI for year” están faltantes, las opciones principales son imputarla o eliminarla. Aunque la imputación por la mediana es robusta ante la falta de normalidad, hacerlo con tantos valores podría introducir sesgo y distorsionar los resultados. La imputación múltiple también presenta riesgos de sobreajuste. La eliminación es preferible, ya que otras variables, como “gdp_for_year” y “gdp_per_capita”, aportan información similar. Así, eliminar “HDI for year” asegura un análisis más confiable y sin complicaciones adicionales.

Data <- subset(Data, select = -`HDI for year`)
Primeras filas del conjunto de datos luego de la eliminación
country year sex age suicides_no population suicides/100k pop country-year gdp_for_year gdp_per_capita generation
Albania 1987 male 15-24 years 21 312900 6.71 Albania1987 2156624900 796 Generation X
Albania 1987 male 35-54 years 16 308000 5.19 Albania1987 2156624900 796 Silent
Albania 1987 female 15-24 years 14 289700 4.83 Albania1987 2156624900 796 Generation X
Albania 1987 male 75+ years 1 21800 4.59 Albania1987 2156624900 796 G.I. Generation
Albania 1987 male 25-34 years 9 274300 3.28 Albania1987 2156624900 796 Boomers
Albania 1987 female 75+ years 1 35600 2.81 Albania1987 2156624900 796 G.I. Generation

Detección de valores atípicos

Los boxplots muestran una cantidad notable de outliers en variables como “suicides_no”, “population”, “suicides/100k pop”, “gdp_for_year” y “gdp_per_capita”. Estos valores extremos indican alta variabilidad, posiblemente debido a situaciones excepcionales en algunos países. En contraste, la variable “year” tiene una distribución uniforme sin outliers relevantes.

Evolución de las tasas de suicidio a través de los años en Colombia y EEUU

library(dplyr)

Data %>%
  # Resumen general para detectar valores faltantes
  {cat("Valores faltantes por variable:\n\n"); print(colSums(is.na(Data))); .} %>%
  
  # Detección de registros duplicados
  {duplicados <- sum(duplicated(Data)); cat("\nNúmero de registros duplicados:", duplicados, "\n\n"); .} %>%
  
  # Filtrado de posibles errores en variables cuantitativas (rango no lógico)
  {cat("\nValores fuera de rango en suicides/100k pop:\n\n"); 
   print(Data %>% filter(`suicides/100k pop` < 0 | `suicides/100k pop` > 200)); .} %>%
  
  # Revisión de categorías en variables cualitativas
  {cat("\nCategorías en la variable 'country':\n\n"); print(unique(Data$country)); .} %>%
  {cat("\nCategorías en la variable 'sex':\n\n"); print(unique(Data$sex)); .} %>%
  {cat("\nCategorías en la variable 'age':\n\n"); print(unique(Data$age)); .} %>%
  
  # Verificación de consistencia temporal
  {cat("\nRango de años presentes en los datos:\n\n"); print(range(Data$year)); .}
## 
## Rango de años presentes en los datos:
## 
## [1] 1985 2016
## 
## Categorías en la variable 'age':
## 
## [1] "15-24 years" "35-54 years" "75+ years"   "25-34 years" "55-74 years"
## [6] "5-14 years" 
## 
## Categorías en la variable 'sex':
## 
## [1] "male"   "female"
## 
## Categorías en la variable 'country':
## 
##   [1] "Albania"                      "Antigua and Barbuda"         
##   [3] "Argentina"                    "Armenia"                     
##   [5] "Aruba"                        "Australia"                   
##   [7] "Austria"                      "Azerbaijan"                  
##   [9] "Bahamas"                      "Bahrain"                     
##  [11] "Barbados"                     "Belarus"                     
##  [13] "Belgium"                      "Belize"                      
##  [15] "Bosnia and Herzegovina"       "Brazil"                      
##  [17] "Bulgaria"                     "Cabo Verde"                  
##  [19] "Canada"                       "Chile"                       
##  [21] "Colombia"                     "Costa Rica"                  
##  [23] "Croatia"                      "Cuba"                        
##  [25] "Cyprus"                       "Czech Republic"              
##  [27] "Denmark"                      "Dominica"                    
##  [29] "Ecuador"                      "El Salvador"                 
##  [31] "Estonia"                      "Fiji"                        
##  [33] "Finland"                      "France"                      
##  [35] "Georgia"                      "Germany"                     
##  [37] "Greece"                       "Grenada"                     
##  [39] "Guatemala"                    "Guyana"                      
##  [41] "Hungary"                      "Iceland"                     
##  [43] "Ireland"                      "Israel"                      
##  [45] "Italy"                        "Jamaica"                     
##  [47] "Japan"                        "Kazakhstan"                  
##  [49] "Kiribati"                     "Kuwait"                      
##  [51] "Kyrgyzstan"                   "Latvia"                      
##  [53] "Lithuania"                    "Luxembourg"                  
##  [55] "Macau"                        "Maldives"                    
##  [57] "Malta"                        "Mauritius"                   
##  [59] "Mexico"                       "Mongolia"                    
##  [61] "Montenegro"                   "Netherlands"                 
##  [63] "New Zealand"                  "Nicaragua"                   
##  [65] "Norway"                       "Oman"                        
##  [67] "Panama"                       "Paraguay"                    
##  [69] "Philippines"                  "Poland"                      
##  [71] "Portugal"                     "Puerto Rico"                 
##  [73] "Qatar"                        "Republic of Korea"           
##  [75] "Romania"                      "Russian Federation"          
##  [77] "Saint Kitts and Nevis"        "Saint Lucia"                 
##  [79] "Saint Vincent and Grenadines" "San Marino"                  
##  [81] "Serbia"                       "Seychelles"                  
##  [83] "Singapore"                    "Slovakia"                    
##  [85] "Slovenia"                     "South Africa"                
##  [87] "Spain"                        "Sri Lanka"                   
##  [89] "Suriname"                     "Sweden"                      
##  [91] "Switzerland"                  "Thailand"                    
##  [93] "Trinidad and Tobago"          "Turkey"                      
##  [95] "Turkmenistan"                 "Ukraine"                     
##  [97] "United Arab Emirates"         "United Kingdom"              
##  [99] "United States"                "Uruguay"                     
## [101] "Uzbekistan"                  
## 
## Valores fuera de rango en suicides/100k pop:
## 
## # A tibble: 2 × 11
##   country     year sex   age       suicides_no population `suicides/100k pop`
##   <chr>      <dbl> <chr> <chr>           <dbl>      <dbl>               <dbl>
## 1 Aruba       1995 male  75+ years           2        889                225.
## 2 Seychelles  2006 male  75+ years           2        976                205.
## # ℹ 4 more variables: `country-year` <chr>, `gdp_for_year ($)` <dbl>,
## #   `gdp_per_capita ($)` <dbl>, generation <chr>
## 
## Número de registros duplicados: 0 
## 
## Valores faltantes por variable:
## 
##            country               year                sex                age 
##                  0                  0                  0                  0 
##        suicides_no         population  suicides/100k pop       country-year 
##                  0                  0                  0                  0 
##   gdp_for_year ($) gdp_per_capita ($)         generation 
##                  0                  0                  0
## # A tibble: 27,820 × 11
##    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
##  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   
## # ℹ 27,810 more rows
## # ℹ 4 more variables: `country-year` <chr>, `gdp_for_year ($)` <dbl>,
## #   `gdp_per_capita ($)` <dbl>, generation <chr>

En la mayoría de los países, las tasas de suicidio no superan los 30 por cada 100.000 habitantes, incluso en los niveles más altos, según la OMS. Establecer un umbral de 200 suicidios por cada 100.000 habitantes ayuda a identificar posibles outliers o errores de registro, como duplicaciones. En este análisis, se encontraron dos casos con valores fuera de este rango en Aruba y Seychelles para hombres mayores de 75 años, lo que sugiere que estos datos podrían ser errores o outliers significativos.

Las opciones incluyen validar externamente, imputar con la mediana o excluir los valores si distorsionan el análisis. Dado que la validación no es viable, se optará por la imputación, reemplazando los valores fuera de rango con la mediana para mantener la precisión en el análisis.

Data <- Data %>%
  mutate(`suicides/100k pop` = ifelse(`suicides/100k pop` > 200, median(Data$`suicides/100k pop`, na.rm = TRUE), `suicides/100k pop`))

Filtro de Colombia y Estados Unidos

master_col <- Data %>%
  filter(country == "Colombia")

master_eu <- Data %>%
  filter(country == "United States")

Análisis de la Evolución de Suicidios, PIB per Cápita y IDH en Ambos Países

## 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.

La gráfica muestra que, en Colombia, la tasa de suicidios varía considerablemente sin una tendencia clara, mientras que el PIB per cápita crece de manera sostenida desde 1990. A pesar del incremento económico, no se observa una relación directa con la tasa de suicidios, sugiriendo que otros factores están en juego.

La gráfica muestra que, en Estados Unidos, la tasa de suicidios se mantiene estable con ligeras fluctuaciones, mientras que el PIB per cápita ha crecido de manera sostenida desde 1990. No se observa una relación directa entre el crecimiento económico y las tasas de suicidio, lo que sugiere que otros factores están influyendo en la estabilidad de estas tasas.

Análisis de la Evolución por Género

library(ggplot2)

master_col %>%
  ggplot(aes(x = year, color = sex)) +
  geom_line(aes(y = `suicides/100k pop`), size = 1) +
  labs(title = "Evolución por género en Colombia", y = "Tasa de suicidios por 100k hab.", color = "Género") +
  scale_color_manual(values = c("male" = "#457b9d", "female" = "#e63946")) +
  theme_minimal() +
  theme(plot.title = element_text(size = 14, face = "bold"), legend.position = "bottom")

En Colombia, la tasa de suicidios en hombres es consistentemente más alta que en mujeres durante todo el período. Los hombres presentan picos que superan los 20 suicidios por cada 100.000 habitantes, mientras que las mujeres se mantienen por debajo de los 5. La tendencia masculina muestra más volatilidad, mientras que en mujeres es estable y baja.

En Estados Unidos, la tasa de suicidios en hombres es consistentemente mayor que en mujeres. Antes del año 2000, los hombres alcanzan picos superiores a 50 suicidios por cada 100.000 habitantes, estabilizándose luego en torno a 40. En contraste, la tasa en mujeres se mantiene baja y estable, sin superar los 10 suicidios por cada 100.000 habitantes durante el período analizado.

Análisis de la Evolución por Grupo de Edad

En Colombia, el grupo de 75 años o más muestra las tasas de suicidio más altas, con picos que superan los 20 suicidios por cada 100.000 habitantes. Los grupos más jóvenes (5-24 años) mantienen tasas bajas y estables, mientras que los grupos intermedios (25-74 años) presentan niveles moderados, con un ligero aumento en los últimos años. Esto evidencia que el suicidio es más pronunciado en las personas mayores, especialmente en los mayores de 75 años.

En Estados Unidos, el grupo de 75 años o más presenta las tasas de suicidio más altas, con picos que superan los 60 suicidios por cada 100.000 habitantes antes de 1990, seguidos de una disminución y estabilización en niveles más bajos. Los grupos intermedios (25-74 años) muestran tasas moderadas, generalmente entre 10 y 20 suicidios, mientras que los jóvenes (5-24 años) mantienen tasas bajas y estables por debajo de 10. Aunque la reducción en los mayores de 75 años es notable, siguen siendo el grupo más vulnerable, lo que sugiere la necesidad de enfoques preventivos enfocados en esta población.