Caso de estudio de predicción de seguro médico ~ sueldo utilizando K-means

Este caso constará de dos hipótesis, la primera, la cual fue proporcionada con anterioridad: Se analizará la relación entre estas dos para probar la siguiente hipótesis: las personas más adineradas tienen seguro médico dado que pueden costearlo. Además, se utilizará k-means para determinar si es posible predecir si una persona tiene o no tiene seguro médico utilizando como dato de entrada cuanto gana.

La segunda hipótesis es realizada por los miembros del equipo: El nivel de estudio garantiza tener seguro médico. Este factor es más influtente que el sueldo. Para esto, e utilizará k-means para determinar si es posible predecir si una persona tiene o no tiene seguro médico utilizando como dato de entrada su nivel de estudio.

Algoritmo K-Means:

K-means es un algoritmo de clasificación no supervisada (clusterización) que agrupa objetos en k grupos basándose en sus características. El agrupamiento se realiza minimizando la suma de distancias entre cada objeto y el centroide de su grupo o cluster. Se suele usar la distancia cuadrática. El algoritmo consta de tres pasos:

  • Inicialización: una vez escogido el número de grupos, k, se establecen k centroides en el espacio de los datos, por ejemplo, escogiéndolos aleatoriamente.

  • Asignación objetos a los centroides: cada objeto de los datos es asignado a su centroide más cercano.

  • Actualización centroides: se actualiza la posición del centroide de cada grupo tomando como nuevo centroide la posición del promedio de los objetos pertenecientes a dicho grupo.

Este, es un método de agrupamiento, que tiene como objetivo la partición de un conjunto de n observaciones en k grupos en el que cada observación pertenece al grupo cuyo valor medio es más cercano.

Salarios en Estados Unidos de América.

Los salarios muchas veces dependen del lugar de residencia de los trabajadores, así como del rol que desempeñan en una empresa. Hay quienes aseguran que un trabajo bien pagado consiste en labores de alta habilidad que requieren estudios profesionales más allá de una licenciatura. Muchos de los trabajos mejor pagados se encuentran en la industrias tecnológicas, servicios profesionales e ingenierías. Y los empleos de bajos salarios, suelen ser aquellos que requieren estudios educativos mínimos o responsabilidades más bajas. Un estudio realizado por la Reserva Federal (FED) de New York revela que un graduado universitario tiene un salario promedio de $78,000 mientras que un trabajador que solo cuenta con la escuela secundaria gana aproximadamente $45,000 al año. Por lo que, si bien el rendimiento de una educación universitaria ha disminuido en los últimos años debido al aumento de los precios de matrícula, los beneficios aún superan el costo.

Datos

Los datos utilizados en este caso de estudios es un Dataframe ya proporcionado por RStudio: Wage. El cual es un dataframe con 3000 observaciones sobre 11 variables. Incluye datos salariales y de otro tipo de un grupo de 3000 trabajadores varones de la región del Atlántico Medio.

library(pacman)
p_load("ggplot2","DT","xfun","prettydoc","cluster","ISLR","xfun","DT")
datos <- Wage
head(Wage)
##        year age           maritl     race       education             region
## 231655 2006  18 1. Never Married 1. White    1. < HS Grad 2. Middle Atlantic
## 86582  2004  24 1. Never Married 1. White 4. College Grad 2. Middle Atlantic
## 161300 2003  45       2. Married 1. White 3. Some College 2. Middle Atlantic
## 155159 2003  43       2. Married 3. Asian 4. College Grad 2. Middle Atlantic
## 11443  2005  50      4. Divorced 1. White      2. HS Grad 2. Middle Atlantic
## 376662 2008  54       2. Married 1. White 4. College Grad 2. Middle Atlantic
##              jobclass         health health_ins  logwage      wage
## 231655  1. Industrial      1. <=Good      2. No 4.318063  75.04315
## 86582  2. Information 2. >=Very Good      2. No 4.255273  70.47602
## 161300  1. Industrial      1. <=Good     1. Yes 4.875061 130.98218
## 155159 2. Information 2. >=Very Good     1. Yes 5.041393 154.68529
## 11443  2. Information      1. <=Good     1. Yes 4.318063  75.04315
## 376662 2. Information 2. >=Very Good     1. Yes 4.845098 127.11574
datatable(datos)

Primer grafica coloreando las respuestas (si seguro médico, no seguro médico).

ggplot(datos, aes(age, wage)) + geom_point(aes (col=health_ins), size=2)

La siguiente gráfica representa la distribución de los datos, según el sueldo y la edad. Se puede observar cómo la mayoría sí cuenta con seguro médico, estos datos se encuentran principalmente en el segundo sector de la gráfica, mientras que la mayoría de las personas que no cuentan con seguro médico, se encuentran en el primer sector (con un sueldo menor). Sin embargo, estos datos se encuentran muy cercanos entre sí, por lo tanto, no están bien agrupados.

