Índice.

Introducción.

Como es sabido, una de las técnicas que contiene Machine Learning, es la minería de datos que está relacionado al análisis supervisado siendo uno de los más utilizados en los programas para la investigación estadística. Cabe señalar que este método de análisis de datos, actúa como una guía para enseñar las conclusiones obtenidas de información no explícita; entre ello hay dos tipos de datos los cuales se clasifican en: datos de entrenamiento y datos de prueba. Cuando se crea un algoritmo de clasificación se genera un data frame que contiene datos de diferentes tipos, en base de un conocimiento previo, los datos de entrenamiento son los valores que se le dan al algoritmo para que aprenda patrones y reglas a partir de estos. Por otra parte, los datos de prueba contienen un porcentaje de valores almacenados en el data frame, los cuales se utilizan para evaluar la exactitud que tiene el modelo producido.

A su vez, el algoritmo de aprendizaje automático K-NN (k-Nearest Neighbors) es un modelo predictivo, el cual es empleado para problemas de clasificación y regresión. En este caso, no hace suposiciones explícitas sobre la forma funcional de los datos sino que busca en un k determinado de observaciones que sean cercanas en términos de distancia para clasificar una nueva instancia en el conjunto de datos de entrenamiento. Con base en lo anterior, se aplicó este modelo de clasificación para comprender de una mejor manera lo que se puede deducir si los parámetros determinados tienen relación con la variable a predecir, y determinar si el modelo está funcionando correctamente, es decir, que clasifique los datos con el máximo nivel de exactitud.

1. Metodología.

Los K vecinos más cercanos o K-NN (K Nearest Neighbours) es un algoritmo de aprendizaje supervisado, que es utilizado en modelos de clasificación, el cual simplemente busca en las observaciones más cercanas a la que se está tratando de predecir y clasificar el punto de interés basado en la mayoría de datos que le rodean.

Por otra parte, es supervisado, lo que quiere decir, que se tiene etiquetado el conjunto de datos de entrenamiento, con la clase o resultado esperado dada “una fila” de datos. Además, está basado en instancia, lo que quiere decir que el algoritmo no aprende explícitamente un modelo. En cambio, memoriza las instancias de entrenamiento que son usadas como “base de conocimiento” para la fase de prueba o predicción. Concretamente, esto significa que solo cuando se realiza una consulta a nuestra base de datos, es decir, cuando le pedimos que predique una etiqueta con una entrada, el algoritmo utilizará las instancias de formación para dar una respuesta.

En este caso, se busca ajustar un modelo knn para clasificar los países según entre desarrollados o en vía de desarrollo, para esto se utilizó la base de datos “WHO”. Una vez cargada la base, se pasó a filtrar año el cual fue el “2016”, luego, se procedió a elegir las variables de entrada las cuales fueron, “PIB”, “Esperanza de vida”, “IDH”, “Hepatitis”, “Escolaridad”, “Mortalidad”, “Gasto.Salud” y para crear la nueva base con las 7 variables anteriores, la variable “País” y como variable predictora el “Estado”, la cual va a tener dos clases anteriormente mencionadas. Por otra lado, se eliminaron los datos faltantes.

Utilizando las funciones de la librería “Caret” se crea el modelo, del total de nuestros datos partiremos una parte de la data para entrenamiento y la otra para hacer los test. Para ello, caret nos ofrece la función “createDta Partition(y=outcome, p=proporcion, list=FALSE)”, la cual nos permitirá partir una proporción para entrenamiento y dejar el resto para prueba. Vamos a destinar el 70% de los datos para entrenamiento y el atributo list lo dejamos en falso porque no queremos un objeto lista. El resultado de esta función, es una serie de índices aleatorios, que usaremos para construir nuestra data de entrenamiento y test.

Para crear nuestro modelo de predicción y entrenarlo usamos la función “train()”, luego se hizo el ajuste de parámetros, se hizo el testeo del modelo, y por último, se calculó la exactitud del modelo (accuracy) utilizando la función “confuisionMatrix (data_prediccion, output_real)”, la cual reporta la matriz de confusión y la que no solo nos reporta la matriz de confusión y una serie de mediciones de la precisión de nuestro modelo.

