library(ggplot2)
library(dplyr)
datos <- read.csv("PR_Indice_Gerentes_Compras.csv")
Primero, observamos la data del PMI o Índice de Gerentes de Compras.
Es un indicador económico que mide la evolución de la actividad del sector manufacturero y se construye mediante encuestas a gerentes, considerando factores como la producción, los nuevos pedidos, el empleo, los inventarios y los tiempos de entrega de los proveedores.
El índice utiliza una escala en la que 50 representa el punto de referencia. Un valor superior a 50 indica expansión en la actividad manufacturera respecto al mes anterior y un valor inferior a 50 indica una contracción.
# Convertir las fechas a meses y años
meses <- c(
"enero" = 1, "febrero" = 2, "marzo" = 3,
"abril" = 4, "mayo" = 5, "junio" = 6,
"julio" = 7, "agosto" = 8, "septiembre" = 9,
"octubre" = 10, "noviembre" = 11, "diciembre" = 12,
"january" = 1, "february" = 2, "march" = 3,
"april" = 4, "may" = 5, "june" = 6,
"july" = 7, "august" = 8, "september" = 9,
"october" = 10, "november" = 11, "december" = 12
)
datos <- datos %>%
mutate(
mes_texto = tolower(sub("-.*", "", Month)),
mes = unname(meses[mes_texto]),
anio = 2000 + as.integer(sub(".*-", "", Month))
)
# Seleccionar los años de los huracanes
comparacion <- datos %>%
filter(anio %in% c(2017, 2022)) %>%
mutate(
Huracan = ifelse(anio == 2017, "Maria (2017)", "Fiona (2022)")
)
ggplot(comparacion,
aes(x = mes, y = PMI, color = Huracan, group = Huracan)) +
geom_line(linewidth = 1.2) +
geom_point(size = 2.5) +
geom_hline(yintercept = 50, linetype = "dashed",
color = "gray40") +
geom_vline(xintercept = 9, linetype = "dotted",
color = "red") +
scale_x_continuous(
breaks = 1:12,
labels = c("Ene", "Feb", "Mar", "Abr", "May", "Jun",
"Jul", "Ago", "Sep", "Oct", "Nov", "Dic")
) +
labs(
title = "PMI de Puerto Rico: Maria vs. Fiona",
subtitle = "Comparacion de la actividad manufacturera en 2017 y 2022",
x = "Mes",
y = "Purchasing Managers' Index (PMI)",
color = "Huracan",
caption = "Linea horizontal: PMI = 50 | Linea vertical: septiembre"
) +
theme_minimal()
Observamos que, en ambos eventos, la actividad manufacturera de Puerto Rico se vio afectada, pero el impacto durante el huracán María fue considerablemente más fuerte que durante Fiona. Esto se refleja en la caída del PMI en septiembre de 2017, cuando el índice descendió a un nivel mucho más bajo que el observado en septiembre de 2022. Dado que el PMI mide la evolución de la actividad manufacturera y utiliza 50 como punto de referencia, una caída tan marcada sugiere una contracción significativa en el sector tras el paso de María.
También se observa que la recuperación del indicador luego de María fue relativamente rápida en los meses posteriores. De hecho, el PMI volvió a niveles comparables a los de agosto de ese mismo año, lo que sugiere una reactivación acelerada de la actividad manufacturera durante el proceso de recuperación. Esto puede estar relacionado con el aumento en la demanda de bienes, materiales y procesos productivos necesarios para atender las necesidades surgidas tras la destrucción provocada por el huracán.
Sin embargo, esto no significa que la economía se haya recuperado completamente de inmediato. Más bien, indica que el sector manufacturero respondió con rapidez al shock inicial y logró retomar dinamismo en poco tiempo. En otras palabras, aunque el daño económico fue severo, especialmente durante María, la gráfica sugiere que hubo una capacidad relativamente rápida de respuesta dentro del sector manufacturero ante la demanda generada por la fase de recuperación y reconstrucción.
resumen <- comparacion %>%
filter(mes %in% c(8, 9, 10)) %>%
select(Huracan, mes, PMI) %>%
tidyr::pivot_wider(
names_from = mes,
values_from = PMI,
names_prefix = "Mes_"
) %>%
mutate(
Caida = Mes_9 - Mes_8,
Recuperacion_Octubre = Mes_10 - Mes_9
)
print(resumen)
## # A tibble: 2 × 6
## Huracan Mes_8 Mes_9 Mes_10 Caida Recuperacion_Octubre
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Maria (2017) 53.8 33.1 48.1 -20.7 15
## 2 Fiona (2022) 57.5 48.8 53.7 -8.7 4.90
energia <- read.csv("PR_Generacion_Electrica.csv",
check.names = FALSE)
cemento <- read.csv("PR_Produccion_Ventas_Cemento.csv")
# En electricidad las fechas aparecen como "agosto-17"
meses <- c(
"enero", "febrero", "marzo", "abril",
"mayo", "junio", "julio", "agosto",
"septiembre", "octubre", "noviembre", "diciembre"
)
partes <- strsplit(tolower(energia[[1]]), "-")
energia$fecha <- as.Date(
sprintf("%04d-%02d-01",
2000 + as.integer(sapply(partes, `[`, 2)),
match(sapply(partes, `[`, 1), meses))
)
energia$generacion <- as.numeric(energia[[2]])
# En cemento las fechas aparecen como "8/1/17"
cemento$fecha <- as.Date(cemento$Date, format = "%m/%d/%y")
# 3. Tomar agosto de 2017 como base = 100 ###
base_energia <- energia$generacion[
energia$fecha == as.Date("2017-08-01")
]
base_cemento <- cemento$Sales[
cemento$fecha == as.Date("2017-08-01")
]
# 4. Normalizar las dos series ###
energia <- energia %>%
mutate(
indice = (generacion / base_energia) * 100,
Indicador = "Generación eléctrica"
)
cemento <- cemento %>%
mutate(
indice = (Sales / base_cemento) * 100,
Indicador = "Ventas de cemento"
)
# 5. Unir ambas series
datos <- bind_rows(
energia %>% select(fecha, indice, Indicador),
cemento %>% select(fecha, indice, Indicador)
)
# 6. Seleccionar 2017 y 2018
datos <- datos %>%
filter(
fecha >= as.Date("2017-01-01"),
fecha <= as.Date("2018-12-01")
)
# 7. Crear la gráfica
grafica <- ggplot(
datos,
aes(x = fecha, y = indice, color = Indicador)
) +
geom_line(linewidth = 1.2) +
geom_point(size = 1.5) +
# Fecha del huracán María
geom_vline(
xintercept = as.Date("2017-09-01"),
linetype = "dashed",
color = "red"
) +
# Nivel de referencia
geom_hline(
yintercept = 100,
linetype = "dotted",
color = "gray40"
) +
scale_color_manual(
values = c(
"Generación eléctrica" = "steelblue",
"Ventas de cemento" = "darkorange"
)
) +
scale_x_date(date_breaks = "3 months",
date_labels = "%b %Y") +
labs(
title = "Generación eléctrica y ventas de cemento tras María",
subtitle = "Puerto Rico, 2017-2018 | Agosto 2017 = 100",
x = "Fecha",
y = "Índice normalizado",
color = "Indicador",
caption = "Línea roja: septiembre de 2017 | Línea horizontal: agosto de 2017"
) +
theme_minimal()
print(grafica)
# Guardar la gráfica
ggsave("Grafica_Electricidad_Cemento.png",
grafica, width = 11, height = 6, dpi = 300)
Observamos una caída significativa en ambos indicadores tras el paso del huracán María. Sin embargo, las ventas de cemento experimentaron una recuperación acelerada, llegando incluso a superar los niveles registrados antes del huracán. Este comportamiento podría estar relacionado con el aumento en la demanda de materiales de construcción durante el proceso de reconstrucción.
El crecimiento de las ventas de cemento también podría ayudar a explicar la rápida recuperación del PMI observada anteriormente, ya que una mayor demanda de materiales y productos necesarios para la reconstrucción puede estimular la actividad manufacturera.
Por otro lado, observamos que la generación eléctrica experimentó una recuperación más lenta, lo que demuestra que los distintos sectores de la economía no necesariamente se recuperan al mismo ritmo después de un desastre natural.
resumen <- datos %>%
filter(fecha %in% as.Date(c("2017-08-01", "2017-09-01"))) %>%
select(fecha, Indicador, indice)
print(resumen)
## fecha Indicador indice
## 1 2017-08-01 Generación eléctrica 100.00000
## 2 2017-09-01 Generación eléctrica 49.63762
## 3 2017-09-01 Ventas de cemento 29.23475
## 4 2017-08-01 Ventas de cemento 100.00000
# Cambio porcentual respecto a agosto
resumen_cambios <- datos %>%
filter(fecha == as.Date("2017-09-01")) %>%
mutate(
Cambio_Porcentual = indice - 100
) %>%
select(Indicador, Cambio_Porcentual)
print(resumen_cambios)
## Indicador Cambio_Porcentual
## 1 Generación eléctrica -50.36238
## 2 Ventas de cemento -70.76525