Primer grafica coloreando las respuestas (si seguro médico, no seguro médico), según su grado de educación y sueldo.

ggplot(datos, aes(education, wage)) + geom_point(aes (col=health_ins), size=1)

La siguientte gráfica representa la distribución de datos, según el nivel de estudios y el sueldo. Se puede observar como la gran mayoróa de las personas cuenta con seguro médico, sin embargo, el grado Advanced es donde se encuentra el mayor número de personas con seguro médico. Caso contrario al sueldo, los datos se encuentran perfectamente agrupados por los grados de edución, por lo que, el modelo demuestra claridad.

Modelo K-means comparando wage:

datos$health_ins <- as.numeric(datos$health_ins)
datos[ ,c(9)][datos[ ,c(9)]=="1. Yes"] <- 1
datos[ ,c(9)][datos[ ,c(9)]=="2. No"] <- 2
datos$education <- as.numeric(datos$education)
datos[ ,c(5)][datos[ ,c(5)]=="1. < HS Grad"] <- 1
datos[ ,c(5)][datos[ ,c(5)]=="2. HS Grad"] <- 2
datos[ ,c(5)][datos[ ,c(5)]=="3. Some College"] <- 3
datos[ ,c(5)][datos[ ,c(5)]=="4. College Grad"] <- 4
datos[ ,c(5)][datos[ ,c(5)]=="5. Advanced Degree"] <- 5
set.seed(101)
wageCluster <- kmeans(datos[,11], center=2, nstart=20 )
wageCluster
## K-means clustering with 2 clusters of sizes 847, 2153
## 
## Cluster means:
##        [,1]
## 1 160.86502
## 2  92.36329
## 
## Clustering vector:
##    [1] 2 2 1 1 2 1 1 2 2 1 2 2 2 1 1 2 2 1 1 2 1 2 2 1 2 1 2 2 2 2 1 2 2 2 2 2 2
##   [38] 2 2 2 2 2 2 2 2 1 1 1 2 2 1 2 1 2 2 2 1 1 2 2 1 2 2 2 2 2 1 1 2 2 2 2 2 2
##   [75] 2 2 1 2 2 2 1 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 1 2 2
##  [112] 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 1 2 2 2 2 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 1
##  [149] 1 2 2 1 2 2 1 1 2 1 2 2 2 2 2 2 1 1 2 2 2 1 2 2 1 1 1 2 1 2 1 2 1 2 2 2 1
##  [186] 2 2 2 2 2 1 2 2 2 1 1 2 1 2 2 2 1 2 2 2 2 1 1 1 2 1 2 1 2 2 2 1 2 2 2 2 2
##  [223] 2 1 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1
##  [260] 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 1 2 2 2
##  [297] 2 2 1 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 1 1 2
##  [334] 2 1 2 2 2 2 2 1 2 2 2 1 2 2 1 1 1 1 1 2 2 1 2 2 2 2 2 2 1 1 2 2 2 2 2 1 1
##  [371] 2 2 1 1 2 1 2 2 2 2 1 1 1 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1
##  [408] 2 2 1 1 2 2 2 1 2 2 2 1 2 2 2 1 1 1 1 2 2 2 1 2 2 1 2 2 2 2 2 1 2 2 2 1 2
##  [445] 2 2 2 1 1 1 2 1 2 2 2 1 2 1 1 1 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2
##  [482] 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 1 1 2 1 2 2 2 2 2 1 2 2 2 1 2 1
##  [519] 2 1 2 1 1 2 2 1 1 1 2 2 2 2 2 1 2 1 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 1 2
##  [556] 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 1 2 2 2 2
##  [593] 2 2 2 2 2 2 1 2 2 2 1 1 1 2 2 2 1 2 2 2 1 2 2 2 2 2 2 1 1 2 2 2 1 2 2 1 1
##  [630] 1 2 1 1 2 2 1 2 2 2 1 2 2 1 2 2 1 2 2 2 2 1 2 1 2 1 2 2 1 2 2 2 2 2 2 2 2
##  [667] 1 2 1 2 1 2 1 2 2 2 2 2 2 1 1 2 1 2 2 2 1 2 1 2 2 1 2 1 2 2 2 1 1 2 2 2 1
##  [704] 2 1 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2 1 1 1 1 1 2 2 2 2 1
##  [741] 2 2 2 2 2 2 1 2 1 2 2 1 2 2 2 2 1 1 2 2 1 2 2 2 2 2 2 1 1 1 2 2 2 1 2 2 2
##  [778] 2 1 2 1 2 1 2 1 2 2 1 1 1 2 1 1 2 2 2 1 1 2 1 2 1 2 1 2 2 1 2 2 1 2 2 2 2
##  [815] 2 2 2 1 2 1 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2
##  [852] 2 2 2 2 1 2 1 2 2 2 1 1 1 2 2 1 1 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2
##  [889] 2 2 2 2 1 2 2 2 2 2 1 2 2 1 1 2 2 2 1 1 2 2 2 1 2 2 1 2 1 2 2 2 1 2 2 2 2
##  [926] 1 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 1 1 2 2 2 1 1 2 1 2 1 1 2 2 2 2 1
##  [963] 2 2 2 1 2 1 1 2 2 1 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2
## [1000] 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2
## [1037] 1 2 2 1 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
## [1074] 2 2 2 2 1 2 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 2 2 2 1 2 2 2
## [1111] 2 1 1 2 2 2 2 2 1 2 2 1 2 1 2 2 2 1 2 1 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2
## [1148] 2 1 2 2 2 1 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 1 2
## [1185] 1 1 2 1 2 1 2 1 1 2 2 1 2 1 1 1 1 2 2 2 1 2 2 2 2 2 1 2 1 2 1 2 2 2 2 1 1
## [1222] 2 1 2 2 1 1 2 2 1 2 2 2 1 2 2 2 2 1 1 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 1 2
## [1259] 2 1 2 2 2 2 2 1 2 2 1 2 2 1 2 1 2 1 2 1 2 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 2
## [1296] 2 1 2 2 2 1 2 2 1 2 1 2 1 2 1 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 1
## [1333] 2 2 2 2 1 2 2 2 2 2 1 1 2 1 2 2 2 2 1 2 1 2 2 1 2 2 2 1 2 2 2 2 1 2 2 2 2
## [1370] 2 1 1 2 2 1 2 2 1 2 1 2 2 2 2 2 1 2 1 2 2 2 1 2 2 2 2 2 2 2 1 1 2 2 2 2 2
## [1407] 2 2 2 1 1 2 1 2 2 2 2 2 1 2 1 2 1 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2
## [1444] 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 1 1 2 2 2 2
## [1481] 1 1 2 1 1 1 2 1 2 2 2 2 2 2 2 2 1 1 2 1 2 2 2 2 2 1 1 1 2 2 2 1 1 1 2 1 2
## [1518] 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 1 1
## [1555] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 1 1 2 2 1 2 1 2 2 2 2
## [1592] 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 1 2 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 2 2 2
## [1629] 2 2 2 2 1 2 2 1 1 1 2 2 2 2 1 2 2 2 2 2 1 2 2 1 1 2 1 2 2 2 2 2 2 1 2 2 2
## [1666] 2 2 1 2 1 2 2 2 1 2 2 2 1 1 2 1 2 2 2 2 1 1 2 2 2 2 1 2 1 2 2 1 1 2 2 2 1
## [1703] 2 1 1 2 2 2 2 2 2 1 1 2 1 2 1 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2
## [1740] 2 2 1 2 1 2 2 2 1 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 1 2
## [1777] 1 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 1 1 2 1 2 2 2
## [1814] 2 1 2 2 2 2 2 2 2 1 2 1 2 2 1 1 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2
## [1851] 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1 2 2 2 2 1 1 2 1 1 1 2 2 2 2 2 1 2 1 2 1 2 2
## [1888] 2 2 2 2 1 2 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1
## [1925] 2 2 2 2 1 1 1 2 2 2 1 2 2 2 2 2 2 2 2 1 2 1 1 2 1 2 2 2 2 1 2 2 1 2 2 2 1
## [1962] 2 1 2 2 2 2 2 2 1 1 2 1 2 2 2 2 1 1 1 1 2 2 2 1 2 2 2 2 1 2 1 2 1 2 1 2 1
## [1999] 2 1 2 2 2 1 2 1 1 2 2 1 2 2 2 2 2 2 1 2 1 1 2 2 2 2 2 2 1 2 2 1 2 1 2 2 2
## [2036] 2 1 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 1 1 2 1 2 2 1 2 1 2 1 2 1 2 2 2 1 1 2 2
## [2073] 2 2 2 1 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1
## [2110] 2 1 2 2 2 1 1 1 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 2 2
## [2147] 1 2 1 2 2 1 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 1 2 1 1
## [2184] 2 1 2 2 1 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2
## [2221] 2 1 2 1 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 2
## [2258] 1 2 2 2 1 2 2 1 2 2 2 2 1 2 1 1 2 2 2 2 2 1 2 1 1 2 1 2 2 1 2 1 2 1 2 2 2
## [2295] 2 2 2 2 2 1 2 2 2 1 2 2 2 1 2 1 1 1 2 2 1 2 2 2 1 1 2 2 2 2 1 2 2 2 2 2 2
## [2332] 1 1 2 1 2 1 2 2 1 2 2 2 2 2 2 2 2 1 2 2 1 1 2 1 2 2 1 2 2 2 1 2 2 2 1 2 2
## [2369] 1 1 2 1 2 2 2 1 1 2 2 2 2 1 1 2 1 2 1 2 1 1 2 2 2 2 2 2 1 2 1 2 2 2 2 1 2
## [2406] 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 1 2 1 2 2 2
## [2443] 2 1 1 1 2 2 2 1 1 1 2 2 2 2 2 1 2 2 1 1 2 2 2 2 1 2 2 2 2 1 1 2 2 1 1 1 2
## [2480] 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 2 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2
## [2517] 2 2 1 2 1 2 2 1 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2
## [2554] 2 1 2 1 1 2 2 2 1 1 2 1 1 2 2 1 2 2 2 1 2 2 2 2 2 2 2 1 2 1 1 2 2 2 1 1 2
## [2591] 2 2 2 2 2 1 2 2 2 2 2 2 1 1 1 2 1 1 2 2 1 2 2 2 2 1 2 1 2 2 1 2 2 2 1 2 2
## [2628] 2 2 1 1 2 1 2 2 2 2 2 2 2 1 2 1 2 1 2 1 1 2 1 2 2 2 2 2 2 1 2 2 2 1 2 1 1
## [2665] 2 2 2 1 1 1 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 1 2 2 1 1 2 1 2 1 2 1 1 2 2 1
## [2702] 2 1 2 1 1 2 2 2 1 2 2 1 2 2 1 2 2 2 1 2 2 1 1 2 1 1 1 1 2 2 2 1 1 2 2 2 2
## [2739] 2 2 2 1 1 2 2 2 2 2 1 2 2 2 1 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1
## [2776] 2 1 2 2 1 2 2 1 2 1 2 2 2 2 1 2 2 2 2 1 2 1 2 2 1 2 1 2 1 1 1 2 2 1 2 2 2
## [2813] 2 2 1 2 2 2 2 1 1 1 2 2 2 2 1 2 2 1 1 1 1 1 1 2 1 2 2 2 1 1 1 2 2 2 1 2 2
## [2850] 1 2 2 2 2 2 2 1 1 1 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 2 1 2 1 2 2 2
## [2887] 2 2 1 1 2 2 2 1 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 1 2 1 2 2 2 2 1 2 2 2 1 2 2
## [2924] 2 1 1 2 2 1 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2
## [2961] 2 2 2 2 2 2 2 2 2 2 1 1 2 1 2 2 2 2 2 1 2 2 1 2 2 2 1 1 2 1 1 2 2 2 1 1 2
## [2998] 2 2 2
## 
## Within cluster sum of squares by cluster:
## [1] 1484428.2  885265.4
##  (between_SS / total_SS =  54.6 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Construyendo el modelo K-Means que nos permita agrupar objetos según sus características.