2. Variables.

El siguiente aspecto, trata sobre la descripción de las variables elegidas, las cuales proporcionaron información sobre el conjunto de datos de la base, además se consideró sus respectivas estadísticas descriptivas para facilitar el uso de estas y así poder emplear una interpretación más detallada respecto al modelo predictivo generado.

2.1. PIB

Creíamos que el Producto Interno Bruto (PIB) podría explicar por qué un país estaba desarrollado o en vía de desarrollo, ya que el PIB per cápita se relacionaba con diferentes aspectos de los avances económicos. Cuando este era más alto, generalmente se vinculaba con un nivel de vida mejorado, lo que implicaba un mayor acceso a bienes y servicios, infraestructura más desarrollada y mejores oportunidades para los ciudadanos.

Sin embargo, éramos conscientes de que el PIB per cápita no era una medida completa del desarrollo de un país, pues había otros factores que influyen en el nivel de desarrollo, como la forma en que se distribuyen los recursos económicos, el sistema de atención médica, la funcionalidad de la política, la sostenibilidad de los aspectos relacionados con el medio ambiente y otros indicadores sociales.

Además, era necesario destacar y subrayar que un país con un PIB per cápita bajo, no siempre significaba que estuviera estancado o no estuviera avanzando hacia el desarrollo. Había casos en los que naciones, a pesar de tener un PIB per cápita modesto, habían logrado implementar políticas sociales eficientes y alcanzado grandes logros.

Resumen de la variable PIB:
## # A tibble: 2 × 7
##   Estado     Cantidad  Media Mediana Desviacion  Maximo Minimo
##   <chr>         <int>  <dbl>   <dbl>      <dbl>   <dbl>  <dbl>
## 1 Developed        29 33088.  26505.     21283. 104278.  7549.
## 2 Developing      111  5087.   3506.      5491.  27653.   282.
En esta tabla, se puede observar la media del PIB en los países desarrollados y en los países en vía de desarrollo tanto su mediana, desviación, y el PIB mínimo y máximo en ambos casos.

Como se puede observar en el anterior gráfico, la media del PIB de los países desarrollados es mayor que la de los países en vía de desarrollo.

2.2. Esperanza de vida.

Se consideró, que la expectativa de vida en un país podría explicar si este estaba en vía de desarrollo o ya estaba desarrollado, debido a que una mayor expectativa de vida solía estar asociada con un nivel de desarrollo económico y social más alto. Siendo este indicador más alto, se suponía que se debía a factores como un sistema de salud eficiente.

Como mencionamos anteriormente, cuando la expectativa de vida era más alta, reflejaba condiciones de vida mejoradas, acceso a servicios de calidad, avances médicos y tecnológicos, así como una mayor conciencia sobre prácticas de salud y bienestar. Estos factores, estaban estrechamente relacionados con el desarrollo socioeconómico, el acceso a servicios básicos, el nivel educativo y la calidad de vida en general.

En consecuencia, se llegó a concluir de que si un país lograba aumentar su expectativa de vida, se debía respaldar en medidas relacionadas con la salud, lo cual podría evidenciar su nivel de desarrollo.

Resumen de la variable: Esto viene siendo el resumen de todos los valores de la esperanza de vida de lo 140 países esta variable en su conjunto.
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   51.59   66.14   73.15   71.56   76.92   83.33
En la siguiente tabla se puede observar la esperanza de vida promedio en cada clasificación de países.
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29  80.2    81.4       2.69   83.3   74.6
## 2 Developing      111  69.3    70.8       6.79   79.7   51.6
A continuación, se presenta la gráfica de esperanza de vida para cada clasificación de los países.
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
En esta gráfica podemos observar lo dicho anteriormente, tambien se puede inferir que el 75% de los años de esperanza de vida para los países en vía de desarrollo estan por debajo de los años de esperanza de vida en los países desarrollados y tiene mas variabilidad los datos de los países en via de desarrollo. Por lo que, la esperanza de vida es más alta en los países desarrollados, esto se debe a que en los países desarollados cuentan con mejores condiciones, con niveles más altos de educación, mejor acceso al agua y saneamiento, viviendas más adecuadas; se presentan menos muertes por enfermedades infecciosas y más por cáncer o enfermedades cardiovasculares, ya que los avances medicos son mayores.

