INTRODUCCIÓN

Utilizando una herramienta de programación gráfica y estadística basada en R, para realizar el análisis de datos y la construcción de modelos realizamos este análisis utilizamos la base de datos llamada who, que contiene una lista de países organizada por año con 148 variables, de las cuales elegimos siete específicas y utilizando un modelo KNN, estas fueron esperanza de vida, consumo de alcohol, producto interno bruto (PIB), población, nivel educativo, tasa de homicidios y tasa de natalidad, todas correspondientes al año 2010. Con el estatus del país como variable objetivo, se puede clasificar en diferentes categorías que son desarrollado y subdesarrollado.

Nuestro objetivo, utilizando el modelo Knn es determinar la clasificación del estado de un país en función de sus características socioeconómicas en el año asignado, este modelo clasifica los puntos de datos desconocidos al encontrar los k puntos de datos más cercanos en función de las características seleccionadas. Luego, la clasificación más común entre estos k vecinos se asigna al punto de datos desconocido y en este caso encontrar los países que son más similares en características socioeconómicas y determinar su estatus.

Obteniendo como resultado específico que este modelo knn no es óptimo para predecir en específico que país es desarrollado.

PRESENTACIÓN DE LA METODOLOGIA

Para este análisis se utilizan métodos de aprendizaje supervisado, técnica de derivación de una función a partir de datos de entrenamiento esta se realizó a partir de datos conocidos o inputs, su objetivo es crear una función capaz de predecir un resultado o output.

Un modelo Knn es un clasificador de aprendizaje supervisado no paramétrico, que utiliza la proximidad para hacer clasificaciones o predicciones sobre la agrupación de un punto de datos individuales. De esta forma, para realizar el modelo, el 80% de los datos se utilizaron para entrenamiento y el 20% para pruebas, de modo que se puede determinar el desarrollo del país a partir del comportamiento de los k vecinos más cercanos.

Indicamos que evaluará 20 valores diferentes de “k” para poder conocer la precisión de cada uno y obtener el mejor k (el de mayor precisión). Se realiza un testeo de predicción sobre el comportamiento de los países y su probabilidad de que estimen su nivel desarrollado o en desarrollo. Utilizando una matriz de confusión fue posible conocer el rendimiento del algoritmo , en términos de VP valores verdaderos positivos , FP falsos negativos y VN verdaderos negativos, y con esto determinar la exactitud , sensitividad y especificidad del modelo:

exactitud = (VP+VN)/(VP+VN+FP+FN)

sensitividad= VP/(VP+FN)

especificidad= VN/(VN+FP)

lista de principales actividades en el código :

  • Se cargan las librerías necesarias para realizar el análisis de datos.

  • Se lee el archivo “WHO (1).csv” y se almacena “WHO_1_”.

  • Se filtran los datos para obtener solo los registros correspondientes al año 2010 y se guardan en el objeto “Base”.

  • Se seleccionan las variables de interés y se renombran utilizando el objeto “Base1” y el vector “nombres”.

  • Se elimina cualquier fila que contenga valores faltantes utilizando la función “na.omit”, y los datos depurados se almacenan en el objeto “Base2”.

  • Se establece una semilla aleatoria utilizando “set.seed(11)”. Se separan los países en dos bases de datos diferentes: “Base3” para los países en desarrollo y “Base4” para los países desarrollados. Se calcularon estadísticas descriptivas como el máximo y mínimo de cada variable para los países en desarrollo y desarrollados, y se guardan.

  • Se calcula el promedio de cada variable para los países en desarrollo y desarrollados, y se almacenan en diferentes objetos.

  • Se realiza un análisis de clasificación utilizando el método de k-vecinos más cercanos (k-nearest neighbors, KNN) en los datos de entrenamiento.

  • Se realiza una visualización de la precisión del modelo KNN en los datos de entrenamiento.

  • Se hacen predicciones en los datos de prueba utilizando el modelo KNN entrenado y se calcula una matriz de confusión utilizando la función “confusionMatrix”.

