Aprendizaje Supervisado

Introducción

Este estudio tiene como objetivo clasificar países en desarrollados y no desarrollados aplicando técnicas de aprendizaje supervisado, en particular, utilizando el modelo K-Nearest Neighbors (KNN). El propósito principal es explorar cómo diversas variables socioeconómicas y de bienestar social pueden contribuir a la diferenciación de los países según su nivel de desarrollo. A través de este enfoque, buscamos no solo identificar las características que definen el desarrollo, sino también obtener un modelo que compruebe la precisión de las variables utilizadas en función de sus condiciones socioeconómicas.

Para ello, utilizamos datos del Banco Mundial del año 2021 y seleccionamos diez variables socioeconómicas y de bienestar social que reflejan distintos aspectos del desarrollo. Las variables seleccionadas son las siguientes:

  • Esperanza de vida al nacer: Indica el número de años que viviría un recién nacido si los patrones de mortalidad prevalecientes en el momento de su nacimiento se mantuvieran iguales a lo largo de su vida.

  • PIB per cápita: El PIB per cápita es el producto interno bruto dividido por la población a mitad de año. Se calcula sin realizar deducciones por depreciación de activos fabricados o por agotamiento y degradación de los recursos naturales.

  • Acceso a la electricidad (% de la población): Los datos sobre electrificación se obtienen de la industria, encuestas nacionales y fuentes internacionales.

  • Personas que utilizan Internet (% de la población): Personas que han utilizado Internet (desde cualquier lugar) en los últimos 3 meses.

  • Exportaciones de mercancías: Las exportaciones de mercancías muestran el valor fob de los bienes suministrados al resto del mundo valorados en dólares estadounidenses corrientes.

  • Trabajadores asalariados y remunerados, total (% del empleo total): Los trabajadores asalariados (empleados) son aquellos trabajadores que desempeñan el tipo de empleos definidos como “empleos remunerados”.

  • Comercio (% de PIB): Es la suma de las exportaciones e importaciones de bienes y servicios medida como porcentaje del producto interno bruto.

  • Relación empleo-población, 15+, total (%): La relación empleo-población es la proporción de la población de un país que está empleada. En general, se considera que la población en edad de trabajar son las personas de 15 años o más.

  • Acceso a combustibles y tecnologías limpias para cocinar (% de la población): El acceso a combustibles y tecnologías limpios para cocinar es la proporción de la población total que utiliza principalmente combustibles y tecnologías limpios para cocinar.

  • Gasto actual en salud (% del PIB): Nivel de gasto actual en salud expresado como porcentaje del PIB.

Con base en estas variables, aplicaremos el modelo KNN para realizar la clasificación, evaluando su capacidad para discriminar entre países desarrollados y no desarrollados. En las siguientes secciones, explicaremos en detalle la metodología utilizada y analizaremos los resultados obtenidos, proporcionando así una visión integral del comportamiento de las variables seleccionadas y su relevancia para la clasificación de los países.

Metodología

El estudio comenzó con la creación de una base de datos propia utilizando la información del Banco Mundial, seleccionando variables del año 2021 relacionadas con aspectos socioeconómicos y de bienestar social que reflejan distintos aspectos del desarrollo. Estas variables fueron elegidas con base en su relación con los tres indicadores principales del Índice de Desarrollo Humano (IDH): esperanza de vida, nivel educativo y PIB per cápita. Luego, se realizó una depuración de los datos, abordando valores faltantes y otros errores para asegurar la coherencia y calidad de los mismos.

Una vez completada la base de datos, se procedió a clasificar los países utilizando el Índice de Desarrollo Humano (IDH) del año 2021 como criterio. Los primeros 74 países en el ranking del IDH fueron considerados como desarrollados, mientras que los demás se clasificaron como no desarrollados. Esta clasificación sirvió como referencia para el posterior análisis.

Seguidamente, se llevó a cabo un análisis estadístico descriptivo para examinar la distribución y las tendencias de las variables seleccionadas. Este análisis inicial permitió obtener una visión del comportamiento de los datos, facilitando la identificación de posibles relaciones entre las variables y los países.

Finalmente, se aplicó el modelo K-Nearest Neighbors (KNN), utilizando la librería Caret, para realizar la clasificación de los países. El KNN se basa en un enfoque de “vecinos más cercanos”, donde un país se clasifica según las características de los países más similares a él en el espacio de las variables seleccionadas. Se utilizó una métrica de distancia (como la distancia euclidiana) y se definió un valor óptimo de k (número de vecinos) mediante validación cruzada. Este proceso permitió evaluar el rendimiento del modelo con distintos valores de k, seleccionando el que mejor clasificaba a los países.

