Aan de slagGa gratis aan de slag

Overlappende rendementen

Als je reeksen aggregeert door dagelijkse log-rendementen op te tellen tot langere intervallen, analyseer je minder waarnemingen. Om de hoeveelheid data te behouden, kun je overlappende rendementen berekenen met de functie rollapplyr(); dit creëert ook sterke correlaties tussen waarnemingen.

Er zijn gemiddeld 5 handelsdagen in een kalenderweek. Door de voortschrijdende sommen over 5 dagen van de log-rendementen van dagelijkse indexdata te berekenen, krijg je benaderende overlappende wekelijkse rendementen die eindigen op elke kalenderweek. Op dezelfde manier leveren 21-daagse voortschrijdende sommen benaderende overlappende maandrendementen op, en 63-daagse voortschrijdende sommen benaderende overlappende kwartaalsrendementen.

Laten we kijken naar een voorbeeld met de dagelijkse Dow Jones-rendementen in djx. Omdat er 5 waarden worden gebruikt om elke voortschrijdende som te berekenen, zijn de eerste 4 waarden in het resultaat NA. In dit geval verwijderen we ze met indexering:

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

In deze oefening bereken je voortschrijdende sommen met verschillende intervallen uit djx, dat al in je werkruimte staat. Daarna bepaal je de scheefheid en kurtosis van de resulterende data en voer je de Jarque-Bera-toets uit, net als in eerdere oefeningen. Lijken de overlappende rendementen normaler?

Deze oefening maakt deel uit van de cursus

Kwantiatief Risicobeheer in R

Cursus bekijken

Oefeninstructies

  • Bereken een 21-daagse voortschrijdende som van de log-rendementen in djx, verwijder de eerste 20 waarden en ken toe aan djx21.
  • Bereken een 63-daagse voortschrijdende som van de log-rendementen in djx, verwijder de eerste 62 waarden en ken toe aan djx63.
  • Gebruik merge() met all = FALSE om djx, djx21 en djx63 in die volgorde te mergen, en ken dit toe aan djx2. Plot met plot.zoo().
  • Gebruik apply() en de juiste functies om de scheefheid en kurtosis voor elk van de reeksen in djx2 te berekenen.
  • Gebruik apply() en de juiste functie om de Jarque-Bera-toets uit te voeren op elk van de reeksen in djx2.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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
___(___)
Code bewerken en uitvoeren