Este fue el codigo que usamos:

# Cargamos la base de datos
WHO_1_ <- read_csv("C:/Users/LENOVO/Downloads/WHO (1).csv")
## Rows: 1647 Columns: 24
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (3): Country, Cod, Status
## dbl (21): Year, Life.expectancy, Adult.mortality, Infant.deaths, Alcohol, Pe...
## 
## ℹ 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.
View(WHO_1_)

# Filtramos el año
Base<- filter(WHO_1_, Year == "2010")

#Seleccionamos nuestras variables de interes y cambiamos sus nombres
Base1<-Base[,c(1,4,5,8,17,18,22,23,24)]
nombres<-c("pais","estatus","exp.vida","alcohol","PIB",
           "poblacion","escolaridad","homicidios","fertilidad")
colnames(Base1)<-nombres

#Depuramos nuestra base de datos para eliminar datos faltantes
Base2 <- na.omit(Base1)

#Para que nuestros datos sean los mismos en otros computadores 
#plantamos nuestra "semilla"
set.seed(11)

#Separamos en 2 bases diferentes los paises desarrollados
#y en desarrollo

#En desarrollo
Base3 <-select(Base2,pais,estatus,exp.vida,alcohol,PIB, 
               poblacion,escolaridad,homicidios,fertilidad) %>%
  filter(estatus=="Developing")

#Desarrollados
Base4 <-select(Base2,pais,estatus,exp.vida,alcohol,PIB, 
               poblacion,escolaridad,homicidios,fertilidad) %>%
  filter(estatus=="Developed")

#Realizamos las estadisticas descriptvas de los paises

#Primero sacamos los maximos y minimos de nuestras variables segun
#el estatus del pais (desarrollados y en desarrollado)

#MAXIMOS
#En desarrollo
Maximo_exp.vida <- max(Base3$exp.vida)
Pais_exp.vida <- select(Base3,pais, exp.vida) %>%
  filter(exp.vida==Maximo_exp.vida)
Pais_exp.vida
## # A tibble: 1 × 2
##   pais  exp.vida
##   <chr>    <dbl>
## 1 Qatar     79.1
Maximo_alcohol <- max(Base3$alcohol)
Pais_alcohol <- select(Base3,pais, alcohol) %>%
  filter(alcohol==Maximo_alcohol)
Pais_alcohol
## # A tibble: 1 × 2
##   pais    alcohol
##   <chr>     <dbl>
## 1 Belarus    14.3
Maximo_PIB <- max(Base3$PIB)
Pais_PIB <- select(Base3,pais, PIB) %>%
  filter(PIB==Maximo_PIB)
Pais_PIB
## # A tibble: 1 × 2
##   pais     PIB
##   <chr>  <dbl>
## 1 Qatar 67403.
Maximo_poblacion <- max(Base3$poblacion)
Pais_poblacion <- select(Base3,pais, poblacion) %>%
  filter(poblacion==Maximo_poblacion)
Pais_poblacion
## # A tibble: 1 × 2
##   pais   poblacion
##   <chr>      <dbl>
## 1 China 1337705000
Maximo_escolaridad <- max(Base3$escolaridad)
Pais_escolaridad <- select(Base3,pais, escolaridad) %>%
  filter(escolaridad==Maximo_escolaridad)
Pais_escolaridad
## # A tibble: 1 × 2
##   pais    escolaridad
##   <chr>         <dbl>
## 1 Georgia        12.2
Maximo_homicidios <- max(Base3$homicidios)
Pais_homicidios <- select(Base3,pais, homicidios) %>%
  filter(homicidios==Maximo_homicidios)
Pais_homicidios
## # A tibble: 1 × 2
##   pais     homicidios
##   <chr>         <dbl>
## 1 Honduras       78.8
Maximo_fertilidad <- max(Base3$fertilidad)
Pais_fertilidad <- select(Base3,pais, fertilidad) %>%
  filter(fertilidad==Maximo_fertilidad)
