Añade una suma móvil discreta a los datos de PIB
Saber cuánto cambia de un periodo a otro es útil, pero puede que quieras conocer el cambio total desde el inicio del año. Para generar este tipo de indicador, puedes usar el patrón split-lapply-rbind. Este proceso es similar al que se utilizó para calcular los promedios mensuales de temperatura en el capítulo anterior.
En este ejercicio volverás a los datos gdp utilizados antes en el capítulo. Además de los valores estáticos de PIB en cada trimestre, te gustaría generar una medida del cambio del PIB de un trimestre al siguiente (usando diff()) y una suma móvil del cambio acumulado en el año (usando split(), lapply() y rbind()).
Este ejercicio forma parte del curso
Estudio de caso: Análisis de series temporales de una ciudad en R
Instrucciones del ejercicio
- Usa
diff()para obtener una diferencia trimestral simple engdp. Asegúrate de especificar la columnagdpy establecelagigual a1periodo (en este caso, 1 trimestre). Guarda esto en tu objetogdpcomoquarterly_diff. - Ahora que ya tienes una medida del cambio trimestral del PIB, tu siguiente paso es dividir tus datos
quarterly_diffen años usandosplit(). En tu llamada asplit(), asegúrate de especificar la columnaquarterly_diffdegdpy establece el argumentofigual a"years"(con comillas). - Usa
lapply()sobre tus datos recién divididos. Para calcular una suma acumulada en cada año, establece el argumentoFUNigual acumsum(sin comillas). - Usa
do.call()para volver a combinar tus datosgdpchange_ytden un objeto xts conrbind. - Por último, usa
plot.xts()para examinar el cambio acumulado en el año del PIB (gdpchange_xts).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Add a quarterly difference in gdp
gdp$quarterly_diff <- diff(___$___, lag = ___, differences = ___)
# Split gdp$quarterly_diff into years
gdpchange_years <- split(___$___, f = "___")
# Use lapply to calculate the cumsum each year
gdpchange_ytd <- lapply(___, FUN = ___)
# Use do.call to rbind the results
gdpchange_xts <- do.call(rbind, ___)
# Plot cumulative year-to-date change in GDP
plot.xts(___, type = "h")