Nakładające się stopy zwrotu
Gdy agregujesz serie, sumując dzienne log-stopy zwrotu w dłuższe przedziały, analizujesz mniejszą liczbę obserwacji. Aby zachować ilość danych, możesz obliczać nakładające się stopy zwrotu za pomocą funkcji rollapplyr() – choć takie podejście wprowadza silne korelacje między obserwacjami.
W przeciętnym tygodniu kalendarzowym przypada 5 dni handlowych. Obliczając 5-dniowe sumy kroczące dziennych log-stóp zwrotu indeksu, otrzymujesz przybliżone nakładające się tygodniowe stopy zwrotu, kończące się na każdym dniu tygodnia. Analogicznie – 21-dniowe sumy kroczące dają przybliżone miesięczne stopy zwrotu, a 63-dniowe – kwartalne.
Przyjrzyjmy się przykładowi z danymi dziennych stóp zwrotu indeksu Dow Jones zawartymi w djx. Ponieważ każda suma krocząca wymaga 5 wartości, pierwsze 4 wyniki będą równe NA. W tym przypadku usuniemy je za pomocą indeksowania:
> 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)]
W tym ćwiczeniu obliczysz sumy kroczące dla różnych przedziałów na podstawie djx, który jest wczytany do twojego środowiska pracy. Następnie wyznaczysz skośność i kurtozę otrzymanych danych oraz przeprowadzisz test Jarque'a-Bery – tak jak w poprzednich ćwiczeniach. Sprawdź, czy nakładające się stopy zwrotu lepiej odpowiadają rozkładowi normalnemu.
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w R
Instrukcje do ćwiczenia
- Oblicz 21-dniową sumę kroczącą log-stóp zwrotu z
djx, usuń pierwsze 20 wartości i przypisz wynik dodjx21. - Oblicz 63-dniową sumę kroczącą log-stóp zwrotu z
djx, usuń pierwsze 62 wartości i przypisz wynik dodjx63. - Użyj
merge()z argumentemall = FALSE, aby połączyćdjx,djx21idjx63w tej kolejności, a następnie przypisz wynik dodjx2. Zwizualizuj dane za pomocąplot.zoo(). - Użyj
apply()i odpowiednich funkcji, aby obliczyć skośność i kurtozę dla każdej serii wdjx2. - Użyj
apply()i odpowiedniej funkcji, aby przeprowadzić test Jarque'a-Bery na każdej serii wdjx2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
___(___)