Pais_fertilidad
## # A tibble: 1 × 2
##   pais  fertilidad
##   <chr>      <dbl>
## 1 Niger       7.49
#Desarrollados
#Max(maximo)
#P(pais)
Max_exp.vida <- max(Base4$exp.vida)
P_exp.vida <- select(Base4,pais, exp.vida) %>%
  filter(exp.vida==Max_exp.vida)
P_exp.vida
## # A tibble: 1 × 2
##   pais  exp.vida
##   <chr>    <dbl>
## 1 Japan     82.8
Max_alcohol <- max(Base4$alcohol)
P_alcohol <- select(Base4,pais, alcohol) %>%
  filter(alcohol==Max_alcohol)
P_alcohol
## # A tibble: 1 × 2
##   pais    alcohol
##   <chr>     <dbl>
## 1 Estonia    14.8
Max_PIB <- max(Base4$PIB)
P_PIB <- select(Base4,pais, PIB) %>%
  filter(PIB==Max_PIB)
P_PIB
## # A tibble: 1 × 2
##   pais           PIB
##   <chr>        <dbl>
## 1 Luxembourg 104965.
Max_poblacion <- max(Base4$poblacion)
P_poblacion <- select(Base4,pais, poblacion) %>%
  filter(poblacion==Max_poblacion)
P_poblacion
## # A tibble: 1 × 2
##   pais          poblacion
##   <chr>             <dbl>
## 1 United States 309321666
Maximo_escolaridad <- max(Base4$escolaridad)
P_escolaridad <- select(Base4,pais, escolaridad) %>%
  filter(escolaridad==Maximo_escolaridad)
P_escolaridad
## # A tibble: 1 × 2
##   pais    escolaridad
##   <chr>         <dbl>
## 1 Germany        13.8
Max_homicidios <- max(Base4$homicidios)
P_homicidios <- select(Base4,pais, homicidios) %>%
  filter(homicidios==Max_homicidios)
P_homicidios
## # A tibble: 1 × 2
##   pais   homicidios
##   <chr>       <dbl>
## 1 Latvia        7.4
Max_fertilidad <- max(Base4$fertilidad)
P_fertilidad <- select(Base4,pais, fertilidad) %>%
  filter(fertilidad==Max_fertilidad)
P_fertilidad
## # A tibble: 1 × 2
##   pais   fertilidad
##   <chr>       <dbl>
## 1 Israel          3
#MINIMOS
#En desarrollo
Minimo_exp.vida <- min(Base3$exp.vida)
Pais_exp.vida <- select(Base3,pais, exp.vida) %>%
  filter(exp.vida==Minimo_exp.vida)
Pais_exp.vida
## # A tibble: 1 × 2
##   pais    exp.vida
##   <chr>      <dbl>
## 1 Lesotho     45.1
Minimo_alcohol <- min(Base3$alcohol)
Pais_alcohol <- select(Base3,pais, alcohol) %>%
  filter(alcohol==Minimo_alcohol)
Pais_alcohol
## # A tibble: 1 × 2
##   pais       alcohol
##   <chr>        <dbl>
## 1 Bangladesh   0.004
Minimo_PIB <- min(Base3$PIB)
Pais_PIB <- select(Base3,pais, PIB) %>%
  filter(PIB==Minimo_PIB)
Pais_PIB
## # A tibble: 1 × 2
##   pais      PIB
##   <chr>   <dbl>
## 1 Burundi  234.
Minimo_poblacion <- min(Base3$poblacion)
Pais_poblacion <- select(Base3,pais, poblacion) %>%
  filter(poblacion==Minimo_poblacion)
Pais_poblacion
## # A tibble: 1 × 2
##   pais                poblacion
##   <chr>                   <dbl>
## 1 Antigua and Barbuda     88028
Minimo_escolaridad <- min(Base3$escolaridad)
Pais_escolaridad <- select(Base3,pais, escolaridad) %>%
  filter(escolaridad==Minimo_escolaridad)
Pais_escolaridad
## # A tibble: 2 × 2
##   pais         escolaridad
##   <chr>              <dbl>
## 1 Burkina Faso         1.4
## 2 Niger                1.4
Minimo_homicidios <- min(Base3$homicidios)
Pais_homicidios <- select(Base3,pais, homicidios) %>%
  filter(homicidios==Minimo_homicidios)
Pais_homicidios
## # A tibble: 1 × 2
##   pais  homicidios
##   <chr>      <dbl>
## 1 Qatar       0.55
Minimo_fertilidad <- min(Base3$fertilidad)
Pais_fertilidad <- select(Base3,pais, fertilidad) %>%
  filter(fertilidad==Minimo_fertilidad)
Pais_fertilidad
## # A tibble: 1 × 2
##   pais    fertilidad
##   <chr>        <dbl>
## 1 Moldova       1.27
#Desarrollados
#Min(minimo)
#P(pais)
Min_exp.vida <- min(Base4$exp.vida)
P_exp.vida <- select(Base4,pais, exp.vida) %>%
  filter(exp.vida==Min_exp.vida)
P_exp.vida
## # A tibble: 1 × 2
##   pais      exp.vida
##   <chr>        <dbl>
## 1 Lithuania     73.3
Min_alcohol <- min(Base4$alcohol)
P_alcohol <- select(Base4,pais, alcohol) %>%
  filter(alcohol==Min_alcohol)
P_alcohol
## # A tibble: 1 × 2
##   pais   alcohol
##   <chr>    <dbl>
## 1 Turkey    1.56
Min_PIB <- min(Base4$PIB)
P_PIB <- select(Base4,pais, PIB) %>%
  filter(PIB==Min_PIB)
P_PIB
## # A tibble: 1 × 2
##   pais       PIB
##   <chr>    <dbl>
## 1 Bulgaria 6812.
Min_poblacion <- min(Base4$poblacion)
P_poblacion <- select(Base4,pais, poblacion) %>%
  filter(poblacion==Min_poblacion)
P_poblacion
## # A tibble: 1 × 2
##   pais    poblacion
##   <chr>       <dbl>
## 1 Iceland    318041
Min_escolaridad <- min(Base4$escolaridad)
P_escolaridad <- select(Base4,pais, escolaridad) %>%
  filter(escolaridad==Maximo_escolaridad)
P_escolaridad
## # A tibble: 1 × 2
##   pais    escolaridad
##   <chr>         <dbl>
## 1 Germany        13.8
Min_homicidios <- min(Base4$homicidios)
P_homicidios <- select(Base4,pais, homicidios) %>%
  filter(homicidios==Min_homicidios)
P_homicidios
## # A tibble: 1 × 2
##   pais  homicidios
##   <chr>      <dbl>
## 1 Japan       0.37
Min_fertilidad <- min(Base4$fertilidad)
P_fertilidad <- select(Base4,pais, fertilidad) %>%
  filter(fertilidad==Min_fertilidad)
P_fertilidad
## # A tibble: 1 × 2
##   pais        fertilidad
##   <chr>            <dbl>
## 1 Korea, Rep.       1.19
#Ahora sacamos el promedio de cada una de nuestras variables
#segun su estatus con la funcion mean

