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 y llamela “casen”.
casen <- fread('CASEN 2020 Valpo.csv')
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'))]
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)
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)
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)
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)))