Análisis Descriptivo

El siguiente análisis descriptivo nos permitirá ver cómo se comportan estas variables socioeconómicas seleccionadas entre los países desarrollados y no desarrollados. Durante este proceso, esperamos ver qué patrones y relaciones parecen bastante notables y, por lo tanto, pueden ser indicaciones de lo influyentes que son las variables en la formación de la clasificación de países. Por lo tanto, con este enfoque, esperamos comprender de forma preliminar cómo cada factor influye en la diferenciación de características entre los dos grupos.

Histograma de Expectativa de Vida.

La siguiente gráfica estudia la expectativa de vida entre los países desarrollados y no desarrollados

En este gráfico se observa que hay una variabilidad amplia en los datos, pero logra visualizar que en los países desarrollados hay una mayor expectativa de vida a comparación con los no desarrollados. En los países no desarrollados mayormente hay un expectativa de vida de 70 años, mientras que en los desarrollados es de 83 años, además el valor más bajo para esta categoria es de 70 años, mientras que en los no desarrollados hay paises que incluso su expectativa de vida es de 53 años.

Histograma de Gasto en la Salud.

Este gráfico estudia el gasto en salud entre los paises desarrollados y no desarrollados

En este gráfico se observa que en los países no desarrollados en su mayoría el gasto que hacen en la salud es del 5% de su PIB total mientras que para los países desarrollados es del 11% En este análisis se visualiza que no hay una diferencia mayor en el gasto en salud si el país es desarrollado o no, a excepción de un outlier, indicando que hay un único país desarrollado que gasta un 17% de su PIB total en salud

Diagrama de puntos del acceso a Electricidad e internet.

En el siguiente gráfico se analiza la relación entre el porcentaje de personas que tienen acceso a la electricidad y los que tienen acceso también a internet

En los paises no desarrollados se observa una mayor dispersión en los datos y que hay paises en esta categoria que llegan a tener los mismos valores que paises desarrollados En los paises desarrollados hay menos dispersión y los datos son mas estables, además en cuanto al acceso a la electricidad todos llegan a estar por arriba del 90%

Diagrama de puntos de la Electricidad y las energias limpias para cocinar.

A continuación se analiza la relación entre el porcentaje de personas que tienen acceso a la electricidad y los que tienen acceso a las energías limpias para cocinar

De igual forma que en el gráfico anterior, en los países no desarrollados hay una mayor dispersión en los datos, habiendo países cuya población total menos del 10% llegan a tener acceso a estos servicios pero que también hay paises en esta categoría que llegan a tener los mismos valores que países desarrollados. En los países desarrollados hay menos dispersión y los datos son mas estables y la mayor parte de los países desarrollados más del 80% de su población tiene acceso a energías limpias para cocinar

Diagrama de barras de las Exportaciones

En esta gráfica se compara el valor promedio de las exportaciones en países desarrollados y no desarrollados

Los países desarrollados presentan un valor promedio de exporaciones mucho más alto que los no desarrollados dejando claro que la primera categoría tiene un desarrollo económico mas grande

Diagrama de caja del PIB per capita.

En el siguiente gráfico se analiza la distribución del PIB per cápita en los países

En los países desarrollados hay una variabilidad amplia en el PIB per cápita y se presenta una distribución asimétrica positiva, indicando que hay un sesgo en la distribución y los datos están muy alejados de la media, como ejemplo se visualiza que en Luxemburgo hay un PIB per cápita de $133711. En el caso de los países no desarrollados los valores son mucho más pequeños a comparación de los países desarrollados y estos también llegan a presentar variabilidad y una distribución asimétrica positiva

Diagrama de cajas del Comercio

De la misma forma se analiza la distribución del comercio en los países

De la misma forma en que sucede con el anterior gráfico, en ambas categorías se presenta una variabilidad amplia en el comercio y una distribución asimétrica positiva, indicando que los datos están muy alejados de la media, para este caso el 50% de los países desarrollados tienen un porcentaje del comercio del 89.66% o menos y en los países no desarrollados es del 63.85% o menos.

Diagrama de puntos de Trabajo y Población

En esta grafica se muestra la relación de las personas en edad de trabajar y de este valor el porcentaje de personas que tienen trabajo