#En desarrollo
#prom (promedio)
prom_exp.vida <- mean(Base3$exp.vida)
prom_exp.vida
## [1] 67.10104
prom_alcohol <- mean(Base3$alcohol)
prom_alcohol
## [1] 3.685029
prom_PIB <- mean(Base3$PIB)
prom_PIB
## [1] 5684.882
prom_poblacion <- mean(Base3$poblacion)
prom_poblacion
## [1] 41097314
prom_escolaridad <- mean(Base3$escolaridad)
prom_escolaridad
## [1] 6.883088
prom_homicidios <- mean(Base3$homicidios)
prom_homicidios
## [1] 11.76529
prom_fertilidad <- mean(Base3$fertilidad)
prom_fertilidad
## [1] 3.310809
#Desarrollados
promedio.exp.vida <- mean(Base4$exp.vida)
promedio.exp.vida
## [1] 79.22165
promedio.alcohol <- mean(Base4$alcohol)
promedio.alcohol
## [1] 9.29625
promedio.PIB <- mean(Base4$PIB)
promedio.PIB
## [1] 35895.07
promedio.poblacion <- mean(Base4$poblacion)
promedio.poblacion
## [1] 29034063
promedio.escolaridad <- mean(Base4$escolaridad)
promedio.escolaridad
## [1] 11.5275
promedio.homicidios <- mean(Base4$homicidios)
promedio.homicidios
## [1] 1.86875
promedio.fertilidad <- mean(Base4$fertilidad)
promedio.fertilidad
## [1] 1.66925
#Ahora sacamos nuestro modelo
sum(is.na(Base2))
## [1] 0
Base2 <- textshape::column_to_rownames(Base2, loc = 1)
View(Base2)
Base2 <- Base2%>%
  mutate_at(c("estatus"), ~as.factor(.))
View(Base2)

indxEntrenamiento <- createDataPartition(y = Base2$estatus, p = 0.80, list = FALSE)
View(indxEntrenamiento)
SP_entrenamiento <- Base2[indxEntrenamiento,]
SP_test <- Base2[-indxEntrenamiento,]
View(SP_test)
SP_knnEntrenado <- train(estatus ~ .,
                         data = SP_entrenamiento,
                         method = "knn",
                         tuneLength = 20
)


SP_knnPrediccion <- predict(SP_knnEntrenado, newdata = SP_test )
View(SP_test)
prob_knnPrediccion <- predict(SP_knnEntrenado, newdata = SP_test, type = "prob")
confusionMatrix(SP_knnPrediccion, SP_test$estatus)
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   Developed Developing
##   Developed          0          0
##   Developing         8         27
##                                           
##                Accuracy : 0.7714          
##                  95% CI : (0.5986, 0.8958)
##     No Information Rate : 0.7714          
##     P-Value [Acc > NIR] : 0.59333         
##                                           
##                   Kappa : 0               
##                                           
##  Mcnemar's Test P-Value : 0.01333         
##                                           
##             Sensitivity : 0.0000          
##             Specificity : 1.0000          
##          Pos Pred Value :    NaN          
##          Neg Pred Value : 0.7714          
##              Prevalence : 0.2286          
##          Detection Rate : 0.0000          
##    Detection Prevalence : 0.0000          
##       Balanced Accuracy : 0.5000          
##                                           
##        'Positive' Class : Developed       
## 
resultado <- confusionMatrix(SP_knnPrediccion, SP_test$estatus)
verdaderos_positivos <- resultado$table["Developed", "Developed"]
falsos_negativos <- resultado$table["Developing", "Developed"]
verdaderos_negativos <- resultado$table["Developing","Developing"]

DESCRIPCION DE LAS VARIABLES

Developed país desarrollado , developing país en desarrollo : la distribución de los países en nuestra base de datos respecto a esta clasificación es la siguiente :

ggplot(Base2, aes(x = estatus)) +
  geom_bar() +
  labs(x = "Estatus", y = "Frecuencia", title = "Distribución de Estatus") +
  theme_minimal()

Elegimos las variables: expectativa de vida , alcohol, PIB, población ,escolaridad ,homicidios y fertilidad porque estas nos proporcionan información relevante sobre las características socioeconómicas de los países evaluandolos en el año 2010 - La expectativa de vida es una medida que indica la cantidad de años que se espera que viva una persona en un determinado país; Encontramos que en nuestra base de datos para países en desarrollo la máxima esperanza de vida fue Qatar 79.1 y la menor Lesotho con 45.1,y para países desarrollados la máxima esperanza de vida fue Japón con 82.8 y la menor Lithuania con 73.3. Vemos entonces que estas variables tienen alguna relación:La esperanza de vida mejora si el país es desarrollado y se hace evidente si comparamos factores que siempre serán de un nivel superior en estos tales como la Salud pública, avances sanitarios, avances en seguridad, mejores condiciones laborales y alimentarias etc.

  • El producto interno bruto PIB es el indicador por excelencia para medir el grado de desarrollo de un país , y así mismo evaluar su crecimiento midiendo la actividad productiva del país, sumando en valor monetario cuánto valen todos los bienes y servicios de consumo final “que no se usan para producir algo más” que se producen en el periodo de un año. miremos entonces en nuestra base de datos, ¿ que nos indican los promedios para países desarrollados y en desarrollo? El orden sería que a mayor PIB mayor desarrollo; Países en desarrollo su promedio es 5684 de PIB y en Países desarrollados su promedio es 35895 de PIB