2.3. Índice de desarrollo humano.

Se tomó en cuenta, si el índice de desarrollo humano (IDH) podría explicar por qué un país estaba desarrollado o en vía de desarrollo, ya que este indicador está compuesto por diferentes medidores que muestran el nivel de vida de la población, como la esperanza de vida al nacer, la educación y el ingreso per cápita. Por lo que concluimos, que un IDH más alto generalmente se asocia con un mayor desarrollo humano, es decir, indica un mejor acceso a servicios de salud, educación de calidad y nivel de ingresos.

Otra de las razones por las que el IDH podría llegar a explicar lo anteriormente dicho, es por su enfoque integral en la medición del progreso humano. Al investigar, se pudo comprobar que el IDH no se limita únicamente a indicadores económicos, como el PIB per cápita, sino que también incluye aspectos sociales y educativos que son fundamentales para el desarrollo sostenible.
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.3510  0.5847  0.7280  0.6961  0.8043  0.9380
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29 0.883   0.885     0.0402  0.938  0.787
## 2 Developing      111 0.647   0.672     0.129   0.854  0.351
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode

Este gráfico de la relación entre el índice de desarrollo humano y la espeanza de vida, en este gráfico se puede aprecir que entre mayor es la esperanza de vida el IDH aumenta.

2.4. Hepatitis B.

Se supuso, que la cobertura de inmunización contra la hepatitis B (HepB) entre los niños de 1 año podría proporcionar una explicación sobre si un país estaba en vía de desarrollo o ya estaba desarrollado, especialmente en términos de salud pública. Esto se basaba en la premisa de que, dependiendo de la cobertura que alcanzará la inmunización contra la hepatitis B, podría ser un indicador importante para evaluar la eficacia de los programas de vacunación y la atención médica en un país. Además, se estableció una conexión entre la cobertura de inmunización y el nivel de desarrollo del país, pues se asume que una alta cobertura de inmunización indicaba la presencia de un sistema de salud sólido y acceso a servicios de atención médica de calidad. En este contexto, se llegó a la conclusión, que la cobertura de inmunización contra la hepatitis B era un indicador bastante importante para evaluar el desarrollo de un país en términos de salud pública.
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   26.00   84.00   93.00   87.72   97.00   99.00
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29  93.4      95       5.86     98     67
## 2 Developing      111  86.2      91      14.5      99     26

Se puede observar en el gráfico, que la media de los países desarrollados es mayor que la media de los países emergentes, así mismo se observa que los países emergentes tiene una mayor variabilidad y un mayor rango de dispersión ya que varía desde 26 hasta 99 a diferencia de los desarrollados que van desde 67 hasta 98

2.5. Escolaridad.

Se intuyó, que el nivel de escolaridad de la población proporcionaba una explicación sobre si un país estaba en vía de desarrollo o ya estaba desarrollado en términos educativos, pues como bien es sabido, el nivel de escolaridad muestra el acceso y la calidad de la educación en un país determinado. De este hecho, podría repercutir en el futuro y afectar de manera positiva a la realidad económica de un país.
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.50    5.40    8.55    8.20   10.82   14.10
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29 11.8     12.1       1.32   14.1    8  
## 2 Developing      111  7.26     7.2       2.78   12.8    1.5

En en gráfica anterior se puede observar que la media de los países desarrollados es mayor que la media los países emergentes y así mismos observa que los países emergentes tiene más variabilidad ya que varían desde 1.5 hasta 12.8 a comparación de los países desarrollo que varían desde 8 hasta 14.1

2.6. Mortalidad.

