ComenzarEmpieza gratis

Rentabilidades solapadas

Cuando agregas series sumando los log-rendimientos diarios para formar intervalos más largos, analizas una menor cantidad de observaciones. Para conservar la cantidad de datos, puedes calcular rentabilidades solapadas con la función rollapplyr(); esto también crea correlaciones fuertes entre observaciones.

Hay 5 días de mercado en la semana calendario promedio. Si calculas las sumas móviles de 5 días de los log-rendimientos de datos diarios de un índice, obtienes una aproximación de rentabilidades semanales solapadas que terminan en cada semana del calendario. De forma similar, calcular sumas móviles de 21 días da una aproximación de rentabilidades mensuales solapadas, y calcular sumas móviles de 63 días da una aproximación de rentabilidades trimestrales solapadas.

Veamos un ejemplo con los datos de rentabilidad diaria del Dow Jones en djx. Como se usan 5 valores para calcular cada suma móvil, los primeros 4 valores del resultado son NA. En este caso, usaremos indexación para eliminarlos:

> 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)]

En este ejercicio, calcularás sumas móviles de distintos intervalos a partir de djx, que ya está cargado en tu espacio de trabajo. Después, encontrarás la asimetría y la curtosis de los datos resultantes y realizarás la prueba de Jarque-Bera tal como hiciste en ejercicios anteriores. ¿Parecen más normales las rentabilidades solapadas?

Este ejercicio forma parte del curso

Gestión Cuantitativa del Riesgo en R

Ver curso

Instrucciones del ejercicio

  • Calcula una suma móvil de 21 días de los log-rendimientos en djx, elimina los primeros 20 valores y asígnala a djx21.
  • Calcula una suma móvil de 63 días de los log-rendimientos en djx, elimina los primeros 62 valores y asígnala a djx63.
  • Usa merge() y all = FALSE para unir djx, djx21 y djx63 en ese orden, y asígnalo a djx2. Represéntalo con plot.zoo().
  • Usa apply() y las funciones adecuadas para calcular la asimetría y la curtosis de cada una de las series en djx2.
  • Usa apply() y la función adecuada para realizar la prueba de Jarque-Bera en cada una de las series en djx2.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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
___(___)
Editar y ejecutar código