Abrimos librerias necesarias para hacer el trabajo Final
library(tidyverse)
library(openxlsx)
library(eph)
library(scales)
library(ggplot2)
library(dplyr)
library(knitr)
library(ggthemes)
library(kableExtra)
Importar base de datos
list.files("Fuentes/")
## [1] "~$Aglomerados y Regiones EPH.xlsx" "Aglomerados EPH.xlsx"
## [3] "Aglomerados y Regiones EPH.xlsx"
Vamos a calcular algunas estadísticas básicas de la base EPH INDEC tercer trimestre de 2024- para ello esamos el siguiente código
Vamos a mostrar los resultados
kable(Tasas, format = "markdown")
Tasa Actividad | Tasa Empleo | Tasa Desocupacion | Tasa ocupados demandantes | Tasa Subocupación | Tasa Subocupación demandante | Tasa Subocupación no demandante |
---|---|---|---|---|---|---|
0.4832538 | 0.4497973 | 0.0692319 | 0.1761851 | 0.1136236 | 0.0809374 | 0.0326862 |
Vamos a calcular las tasas por Aglomerado
base1 <- base %>%
mutate(AGLOMERADO = recode(AGLOMERADO,
"2" = "Gran la Plata",
"3" = "Bahía Blanca –Cerri",
"4"= "Gran Rosario",
"5"= "Gran Santa Fé",
"6" = "Gran Paraná",
"7" = "Posadas",
"8" = "Gran Resistencia",
"9" = "Cdro. Rivadavia - R.Tilly",
"10" = "Gran Mendoza",
"12" = "Corrientes",
"13" = "Gran Córdoba",
"14" = "Concordia",
"15" = "Formosa",
"17" = "Neuquén – Plottier",
"18" = "S.del Estero - La Banda",
"19" = "Jujuy - Palpalá",
"20" = "Río Gallegos",
"22" = "Gran Catamarca",
"23" = "Salta",
"25" = "La Rioja",
"26" = "San Luis - El Chorrillo",
"27" = "Gran San Juan",
"29" = "Gran Tucumán - T. Viejo",
"30" = "Santa Rosa - Toay" ,
"31" = "Ushuaia - Río Grande",
"32" = "Ciudad de Bs As",
"33" = "Partidos del GBA",
"34" = "Mar del Plata - Batán",
"36" = "Río Cuarto",
"38" = "San Nicolás – Villa Constitución",
"91" = "Rawson – Trelew",
"93"="Viedma – Carmen de Patagones"))
base1 <- base1 %>%
mutate(REGION = recode(REGION,
"1"= "GBA", "43"="Pampeana",
"40"="Noroeste", "41"="Noreste",
"42"="Cuyo", "44"="Patagonia"))
base1 <- base1 %>%
rename(SEXO= CH04)
# Tasas Básicas por Aglomerados
tasas_aglomerados <- base1 %>%
group_by(AGLOMERADO) %>%
summarise(Poblacion = sum(PONDERA),
Ocupados = sum(PONDERA[ESTADO == 1]),
Desocupados = sum(PONDERA[ESTADO == 2]),
PEA = Ocupados + Desocupados,
Ocupados_demand = sum(PONDERA[ESTADO == 1 & PP03J == 1]),
Suboc_demandante = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J == 1]),
Suboc_no_demand = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J %in% c(2, 9)]),
Subocupados = Suboc_demandante + Suboc_no_demand,
'Tasa Actividad' = PEA/Poblacion,
'Tasa Empleo' = Ocupados/Poblacion,
'Tasa Desocupacion' = Desocupados/PEA,
'Tasa ocupados demandantes' = Ocupados_demand/PEA,
'Tasa Subocupación' = Subocupados/PEA,
'Tasa Subocupación demandante' = Suboc_demandante/PEA,
'Tasa Subocupación no demandante' = Suboc_no_demand/PEA)%>%
ungroup() %>% #Desagrupo el data.frame para poder seguir operando tranquilo sobre el mismo
select(-(2:9)) # Elimino los niveles poblacionales (ahora tengo como 1er variable el aglomerado)
kable(tasas_aglomerados, format = "markdown")
AGLOMERADO | Tasa Actividad | Tasa Empleo | Tasa Desocupacion | Tasa ocupados demandantes | Tasa Subocupación | Tasa Subocupación demandante | Tasa Subocupación no demandante |
---|---|---|---|---|---|---|---|
Bahía Blanca –Cerri | 0.4856079 | 0.4544937 | 0.0640727 | 0.1455824 | 0.0526572 | 0.0457580 | 0.0068992 |
Cdro. Rivadavia - R.Tilly | 0.3950409 | 0.3842664 | 0.0272744 | 0.0541120 | 0.0286142 | 0.0225797 | 0.0060345 |
Ciudad de Bs As | 0.5488409 | 0.5244966 | 0.0443560 | 0.1329836 | 0.0576247 | 0.0253185 | 0.0323063 |
Concordia | 0.4216839 | 0.4009540 | 0.0491599 | 0.0856176 | 0.1067926 | 0.0720696 | 0.0347230 |
Corrientes | 0.4421836 | 0.4256453 | 0.0374014 | 0.1698238 | 0.1011257 | 0.0769608 | 0.0241649 |
Formosa | 0.4032033 | 0.3939653 | 0.0229117 | 0.0614681 | 0.0460869 | 0.0383587 | 0.0077282 |
Gran Catamarca | 0.4122511 | 0.4027720 | 0.0229934 | 0.2450200 | 0.1329909 | 0.1216557 | 0.0113352 |
Gran Córdoba | 0.5014027 | 0.4575300 | 0.0875000 | 0.2766530 | 0.1224328 | 0.1072705 | 0.0151624 |
Gran Mendoza | 0.4846981 | 0.4604967 | 0.0499310 | 0.1937377 | 0.1436956 | 0.1196049 | 0.0240907 |
Gran Paraná | 0.4574210 | 0.4344322 | 0.0502573 | 0.1935806 | 0.1549346 | 0.1291274 | 0.0258072 |
Gran Resistencia | 0.4517661 | 0.4025477 | 0.1089466 | 0.0726675 | 0.0597691 | 0.0459021 | 0.0138670 |
Gran Rosario | 0.5062916 | 0.4771304 | 0.0575977 | 0.1377772 | 0.1304628 | 0.0919035 | 0.0385594 |
Gran San Juan | 0.4582867 | 0.4354714 | 0.0497839 | 0.2215869 | 0.1728955 | 0.1131769 | 0.0597186 |
Gran Santa Fé | 0.4497546 | 0.4197027 | 0.0668186 | 0.1136594 | 0.1577050 | 0.1039992 | 0.0537058 |
Gran Tucumán - T. Viejo | 0.4729543 | 0.4467945 | 0.0553113 | 0.2550300 | 0.1750995 | 0.1192667 | 0.0558328 |
Gran la Plata | 0.5011660 | 0.4527101 | 0.0966863 | 0.1742077 | 0.1153733 | 0.0839453 | 0.0314280 |
Jujuy - Palpalá | 0.4655206 | 0.4464979 | 0.0408633 | 0.2191781 | 0.1048718 | 0.0633823 | 0.0414895 |
La Rioja | 0.4544234 | 0.4395584 | 0.0327120 | 0.1708602 | 0.1496745 | 0.1350646 | 0.0146099 |
Mar del Plata - Batán | 0.5034631 | 0.4612351 | 0.0838751 | 0.1481699 | 0.1217783 | 0.0841319 | 0.0376464 |
Neuquén – Plottier | 0.4680449 | 0.4407935 | 0.0582238 | 0.1287439 | 0.0844285 | 0.0691986 | 0.0152299 |
Partidos del GBA | 0.4804516 | 0.4400743 | 0.0840403 | 0.1911334 | 0.1227361 | 0.0876411 | 0.0350950 |
Posadas | 0.4589242 | 0.4431698 | 0.0343290 | 0.1186038 | 0.1276666 | 0.1047135 | 0.0229531 |
Rawson – Trelew | 0.4298731 | 0.4086085 | 0.0494670 | 0.1030691 | 0.1017520 | 0.0713979 | 0.0303541 |
Río Cuarto | 0.4766173 | 0.4491514 | 0.0576268 | 0.1110016 | 0.0479651 | 0.0265556 | 0.0214095 |
Río Gallegos | 0.4615431 | 0.4285964 | 0.0713839 | 0.0982249 | 0.0588197 | 0.0376597 | 0.0211599 |
S.del Estero - La Banda | 0.4258101 | 0.4217989 | 0.0094202 | 0.1279396 | 0.0941518 | 0.0720266 | 0.0221252 |
Salta | 0.4586477 | 0.4346005 | 0.0524307 | 0.1947824 | 0.1320088 | 0.0746535 | 0.0573553 |
San Luis - El Chorrillo | 0.4508236 | 0.4323457 | 0.0409869 | 0.1030392 | 0.0812824 | 0.0719023 | 0.0093801 |
San Nicolás – Villa Constitución | 0.4220047 | 0.3917884 | 0.0716019 | 0.0450664 | 0.0537728 | 0.0243470 | 0.0294258 |
Santa Rosa - Toay | 0.4698361 | 0.4371315 | 0.0696085 | 0.1598042 | 0.1169769 | 0.0887516 | 0.0282253 |
Ushuaia - Río Grande | 0.5093551 | 0.4678619 | 0.0814623 | 0.1260159 | 0.0546117 | 0.0311612 | 0.0234504 |
Viedma – Carmen de Patagones | 0.4044166 | 0.3995235 | 0.0120991 | 0.0509254 | 0.0235659 | 0.0184217 | 0.0051443 |
Vemos ahora las Tasas por Regiones
# Tasas Básicas por Regiones
tasas_regiones <- base1 %>%
group_by(REGION) %>%
summarise(Poblacion = sum(PONDERA),
Ocupados = sum(PONDERA[ESTADO == 1]),
Desocupados = sum(PONDERA[ESTADO == 2]),
PEA = Ocupados + Desocupados,
Ocupados_demand = sum(PONDERA[ESTADO == 1 & PP03J == 1]),
Suboc_demandante = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J == 1]),
Suboc_no_demand = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J %in% c(2, 9)]),
Subocupados = Suboc_demandante + Suboc_no_demand,
'Tasa Actividad' = PEA/Poblacion,
'Tasa Empleo' = Ocupados/Poblacion,
'Tasa Desocupacion' = Desocupados/PEA,
'Tasa ocupados demandantes' = Ocupados_demand/PEA,
'Tasa Subocupación' = Subocupados/PEA,
'Tasa Subocupación demandante' = Suboc_demandante/PEA,
'Tasa Subocupación no demandante' = Suboc_no_demand/PEA)%>%
ungroup() %>% #Desagrupo el data.frame para poder seguir operando tranquilo sobre el mismo
select(-(2:9)) # Elimino los niveles poblacionales (ahora tengo como 1er variable el aglomerado)
kable(tasas_regiones, format = "markdown")
REGION | Tasa Actividad | Tasa Empleo | Tasa Desocupacion | Tasa ocupados demandantes | Tasa Subocupación | Tasa Subocupación demandante | Tasa Subocupación no demandante |
---|---|---|---|---|---|---|---|
Cuyo | 0.4722786 | 0.4492588 | 0.0487420 | 0.1901652 | 0.1441394 | 0.1116315 | 0.0325079 |
GBA | 0.4932786 | 0.4559085 | 0.0757587 | 0.1789983 | 0.1091483 | 0.0746352 | 0.0345131 |
Noreste | 0.4424091 | 0.4179397 | 0.0553096 | 0.1093588 | 0.0872315 | 0.0691239 | 0.0181076 |
Noroeste | 0.4551977 | 0.4360047 | 0.0421639 | 0.2108932 | 0.1394132 | 0.0964550 | 0.0429582 |
Pampeana | 0.4895036 | 0.4527400 | 0.0751040 | 0.1768298 | 0.1193649 | 0.0899008 | 0.0294641 |
Patagonia | 0.4473215 | 0.4233862 | 0.0535081 | 0.1009597 | 0.0628377 | 0.0459817 | 0.0168561 |
Vemos ahora las Tasas por Sexo
# Tasas Básicas por Aglomerados por sexo total eph
base1 <- base1 %>% mutate(SEXO = recode(SEXO,
"1" = "Varón",
"2" = "Mujer"))
tasas_sexo <- base1 %>%
group_by(SEXO) %>%
summarise(Poblacion = sum(PONDERA),
Ocupados = sum(PONDERA[ESTADO == 1]),
Desocupados = sum(PONDERA[ESTADO == 2]),
PEA = Ocupados + Desocupados,
Ocupados_demand = sum(PONDERA[ESTADO == 1 & PP03J == 1]),
Suboc_demandante = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J == 1]),
Suboc_no_demand = sum(PONDERA[ESTADO == 1 & INTENSI == 1 & PP03J %in% c(2, 9)]),
Subocupados = Suboc_demandante + Suboc_no_demand,
'Tasa Actividad' = PEA/Poblacion,
'Tasa Empleo' = Ocupados/Poblacion,
'Tasa Desocupacion' = Desocupados/PEA,
'Tasa ocupados demandantes' = Ocupados_demand/PEA,
'Tasa Subocupación' = Subocupados/PEA,
'Tasa Subocupación demandante' = Suboc_demandante/PEA,
'Tasa Subocupación no demandante' = Suboc_no_demand/PEA)%>%
ungroup() %>% #Desagrupo el data.frame para poder seguir operando tranquilo sobre el mismo
select(-(2:9)) # Elimino los niveles poblacionales (ahora tengo como 1er variable el aglomerado)
kable(tasas_sexo, format = "markdown")
SEXO | Tasa Actividad | Tasa Empleo | Tasa Desocupacion | Tasa ocupados demandantes | Tasa Subocupación | Tasa Subocupación demandante | Tasa Subocupación no demandante |
---|---|---|---|---|---|---|---|
Mujer | 0.4193232 | 0.3862686 | 0.0788285 | 0.1777547 | 0.1383664 | 0.0973355 | 0.0410309 |
Varón | 0.5506149 | 0.5167348 | 0.0615314 | 0.1749256 | 0.0937694 | 0.0677792 | 0.0259902 |
Ahora vamos a definir grupos de edades para poder ver el grado de edades
base1 <- base1 %>%
rename(EDAD= CH06)
base1 <- base1 %>% mutate(Grupos_Etarios = case_when("EDAD" < 18 ~ "Menores",
"EDAD" %in% 18:65 ~ "Adultos",
"EDAD" > 65 ~ "Adultos Mayores"))
base1 %>%
select(AGLOMERADO,SEXO,EDAD,Grupos_Etarios,REGION)
Vamos a construir tipo de precariedad en base a algunos indicadores, el primero será la faltad e aporte patronal para eso procesamos el siguiente código
base_asal <- base1 %>%
filter(ESTADO == 1, CAT_OCUP == 3, P21>0) %>%
mutate(PONDIIO = as.numeric(PONDIIO),
condicion = ifelse(PP07H == 1,"Registrados","No Registrados"))
salarios_s_reg<- base_asal %>%
group_by(condicion) %>%
summarise(ing_prom = weighted.mean(P21,PONDIIO,na.rm = T))
Graficar
ggplot(salarios_s_reg,aes(x = condicion, y = ing_prom,fill = condicion))+
geom_col()+
theme(legend.position = "none")+
labs(y = "Ingreso Promedio en $")
Graficar Asalariados Con o sin descuento jubilatorio por Edades
ggplot(base_asal,aes(x = condicion, y = EDAD,fill = condicion))+
geom_boxplot()+
theme(legend.position = "none")+
labs(y = "Edades")
Ahora vamos a crear una variable para ver nivel educatico
base_asal_preca <- base1 %>%
filter(ESTADO == 1, CAT_OCUP == 3) %>% # Ocupados asalariados
mutate(
nivel.ed = factor(
case_when(NIVEL_ED %in% c(7,1,2,3) ~ "Menor a Secundaria",
NIVEL_ED %in% c(4,5) ~ "Secundaria Completa",
NIVEL_ED == 6 ~ "Superior Completo",
TRUE ~ "Ns/Nr"),
levels = c("Menor a Secundaria","Secundaria Completa","Superior Completo")),
tamanio.establec = factor(
case_when(PP04C %in% 1:6 ~ "Pequeño",
PP04C %in% 7:8 ~ "Mediano",
PP04C %in% 9:12 ~ "Grande",
PP04C %in% 99 ~ "Ns/Nr"),
levels = c("Pequeño","Mediano","Grande","Ns/Nr")),
descuento_jubil = case_when(PP07H == 1 ~ "Si",
PP07H == 2 ~ "No"),
part.time.inv = case_when(PP3E_TOT < 35 & PP03G == 1 ~ "Si",
TRUE ~ "No"),
tiempo.determinado = case_when(PP07C == 1 ~ "Si",
TRUE ~ "No"))
La función calculate_tabulates nos parmite rápidamente obtener tabulados univariados y bivariados de nuestras categorías de interés. Criterio descuento jubilatorio
calculate_tabulates(base = base_asal_preca,
x = "descuento_jubil",
weights = "PONDERA")
Criterio Nivel Educativo
calculate_tabulates(base = base_asal_preca,
x = "descuento_jubil",
y = "nivel.ed",
add.totals = "both",
weights = "PONDERA")
En porcentajes
calculate_tabulates(base = base_asal_preca,
x = "descuento_jubil",
y = "nivel.ed",
add.percentage = "col",
weights = "PONDERA")
Tercer criterio tamaño establecimiento
calculate_tabulates(base = base_asal_preca,
x = "descuento_jubil",
y = "tamanio.establec",
add.percentage = "col",
weights = "PONDERA")
Cuarto factor trabajo tiempo parcial
calculate_tabulates(base = base_asal_preca,
x = "descuento_jubil",
y = "part.time.inv",
add.percentage = "col",
weights = "PONDERA")
En base a eso definimos la precariedad en tres factores, que no posea descuento jubilatorio o que trabaje part time o trabajo por tiempo determinado.
precarizados <- base_asal_preca %>%
mutate(signos.precariedad = ifelse(descuento_jubil == "No",yes = 1,no = 0)+
ifelse(part.time.inv == "Si",yes = 1,no = 0)+
ifelse(tiempo.determinado == "Si",yes = 1,no = 0))
precarizados1 <- precarizados %>%
mutate(Grado.prec = factor(
case_when(
signos.precariedad == 0 ~ "Sin precarizar",
signos.precariedad == 1 ~ "Leve",
signos.precariedad == 2 ~ "Moderado",
signos.precariedad == 3 ~ "Severo",
TRUE ~ NA_character_ # Para manejar cualquier otro caso que no sea 0, 1, 2 o 3
)
))
precarizados1 %>%
group_by(Grado.prec) %>%
summarise(Poblacion = sum(PONDERA))
calculate_tabulates(base = precarizados1,
x = "SEXO",
y = "Grado.prec", add.percentage = "col", weights = "PONDERA")
calculate_tabulates(base = precarizados1,
x = "REGION",
y = "Grado.prec", add.percentage = "col", weights = "PONDERA")
calculate_tabulates(base = precarizados1,
y = "Grado.prec",
x = "nivel.ed", add.percentage = "col", weights = "PONDERA")
``` Bueno podría realizarse alguna grafica