ggplot(Base2, aes(x = exp.vida, y = PIB, color = estatus)) +
  geom_point() +
  labs(x = "Esperanza de Vida", y = "PIB", title = "Relación entre Esperanza de Vida y PIB") +
  theme_minimal()

  • El índice de consumo de alcohol de un país podría ser un indicador muy interesante puesto que a mayor consumo de esta sustancia la salud de los consumidores se deteriora más en comparación con personas que no son consumidoras de alcohol y es que el exceso de alcohol es perjudicial para la salud lo que a simple vista parece que el alcohol fuera una sustancia que se consume más en países en desarrollo, sin embargo promediando en nuestra base de datos el consumo de alcohol en países en desarrollo el índice fue de 3.6 y para países desarrollados fue de 9.2 , por lo que aquí podríamos entrar a analizar que al tener mejores capacidades económicas en los países desarrollados en estos se consume más alcohol.
ggplot(Base2, aes(x = estatus, y = alcohol)) +
  geom_bar(stat = "summary", fun = "mean", fill = "green") +
  xlab("Estatus") +
  ylab("Consumo de alcohol") +
  ggtitle("Promedio de consumo de alcohol por estatus") +
  theme_light()

  • La población de un país es un factor importante a considerar cuando queremos medir y comparar el nivel de desarrollo en este ya que puede tener implicaciones en diversos aspectos, tales como la disponibilidad de recursos , la capacidad de atención médica, oferta laboral y educativa.Miremos entonces qué nos dice la tendencia en nuestra base de datos : el promedio de población en países en desarrollo es 41 097 314 de personas y para países desarrollados el promedio de población es de 29 043 063 personas , evidenciamos entonces que a mayor población es más probable que el país esté en desarrollo, y que a menor población es más probable que el país sea desarrollado.
ggplot(Base2, aes(x = estatus, y = poblacion, color = estatus)) +
  geom_point() +
  xlab("Estatus") +
  ylab("Población") +
  ggtitle("Distribución de la población por estatus") +
  theme_light()

  • El grado de escolaridad de la población es un indicador bastante eficiente para determinar el nivel de desarrollo de un país y este indica el número de años de escolaridad en nuestra base de datos los países con menor grado fueron Burkina Faso y Níger con 1.4 lo cual indica que en promedio en estos países el grado de escolaridad es de 1.4 años por persona , también podemos ver que estos dos países están clasificados como en desarrollo , miremos ahora entonces los países desarrollados con menor grado de escolaridad para así dejar en claro que a mayor grado de escolaridad más desarrollado es un país : Irlanda y Polonia con 12.2 años de promedio de escolaridad en dichos países.

  • La tasa de homicidios está indicada en Tasas de homicidios por 100000 habitantes indicando que por cada 100.000 personas, X personas fueron asesinadas en nuestra base el promedio para países desarrollados es de X= 1.86 personas lo cual indicaría que por cada 100.000 personas 1.86 fueron asesinadas en el 2010, para los países en desarrollo es de X= 11.76 personas , lo cual indicaría que por cada 100.000 personas 11.76 fueron asesinadas en el 2010 , es claro que a mayor tasa de homicidios menor es el nivel de desarrollo de un país esto se explica fácilmente puesto que al tener menos presupuesto para seguridad y así mismo siendo los habitantes menos educados en los países en desarrollo esta tasa aumenta, lo contrario sucede para los países desarrollados.

