El objetivo de este trabajo es lograr presentar dos modelos que puedan predecir una variable objetivo propuesta desde la diplomatura. El dataset con el que se trabajó esta compuesto por un subconjuto de datos de la EPH correspondientes al segundo cuatrimestre 2020. La variable dependiente o objetivo es P21: Ingreso de la ocupación principal. En busca de cumplir el objetivo previamente planteando se dividió el trabajo en dos secciones. En la primera parte realizaremos un anÔlisis exploratorio de las variables incluidas en el dataste. En la segunda sección presentaremos los modelos, compararemos los resultados y justificaremos la elección de uno de ellos.
library(tidyverse)
library(caret)
library(ggplot2)
library(ggthemes)
library(GGally)
library(ggridges)
options(scipen=999)
Base<-read.csv("01_2020_II_eph_ocupados.csv")
Base<- Base %>%
mutate(NIVEL_ED = case_when( NIVEL_ED == "Primaria completa"~ "Primaria comp.",
NIVEL_ED == "Primaria incompleta (incluye educacion especial)"~"Primaria incom",
NIVEL_ED == "Secundaria completa" ~ "Secundaria comp.",
NIVEL_ED == "Secundaria incompleta" ~ "Secundaria incom",
NIVEL_ED == "Superior universitaria completa" ~"Sup. universitaria comp.",
NIVEL_ED == "Superior universitaria incompleta"~ "Sup. universitaria incom.",
NIVEL_ED == "Sin instruccion" ~ "Sin instruccion")) %>%
mutate( NIVEL_ED = fct_relevel(NIVEL_ED, c("Sin instruccion","Primaria incom","Primaria comp.","Secundaria incom","Secundaria comp.", "Sup. universitaria incom.","Sup. universitaria comp."))) %>%
mutate( CH03 = fct_relevel(CH03, c("Jefe/a","Conyuge / Pareja", "Hijo/a Hijastro/a", "Yerno/Nuera", "Nietro/a", "Madre/Padre","Suegro/a","Hermano/a","Otros Familiares", "No familiares"))) %>%
mutate(CH07 = str_replace(CH07, "[?]","")) %>%
mutate(PP04A = str_replace(PP04A, "...","")) %>%
mutate(CATEGORIA = str_replace_all(CATEGORIA, "ó", "ó")) %>%
mutate(CATEGORIA = str_replace_all(CATEGORIA, "ĆĀ©", "Ć©")) %>%
mutate(CALIFICACION = str_replace_all(CALIFICACION, "ĆĀ©", "Ć©")) %>%
mutate( P21 = str_replace_all(P21, "-9", "0" )) %>%
mutate( P21 = as.integer(P21))
La variable objetivo propuesta es el Ingreso de la ocupación principal. SegĆŗn esto corresponde a ingresos laborales provenientes de la ocupación principal( dando cuenta que pueda haber otras ocupaciones del tipo secundaria) hubieren generado ingresos en el mes de referencia. Esto por tanto excluye a todo ingreso no-laboral tal como jubilaciones/pensiones, rentas de la propiedad derivadas de la producción, rentas de la propiedad derivadas de inversiones financieras y transferencias. Esta variable es cuantitativa del tipo continuo. El mĆ”ximo registro de nuestra variable objetivo es de 545.000 pesos y su mĆnimo es 0. La media de la distribución es 23.759, la mediana 00.000 y la desviación estĆ”ndar es 24.436. Este anĆ”lisis explotarlo de la distribución variable dependiente puede verse en el grĆ”fico 0 y nos permite concluir que: a- Muchos valores se encuentran localizados sobre la cola izquierda de la distribución, sobre todo sobre la categorĆa ā0 ingresosā que concentran el 16% de los casos. Desde la media a la izquierda todos los valores se encuentran a un desvió estĆ”ndar. b- A su vez, sobre la cola derecha de la distribución los valores mĆ”ximos se encuentran mĆ”s dispersos. A 1 desvió estĆ”ndar se encuentran el 88% de los casos y a 2 el 96%. el 4% restante
Histograma_p21<- ggplot(Base, aes( x = P21))+
geom_histogram(fill= "#393B45")+
geom_vline(aes(xintercept = mean(P21), colour = "Media"),linetype= "dashed", size = 0.9)+
geom_vline(aes(xintercept = median(P21), colour = "Mediana"),linetype= "dashed", size = 0.9)+
scale_color_manual(values = c("Media" = "#F3B54A", "Mediana" = "#6E7889"))+
theme_few()+
labs( x = "Ingreso de la ocupación principal", y = " ", title = 0 )+
theme(legend.title = element_blank())
Histograma_p21
summary(Base$P21)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0 6000 20000 23759 35000 545000
quantile(Base$P21, prob=seq(0, 1, length = 101))
## 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10%
## 0 0 0 0 0 0 0 0 0 0 0
## 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21%
## 0 0 0 0 0 0 600 2000 3000 3600 4000
## 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32%
## 5000 5000 6000 6000 7000 8000 8000 8500 9000 10000 10000
## 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43%
## 10000 10700 12000 12000 12800 13500 14956 15000 15000 15000 15000
## 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54%
## 16000 17000 18000 18000 19000 20000 20000 20000 20000 20000 21600
## 55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65%
## 22410 23000 25000 25000 25000 25000 25000 26000 27000 28000 28000
## 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76%
## 30000 30000 30000 30000 30000 30000 31000 32000 35000 35000 35000
## 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87%
## 35000 36000 38000 39000 40000 40000 40000 40000 42000 45000 45000
## 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98%
## 46000 50000 50000 50000 52000 58000 60000 60000 70000 75000 85000
## 99% 100%
## 100000 545000
var(Base$P21)
## [1] 597164562
sd(Base$P21)
## [1] 24436.95
Las variables predictoras o independientes para este parcial son 11, 9 categorĆas y solo 2 cuantitativas. A continuación se elaboraron 6 grĆ”ficos que muestran la relación entre ellas en busca y la variable que se prentende explicar. Dado los casos extremos existente en la variable P21, se dejaron afuera los registros mayores a 100.000 pesos en busca de mejorar la visualización de la información.
a<-Base %>%
filter(P21 <= 100000) %>%
ggplot(aes( x = NIVEL_ED, y = P21, fill= NIVEL_ED))+
geom_boxplot()+
scale_x_discrete(guide = guide_axis(n.dodge=2))+
scale_fill_manual(values=c("#6ec6ca", #1
"#217CA3", #2
'#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
theme_few()+
labs( x = " ",y= "P21: Ingreso de la ocupación principal", title = 1)+
theme(legend.position = "none")
a
b<- Base %>% filter(P21 <= 100000) %>%
ggplot ()+
geom_density_ridges(aes(x= P21, y = CH03, fill= CH03)) +
theme_ridges() +
scale_fill_manual(values=c("#6ec6ca", #1
"#217CA3", #2
'#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
labs( x ="P21: Ingreso de la ocupación principal", y= "", title = 2)+
theme(legend.position = "none")
b
c<- Base %>% filter(P21 <= 100000) %>%
ggplot(aes(y= P21, x= CH04, fill = CH04))+
geom_violin(width=1.4)+
geom_boxplot(width=0.6, color="black", alpha = 0.1)+
theme_few()+
scale_fill_manual(values=c( '#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
labs( x ="", y= "P21: Ingreso de la ocupación principal", title = 3)+
theme(legend.position = "none")
c
d<-Base %>% filter(P21 <= 100000) %>%
ggplot(aes(y= P21, x= CH06, color = CH07))+
geom_point()+
geom_smooth(method=lm, color = "black" )+
theme_few()+
scale_color_manual(values=c('#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
labs( x = "Edad" , y= "P21: Ingreso de la ocupación principal" ,title = 4)+
theme(legend.position = "bottom", legend.title = element_blank())
d
e<- Base %>% filter( P21 <= 100000, CAT_OCUP != "Trabajador familiar sin remuneracion") %>%
ggplot(aes(y = P21, x = CAT_OCUP, fill= CALIFICACION))+
geom_bar(position = "dodge",
stat = "summary",
fun = "mean")+
theme_few()+
scale_fill_manual(values=c('#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
labs( x ="", y= "P21: Ingreso de la ocupación principal" ,title = 5)+
theme(legend.position = "bottom", legend.title = element_blank())
e
f<- Base %>% filter(P21 <= 100000, PP3E_TOT <= 100) %>%
ggplot(aes(y= P21, x=PP3E_TOT, color = PP04A))+
geom_point()+
geom_smooth(method=lm )+
theme_few()+
scale_color_manual(values=c("#6ec6ca", #1
"#217CA3", #2
'#5A4E4D', #3
'#E69F00', #4
"#D46c4e", #5
"#f9ad6a", #6
"#DDD8c4", #7
"#a3c9a8", #8
"#69a297", #9
"#50808e" #10
))+
labs( x ="Horas trabajadas", y= "P21: Ingreso de la ocupación principal", title = 6)+
theme(legend.position = "bottom", legend.title = element_blank())
f
### 2 - Modelización de datos