ComeçarComece de graça

Adicione uma soma móvel discreta aos dados de PIB

Embora ajude saber o quanto mudou de um período para o outro, você pode querer saber a mudança total desde o início do ano. Para gerar esse tipo de indicador, você pode usar o padrão split-lapply-rbind. Esse processo é semelhante ao utilizado para gerar as médias mensais de temperatura no capítulo anterior.

Neste exercício, você vai voltar aos dados gdp usados anteriormente no capítulo. Além dos valores estáticos de PIB em cada trimestre, você quer gerar uma medida da variação do PIB de um trimestre para o seguinte (usando diff()) e também uma soma móvel do acumulado no ano (year-to-date) da variação do PIB (usando split(), lapply() e rbind()).

Este exercício faz parte do curso

Estudo de Caso: Analisando Séries Temporais de Cidades em R

Ver curso

Instruções do exercício

  • Use diff() para produzir uma diferença trimestral simples em gdp. Certifique-se de especificar a coluna gdp e definir lag igual a 1 período (neste caso, 1 trimestre). Salve isso no seu objeto gdp como quarterly_diff.
  • Agora que você tem uma medida da variação trimestral do PIB, o próximo passo é dividir seus dados quarterly_diff por ano usando split(). Na chamada a split(), lembre-se de especificar a coluna quarterly_diff de gdp e definir o argumento f igual a "years" (com aspas).
  • Use lapply() nos dados recém-divididos. Para calcular a soma acumulada em cada ano, defina o argumento FUN igual a cumsum (sem aspas).
  • Use do.call() para aplicar rbind e unir seus dados gdpchange_ytd de volta em um objeto xts.
  • Por fim, use plot.xts() para analisar a variação acumulada no ano do PIB (gdpchange_xts).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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")
Editar e executar o código