Modelo K-means comparando education:

set.seed(101)
educationCluster <- kmeans(datos[,5], center=5, nstart=20)
educationCluster
## K-means clustering with 5 clusters of sizes 268, 426, 685, 971, 650
## 
## Cluster means:
##   [,1]
## 1    1
## 2    5
## 3    4
## 4    2
## 5    3
## 
## Clustering vector:
##    [1] 1 3 5 3 4 3 5 5 5 4 5 4 4 3 4 5 3 2 3 5 3 4 3 3 4 2 4 4 4 4 2 5 2 4 3 2 3
##   [38] 3 5 1 3 3 1 1 4 2 3 2 1 4 2 5 3 5 2 4 2 3 4 4 3 5 4 5 2 5 4 3 4 4 4 4 4 5
##   [75] 1 2 3 1 4 1 2 5 2 1 4 4 4 1 3 2 3 4 1 2 4 4 5 3 3 3 3 3 4 5 3 5 1 5 5 5 3
##  [112] 1 4 4 4 4 2 2 2 4 4 1 3 4 5 4 3 1 4 2 4 2 2 3 2 4 3 2 4 4 4 4 4 4 4 2 2 4
##  [149] 3 1 2 4 3 1 2 2 4 5 4 3 4 5 4 4 3 3 1 4 1 5 5 5 5 5 5 1 5 3 4 3 4 3 4 4 5
##  [186] 4 5 2 4 3 5 3 1 4 2 2 4 3 5 5 1 4 5 5 5 5 2 3 2 1 2 4 2 4 3 2 3 3 3 4 4 4
##  [223] 3 5 4 5 5 1 4 5 4 4 5 2 3 4 3 4 4 4 4 5 4 3 2 4 4 5 5 1 4 5 1 3 4 5 3 3 3
##  [260] 1 4 2 4 4 5 2 3 3 3 3 5 4 3 5 5 4 4 3 1 4 5 4 2 4 1 5 5 2 3 2 4 4 2 4 5 4
##  [297] 5 4 3 4 2 4 5 4 1 3 4 2 5 4 4 4 4 3 3 3 4 4 5 4 4 3 3 1 4 3 2 4 4 4 4 5 1
##  [334] 4 3 2 4 4 3 4 2 2 4 5 2 3 3 2 2 3 3 3 4 4 1 2 3 3 2 5 2 2 3 5 5 5 3 3 5 2
##  [371] 1 5 4 3 2 4 4 3 5 4 4 4 5 3 5 1 1 3 1 4 5 4 5 5 2 4 5 2 5 4 4 4 5 4 2 3 3
##  [408] 5 4 4 5 4 4 5 2 3 4 3 3 5 3 4 4 3 5 4 3 3 4 2 4 5 3 4 4 3 4 4 3 4 3 1 3 2
##  [445] 3 2 5 2 3 2 5 3 4 4 3 4 1 3 4 3 5 3 3 4 3 3 1 5 4 5 4 4 1 5 5 4 2 4 4 5 5
##  [482] 4 1 4 4 5 1 2 5 2 3 5 2 5 3 2 4 4 1 5 5 5 3 5 5 3 4 4 4 1 4 3 1 3 2 2 5 2
##  [519] 1 2 2 3 1 4 5 2 3 4 4 4 1 3 3 3 5 2 4 4 4 4 4 4 2 4 2 3 3 1 5 5 3 2 3 5 3
##  [556] 4 3 5 1 1 4 4 2 2 5 2 3 3 4 3 3 4 5 2 3 5 5 4 5 3 2 3 4 3 3 4 4 5 4 5 1 4
##  [593] 3 3 1 4 5 5 2 1 4 5 4 5 4 3 4 5 5 1 4 4 2 2 5 4 4 3 3 5 2 1 5 5 5 4 5 3 4
##  [630] 3 1 2 2 5 4 5 5 3 4 5 5 1 3 4 4 4 4 5 4 1 2 4 2 5 2 5 4 2 4 4 3 4 2 3 1 5
##  [667] 3 4 1 3 4 4 5 5 1 4 4 3 3 3 2 3 3 1 4 4 3 4 2 4 4 5 1 5 1 5 4 5 2 4 5 3 2
##  [704] 1 5 2 3 5 5 5 3 3 4 4 4 4 3 3 5 1 3 2 5 3 5 4 3 3 5 4 2 3 2 4 3 3 4 5 1 5
##  [741] 1 4 4 4 3 2 1 1 2 5 3 4 3 5 3 1 5 3 3 3 3 3 3 3 5 3 5 3 5 4 2 1 3 2 5 3 2
##  [778] 1 3 5 2 4 2 5 3 3 3 2 3 5 2 2 2 4 3 1 5 3 4 3 4 2 4 3 4 1 5 4 3 3 3 3 4 4
##  [815] 3 2 5 3 4 3 1 5 3 5 4 1 2 1 2 4 2 2 2 5 1 3 4 3 3 4 3 5 5 5 2 1 4 1 1 3 5
##  [852] 5 4 5 3 2 3 2 4 2 1 2 4 3 3 5 3 4 5 3 4 5 4 4 2 4 2 4 5 4 3 1 4 4 4 4 4 4
##  [889] 5 5 3 5 3 2 4 2 4 4 5 4 1 2 4 1 2 5 5 2 1 4 4 2 5 3 4 5 2 4 4 1 2 4 5 4 4
##  [926] 2 3 1 3 5 4 4 4 4 3 4 4 4 4 5 2 4 4 3 3 2 3 4 3 4 3 2 1 4 4 3 3 4 1 4 4 5
##  [963] 4 4 5 3 1 2 2 2 1 2 4 5 1 3 3 2 5 1 1 2 2 1 4 4 5 5 4 1 5 5 4 4 4 5 1 4 5
## [1000] 2 4 1 4 3 4 4 2 4 3 1 4 4 5 4 3 2 2 5 4 4 4 3 4 1 3 5 2 3 4 4 3 3 4 4 4 5
## [1037] 5 4 5 3 5 4 4 1 4 3 1 5 4 5 2 2 4 2 5 3 4 4 4 4 2 3 4 4 5 5 3 5 5 5 5 5 5
## [1074] 4 5 4 5 4 1 4 5 4 4 4 2 4 1 5 4 4 4 4 4 5 1 4 2 4 3 3 3 5 4 4 5 5 4 4 4 4
## [1111] 2 5 2 4 4 4 5 1 3 5 4 4 4 5 2 4 4 2 4 3 5 4 4 4 4 5 4 3 2 4 4 3 2 4 1 2 1
## [1148] 1 3 5 3 4 3 3 5 4 4 4 4 2 5 3 2 2 4 1 3 3 3 4 4 5 4 4 3 4 4 5 3 2 4 4 5 1
## [1185] 4 2 4 2 3 3 1 5 3 5 5 5 1 4 3 3 3 5 2 5 3 2 3 4 4 3 3 5 3 4 3 4 1 4 4 2 3
## [1222] 3 4 4 4 3 2 4 1 4 4 4 4 2 4 5 2 3 2 3 1 5 5 2 1 4 2 3 5 4 3 2 5 3 5 2 4 4
## [1259] 4 2 5 5 1 3 3 2 4 4 5 4 4 5 2 3 2 2 4 2 5 5 4 2 3 2 3 3 5 2 3 4 4 3 4 4 3
## [1296] 5 3 5 3 3 4 3 4 5 5 3 5 2 3 3 5 5 2 5 4 4 3 4 3 1 3 4 4 4 4 5 2 3 4 4 3 2
## [1333] 4 3 3 3 3 5 4 5 3 1 2 5 5 5 5 4 1 3 2 4 5 4 1 2 1 1 4 4 4 5 3 3 4 4 4 4 5
## [1370] 5 3 3 4 4 1 4 2 3 4 3 5 4 5 5 4 3 2 3 4 5 1 5 3 4 5 5 3 4 1 4 4 4 4 5 5 1
## [1407] 4 5 3 5 3 4 4 4 1 2 5 4 3 4 2 5 4 5 3 4 1 3 3 1 3 3 1 4 3 3 2 4 5 3 5 3 4
## [1444] 5 4 4 5 4 4 5 5 5 4 3 5 4 4 1 3 4 4 3 5 4 2 5 5 2 5 4 3 1 3 1 2 5 5 5 3 4
## [1481] 2 5 5 2 3 1 4 3 4 1 5 5 2 4 5 5 5 5 1 4 4 1 3 4 4 2 2 4 4 1 1 5 2 2 5 3 5
## [1518] 4 3 5 4 4 1 5 4 4 3 1 4 3 4 5 1 1 4 5 4 3 5 5 1 3 3 5 4 5 4 4 4 5 4 5 3 2
## [1555] 4 4 5 4 4 4 4 4 1 5 5 5 5 4 5 2 5 4 5 4 4 4 3 4 3 4 3 2 4 4 2 4 2 3 2 3 4
## [1592] 3 3 2 5 3 4 4 4 3 1 3 4 4 5 1 3 2 4 2 5 5 4 4 1 3 3 3 4 1 3 5 1 5 4 4 4 4
## [1629] 3 1 4 4 3 4 4 3 3 1 5 4 1 3 3 1 5 5 3 2 3 2 3 4 4 4 3 5 2 5 5 2 3 4 2 4 3
## [1666] 1 4 3 4 2 5 1 3 3 1 5 4 3 5 4 5 4 4 4 4 5 2 4 4 4 4 5 5 2 5 4 3 2 5 3 4 4
## [1703] 2 3 3 4 4 4 3 4 2 3 4 5 2 3 3 5 3 5 4 5 4 3 4 4 4 4 5 4 4 4 1 2 2 4 3 3 1
## [1740] 5 2 5 1 2 5 4 5 2 3 2 4 1 5 4 3 3 3 4 4 5 2 5 1 3 4 3 4 5 4 4 5 4 4 2 2 5
## [1777] 4 5 5 4 2 4 4 5 5 4 2 3 5 4 4 4 3 3 3 3 4 3 3 3 5 3 1 4 4 4 4 2 5 3 3 4 5
## [1814] 4 2 5 5 5 5 4 4 3 4 3 2 1 4 3 2 5 5 5 1 3 3 1 5 4 4 1 4 2 1 2 4 3 5 5 3 2
## [1851] 5 4 4 5 5 1 3 4 5 5 5 4 4 3 3 1 5 4 5 3 2 4 2 3 5 5 5 1 3 4 3 2 2 1 3 4 3
## [1888] 5 4 4 2 3 4 4 4 3 2 1 5 1 5 5 4 3 5 5 1 5 5 2 3 5 5 2 5 3 4 4 3 4 1 4 1 2
## [1925] 5 4 3 1 4 3 3 4 4 4 3 4 3 5 4 3 2 4 4 3 5 5 2 5 3 5 4 4 5 3 3 3 2 4 3 4 3
## [1962] 4 3 5 4 5 2 4 5 2 3 4 3 3 5 4 5 3 2 3 3 4 4 5 2 5 5 1 3 3 4 3 2 3 5 3 1 1
## [1999] 4 3 4 3 3 3 3 4 4 3 3 3 4 3 5 2 4 5 5 4 3 2 2 4 4 4 3 5 5 1 5 3 5 2 4 1 4
## [2036] 3 3 2 5 4 5 1 4 5 4 5 4 3 4 2 2 3 5 2 3 5 4 5 2 1 3 1 5 5 4 3 4 5 3 4 4 5
## [2073] 5 5 5 3 5 4 3 4 4 5 1 4 5 3 3 5 1 1 4 3 4 4 4 5 3 1 4 1 4 2 3 3 4 3 3 2 3
## [2110] 1 3 5 1 3 5 3 3 4 1 5 3 2 4 4 4 2 4 4 1 3 5 4 3 4 4 2 3 4 5 4 4 3 3 3 5 2
## [2147] 2 2 3 5 5 2 4 2 5 2 1 3 3 5 1 5 4 5 1 5 4 4 4 5 4 3 3 3 2 4 4 5 3 3 1 3 2
## [2184] 3 3 4 4 3 3 5 5 5 5 3 4 3 2 5 4 4 4 5 5 4 2 3 5 3 3 5 3 4 2 3 3 1 1 4 3 4
## [2221] 1 2 4 3 4 1 2 3 2 4 4 3 4 5 3 4 1 3 4 3 4 4 4 2 3 2 5 3 4 3 4 2 3 5 2 4 5
## [2258] 4 5 2 2 2 4 2 2 4 5 4 4 3 4 5 2 4 3 4 3 5 3 4 5 5 5 3 1 2 2 3 2 4 4 3 4 5
## [2295] 4 3 4 4 3 3 4 4 4 2 2 3 4 4 4 4 5 3 5 4 3 4 4 5 4 2 5 4 4 4 2 5 1 4 1 4 4
## [2332] 3 5 4 3 4 2 5 3 2 1 4 1 5 5 1 3 5 5 5 4 3 3 4 5 3 4 4 4 4 4 3 5 2 1 3 4 4
## [2369] 3 2 5 4 5 3 3 2 3 1 3 5 1 2 2 3 2 3 4 3 4 4 4 2 3 3 4 3 3 1 4 4 4 2 4 4 1
## [2406] 4 3 5 5 5 5 1 2 5 5 4 5 3 5 2 5 5 4 4 5 5 4 3 5 4 5 1 2 5 3 3 4 1 3 5 3 3
## [2443] 4 3 3 2 5 4 4 4 2 4 1 4 1 4 2 5 4 4 3 4 3 4 4 3 2 1 4 3 2 2 3 4 4 2 3 3 3
## [2480] 4 3 3 1 5 5 2 4 5 4 2 4 5 5 3 5 4 2 4 4 5 5 4 5 1 4 5 2 5 2 3 4 4 3 5 5 2
## [2517] 5 5 3 5 3 4 4 5 5 5 5 4 3 4 3 2 2 4 2 2 3 4 5 5 5 5 4 3 3 5 5 3 1 4 4 4 5
## [2554] 2 3 4 3 5 1 4 4 2 2 3 2 3 5 2 2 5 1 4 2 2 5 5 4 5 4 3 3 5 4 3 4 1 3 5 4 4
## [2591] 1 5 4 4 4 5 3 3 3 2 5 4 2 2 2 5 3 4 3 5 3 4 4 4 4 3 4 2 3 5 2 1 4 5 2 4 5
## [2628] 4 4 3 4 1 3 3 3 4 4 3 3 5 3 3 5 3 2 1 2 5 4 4 1 5 5 1 4 3 3 1 1 1 5 2 5 3
## [2665] 4 3 4 2 2 3 4 4 4 1 4 1 4 5 4 5 2 5 5 1 4 2 3 3 3 2 5 3 3 4 2 2 3 5 1 3 3
## [2702] 2 2 4 2 2 5 4 3 4 3 3 5 4 1 3 4 3 1 2 1 2 4 3 5 5 5 2 5 1 3 4 5 2 4 5 5 5
## [2739] 5 5 3 2 3 2 5 2 4 3 2 5 4 3 2 3 1 5 2 4 5 5 4 4 3 4 3 3 5 5 2 4 3 4 4 3 2
## [2776] 4 2 4 4 3 4 4 2 5 3 4 4 4 4 2 5 4 4 5 3 2 2 4 4 2 2 3 1 3 2 2 4 5 2 3 5 4
## [2813] 5 4 3 5 4 5 5 5 5 4 3 4 4 1 5 5 1 3 3 3 4 3 2 3 5 3 4 5 2 3 2 4 4 3 2 3 4
## [2850] 4 3 4 4 4 4 5 2 2 5 4 4 4 3 3 5 3 1 3 3 1 5 2 4 4 4 4 5 1 2 4 5 4 3 3 4 1
## [2887] 3 5 5 2 5 4 4 2 4 5 4 4 5 4 2 2 5 2 5 1 4 4 2 2 4 2 4 1 4 4 4 5 4 5 4 3 4
## [2924] 3 2 4 4 5 2 4 3 4 4 4 5 2 4 2 3 5 2 4 1 1 3 4 2 3 2 1 5 2 5 3 3 3 4 4 5 4
## [2961] 5 4 5 4 4 4 5 5 4 5 4 5 4 4 4 4 5 4 4 5 1 1 3 1 4 4 5 2 2 3 4 5 1 4 3 5 4
## [2998] 1 5 4
## 
## Within cluster sum of squares by cluster:
## [1] 0 0 0 0 0
##  (between_SS / total_SS = 100.0 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Construyendo el modelo K-Means que nos permita agrupar objetos según sus características.

