Este informe proporciona un análisis sobre la informalidad legal en Argentina, comparada con la situación en América Latina. A través de una serie visualizaciones, exploramos la evolución de la tasa de informalidad legal desde 2016 hasta 2023, las diferencias regionales en Argentina y las brechas de género y edad. Este análisis incluye:
En esta sección, analizamos la tasa de informalidad legal en Argentina, Chile y Uruguay, utilizando datos desde 199 hasta 2022 para obtener una visión clara de las diferencias entre países.
library(ggplot2)
library(sf)
library(dplyr)
library(tidyverse)
library(lubridate)
library(ggmap)
library(gganimate)
library(plotly)
library(gifski)
library(foreign)
library(readxl)
library(fixest)
library(readr)
library(forcats)
library(leaflet)
library(tidygeocoder)
library(osrm)
library(lwgeom)
library(ggspatial)
library(magick)
#Cargar archivos
Datos1 <- read.csv("tasa_informalidad_legal_latam.csv", stringsAsFactors = TRUE,
encoding="latin1")
Datos2 <- read.csv("tasa_2022.csv", stringsAsFactors = TRUE,
encoding="latin1")
Data_geografica <- st_read("world-administrative-boundaries.shp",
stringsAsFactors = TRUE,
options = "ENCODING=latin1")
str(Data_geografica)
#Grafico 1: Tasa de informalidad por país en América Latina (2022)
# 1. Filtrar y preparar los datos para el año 2022
datos_resumen_2022 <- Datos2 %>%
filter(anio == 2022) %>%
group_by(iso3, tipo_informalidad) %>%
summarise(valor = mean(valor, na.rm = TRUE)) %>% # Resumir el valor si hay más de un registro por país
arrange(iso3, tipo_informalidad) # Ordenar los datos por país y tipo de informalidad
# 2. Crear el gráfico con barras y puntos
ggplot(datos_resumen_2022, aes(x = reorder(iso3, valor))) +
geom_col(data = subset(datos_resumen_2022, tipo_informalidad == "Informalidad (definición productiva)"),
aes(y = valor, fill = iso3), show.legend = FALSE, width = 0.6) + # Barras para informalidad productiva
geom_point(data = subset(datos_resumen_2022, tipo_informalidad == "Informalidad (definición legal)"),
aes(y = valor), size = 3, color = "#FF1493") + # Puntos para informalidad legal
geom_text(data = subset(datos_resumen_2022, tipo_informalidad == "Informalidad (definición productiva)"),
aes(y = valor, label = round(valor, 2)), vjust = -0.5, size = 3) + # Etiquetas de las barras
labs(title = 'Tasa de Informalidad por País en América Latina (2022)',
x = "Código ISO3", y = "Tasa de Informalidad") +
scale_fill_manual(values = colorRampPalette(c("#F5C6D0", "#F27B7E", "#BF4C6C"))(n = length(unique(datos_resumen_2022$iso3)))) + # Paleta rosada
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), # Centrar y aumentar el tamaño del título
axis.text.x = element_text(angle = 45, hjust = 1, size = 10), # Inclinar etiquetas de país
axis.text.y = element_text(size = 10), # Ajustar el tamaño de las etiquetas del eje y
axis.title.x = element_text(size = 12), # Ajustar el tamaño del título del eje x
axis.title.y = element_text(size = 12) # Ajustar el tamaño del título del eje y
)
Argentina se encuentra entre los países de América Latina con menores tasas de informalidad, sin embargo, desde la década de 1990, la informalidad tuvo un peor desempeño comparado con la región.
#Gráfico 2
#Filtrar únicamente el continente americano
Data_geografica <- filter(Data_geografica, continent == "Americas")
#Unir la data geográfica con mis datos
union <- left_join(Data_geografica,Datos1, by = c("iso3"="iso3"))
#Filtrar valores nulos de la union
union2 <- union %>% filter(!is.na(valor))
#Datos filtrados Chile, Brasil y Argentina
datos_filtrados<- union2 %>%
filter(iso3 %in% c("BRA", "CHL", "ARG"))
#Dejar solo años que tengan todos los países
datos_filtrados %>% filter(pais == "Chile") %>% distinct(anio)
anios_chile <- datos_filtrados %>% filter(pais == "Chile") %>% distinct(anio)
#Datos de sudamerica
mapa <- union2 %>%
filter(region == "South America") %>%
group_by(iso3) %>%
summarise(total = n())
#Comparación con Chile y Brasil
datos_filtrados_anio <- union2 %>%
filter(iso3 %in% c("ARG", "CHL", "BRA")) %>%
filter(anio %in% anios_chile$anio & anio != 1990 & anio != 2000)
#Graficar
ggplot() +
geom_sf(data = datos_filtrados_anio, aes(fill=valor))+
facet_wrap(~anio)+
scale_fill_gradient(low = "white", high = "deeppink3") + # Cambiamos la escala de color a rosado
theme(strip.text = element_text(size = 6),
plot.margin = margin(10, 10, 10, 10))
# #Gráfico dinámico de Argentina,Chile y Brasil
# mapa_argentina <- ggplot() +
# geom_sf(data = datos_filtrados_anio, aes(fill = valor), color = "white") +
# geom_sf(data = datos_filtrados_anio, fill = NA, color = "black", size = 0.2) + # Límites de las provincias
# scale_fill_gradient(low = "#d3e1e4", high = "#d63372") +
# labs(
# title = "Evolución de la tasa de informalidad laboral en Argentina, Chile y Brasil",
# subtitle = "Año: {frame_time}",
# fill = "Tasa de informalidad laboral"
# ) +
# theme_light() +
# coord_sf(expand = FALSE) +
# theme(
# plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
# plot.subtitle = element_text(hjust = 0.5, size = 10),
# plot.margin = margin(1, 1, 1, 1, "cm"),
# legend.position = "right",
# legend.title = element_text(size = 10),
# legend.text = element_text(size = 8)
# ) +
# transition_time(anio) +
# ease_aes('linear')
#
# animacion_mejorada2 <- animate(mapa_argentina, renderer = gifski_renderer(), # Cambiamos aquí también
# duration = 8, fps = 1, width = 800, height = 600)
#
# animacion_mejorada2
#
#
# # Guardar la animación como GIF
# # Guardar la animación como GIF
# anim_save("mapa_informalidad.gif", animation = animacion_mejorada2)
En esta sección, exploramos las tasas de informalidad legal en diferentes provincias de Argentina, identificando las provincias con las tasas más altas y más bajas.
provincia_informalidad <- read.csv ("tasa_informalidad_provincia_definicion_productiva_legal.csv", #ruta del archivo
stringsAsFactors = TRUE, #TRUE para que R tome el texto como categoría
encoding="UTF-8", sep=";") #codificación del archivo
str(provincia_informalidad)
dim(provincia_informalidad)
summary(provincia_informalidad)
informalidad_legal <- provincia_informalidad %>%
filter(tipo_informalidad == "Informalidad (definición legal)")
# Filtrar los datos para excluir la provincia "Total País"
informalidad_legal <- informalidad_legal %>%
filter(prov_desc != "Total país")
# Crear la variable región
informalidad_legal <- informalidad_legal %>%
mutate(region = case_when(
prov_desc %in% c("Buenos Aires", "CABA", "Entre Ríos", "Santa Fe", "Córdoba") ~ "Centro",
prov_desc %in% c("Chaco", "Corrientes", "Formosa", "Misiones") ~ "Noreste",
prov_desc %in% c("Catamarca", "Jujuy", "La Rioja", "Salta", "Santiago del Estero", "Tucumán") ~ "Noroeste",
prov_desc %in% c("Chubut", "La Pampa", "Neuquén", "Río Negro", "Santa Cruz", "Tierra del Fuego") ~ "Patagonia",
prov_desc %in% c("Mendoza", "San Juan", "San Luis") ~ "Cuyo"))
# Promediar tasa por región
informalidad_region <- informalidad_legal %>%
group_by(region, anio) %>%
summarise(valor_promedio = mean(valor))
# Verificar los datos
head(informalidad_region)
# Crear el gráfico base con ggplot2, incluyendo gganimate para la transición
grafico_informalidad <- ggplot(informalidad_region, aes(x = anio, y = valor_promedio, color = region, group = region)) +
geom_line(size = 1.2, linetype = "solid") + # Aumenta el grosor de la línea y usa un tipo de línea sólido
geom_point(size = 3, shape = 21, fill = "white") + # Puntos con borde de color y relleno blanco
scale_color_brewer(palette = "Dark2") + # Usar una paleta de colores más vistosa y contrastante
labs(subtitle = "Período 2016 - 2023",
x = "Año", y = "Tasa de Informalidad (%)",
color = "Región") +
theme_minimal(base_size = 15) + # Aumenta el tamaño base de los elementos
theme(plot.subtitle = element_text(hjust = 0.5, size = 14), # Centra el subtítulo
legend.position = "top", # Coloca la leyenda en la parte superior
legend.title = element_text(face = "bold"), # Título de la leyenda en negrita
legend.text = element_text(size = 12), # Tamaño de texto de la leyenda
axis.title = element_text(face = "bold"), # Ejes en negrita
axis.text = element_text(size = 12), # Aumenta el tamaño del texto de los ejes
plot.margin = unit(c(1, 2, 1, 2), "cm") # Márgenes equilibrados para centrar el gráfico
) +
transition_reveal(along = anio) # Define la animación a lo largo del tiempo
# # Crear la animación
# animacion <- animate(grafico_informalidad, renderer = gifski_renderer(),
# duration = 10, fps = 20, width = 800, height = 600)
#
# animacion
#
# # Guardar la animación como GIF
# anim_save("grafico_informalidad.gif", animation = animacion)
Evolución de la Tasa de informalidad legal desde el 2016 al 2023
La Patagonia y CABA son las de mayor formalidad, mientras que las de
mayor informalidad están en el norte del país.
mapa <- st_read("solo_arg.shp",
stringsAsFactors = TRUE)
mapa <- mapa %>%
mutate(provincia = as.character(provincia)) %>%
mutate(provincia = ifelse(provincia == "Ciudad Autónoma de Buenos Aires", "CABA", provincia))
# Cambiar el nombre de una variable
mapa <- mapa %>%
rename(prov_desc = provincia)
Mapa_provincial <- left_join(mapa, informalidad_legal,
by = "prov_desc")
head(Mapa_provincial)
# Verifica la validez de las geometrías
valididades <- st_is_valid(Mapa_provincial)
print(valididades)
# Filtra las geometrías no válidas
Mapa_provincial_invalidos <- Mapa_provincial[!valididades, ]
print(Mapa_provincial_invalidos)
# Corrige las geometrías no válidas
Mapa_provincial <- st_make_valid(Mapa_provincial)
# Verifica y corrige los polígonos
Mapa_provincial$geometry <- st_make_valid(Mapa_provincial$geometry)
grafico_mapa_animado <- ggplot(data = Mapa_provincial) +
geom_sf(aes(fill = valor), color = NA) +
labs(title = "Año: {frame_time}", # Incluye el año en el subtítulo
fill = "Tasa de Informalidad legal") +
scale_fill_gradient(low = "#d3e1e4", high = "#d63372") + # De rosado a rojo
theme_light() +
coord_sf(expand = FALSE) +
theme(
plot.title = element_text(hjust = 0.5, size = 15, face = "bold"), # Centra el título
plot.margin = margin(1, 1, 1, 1, "cm") # Ajusta los márgenes del gráfico
) +
transition_time(anio) + # Define la transición por el año
ease_aes('linear') # Define el tipo de animación
# # Crear la animación
# animacion2 <- animate(grafico_mapa_animado, renderer = gifski_renderer(),
# duration = 8, fps = 1, width = 800, height = 600)
#
# animacion2
# # Guardar la animación como GIF
# anim_save("mapa_informalidad_animado.gif", animation = animacion2)
Provincias con mayor tasa de informalidad: Chaco, Santiago del Estero, Formosa. Provincias con menor tasa de informalidad: Santa Cruz, CABA, Tierra del Fuego.
Esta sección analiza la brecha de informalidad entre géneros en América Latina, destacando las diferencias significativas.
Data <- read_csv("brecha_tasa_informalidad_genero_latam_2000_2021.csv")
Data2<- select(Data, 1, 4, 5)
datos_ordenados <- Data2[order(Data2$brecha), ]
datos_ordenados <- datos_ordenados %>%
arrange(brecha) %>%
mutate(iso3 = factor (iso3, levels = unique(iso3[order(brecha)])))
ggplot(datos_ordenados) +
geom_bar(aes(x = iso3, fill = as.factor(circa), weight = brecha), position = position_dodge()) +
scale_fill_manual(values = c("turquoise4", "deeppink3")) +
labs(title = "Brechas de género en la tasa de informalidad en América Latina-2000 vs. 2021",
fill = "Año",
x = "País",
y = "Brecha de Género %",
caption = "Fuente: Argendata")
En gran parte de región, la brecha entre hombres y mujeres ha tendido a reducirse a lo largo del tiempo. Argentina muestra tanto para el año 2000 como para el año 2021, ser el país con la mayor brecha de sexo en mujeres en la informalidad laboral de la región. En algunos países de la región como el salvador, méxico, ecuador, bolivia y paraguay, la informalidad es mayor en los hombres.
Finalmente, examinamos la brecha de informalidad por sexo y edad en Argentina, evaluando cómo estas brechas han evolucionado a lo largo del tiempo.
tasa_informalidad_argentina_genero <- read_csv("tasa_informalidad_argentina_genero.csv")
# Filtrar los datos para mostrar solo la brecha
df_brecha <- tasa_informalidad_argentina_genero[tasa_informalidad_argentina_genero$apertura_sexo == "Brecha",]
# Multiplicar la variable 'valor' por -1
df_brecha$valor <- df_brecha$valor * -1
# Filtrar los datos para Mujer y Varón
df_mujer_varon <- tasa_informalidad_argentina_genero[tasa_informalidad_argentina_genero$apertura_sexo %in% c("Mujer", "Varón"),]
# Crear el gráfico de líneas para Mujer y Varón
# # Crear el gráfico de líneas para Mujer y Varón
# p <- ggplot(df_mujer_varon, aes(x = anio, y = valor, color = apertura_sexo, group = apertura_sexo)) +
# geom_line(size = 1) +
# geom_point(size = 2) +
# labs(title = "Evolución de la Apertura por Sexo a lo largo de los Años",
# x = "Año",
# y = "Valor (%)",
# color = "Grupo") +
# scale_y_continuous(labels = scales::percent) + # Convertir valores del eje y a porcentaje
# theme_minimal() +
# transition_reveal(along = anio) +
# # Añadir el valor de la Brecha como un texto animado en un cuadro gris con letra roja
# geom_label(data = tasa_informalidad_argentina_genero[tasa_informalidad_argentina_genero$apertura_sexo == "Brecha",],
# aes(x = anio, y = valor + 0.1, # Ajusta el valor para que el texto esté por encima de la línea
# label = paste("Año:", anio, "\nBrecha:", scales::percent(round(valor, 2))),
# fill = "gray"), # Color de fondo
# color = "red", # Color del texto
# size = 4,
# label.size = 0.25, # Tamaño del borde del cuadro
# hjust = 0.5, vjust = 0.5) +
# theme(legend.position = "bottom")
#
# p
# # Renderizar y visualizar la animación
# anim <- animate(p, duration = 15, fps = 20, renderer = gifski_renderer())
# # Guardar la animación en un archivo GIF
# anim_save("animacion_mujer_varon_brecha.gif", animation = anim)
#########################
library(readr)
tasa_informalidad_legal_por_edad_sexo <- read_csv("tasa_informalidad_legal_por_edad_sexo.csv")
# Filtrar solo los datos de Brecha
df_brecha_mujeres_edad <- tasa_informalidad_legal_por_edad_sexo %>%
filter(apertura_sexo == "femenino")
df= df_brecha_mujeres_edad
# Asegúrate de que `anio` sea un factor ordenado
df$anio <- factor(df$anio, levels = sort(unique(df$anio)))
# Crear un gráfico con gradiente de color para las líneas
ggplot(df, aes(x = edad, y = tasa_informalidad_legal, group = anio, color = as.numeric(anio))) +
geom_line(size = 1) +
scale_color_gradient(low = "lightblue", high = "darkblue") +
labs(x = "Edad", y = "Tasa de Informalidad Legal Femenina", color = "Año") +
theme_minimal() +
ggtitle("Tasa de Informalidad Legal por Edad y Año")
#############
# Filtrar los datos solo para masculino y femenino
df_filtered <- tasa_informalidad_legal_por_edad_sexo[tasa_informalidad_legal_por_edad_sexo$apertura_sexo %in% c("femenino", "masculino"), ]
# Reorganizar los datos en formato ancho (wide) para calcular la brecha
library(tidyr)
df_wide <- df_filtered %>%
pivot_wider(names_from = apertura_sexo, values_from = tasa_informalidad_legal)
# Calcular la brecha entre masculino y femenino
df_wide$Brecha <-df_wide$femenino - df_wide$masculino
# Seleccionar las columnas deseadas para el nuevo data frame
df_brecha <- df_wide %>%
select(anio, edad, Brecha)
# Mostrar el resultado
print(df_brecha)
df_brecha_menosanios<- df_brecha %>% filter(df_brecha$anio %in% c(2016,2017,2018,2019,2020,2021, 2022, 2023))
# Suponiendo que ya tienes el data frame df_brecha con la brecha calculada
df_brecha_menosanios$Brecha <- round(df_brecha_menosanios$Brecha * 100, 2)
# Convertir la brecha a porcentaje
df_brecha$Brecha <- df_brecha$Brecha * 100
# Convertir la brecha a porcentaje y redondear los valores
df_brecha$Brecha <- round(df_brecha$Brecha, 2)
# Crear la matriz de calor con una escala de color de verde a rojo
ggplot(df_brecha, aes(x = edad, y = factor(anio), fill = Brecha)) +
geom_tile(color = "white") +
scale_fill_gradient2(low = "turquoise4", mid = "white", high = "deeppink3", midpoint = 0,
name = "Brecha [%]") +
labs(title = "Matriz de Calor de la Brecha de Género en la Tasa de Informalidad Legal",
x = "Edad",
y = "Año") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
En 2023, la brecha por sexo por edades varía entre 7 y 10 puntos porcentuales para las mujeres de 34 a 43 años, y se amplía a partir de los 59 años, alcanzando los 32 pp. En esta última franja etaria, 6 de cada 10 mujeres trabajan en la informalidad, en contraste con 3 de cada 10 hombres.
Buena posición relativa en la región: Argentina tiene una buena posición en términos de informalidad legal, en comparación con otros países de la región.
Estancamiento en las últimas décadas: Sin embargo, el desempeño del país desde la década de 1990 ha sido insatisfactorio. Mientras que otros países de la región lograron reducir significativamente sus tasas de informalidad, Argentina mostró un estancamiento. Esto indica la necesidad de reformular políticas y estrategias para enfrentar el problema con mayor eficacia.
Mayor brecha de género: la brecha de género en la informalidad es una de las más altas de la región. Las mujeres enfrentan mayores obstáculos para acceder al empleo formal, lo que marca una necesidad de políticas públicas que promuevan la equidad de género en el mercado laboral.
Disminución de la brecha: La reducción de la brecha de sexo en los últimos 40 años se explica por un mayor aumento relativo en la informalidad de los varones, ya que la tasa de informalidad para las mujeres se mantuvo.
Brechas por rango etario: La informalidad también presenta una marcada brecha de sexo por rangos etarios, lo que sugiere que las mujeres jóvenes y mayores están en una posición especialmente vulnerable. Esto nos revela la necesidad de políticas y programas focalizados en estos grupos etarios que ayuden a reducir las disparidades.