Ajouter une somme mobile discrète aux données de PIB
S’il est utile de connaître la variation d’une période à l’autre, vous pouvez aussi vouloir connaître la variation totale depuis le début de l’année. Pour calculer cet indicateur, vous pouvez utiliser le schéma split-lapply-rbind. Ce processus est proche de celui utilisé pour calculer les moyennes mensuelles de température dans le chapitre précédent.
Dans cet exercice, vous allez reprendre les données gdp utilisées plus tôt dans le chapitre. En plus des valeurs statiques de PIB à chaque trimestre, vous souhaitez calculer une mesure de variation du PIB d’un trimestre au suivant (avec diff()) ainsi qu’une somme mobile du cumul depuis le début de l’année (avec split(), lapply() et rbind()).
Cet exercice fait partie du cours
Étude de cas : analyser des séries temporelles urbaines en R
Instructions
- Utilisez
diff()pour produire une différence trimestrielle simple dansgdp. Veillez à préciser la colonnegdpet à définirlagà1période (ici, 1 trimestre). Enregistrez cela dans votre objetgdpsous le nomquarterly_diff. - Maintenant que vous avez une mesure de la variation trimestrielle du PIB, scindez vos données
quarterly_diffpar année avecsplit(). Dans votre appel àsplit(), veillez à préciser la colonnequarterly_diffdegdpet à fixer l’argumentfà"years"(avec des guillemets). - Utilisez
lapply()sur vos données nouvellement scindées. Pour calculer une somme cumulative dans chaque année, définissez l’argumentFUNsurcumsum(sans guillemets). - Utilisez
do.call()pour rbind vos donnéesgdpchange_ytdet les retransformer en objet xts. - Enfin, utilisez
plot.xts()pour examiner la variation cumulée depuis le début de l’année du PIB (gdpchange_xts).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")