Se dedujo que la tasa de mortalidad proporcionaba una explicación sobre si un país estaba en vía de desarrollo o ya estaba desarrollado en términos de salud y bienestar, pues de alguna forma esta evidencia mejores condiciones de salud, acceso a servicios de atención médica de calidad y una mayor esperanza de vida en la población.

Además, se llegó a la conclusión de que la tasa de mortalidad aumenta o disminuye en función del nivel de seguridad y estabilidad social que prevalece en cada país. Se analizó, que una mayor seguridad y estabilidad social están estrechamente relacionadas con una disminución en esta tasa, mientras que una falta de seguridad y una menor estabilidad social pueden dar lugar a un aumento en los índices de mortalidad.
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   51.36   97.46  148.60  163.62  216.45  411.90
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29  81.1    68.7       30.6   154.   51.4
## 2 Developing      111 185.    176.        78.5   412.   52.5

En el anterior gráfico, se puede observar que los paises desarrollados tienen una media menor que los países emergentes, por otro lado se observa que los países emergentes tienen un a mayor variedad ya que tiene datos que van desde 52, hasta 411 a diferencia que los países desarrollados que van desde 51 hasta 154.

2.7. Gastos de salud.

Se evaluó, que los gastos del gobierno en salud proporcionan una explicación sobre el nivel de desarrollo de un país, gracias a que un mayor nivel de gasto gubernamental en salud está conectado con un mayor acceso a servicios de atención médica de calidad, una mejor infraestructura sanitaria y una mayor inversión en la prevención y el tratamiento de enfermedades. Se infirió, que a mayor desarrollo tiene un país, más posibilidades se tiene de poder invertir en este tipo de medidas.
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##    1.370    7.110    9.725  153.687   14.678 2016.000
## # A tibble: 2 × 7
##   Estado     Cantidad Media Mediana Desviacion Maximo Minimo
##   <chr>         <int> <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Developed        29  152.   14.5        516.   2016   7.51
## 2 Developing      111  154.    8.85       521.   2016   1.37

3. Resultados.

El siguiente punto, trata sobre las interpretaciones de los datos obtenidos al ejecutar las diferentes pruebas del modelo, para evaluar la importancia de cada una de estas mediante las diferentes herramientas para examinar los valores resultantes.
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   Developed Developing
##   Developed          5          0
##   Developing         3         33
##                                           
##                Accuracy : 0.9268          
##                  95% CI : (0.8008, 0.9846)
##     No Information Rate : 0.8049          
##     P-Value [Acc > NIR] : 0.02879         
##                                           
##                   Kappa : 0.7285          
##                                           
##  Mcnemar's Test P-Value : 0.24821         
##                                           
##             Sensitivity : 0.6250          
##             Specificity : 1.0000          
##          Pos Pred Value : 1.0000          
##          Neg Pred Value : 0.9167          
##              Prevalence : 0.1951          
##          Detection Rate : 0.1220          
##    Detection Prevalence : 0.1220          
##       Balanced Accuracy : 0.8125          
##                                           
##        'Positive' Class : Developed       
## 

En la matriz de confusión, se realiza un análisis de los datos que arrojó el modelo comparando con lo que realmente son, obteniendo los verdaderos positivos y los verdaderos negativos, estos se observan en la diagonal. Donde se tiene 5 y 33, estos quieren decir que hay 5 países que son verdaderamente desarrollados y hay 33 que son verdaderamente emergentes. Realizando la respectiva comparación con lo que presentó el modelo y los datos reales se puede observar que:

  • El modelo creado predijo 36 como países emergentes, sin embargo sólo 33 son verdaderamente emergentes y los otros 3 son desarrollados.

  • El modelo predijo 5 como desarrollados y de verdad esos 5 son desarrollados. El total de países realmente desarrollados son 8 y de esos 8 el modelo predijo incorrectamente 3 como emergentes.

3.1. Sensibilidad.

