#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()

Trimestre_2022 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%.

Trimestre_2021 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)) 

Actividad_eco 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_grá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:

Aguascalientes BCS BC Campeche Chiapas Chihuahua CDMX Coahuila Colima Durango

Edomex Guanajuato Guerrero Hidalgo Jalisco MichoacƔn Morelos Nayarit NuevoLeon Oaxaca

Puebla QuerƩtaro QuintanaRoo SLP Sinaloa sonora Tabasco Tlaxcala Veracruz YucatƔn Zacatecas