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.
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
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.
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`)
| 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 |
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.
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`))
master_col <- Data %>%
filter(country == "Colombia")
master_eu <- Data %>%
filter(country == "United States")
## 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.
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.
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.