options(scipen = 999)
rm(list=ls())
library(data.table)
library(margins)
library(caret)
library(ggplot2)
library(rpart)
library(rpart.plot)
library(factoextra)
library(dbscan)

Cargue la base de datos

Cargue la base de datos y llamela “casen”.

casen <- fread('CASEN 2020 Valpo.csv')

Pregunta 01 - Filtre la base

Filtre la base “casen”, quedandose con solo aquellas observaciones cuya edad sea igual o mayor a 15 y donde la variable “activ” no sea NA. Que dicha base se siga llamando “casen”. Cree una nueva variable que se llame “cae_general”, la cual será valor “Ocupado” si “activ” = 1, “Desocupado” si “activ” = 2 e “Inactivo” si “activ” = 3.(2 pts.)

casen <- casen[edad >= 15 & !is.na(activ),]
casen[,cae_general := factor(activ, levels = 1:3, labels = c('Ocupado','Desocupado','Inactivo'))]

Luego, cree una nueva base llamada “casen_inf” que contenga solo aquellas observaciones que cumplan que “ocup_inf” sea 1 o 2. Cree una nueva variable “informalidad”, la cual aquiera valor “Informal” si “ocup_inf” = 1 e “Formal” si “ocup_inf” = 2. (2 pts.)

casen_inf <- casen[ocup_inf %in% c(1:2),]
casen_inf[, informalidad := factor(ocup_inf, levels = 1:2, labels = c('Informal','Formal'))]

Pregunta 02 - Clasificación

Clasifique a los trabajadores formales e informales de acuerdo con su edad “edad” y años de escolaridad “esc2”. (2 pts)

f01 <- formula(informalidad ~ edad + esc2)
arbol <- rpart(f01,data=casen_inf,method = 'class')

Posteriormente, muestre el gráfico del arbol de decisión. Interprete los resultados. (4 pts.)

rpart.plot(arbol)

Pregunta 03 - Clasificación

Volviendo a la base “casen”, cree una nueva base llamada “casen_sal” que contenga aquellas observaciones donde sist_salud va del 1 al 4. Luego, en esta nueva base, cree una columna llamada “sistema de salud” que adquiere el valor de “FONASA” si “sist_salud” = 1, “ISAPRE” si “sist_salud” = 2, “CAPREDENA” si “sist_salud” es = 3 y “PARTICULAR” si “sist_salud” es igual a 4. (2 pts.)

casen_sal <- casen[sist_salud %in% c(1:4),]
casen_sal[, sistema_de_salud := factor(sist_salud, levels = 1:4, 
                                       labels = c('FONASA','ISAPRE','CAPREDENA','PARTICULAR'))]

Clasifique a a las personas segun su sistema de salud. Para eso, considere las variables de años de escolaridad “esc2” e ingreso del trabajo “ytrabajocor”. (2 pts)

arbol <- rpart(sistema_de_salud ~ ytrabajocor + esc2,data=casen_sal,method = 'class')

Posteriormente, muestre el gráfico del arbol de decisión. Interprete los resultados. (4 pts.)

rpart.plot(arbol)

Pregunta 04 - Grafico de codo

Creamos base de muestra (muy pesada para graficar entera) y gaficamos distribución espacial:

# Escriba este código
samp <- casen_inf[,.(esc2,dau)][complete.cases(casen_inf[,.(esc2,dau)])]
samp <- samp[sample(.N,1000),.(esc2,dau)]

“esc2” son los años de escolaridad, mientras que “dau” es el decil de ingreso autonomo del hogar (entre más alto, mas rica la persona). En base al código entregado, cree un gráfico de codo para determinar el número de clusters óptimos. Justifique el valor escogido. (3 pts.)

fviz_nbclust(x = samp, FUNcluster = kmeans, method = "wss", k.max = 15, 
             diss = get_dist(samp, method = "euclidean"), nstart = 50)

Pregunta 05 - Clusters

Muestre gráficamente la distribución de los clusers en la base de datos “samp”. Utilice el número de clusters óptimos declarados en ejercicio 04. (6 pts.)

cluster <- kmeans(x = samp,centers = 3,nstart = 50)
fviz_cluster(cluster,data=samp,geom = "point")

samp[,cluster:=cluster$cluster]
ggplot(samp) +
  geom_point(aes(x=esc2,y=dau,color=factor(cluster)))