Randamente suprapuse
Când agregezi serii sumând randamentele logaritmice zilnice în intervale mai lungi, analizezi un număr mai mic de observații. Pentru a păstra cantitatea de date, poți calcula randamente suprapuse cu funcția rollapplyr(); aceasta creează și corelații puternice între observații.
O săptămână calendaristică medie are 5 zile de tranzacționare. Calculând sumele mobile pe 5 zile ale randamentelor logaritmice din datele zilnice ale unui indice, obții randamente săptămânale suprapuse aproximative care se termină la fiecare săptămână calendaristică. Similar, sumele mobile pe 21 de zile oferă randamente lunare suprapuse aproximative, iar cele pe 63 de zile oferă randamente trimestriale suprapuse aproximative.
Hai să vedem un exemplu folosind datele privind randamentul zilnic al indicelui Dow Jones din djx. Deoarece fiecare sumă mobilă se calculează pe baza a 5 valori, primele 4 valori din rezultat sunt NA. În acest caz, le vom elimina prin indexare:
> 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)]
În acest exercițiu, vei calcula sume mobile pentru diferite intervale din djx, care este deja încărcat în spațiul tău de lucru. Vei determina apoi asimetria și kurtosis-ul datelor rezultate și vei aplica testul Jarque-Bera, la fel ca în exercițiile anterioare. Oare randamentele suprapuse par mai aproape de o distribuție normală?
Acest exercițiu face parte din cursul
Managementul Cantitativ al Riscului în R
Instrucțiuni pentru exercițiu
- Calculează suma mobilă pe 21 de zile a randamentelor logaritmice din
djx, elimină primele 20 de valori și atribuie rezultatul variabileidjx21. - Calculează suma mobilă pe 63 de zile a randamentelor logaritmice din
djx, elimină primele 62 de valori și atribuie rezultatul variabileidjx63. - Folosește
merge()cuall = FALSEpentru a îmbinadjx,djx21șidjx63în această ordine, apoi atribuie rezultatul variabileidjx2. Vizualizează-l cuplot.zoo(). - Folosește
apply()și funcțiile corespunzătoare pentru a calcula asimetria și kurtosis-ul fiecărei serii dindjx2. - Folosește
apply()și funcția corespunzătoare pentru a aplica testul Jarque-Bera pe fiecare serie dindjx2.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
___(___)