Pregunta 1.

Descargamos la encuesta casen 2020, disponible a través del MDS. Cargamos los datos de la encuesta a R.

#Primero cargamos el paquete "haven" para poder insertar el archivo .dta en R.
options(repos = "https://cloud.r-project.org")
install.packages("haven")
## 
## The downloaded binary packages are in
##  /var/folders/wr/js11cc096xb055fgyznmbnqr0000gn/T//RtmpL6YjiC/downloaded_packages
library(haven)
#Luego, generamos la ruta del archivo .dta que corresponde a la base de datos de la encuenstra Casen 2020.
ruta_casen_2020 <- "/Users/mariadelosangelesgutierrezschweitzer/Desktop/Tarea2/Casen_en_Pandemia_2020_STATA_revisada2022_09.dta"
#Prosiguiendo, importamos la base de datos .dta que corresponde a la encuesta Casen 2020.
casen_2020 <- haven::read_dta(ruta_casen_2020)

Pregunta 2.

Generamos 3 gráficos, correctamente etiquetados que muestran 3 hechos o relaciones interesantes en la encuesta casen 2020.

Gráfico 1: Nivel de ingreso autónomo según años de escolaridad.
#Primero, le decimos a ggplot() cuales son los datos que usaremos.
install.packages("ggplot2")
## 
## The downloaded binary packages are in
##  /var/folders/wr/js11cc096xb055fgyznmbnqr0000gn/T//RtmpL6YjiC/downloaded_packages
library(ggplot2)
x <- ggplot(data = casen_2020)
#Mapping: le decimos a ggplot() cuales de las variables van a estar representadas por cuales elementos visuales del gráfico que queremos y qué tipo de gráfico vamos a querer.
install.packages("ggplot2")
## 
## The downloaded binary packages are in
##  /var/folders/wr/js11cc096xb055fgyznmbnqr0000gn/T//RtmpL6YjiC/downloaded_packages
library(ggplot2)
x <- ggplot(data = casen_2020,
              mapping = aes(x = esc2,
                            y = yaut))
#Graficamos la dispersión de los datos en un gráfico con una linea de tendencia con bandas de error estándar mediante un modelo lineal. Como los ingresos no se comportan con una distribución normal, transformamos el eje x (yaut) de una escala linear a una escala logarítmica. Ajustamos los valores del ingreso "yaut" a una notación mas adecuada, en este caso, pesos chilenos. A su vez, ajustamos el tamaño de la línea de tendencia y el título.
x + geom_point() +
  geom_smooth(method = "gam") +
  scale_y_log10(labels = scales::dollar_format(prefix = "$", suffix = " CLP")) +
  labs(x = "Años de escolaridad sin truncar (edad >= 15)",
       y = "Ingreso Autónomo",
       title = "Nivel de ingreso autónomo según años de escolaridad",
       caption = "Elaboración propia a partir de la fuent Casen 2020.") +
  theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula = 'y ~ s(x, bs = "cs")'
## Warning: Removed 94909 rows containing non-finite values (`stat_smooth()`).
## Warning: Removed 94909 rows containing missing values (`geom_point()`).

Podemos ver mediante el siguiente gráfico, que a medida que aumentan los años de escolaridad en personas de 15 años en adelante, el nivel de ingreso autónomo aumenta. Sin embargo, la concentración de datos la encontramos en el rango de 10 a 20 años de escolaridad, con un promedio de ingresos autónomos inferior a $1.000.000 CLP.
Gráfico 2: Distribución del ingreso familiar de emergencia según situación de pobreza
#Filtramos las filas en las que tanto la variable ingreso familiar de emergencia "y2604h" como la variable "pobreza" no sean NA.
casen_2020 <- casen_2020[!is.na(casen_2020$y2604h) & !is.na(casen_2020$pobreza), ]
#Generamos el gráfico de barras, para analizar la distribución del ingreso familiar de emergencia (IFE) según la situación del nivel de pobreza.
ggplot(data = casen_2020, aes(x = factor(pobreza), y = y2604h)) +
  geom_bar(stat = "identity", fill = "#00688B") +
  labs(x = "Situación de pobreza por ingreso", y = "Ingreso familiar de emergencia", caption = "Elaboración propia a partir de la fuente Casen 2020.") +
  scale_x_discrete(labels = c("Pobres extremos", "Pobres no extremos", "No pobres")) +
  scale_y_continuous(labels = scales::dollar_format(prefix = "$", suffix = " CLP"), limits = c(0, max(casen_2020$y2604h) * 1000)) +
  theme(axis.text.x = element_text(size = 8),
        plot.title = element_text(size = 10, hjust = 0.5)) +
  ggtitle("Distribución del ingreso familiar de emergencia según situación de pobreza")
## Warning: Removed 143339 rows containing missing values (`geom_bar()`).