ggplot(Base2, aes(x = estatus, y = homicidios)) +
  geom_bar(stat = "summary", fun = "mean", fill = "orange") +
  xlab("Estatus") +
  ylab("Homicidios") +
  ggtitle("Promedio de homicidios por estatus") +
  theme_light()

RESULTADOS

Nuestros resultados en el reporte estadístico que arroja el modelo de la matriz de confusión y estadísticas tenemos que la matriz de error nos reporta cero verdaderos positivos y cero falsos positivos , así mismo 8 falsos negativos y 27 verdaderos negativos.

El modelo fue capaz de predecir correctamente el 0.7714 osea el 77.14% de las veces en cuanto al total de los datos que se evaluaron en el informe se ve este valor como accuracy. El intervalo de confianza (0.5986 , 0.8958) del 95% de precisión del modelo.

La tasa de no información es del 77.14% la cual es la precisión que se obtendría si se predijera siempre la clase mayoritaria y en este caso igual a la precisión del modelo ya que la mayoría de las instancias pertenecen a la clase mayoritaria y el modelo tiende a predecir esa clase en la mayoría de los casos.

El valor de kappa fue 0 lo que indica que no hay concordancia entre las predicciones del modelo y las clases reales.

La sensibilidad del modelo mide la proporción de verdaderos positivos desarrollados que se identifican correctamente dando en este caso 0 lo que significa que el modelo no identifica correctamente ningún país desarrollado.

La especificidad del modelo nos arroja entonces 1 que indica que el modelo es capaz de identificar todos los casos de países en desarrollo , esta mide la proporción de casos verdaderos negativos en desarrollo.

Debido a la falta de casos verdaderos positivos el Pos Prep Value valor predictivo positivo es Nan.

El valor predictivo negativo en este caso es 0.7714 indicando que el 77.14% de las predicciones de países en desarrollo son correctas. La prevalencia es de 0.2286 indicando que el 22.86% de los casos son países desarrollados.

La tasa de detección es de 0 indicándonos que el modelo no identifica correctamente ningún caso desarrollado.

El balance de accuracy arroja 0.5000 indicándonos que el rendimiento es aleatorio

La clase positiva fue “desarrollado.

ggplot(SP_knnEntrenado,aes(x = k, y=Accuracy)) +
  geom_line(color="blue",lwd=0.7) + theme_light() + xlab("#ro de vecinos") +
  ylab("Precisión") +
  ggtitle("PRECISIÓN DE LOS DATOS DE ENTRENAMIENTO") +
  theme(text = element_text (family="serif")) +
  theme(axis.text = element_text(size=7))

El anterior gráfico hace referencia a la cantidad o número de vecinos más cercanos que se utilizan para predecir el valor de la variable y como vemos a mayor número de vecinos la precisión del modelo aumenta a excepción de dos casos en 9 a 10 y de 18 a 20 donde la precisión disminuye.

CONCLUSIONES

Teniendo en cuenta los resultados de este informe y el análisis realizando a estos no se alcanzan los resultados más óptimos para el modelo ya que nuestro modelo no cumple con unos porcentajes óptimos para garantizar tanto la predicción de países desarrollados es asi como concluimos que las variables utilizadas no son las mejores para asi determinar si el pais es desarrollado o no y hacemos la observación en la variable población dado que esta pudo tener que ver en la inconsistencia y seguramente alguna otra o otras también pudieron afectar sin embargo nosotros identificamos solo la de población.

Por falta de informacion se dieron nuestros datos de la confusionmatrix de la manera mostrada anteriormente.

Otro factor que puede afectar es el número de K tomados para el entrenamiento del modelo.

La cantidad de datos tomados , sumándole más datos podría ser que el entrenamiento del modelo ocurriera de una mejor forma asegurando un mejor entrenamiento del modelo.

La versión tanto de la aplicación de R el programa Rstudio como de las librerías , ya que las actualizaciones solucionan errores en estos que pudiesen estar teniendo.