14 mar 2023

Rollapply sobre múltiples series en R

En la siguiente entrada se usan diversas estrategias GARCH para obtener diferentes series de volatilidad. El tema es que estas series presentan mucho ruido en su evolución histórica y se proponen promedios móviles de cada una para una representación con menos ruidos. El ejemplo se realiza usando tidyverse. [ver entrada anterior donde se explica cómo preparar las series de volatilidad (es decir, hasta el punto donde se colocan los gráficos): http://betaeconomia.blogspot.com/2022/07/modelos-garch-sobre-multiples-series.html].

dataVol %>%
  mutate(fecha = 1:nrow(dataVol)) %>%
  as.data.frame() %>%
  pivot_longer(!fecha, names_to = "var", values_to = "value") %>%
  ggplot(aes(x = fecha, y = value)) +
  geom_line(aes(color = var))+
  facet_wrap(~var, scales='free_y', ncol = 2) +
  theme_classic()+
  theme(legend.position = "none",
        axis.ticks = element_line(colour = "grey70", size = 0.2),
        strip.background = element_blank()) +
  scale_colour_grey(start = 0.1,end = 0.1)
 
 

Ahora, antes de graficar las volatilidades se crea una variable que representa los promedios de cada serie particular. Esto se hace para disimular el ruido [Aquí se explica en detalle como se usa la función: https://betaeconomia.blogspot.com/2022/04/aplicaciones-de-la-funcion-rollaplay-de.html].

dataVol %>%
  mutate(fecha = 1:nrow(dataVol)) %>%
  as.data.frame() %>%
  pivot_longer(!fecha, names_to = "var", values_to = "value") %>%
  group_by(var) %>%
  mutate(value2 = rollapply(data = value, width = 22, FUN = mean, fill=NA, align = "right", partial = T)) %>%
  ggplot(aes(x = fecha, y = value2)) +
  geom_line(aes(color = var))+
  facet_wrap(~var, scales='free_y', ncol = 2) +
  theme_classic()+
  theme(legend.position = "none",
        axis.ticks = element_line(colour = "grey70", size = 0.2),
        strip.background = element_blank()) +
  scale_colour_grey(start = 0.1,end = 0.1)



Creando variables por grupos en dplyr (group_by + mutate)

  Simulemos una base de hogares, donde se identifica el hogar, el sexo (1 mujer) y provincia y edad para cada miembro.   # Definir la lista ...