Podemos ver, que el estado a destinado la mayor cantidad de recursos a las personas en situación de pobreza no extrema y a los no pobres. Sin embargo, para poder sacar una conclusión un poco mas precisa del gráfico, vamos a analizar la cantidad de personas según la situación de pobreza. Debido a que puede suceder de que la distribución del ingreso familiar de emergencia vaya ligado a la cantidad de personas que pertenecen a cada rango de situación de pobreza por ingreso.
Gráfico 3: Distribución de la variable pobreza.
#Generamos un gráfico de dispersión para analizar la cantidad de personas según la situación de pobreza.
ggplot(data = casen_2020, aes(x = factor(pobreza))) +
  geom_bar(fill = "#C7BFFF") +
  labs(x = "Situación de pobreza por ingreso", y = "Cantidad de personas", title = "Distribución de la variable pobreza", caption = "Elaboración propia a partir de la fuente Casen 2020.") +
  scale_x_discrete(labels = c("Pobres extremos", "Pobres no extremos", "No pobres")) +
  scale_y_continuous(labels = scales::comma_format()) +
  theme(axis.text.x = element_text(size = 8),
        plot.title = element_text(hjust = 0.5))

Finalmente, vemos mediante el siguiente gráfico que la mayor cantidad de personas de la encuesta Casen 2020 se encuentra en situación de no pobres, luego le sigue pobres no extremos y pobres extremos pero con un nivel de diferencia significativo. Podemos concluir, que en proporción de situación de pobreza, se han transferido una mayor cantidad de recursos mediante el ingreso familiar de emergencia a las personas pobres no extremos.

Pregunta 3.

Generamos un mapa de la región metropolitana, que revela algo interesante usando los datos de la casen 2020 y datos geoespaciales.

#Cargamos el paquete "sf" para trabajar con datos geoespaciales.
library(sf)
## Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
#Leemos el conjunto de datos "comunas_geo" que contiene las latitudes y longitudes de las comunas de la Región Metropolitana.
comunas_geo <- read_sf("https://raw.githubusercontent.com/lhersko/Teaching/master/shape_comunas_rm.json")
#Determinamos los codigos de la casen que pertenecen a las comunas descritas en la base geoespacial anterior.
codigos_casen <- c(
  "13504", "13504", "13108", "13110", "13115", "13116", "13117", "13121", "13124", "13129",
  "13131", "13602", "13603", "13601", "13301", "13302", "13303", "13202", "13201", "13203",
  "13402", "13404", "13401", "13502", "13503", "13403", "13501", "13102", "13103", "13104",
  "13105", "13122", "13123", "13125", "13132", "13604", "13126", "13127", "13128", "13130",
  "13101", "13107", "13109", "13111", "13112", "13113", "13114", "13118", "13119", "13120",
  "13605", "13106")
#Añadimos la nueva variable "codigos_casen" como "cod_comuna" a la base geoespacial.
comunas_geo$cod_comuna <- codigos_casen[match(comunas_geo$geo_code, comunas_geo$geo_code)]
#Realizamos el merge basado en la columna "comuna" y "cod_comuna" para poder tener la variable geometry que contiene las latitudes y longitudes en la base de datos de la casen_2020.
casen_comunas <- merge(casen_2020, comunas_geo, by.x = "comuna", by.y = "cod_comuna", all.x = TRUE)
#Ahora, para construir el mapa cargamos la librería leaflet y convertimos la base de datos casen_comunas a un objeto simple features para poder procesarla.
library(leaflet)
library(sf)
casen_comunas_sf <- st_as_sf(casen_comunas)
#Filtramos la base de datos casen_comunas_sf y dejamos solo la Región Metropolitana para que no pese tanto, y R pueda trabajar de manera más precisa.
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data_final <- casen_comunas_sf %>% 
filter(region==13 & provincia==131)
#Revisamos si nuestras variables de interes se encuentran en la base de datos .
"pobreza" %in% names(data_final)
## [1] TRUE
"geo_code" %in% names(data_final)
## [1] TRUE
"region" %in% names(data_final)
## [1] TRUE
"geometry" %in% names(data_final)
## [1] TRUE
"comuna" %in% names(data_final)
## [1] TRUE
#Filtramos nuevamente la base de datos data_final seleccionando nuestras variables de interés.
data_rm <- data_final %>%
  select(pobreza, geo_code, geometry, comuna, region)
# Quitamos las etiquetas y convertimos la columna "pobreza" a un vector numérico
data_rm$pobreza <- as.numeric(data_rm$pobreza)
# Creamos una paleta de colores para el gradiente de pobreza por la etiqueta
colores_pobreza <- colorNumeric(palette = c("darkblue", "lightblue", "white"),
                                domain = data_rm$pobreza)
# Convertimos el objeto data_rm a tipo sf
data_rm_sf <- st_as_sf(data_rm, coords = c("long", "lat"), crs = 4326)
# Creamos el mapa estático
ggplot(data_rm_sf) +
  geom_sf(aes(fill = pobreza), color = "#ffa500", size = 0.5) +
  scale_fill_gradient(low = "darkblue", high = "lightblue", na.value = "white") +
  labs(title = "Nivel de Pobreza en la Región Metropolitana",
       fill = "Nivel de Pobreza",
       caption = "Elaboración propia a partir de la fuente Casen 2020.") +
  theme_minimal()

Podemos ver mediante el gráfico, que la mayoría de las comunas de la RM son categorizadas como no pobres (etiqueta n° 3), luego la tendencia sigue en proporción de segundo lugar para una comuna categorizada como pobre no extrema (etiqueta n° 2), para finalmente llegar a ninguna comuna categorizada como pobres extremos. Esto no quiere decir que no hayan personas pobres no extremas, sino mas bien que en distribución de las personas que viven en la RM, en promedio, se equilibra a que vivan en proporción más personas etiquetadas como no pobres en las comunas de la RM.