Contando wage

table(wageCluster$cluster,datos$health_ins)
##    
##        1    2
##   1  729  118
##   2 1354  799

Comparando los clusters con los datos originales, se observa como no existe ninguna agrupación en específico, ya que los datos están muy juntos, por lo que se mezclan.

Contando education

table(educationCluster$cluster,datos$health_ins)
##    
##       1   2
##   1 124 144
##   2 351  75
##   3 529 156
##   4 612 359
##   5 467 183

Comparando los clusters con los datos originales, se observa como no existe ninguna agrupación hasta el momento, sin embargo, presentan una diferencia menor a comparación de la variable sueldo.

Graficando wage

clusplot(Wage[,c(9,11)], wageCluster$cluster, color=T, shade=T, lines=0, main ="CLUSPLOT (WAGE)")

La anterior gráfica representa los clusters agrupados. Se puede observar como los datos se encuentran distribuidos entre ambos, lo que provoca que no exista una agrupación clara, debido a que no se puede distinguir cuales datos pertenecen a cada cluster.

Grafiicando education

clusplot(Wage[,c(5,11)], educationCluster$cluster, color=T, shade=T, lines=0, main ="CLUSPLOT (EDUCATION)")

La anterior gráfica representa los clusters agrupados. Se observa, que, a diferencia de la variable sueldo, los datos se encuentran distribuidos en 5 grandes clusters de una manera muy clara, cada uno de estos clusters representan los grados de estudios. En este caso, debido a que la agrupación es muy clara, es fácil de indentificar que dato pertenece a cada cluster.