En los paises no desarrollados en los porcentajes se presenta mayormente una población en edad para trabajar alta, pero de esta población muy poca se encuentra trabajando, mientras que en los paises desarrollados aunque hay casos en que la población en edad para trabajar es baja, aun asi por lo menos mas del 80% de esta población se encuentra trabajando.

Después de analizar las variables, se utilizará el modelo K-Nearest Neighbors (KNN) para clasificar los países en desarrollados y no desarrollados. Este modelo se basará en las similitudes encontradas entre las variables de cada país y sus vecinos más cercanos. A continuación, se explica cómo se configurará y se aplicará el módelo KNN para obtener la clasificación final de los países.

Módelo KNN

1. Carga y Preparación de los Datos

Primero, se cargan los datos y se define la partición de los conjuntos de entrenamiento y prueba. Usaremos una proporción del 77% para el entrenamiento y el 23% para la prueba.

# Establecer el porcentaje para la partición de los datos
set.seed(22)
p <- 0.77
indxEntrena <- createDataPartition(y = global$clasificación, p = p, list = FALSE)global <- read_excel("global.xlsx")

# Crear los conjuntos de entrenamiento y prueba
global_entrena <- global[indxEntrena,]
global_test <- global[-indxEntrena,]

2. Entrenamiento del modelo KNN

Luego se usa la función train del paquete caret para entrenar el modelo KNN. Elegimos un tuneLength de 20 para optimizar la elección del número de vecinos (k) en el proceso de validación cruzada.

global_knnEntrenado <- train(clasificación ~ ., 
                         data = global, 
                         method = "knn",  
                         tuneLength = 20
)


global_knnEntrenado

#Gráfica de representación
plot(global_knnEntrenado)

El entrenamiento selecciona el mejor valor de k mediante validación cruzada en un rango de 20 posibles valores. Posteriormente, este modelo entrenado se usará para clasificar el conjunto de prueba.

3. Predicción y Matriz de Confusión

Se aplicará el modelo KNN entrenado al conjunto de prueba para predecir la clasificación y evaluamos el desempeño usando una matriz de confusión.

global_knnPrediccion <- predict(global_knnEntrenado, newdata = global_test)

# Calculamos la probabilidad de predicción
prob_knnPrediccion <- predict(global_knnEntrenado, newdata = global_test, type = "prob")
head(prob_knnPrediccion, 10)

# Calculamos la matriz de confusión
confusionMatrix(global_knnPrediccion, as.factor(global_test$clasificación))


# tabla

library(knitr)
kable(conf_matrix$table, caption = "Matriz de Confusión - Predicción KNN")

La matriz de confusión nos permite observar la cantidad de verdaderos y falsos positivos y negativos, lo cual es crucial para evaluar la precisión y el desempeño general del modelo.

4. Curva ROC y Evaluación del Modelo

Se usará el paquete ROCR para generar la curva ROC. Esta curva es útil para evaluar la calidad del modelo al graficar la tasa de verdaderos positivos (TPR) frente a la tasa de falsos positivos (FPR)

# Definimos las predicciones y el rendimiento
n <- as.factor(global_test$clasificación)
pred1 <- prediction(as.numeric(global_knnPrediccion), as.numeric(n))
perf1 <- performance(pred1, "tpr", "fpr")

# Graficamos la curva ROC
pplot(perf1,
     main = "Curva ROC",
     xlab="Tasa de falsos positivos", 
     ylab="Tasa de verdaderos positivos",
     colorize=TRUE,
     lwd= 3)
abline(a=0,b=1,col="blue",lty=2)
grid()

En la curva ROC, la línea diagonal representa una clasificación al azar. Cuanto más alejada esté la curva del modelo de esta línea, mejor es el desempeño del modelo.

Conclusiones

  • Mantener una proporción similar entre los individuos a estudiar es crucial para evitar discrepancias en los resultados, lo que permite que el modelo se asemeje de manera más precisa la realidad.

  • Identificar una relación sólida entre las variables es fundamental para que el modelo tenga sentido, si las variables son escogidas aleatoriamente, existe una alta posibilidad de que el modelo no sea más que una “máquina al azar”.

  • La división adecuada de los datos en conjuntos de entrenamiento y prueba es crucial para evaluar el rendimiento del modelo.

  • Determinar una buena cantidad de datos para entrenar el modelo es fundamental para garantizar su correcto funcionamiento y rendimiento. Un conjunto de datos adecuado permite al modelo aprender patrones y relaciones significativas, lo que se traduce en mejores predicciones y capacidad de generalización en datos no vistos.