En concreto, esta técnica tiene como objetivo evaluar la contribución que tiene la variable de entrada en la predicción del valor resultante para comprender el impacto en el modelo. Por otro lado, la parte de sensibilidad en el análisis supervisado, se basa en identificar los casos positivos, especialmente la tasa de detección de verdaderos positivos, en el cual son reconocidos de manera correcta por el modelo. En este caso, se expresa con un valor entre 0 y 1, en el que 1 expresa mayor capacidad para detectar los casos que son positivos, es decir, hay una alta sensibilidad. Para obtener esta clasificación, se basaría en términos de la fórmula:

\(Sensibilidad = \frac{Verdaderos_Positivos}{Verdaderos_Positivos + Falsos_Negativos}\)

Análisis: La sensibilidad es la tasa de positivos verdaderos, la cual mide la proporción de positivos reales que se identifican correctamente, en el modelo hace referencia a la probabilidad de que al clasificar un país como desarrollado será realmente desarrollado. La sensibilidad del modelo es de 0.62, lo que quiere decir que hay un 62% de probabilidad que el modelo clasifique correctamente a los países desarrollados.

3.2. Especificidad.

Denominada como tasa negativa verdadera, se emplea para evaluar la clasificación del modelo, en el cual se identifican los casos que sean negativos, especialmente los verdaderos negativos. Con el propósito de medir esta proporción, se expresa entre valores de 0 y 1, en el que 1 define una mayor capacidad para identificar los casos negativos. Respecto a esto, para poderlo emplear se utilizaria la expresión:

\(Especificidad = \frac{Verdaderos_Negativos}{(Verdaderos_Negativos+Falsos_Positivos)}\)

Análisis: La especificidad mide la proporción de negativos reales que se identifican correctamente como emergentes. Por lo cual, podemos deducir que el modelo arrojó una especificidad de 1, lo que quiere decir que todos los países que son realmente emergente el modelo los clasificados como emergentes, en términos porcentuales, el 100% de de los países que realmente eran emergente el modelo los clasificó correctamente como emergentes.

3.3. Exactitud.

Conocido como accuracy, es una proporción métrica utilizada para evaluar el rendimiento del modelo en la clasificación. Para determinar si el algoritmo predijo correctamente, se expresa con un valor entre 0 y 1, en el que 1 indica una clasificación precisa donde todas las predicciones son correctas. En cambio, cuando es 0 establece una distribución incorrecta. Para desarrollar este tipo de clasificación, se puede observar en la siguiente fórmula:

\(Exactitud = \frac{(Verdaderos_Positivos + Verdadero_Negativos)}{TotaldePredicciones}\)

Resultados obtenidos para determinar la clasificación del modelo:
## k-Nearest Neighbors 
## 
## 99 samples
##  7 predictor
##  2 classes: 'Developed', 'Developing' 
## 
## Pre-processing: centered (7), scaled (7) 
## Resampling: Cross-Validated (5 fold) 
## Summary of sample sizes: 79, 79, 80, 78, 80 
## Resampling results across tuning parameters:
## 
##   k   Accuracy   Kappa    
##    5  0.9704762  0.8948890
##    7  0.9309524  0.7105590
##    9  0.9109023  0.6372970
##   11  0.9314286  0.7358699
##   13  0.9214286  0.6663046
##   15  0.9209023  0.6717798
##   17  0.9214286  0.6722160
##   19  0.9314286  0.7007874
##   21  0.9214286  0.6663046
##   23  0.9214286  0.6663046
##   25  0.9214286  0.6663046
##   27  0.9114286  0.6238643
##   29  0.9114286  0.6238643
##   31  0.8923810  0.5230769
##   33  0.7881704  0.0000000
##   35  0.7881704  0.0000000
##   37  0.7881704  0.0000000
##   39  0.7881704  0.0000000
##   41  0.7881704  0.0000000
##   43  0.7881704  0.0000000
## 
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was k = 5.

Para la creación del modelo de predicción y entrenamiento se utilizara el método de KNN el cual nos ayudará realizando un análisis de cuanto es el accuracy con diferentes números de vecinos, esto nos ayudará a encontrar el k óptimo para el modelo. Se evaluaron una cantidad de 20 vecinos diferentes para saber con cual se obtiene un mayor accuracy.