tot.withinss <- vector(mode="character", length=10)
for ( i in 1:3){
  wageCluster <- kmeans(datos[,11], center=i, nstart=20 )
  tot.withinss[i] <- wageCluster$tot.withinss
}
tot <- vector(mode="character", length=10)
for ( i in 1:5){
  educationCluster <- kmeans(datos[,5], center=i, nstart=20 )
  tot[i] <- educationCluster$tot.withinss
}

Graficación del codo obtenido de Wage.

plot(1:10, tot.withinss, type="b", pch=19)

El método codo nos ayuda a buscar el valor K óptimo de conglomerados. Para esto, debemos de seleccionar el valor donde, a partir de ese punto, la gráfica comienza a disminuir de forma lineal. Por lo tanto, para los datos dados, concluimos que el número óptimo es 2.

Graficando codo obtenido de Education

plot(1:10, tot, type="b", pch=19)

El método codo nos ayuda a buscar el valor K óptimo de conglomerados. Para esto, debemos de seleccionar el valor donde, a partir de ese punto, la gráfica comienza a disminuir de forma lineal. Por lo tanto, para los datos dados, concluimos que el número óptimo es 5.

Conclusión.

Para finalizar, después de analizar nuestros resultados, hemos concluido que la primera hipótesis se cumple con valores de sueldos muy altos, sin embargo, existen algunas personas con un sueldo alto que no cuentan con seguro médico. Para la gran mayoría de datos, k-means no funciona correctamente, ya que no es un modelo muy claro. Esto debido a que la gran mayoría de los datos, se encuentran muy juntos (ya que comparten la misma característica), lo que provoca que no exista una agrupación muy clara y que los datos se encuentren muy dispersos entre sí, de esta manera, sería muy complicado poder predecir si una persona tiene o no tiene seguro médico, utilizando la entrada de cuánto gana.

Mientras que, la hipótesis del equipo fue correcta, ya que, el modelo arroja los datos organizados claramente de cada cluster, esto debido a que existe una diferencia de características entre ellos. De esta manera, podemos concluir que, el nivel de estudio SI puede garantizar que una persona tenga seguro médico, ya que el estudio brinda las herramientas necesarias y ayuda a poder aumentar la probabilidad de beneficios, en este caso el seguro médico. Por lo que, consideramos que el algortimo K-Means y utilizando la entrada de su nivel de estudios, nos garantizan un modelo confiable.

Conclusión personal.

Después de realizar y analizar ambos modelos, he llegado a la conclusión de que el nivel de estudio puede garantizar con mayor seguridad si una persona tiene seguro médico o no, esto debido a que el nivel de estudio suele garantizar mayores beneficios, y con esto una mejor calidad de vida. He llegado a esta conclusión a causa de la distribución de los datos en cada cluster, donde se observa una diferencia de características entre ellos. El método K-Means nos permite realizar este tipo de análisis, llegando a conclusiones inesperadas como la anterior.

Fuentes.

Descargas.

  • Código.
xfun::embed_file("A7U1.Rmd")

Download A7U1.Rmd