Rendements qui se chevauchent
Lorsque vous agrégerez des séries en additionnant des log-rendements quotidiens sur des intervalles plus longs, vous analyserez un nombre plus réduit d’observations. Pour préserver la quantité de données, vous pouvez calculer des rendements qui se chevauchent avec la fonction rollapplyr() ; cela crée aussi de fortes corrélations entre les observations.
Il y a 5 jours de bourse dans une semaine calendaire moyenne. En calculant les sommes mobiles sur 5 jours des log-rendements d’un indice quotidien, vous obtenez des rendements hebdomadaires approximatifs qui se chevauchent et se terminent à chaque semaine calendaire. De même, des sommes mobiles sur 21 jours donnent des rendements mensuels approximatifs qui se chevauchent, et des sommes mobiles sur 63 jours donnent des rendements trimestriels approximatifs qui se chevauchent.
Voyons un exemple avec les rendements quotidiens du Dow Jones dans djx. Comme 5 valeurs sont utilisées pour calculer chaque somme mobile, les 4 premières valeurs du résultat sont NA. Dans ce cas, nous allons utiliser l’indexation pour les supprimer :
> djx5 <- rollapplyr(djx, width = 5, FUN = sum)
> head(djx5)
^DJI
2008-01-03 NA
2008-01-04 NA
2008-01-07 NA
2008-01-08 NA
2008-01-09 -0.02394677
2008-01-10 -0.01571869
> djx5 <- djx5[-(1:4)]
Dans cet exercice, vous allez calculer des sommes mobiles sur différents intervalles à partir de djx, qui est chargé dans votre espace de travail. Vous trouverez ensuite l’asymétrie et l’aplatissement des données obtenues et effectuerez le test de Jarque-Bera comme dans les exercices précédents. Les rendements qui se chevauchent semblent-ils plus proches de la normalité ?
Cet exercice fait partie du cours
Gestion quantitative des risques avec R
Instructions
- Calculez une somme mobile sur 21 jours des log-rendements de
djx, supprimez les 20 premières valeurs et assignez le résultat àdjx21. - Calculez une somme mobile sur 63 jours des log-rendements de
djx, supprimez les 62 premières valeurs et assignez le résultat àdjx63. - Utilisez
merge()avecall = FALSEpour fusionnerdjx,djx21etdjx63, dans cet ordre, puis assignez le résultat àdjx2. Tracez-le avecplot.zoo(). - Utilisez
apply()et les fonctions appropriées pour calculer l’asymétrie et l’aplatissement de chacune des séries dansdjx2. - Utilisez
apply()et la fonction appropriée pour effectuer le test de Jarque-Bera sur chacune des séries dansdjx2.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Calculate a 21-day moving sum of djx
djx21 <- ___(___, ___, ___)[___]
# Calculate a 63-day moving sum of djx
djx63 <- ___(___)[___]
# Merge the three series and plot
djx2 <- ___(___)
___(___)
# Compute the skewness and kurtosis for each series in djx2
___(___)
___(___)
# Conduct the Jarque-Bera test to each series in djx2
___(___)