#Paquetes ----
library(pacman)
p_load(tidyverse, dplyr, readxl, ggplot2, ggrepel, directlabels, extrafont, scales, ggplot2, janitor, stringr, regex, zoo)
# Desactiva notación cientĆfica
options(scipen=999)
#Datos ----
#Ejercicio 1
#Datos coe2
coe2 <- read_csv("01_datod/conjunto_de_datos_enoen_2022_2t_csv/conjunto_de_datos_coe2_enoen_2022_2t/conjunto_de_datos/conjunto_de_datos_coe2_enoen_2022_2t.csv")
#Datos sdem
sdem <- read_csv("01_datod/conjunto_de_datos_enoen_2022_2t_csv/conjunto_de_datos_sdem_enoen_2022_2t/conjunto_de_datos/conjunto_de_datos_sdem_enoen_2022_2t.csv")
#Ejercicio 2
actividad_eco <- read_excel("01_datod/02_indicador_2.xls", skip = 3)
actividad_eco <- clean_names(actividad_eco) #Elimino mayĆŗsculas y espacios (los remplaza por guiones bajos)
#view(actividad_eco)
#Ejercicio 3
#Solo logrƩ visualizar los datos del ITLP-IS bajados directamente del Coneval :(
pobreza_laboral <- read_csv("01_datod/tlp_ent_1t05_4t20.csv")
Ejercicio 1
datos <- coe2 %>%
select(p6b2, p6_9, p6c,p6a3,ur, n_pro_viv) %>%
mutate(p6_9 = case_when(p6_9 == 9 ~ 0), #El codigo de respuesta 9 en la pregunta significa que al encuestado no le pagan ni recibe ingresos, entonces se asignarĆ” un sueldo de cero para reducir los NAs.
p6c = if_else(p6c == 1, ".5", #DespuĆ©s se cambia el código de respuesta por el valor en salarios mĆnimos que especifica el CONEVAL
ifelse(p6c == 2, "1",
ifelse(p6c == 3, "1.5",
ifelse(p6c == 4, "2.5",
ifelse(p6c == 5, "4",
ifelse(p6c == 6, "7.5",
ifelse(p6c == 7, "10",
NA)))))))) %>%
mutate(observacion = 1:n())#aƱado esta columna para que sea la llave que una a las dos bases
datos_nuevo <- datos
datos_nuevo$p6b2[is.na(datos_nuevo$p6b2)] <- datos_nuevo$p6_9[is.na(datos_nuevo$p6b2)] #paso las observaciones de quienes tienen no tienen un ingreso (0) de la variable p6_a a la variable ingreso
#datos sdem
datos2 <- sdem %>%
select(salario, n_hog, h_mud, tipo, n_pro_viv) %>%
mutate(observacion = 1:n()) #aƱado esta columna para que funcione como llave al unir las dos bases
#Unir las dos bases de datos
df = datos_nuevo %>%
left_join(datos2, by = "observacion")
df <- df %>% rename(rururb = ur)
df <- df %>%
mutate(p6c = as.numeric(p6c),
p6c = p6c*salario) #multiplico el nĆŗmero de salarios mĆnimos por 5186 (variable de salario mĆnimo)
df$p6b2[is.na(df$p6b2)] <- df$p6c[is.na(df$p6b2)] #pasĆ© los valores del ingreso calculado por el salario mĆnimo de la variable p6c a la variable ingreso p6b2
#Elimino las observaciones de personas que no respondieron la pregunta sobre ingreso ni sobre el salario mĆnimo, y que no son trabajadores sin pago
#Calcular el ingreso laboral per cƔpita
#.*************************************aquà me trabé********************************
#Lo que habĆa pensado era encontrar una clave Ćŗnica por hogar para poder hacer la suma de ingresos por hogar y dividirlo entre el nĆŗmero de personas en ese hogar. Sin embargo, no encontrĆ© cómo se conformaba. Entonces, a pesar de hacer varios intentos tratando de agrupar por otras variables, no pude avanzar con mi código. En consiguiente, consultĆ© el código del CONEVAL, y solo modifiquĆ© los trimestres y la ruta hacia las bases de datos para obtener el valor de la pobreza laboral para el T2 2022. Fuera de esto, todo el código siguiente es del coneval:
ut221 <- 1777.32 #TambiƩn considerƩ datos del T2 2021 para poder hacer comparaciones con la grƔfica del T2 2022
rt221 <- 1358.6
ut222 <- 1990.99
rt222 <- 1530.41
tx <- {c("t120","t320","t420",
"t121","t221","t321","t421",
"t122","t222")}
fx.ingreso <- function(x) {
if(x %in% c("t320","t420","t121","t221")){
df <- read_csv("01_datod/conjunto_de_datos_coe2_enoen_2022_2t.csv") #cambie la manera en la que importaba las bases
colnames(df) <- tolower(colnames(df))
df <- mutate(df, foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
tipo, #ca, #no encuentra la variable ca
str_pad(mes_cal,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(foliop, p6c, p6b2, p6_9, p6a3)
df2 <- read_csv("01_datod/conjunto_de_datos_sdem_enoen_2022_2t.csv")
colnames(df2) <- tolower(colnames(df2))
df2 <- dplyr::filter(df2, r_def==0 & (c_res==1 | c_res==3) ) %>%
rename(fac=fac_tri, t_loc=t_loc_tri) %>%
mutate(folioh = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud, tipo, #ca,
str_pad(mes_cal,2, "left", pad = "0"),
sep=""),
foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
tipo, #ca,
str_pad(mes_cal,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(folioh, foliop, salario, t_loc,
fac, clase1, clase2, ent, ingocup, mun)}
else{
if(x %in% c("t321","t421","t122","t222")){
df <- read_csv("01_datod/conjunto_de_datos_coe2_enoen_2022_2t.csv")
colnames(df) <- tolower(colnames(df))
df <- mutate(df, foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
tipo,
str_pad(mes_cal,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(foliop, p6c, p6b2, p6_9, p6a3)
df2 <- read_csv("01_datod/conjunto_de_datos_sdem_enoen_2022_2t.csv")
colnames(df2) <- tolower(colnames(df2))
df2 <- dplyr::filter(df2, r_def==0 & (c_res==1 | c_res==3) ) %>%
rename(fac=fac_tri, t_loc=t_loc_tri) %>%
mutate(folioh = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud, tipo,
str_pad(mes_cal,2, "left", pad = "0"),
sep=""),
foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
tipo,
str_pad(mes_cal,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(folioh, foliop, salario, t_loc,
fac, clase1, clase2, ent, ingocup, mun)}
else{
df <- read_csv("01_datod/conjunto_de_datos_coe2_enoen_2022_2t.csv")
colnames(df) <- tolower(colnames(df))
df <- mutate(df,
foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(foliop, p6c, p6b2, p6_9, p6a3)
df2 <-read_csv("01_datod/conjunto_de_datos_sdem_enoen_2022_2t.csv")
colnames(df2) <- tolower(colnames(df2))
df2 <- dplyr::filter(df2, r_def==0 & (c_res==1 | c_res==3) ) %>%
mutate(folioh = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
sep=""),
foliop = paste0(str_pad(cd_a,2, "left", pad = "0"),
str_pad(ent,2, "left", pad = "0"),
str_pad(con,5, "left", pad = "0"),
str_pad(v_sel,2, "left", pad = "0"),
n_hog, h_mud,
str_pad(n_ren,2, "left", pad = "0"),
sep="")) %>%
dplyr::select(folioh, foliop, salario, t_loc,
fac, clase1, clase2, ent, ingocup, mun)
}}
df <- left_join(df2, df, by="foliop") %>%
mutate(ocupado = ifelse(clase1 == 1 & clase2 == 1, 1, 0),
p6b2 = as.numeric(p6b2),
p6c = as.numeric(p6c))
df$p6b2[df$p6b2==999998 | df$p6b2==999999] <- NA
# Recuperaci?n de ingresos por rangos de salarios m?nimos
df <- mutate(df, ingreso = if_else(ocupado == 0 | (is.na(p6b2) & (p6_9==9 | p6a3=="3")), 0, p6b2))
sub <- which(is.na(df$p6b2) & (df$p6c==1))
df$ingreso[sub] <- 0.5 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==2)
df$ingreso[sub] <- 1 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==3)
df$ingreso[sub] <- 1.5 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==4)
df$ingreso[sub] <- 2.5 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==5)
df$ingreso[sub] <- 4 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==6)
df$ingreso[sub] <- 7.5 * df$salario[sub]
sub <- which(is.na(df$p6b2) & df$p6c==7)
df$ingreso[sub] <- 10 * df$salario[sub]
df <- mutate(df, factor = fac,
tamh=1,
rururb = if_else((as.numeric(t_loc)>=1 & as.numeric(t_loc)<=3), 0, 1),
ent = as.numeric(ent),
mv = if_else(is.na(ingreso) & ocupado == 1, 1, 0)) %>%
dplyr::select(folioh, tamh, ingreso, rururb, factor, ent, mun, mv, ocupado) %>%
group_by(folioh) %>% summarise(tamh.sm = sum(tamh),
ingreso.sm = sum(ingreso),
mv.sm = sum(mv),
ocupado.sm = sum(ocupado),
rururb.mn = mean(rururb),
factor.mn = mean(factor),
ent.mn = mean(ent),
mun=first(mun)) %>%
rename(tamh = tamh.sm, ingreso = ingreso.sm, mv = mv.sm, ocupado = ocupado.sm,
rururb = rururb.mn, factor = factor.mn, ent = ent.mn) %>%
dplyr::select(folioh, tamh, ingreso, mv, ocupado, rururb, factor, ent, mun) %>%
mutate(mv = if_else(!is.na(mv) & mv > 0, 1, 0)) %>%
#Se elimina a los hogares que tienen valores perdidos en ingreso
dplyr::filter(mv != 1)
#Comparación del ingreso del hogar con la lĆnea de pobreza rural/urbana
nombre <- paste0("lp", x, sep ="")
df <- mutate(df, factorp = df$factor * df$tamh,
pob = if_else(rururb == 0,
if_else((ingreso / tamh) < get(paste0("u", x, sep="")),1,0),
if_else((ingreso / tamh) < get(paste0("r", x, sep="")),1,0)))
sd <- as_survey_design(df, weights = factorp)
df.rururb <- sd %>% group_by(rururb) %>%
summarise(pob_mean = survey_mean(pob, na.rm=TRUE))
df_r <- data.frame(x = 1)
df_r$TLP <- summarise(sd, pob_mean = survey_mean(pob))$pob_mean[1] * 100
df_r$TLPu <- df.rururb$pob_mean[1] * 100
df_r$TLPr <- df.rururb$pob_mean[2] * 100
df.ent <- group_by(sd, ent) %>%
summarise(pob_mean = survey_mean(pob))
for(y in 1:32) {
nombre <- paste0("TLP", y, sep ="")
df_r[[nombre]] <- df.ent$pob_mean[y] * 100
}
df_r <- dplyr::select(df_r, starts_with("TLP"))
df_r$periodo <- x
df_r <- dplyr::select(df_r, periodo, starts_with("TLP"))
print(paste("Fin del c?lculo para el periodo ", x, sep =""))
return(df_r)
}
#Una vez obtenidos los datos, procedo a graficarlos
#Estima y visualiza el total y la proporción de personas en pobreza laboral para el 2T 2022.
t222 <- fx.ingreso("t222")
TLP <- as_tibble(t222) %>% #creo un tibble a partir de los datos obtenidos por la función para el T2 2022
select(TLP, TLPu, TLPr) %>%
pivot_longer(cols = c("TLP", "TLPu", "TLPr")) %>%
mutate(name = if_else(name== "TLP", "TLP nacional",
ifelse(name == "TLPu", "TLP urbano",
"TLP rural")))
#De acuerdo con los resultados obtenidos, es posible observar que la proporción de personas en pobreza laboral para el 2T 2022 es de 38.23%; en el Ômbito urbano esta proporción es de 33.91% y en el rural es de 51.75%
TLP %>%
mutate(name = factor(name, c("TLP rural", "TLP urbano", "TLP nacional"))) %>%
ggplot(aes(name,
value)) +
geom_col(aes(fill = name),
width = .4) +
labs(x= "",
y = "",
title = "Porcentaje de la población en pobreza laboral",
subtitle = "Datos del segundo trimestre de 2022",
caption = "Elaboración con datos del ITLP-IS, CONEVAL")+
theme(legend.position = "none",
axis.ticks = element_blank(),
panel.background = element_rect(fill = "white"),
text = element_text(size = 17))+
scale_fill_manual(values = c("orchid3","mediumpurple", "slateblue1"))+
scale_y_continuous(labels = function(x) paste0(x, "%")) +
geom_text(aes(label = round(value, digits = 2)),
color ="white",
size = 6,
hjust = 1) +
coord_flip()
t221 <- fx.ingreso("t221") #graficaré también este trimestre para que sirva de comparación en los comentarios de la grÔfica
TLP21 <- as_tibble(t221) %>%
select(TLP, TLPu, TLPr) %>%
pivot_longer(cols = c("TLP", "TLPu", "TLPr")) %>%
mutate(name = if_else(name== "TLP", "TLP nacional",
ifelse(name == "TLPu", "TLP urbano",
"TLP rural")))
TLP21 %>%
mutate(name = factor(name, c("TLP rural", "TLP urbano", "TLP nacional"))) %>%
ggplot(aes(name,
value)) +
geom_col(aes(fill = name),
width = .4) +
labs(x= "",
y = "",
title = "Porcentaje de la población en pobreza laboral",
subtitle = "Datos del segundo trimestre de 2022",
caption = "Elaboración con datos del ITLP-IS, CONEVAL")+
theme(legend.position = "none",
axis.ticks = element_blank(),
panel.background = element_rect(fill = "white"),
text = element_text(size = 17))+
scale_fill_manual(values = c("orchid3","mediumpurple", "slateblue1"))+
scale_y_continuous(labels = function(x) paste0(x, "%")) +
geom_text(aes(label = round(value, digits = 2)),
color ="white",
size = 6,
hjust = 1) +
coord_flip()
En MƩxico, en
el segundo trimestre de este aƱo es posible observar que 38.23% de la
población no puede adquirir una canasta bÔsica con el ingreso laboral
del hogar en el que habita. Ahora bien, para tener un margen de
comparación, la grÔfica siguiente muestra el mismo trimestre de 2021, y
es posible observar que para este año aumenté en 4.14% la población que
no puede adquirir la canasta bÔsica. Al hacer una distinción entre rural
y urbano es posible apreciar que en localidades rurales el porcentaje de
la población que no puede adquirir la canasta bÔsica es mayor que en
localidades urbanas. Del mismo modo, si se comparan los porcentajes con
el mismo trimestre de 2021, se puede observar que hubo un aumento de
4.24% de la población que no puede adquirir la canasta bÔsicamente en
localidades urbanas y para localidades rurales este aumento fue de
3.83%.
Si bien, las
grÔficas permiten observar que la pobreza laboral aumentó respecto al
aƱo anterior, es preciso reconocer que este aumento no es ligero. Al
final, el porcentaje de la población en pobreza laboral es alto y los
esfuerzos institucionales tambiƩn deben estar centrados en trabajar para
reducir este porcentaje. Por lo que el trabajo de visualizar estos datos
es un primer paso a ese objetivo.
Ejercicio 2
Instrucciones: estima, compara y visualiza los meses que tardó en recuperarse la actividad económica en la crisis de 2008 y la crisis de 2020
class(actividad_eco$period) #revisar el tipo de variable en la que estaba el periodo
crisis <- actividad_eco %>%
filter(indicator == 496216) %>% #De acuerdo con la pÔgina del INEGI cuando selecciono el total de la serie desestacionalizada, en la información el establecen que el "KEY es 496216"
select(value, period) %>%
mutate(period = as.yearmon(period, format="%Y/%m")) %>% #transformƩ la variable periodo que era del tipo character a formato "fecha" para separar el mes y el aƱo
mutate(aƱo = lubridate::year(period),
mes = lubridate::month(period)) %>%
filter(aƱo ==2008 | aƱo == 2009 | aƱo == 2010 | aƱo == 2011 | aƱo == 2020 | aƱo == 2021 | aƱo==2022,
!period == "Jan 2008" & !period == "Feb 2008" & !period == "Mar 2008" & !period == "Apr 2008" & !period == "May 2008" & !period == "Jun 2008" & !period == "Jul 2008" & !period == "Aug 2008" & !period == "Feb 2011" & !period == "Mar 2011" & !period == "Apr 2011" & !period == "May 2011" & !period == "Jun 2011" & !period == "Jul 2011" & !period == "Aug 2011" & !period == "Sep 2011" & !period == "Oct 2011" & !period == "Nov 2011" & !period == "Dec 2011" & !period == "Jan 2020") %>% #como la crisis de 2008 comienza en septiembre, elimino los meses anteriores de 2008.
mutate(aƱo_2 = recode(aƱo, "2008" = "2008", #Creo una variable que contemple solo 2008 y 2020 para tener dos lĆneas graficadas por aƱo.
"2009" = "2008",
"2010" = "2008",
"2011" = "2008",
"2020" = "2020",
"2021" = "2020",
"2022" = "2020")) %>%
mutate(period_2 = as.character(period),
period_2 = as.numeric(recode(period_2, #Cambio el nombre de cada mes por el número de mes que le corresponde a partir del inicio de cada crisis económica
"Sep 2008" = "0",
"Oct 2008" = "1",
"Nov 2008" = "2",
"Dec 2008" = "3",
"Jan 2009" = "4",
"Feb 2009" = "5",
"Mar 2009" = "6",
"Apr 2009" = "7",
"May 2009" = "8",
"Jun 2009" = "9",
"Jul 2009" = "10",
"Aug 2009" = "11",
"Sep 2009" = "12",
"Oct 2009" = "13",
"Nov 2009" = "14",
"Dec 2009" = "15",
"Jan 2010" = "16",
"Feb 2010" = "17",
"Mar 2010" = "18",
"Apr 2010" = "19",
"May 2010" = "20",
"Jun 2010" = "21",
"Jul 2010" = "22",
"Aug 2010" = "23",
"Sep 2010" = "24",
"Oct 2010" = "25",
"Nov 2010" = "26",
"Dec 2010" = "27",
"Jan 2011" = "28",
"Feb 2020" = "0",
"Mar 2020" = "1",
"Apr 2020" = "2",
"May 2020" = "3",
"Jun 2020" = "4",
"Jul 2020" = "5",
"Aug 2020" = "6",
"Sep 2020" = "7",
"Oct 2020" = "8",
"Nov 2020" = "9",
"Dec 2020" = "10",
"Jan 2021" = "11",
"Feb 2021" = "12",
"Mar 2021" = "13",
"Apr 2021" = "14",
"May 2021" = "15",
"Jun 2021" = "16",
"Jul 2021" = "17",
"Aug 2021" = "18",
"Sep 2021" = "19",
"Oct 2021" = "20",
"Nov 2021" = "21",
"Dec 2021" = "22",
"Jan 2022" = "23",
"Feb 2022" = "24",
"Mar 2022" = "25",
"Apr 2022" = "26",
"May 2022" = "27",
"Jun 2022" = "28")))
De acuerdo con la información de la IGAE la base es 2013 (2013 = 100). Entonces, lo que hago a continuación en el primer mutate es normalizar la serie para que el periodo de septiembre 2008 sea igual a 100, y el de febrero 2020 sea igual a 100. Para hacer lo anterior, en el caso de 2008, dividà 92.03789 (valor de septiembre 2008) entre 100, y obtuve .9203789. Para 2020, dividà 111.76854 (valor de febrero 2020) entre 100 y obtuve 1.1176854. Estos últimos valores dividen al resto de las observaciones para los meses posteriores dependiendo del año.
A continuación procedo a graficar
crisis %>%
mutate(value_normalizado = case_when(aƱo_2 == 2008 ~ value/.9203789,
aƱo_2 == 2020 ~ value/1.1176854)) %>%
ggplot(aes(x =period_2,
y=value_normalizado)) +
geom_line(aes(col = aƱo_2),
size = 2) +
geom_point(aes(col = factor(aƱo_2)),
size = 3) +
scale_x_continuous(breaks = seq(0,28,2)) +
labs(title = "Evolución de la actividad económica en las crisis de 2008 y 2020 en México.",
subtitle = "Serie desestacionalizada. Para 2008, Ćndice septiembre 2008 = 100; para 2020, Ćndice febrero 2020 = 100.",
caption = "Elaboración propia con datos del INEGI.",
y = "Ćndice",
x = "NĆŗmero de mes a partir del inicio de la crisis") +
theme_bw() +
geom_hline(yintercept = 100, linetype = "dashed", col = "red3", size = 2) +
scale_color_manual(values = c("gray60", "cadetblue"))+
theme(plot.title = element_text(color = "slateblue3", face = "bold"),
plot.subtitle = element_text(color = "gray45"),
legend.position = "top",
legend.title = element_blank(),
text = element_text(size = 18))
Comentarios de la grƔfica A partir de los datos del
Indicador Global de la Actividad Económica (IGAE) que publica el INEGI
es posible observar la evolución de la economĆa en dos momentos: la
crisis financiera de 2008 y la crisis por la pandemia en 2020. La
grƔfica anterior permite analizar estos dos momentos. Para la crisis de
2008 y 2020, se toman como base los niveles económicos de septiembre de
2008 y febrero 2020, respectivamente. Por ello, en la grƔfica se observa
que los puntos de partida para cada lĆnea se encuentran en 100; es
decir, se normalizo la serie para que el nivel económico de septiembre
2008 y febrero 2020 fuera igual a 100. Con esto, es posible realizar una
comparación de los meses posteriores al inicio de cada crisis.
La grĆ”fica anterior muestra que en el mismo rango de 28 meses desde el inicio de la crisis, la economĆa mexicana logró recuperarse de la crisis de 2008 en 23 meses. Es decir, regresó a los mismos niveles de actividad económica previos a la crisis (septiembre 2008). Mientras tanto, parece que la economĆa mexicana despuĆ©s de 28 meses desde el inicio de la crisis en 2020 no ha logrado recuperarse a niveles pre-pandemia (febrero 2020). Si bien, es posible observar que habĆa un crecimiento constante desde el mes 20 al 26, desafortunademente se observa una caĆda importante en el mes 27 (mayo 2022) y aĆŗn mĆ”s en el mes 28 (junio 2022).
En la crisis de 2008, desde el mes 11 se observa que hubo un crecimiento constante en la actividad económica, lo que resultó en una recuperación 12 meses después. Al contrario, parece que la crisis de 2020 tiene altas y bajas. Por lo que hay mayor incertidumbre sobre el comportamiento de la actividad económica en los próximos meses.
Nota: No me queda claro la razón por la que en el mes 1 despuĆ©s de la crisis de 2008 se observa un crecimiento por encima de septiembre 2008. RevisĆ© la base de datos y efectivamente en octubre 2008 se observa un Ćndice en la actividad económica mĆ”s alto por poco que en septiembre 2008.
Ejercicio 3
Nota: no logrĆ© calcular el ITLP-IS con los datos de la ENOE, entonces descarguĆ© la base de datos con la información del Ćndice para el periodo de 2005 a T4 2020. De esta liga descarguĆ© los datos
pobreza_laboral <- pobreza_laboral %>%
rename("aƱo" = "anio") %>%
filter(aƱo != 2005 & aƱo !=2006 & aƱo !=2007 & aƱo !=2008 & aƱo !=2009,
tlp !="ND") #Debido a la pandemia el levantamiento de la encuesta fue suspendido en 2020, entonces filtro para que no tomƩ en cuenta los datos del T2 de 2020 ya que las observaciones aparecen como "ND"
#Aquà probé el código para el estado de Aguascalientes antes de intentar hacer el loop
pobreza_laboral %>%
filter(ent == "Aguascalientes") %>%
ggplot(aes(trimestre,
as.numeric(tlp))) +
geom_line() +
geom_point()+
theme_classic()+
scale_y_continuous(breaks = seq(0,43,5),
labels = function(x) paste0(x, "%")) +
facet_wrap(~aƱo, strip.position = "bottom", scales = "free_x", ncol = 11) +
labs(x = "",
y = "",
title = "Evolución de la pobreza laboral, 2010-2020")+
theme(panel.spacing = unit(0, "lines"),
strip.background = element_blank(),
strip.placement = "outside")+
geom_area(fill= "plum3")
#grƔficas en bucle - 32 estados
estado <- unique(pobreza_laboral$ent)
estado_seleccionado <- "Aguascalientes"
for (estado_seleccionado in estado){
grafica_estado <- pobreza_laboral %>%
filter(ent == estado_seleccionado)
# Visualización de datos ----
graficax <- grafica_estado %>%
ggplot(aes(trimestre,
as.numeric(tlp))) +
geom_line() +
geom_point()+
theme_classic()+
scale_y_continuous(breaks = seq(0,60,5),
labels = function(x) paste0(x, "%")) +
facet_wrap(~aƱo, strip.position = "bottom", scales = "free_x", ncol = 11) +
labs(x = "",
y = "")+
theme(panel.spacing = unit(0, "lines"),
strip.background = element_blank(),
strip.placement = "outside")+
ggtitle(paste0("Evolución de la pobreza laboral en ",estado_seleccionado ,", 2010-2020"))+
geom_area(fill= "plum3")
Guardar imagenes en la carpeta 03_grƔficas
ggsave(str_c("03_graĢficas/mapa_",estado_seleccionado,".png"),
width = 10,
height = 6)
print(str_c("Ya imprimĆ el estado ", estado_seleccionado))
}
Aquà estÔn todas las grÔficas: