Překrývající se výnosy
Když agregujeme časovou řadu sčítáním denních log-výnosů do delších intervalů, pracujeme s menším počtem pozorování. Abychom zachovali množství dat, můžeme vypočítat překrývající se výnosy pomocí funkce rollapplyr() — ta ale zároveň vytváří silné korelace mezi pozorováními.
Průměrný obchodní týden má 5 dní. Výpočtem 5denních klouzavých součtů log-výnosů denních indexových dat získáme přibližné překrývající se týdenní výnosy pro každý kalendářní týden. Obdobně nám 21denní klouzavé součty dají přibližné měsíční výnosy a 63denní klouzavé součty přibližné čtvrtletní výnosy.
Podívejme se na příklad s daty denních výnosů Dow Jonesova indexu v proměnné djx. Protože každý klouzavý součet se počítá z 5 hodnot, první 4 hodnoty výsledku jsou NA. V takovém případě je odstraníme pomocí indexování:
> 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)]
V tomto cvičení vypočítáš klouzavé součty pro různé intervaly z proměnné djx, která je načtena v tvém pracovním prostředí. Poté zjistíš šikmost a špičatost výsledných dat a provedeš Jarque-Berův test — stejně jako v předchozích cvičeních. Blíží se překrývající se výnosy více normálnímu rozdělení?
Toto cvičení je součástí kurzu
Kvantitativní řízení rizik v R
Pokyny k cvičení
- Vypočítej 21denní klouzavý součet log-výnosů v
djx, odstraň prvních 20 hodnot a výsledek přiřaď dodjx21. - Vypočítej 63denní klouzavý součet log-výnosů v
djx, odstraň prvních 62 hodnot a výsledek přiřaď dodjx63. - Pomocí
merge()s parametremall = FALSEspojdjx,djx21adjx63v tomto pořadí a výsledek přiřaď dodjx2. Zobraz ho pomocíplot.zoo(). - Pomocí
apply()a příslušných funkcí vypočítej šikmost a špičatost každé řady vdjx2. - Pomocí
apply()a příslušné funkce proveď Jarque-Berův test na každé řadě vdjx2.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
___(___)