Se utilizó la precisión para seleccionar el k óptimo que tuviera el accuracy más alto. El valor de k será de 5, asegurando que nuestro modelo logre clasificar los países lo más asertivamente posible.

Análisis: Se observa como una generalidad que a mayor número de vecinos se obtiene un menor accuracy. Como vemos para este caso, a partir de cierto número de vecinos el accuracy se mantiene constante por debajo de 0.8. Por otra parte, con un número de vecinos entre 10 y 30 el accuracy se mantiene en un rango de 0.9 y de 0.95. Sin embargo, con el estudio del modelo de KNN se concluye que el número de vecinos más adecuado es de 5.

3.4. Probabilidad de predicción.

Al aplicar técnicas estadísticas y analíticas, se emplea un indicador de confianza o de incertidumbre, el cual aplica relaciones entre factores de las variables de entrada y la variable de respuesta estudiada para poder tomar una decisión o concluir en base a los datos obtenidos para realizar el respectivo pronóstico.
##    Developed Developing
## 1        0.0        1.0
## 2        0.0        1.0
## 3        0.0        1.0
## 4        0.2        0.8
## 5        0.0        1.0
## 6        0.4        0.6
## 7        0.2        0.8
## 8        0.0        1.0
## 9        0.2        0.8
## 10       0.0        1.0

Análisis: Se observa como una generalidad que a mayor número de vecinos se obtiene un menor accuracy. Al aplicar técnicas estadísticas y analíticas, se emplea un indicador de confianza o de incertidumbre, el cual aplica relaciones entre factores de las variables de entrada y la variable de respuesta estudiada para poder tomar una decisión o concluir en base a los datos obtenidos para realizar el respectivo pronóstico.

SP_knnPrediccion <- predict(SP_knnEntrenado, newdata = SP_test1 )
SP_knnPrediccion %>% 
head(50)

En esta parte, el modelo clasifica los países que están en el grupo de prueba, con un total de 41 países en este grupo, a cada uno lo clasificó según el modelo knn en desarrollado(developed) o en emergente (developing)

prob_knnPrediccion <- predict(SP_knnEntrenado, newdata = SP_test1, type = "prob")
prob_knnPrediccion %>%
head(10)

Para poder clasificar cada uno de los países, el modelo otorga una probabilidad a cada país, siendo la probabilidad de que sea desarrollado o la probabilidad de que sea emergente, de esta manera si la probabilidad de que sea desarrollado es más alta, el modelo lo clasificara como desarrollado y viceversa, como ejemplo se pueden observar las primeras 10 muestras de los primeras 10 países en donde todos quedan clasificados como emergentes.

4. Conclusiones.

El modelo es bastante bueno para predecir si un país es emergente o desarrollado ya que tiene una exactitud de 0.93, Sensibilidad de 0.62 y Especificidad de 1.

Por otra parte se concluye que el modelo predijo un total de 36 países emergentes de los cuales 33 si son emergentes y 3 son desarrollados y el modelo predijo un total de 5 países desarrollados cuando realmente son 8 países desarrollados.

Referencias.

Capítulo 10 Aprendizaje Supervisado. (2020, junio 26). Bookdown.org. https://bookdown.org/dparedesi/data-science-con-r/aprendizaje-supervisado.html

Na. (2018, julio 10). Clasificar con K-Nearest-Neighbor ejemplo en Python. Aprende Machine Learning. https://www.aprendemachinelearning.com/clasificar-con-k-nearest-neighbor-ejemplo-en-python/

De, B. (2022, marzo 28). Aprendizaje supervisado: Qué es, tipos y ejemplo. Ceupe. https://www.ceupe.com/blog/aprendizaje-supervisado.html

Colores en R. (1d. C., enero 1). R CHARTS | Una colección de gráficos hechos con el lenguaje de programación R; R CODER. https://r-charts.com/es/colores/

CodeCogs, Zyba Ltd. (s/f). Equation Editor for online mathematics. Codecogs.com. Recuperado el 24 de mayo de 2023, de https://editor.codecogs.com/