ÎncepețiÎncepe gratuit

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

Vezi cursul

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 variabilei djx21.
  • Calculează suma mobilă pe 63 de zile a randamentelor logaritmice din djx, elimină primele 62 de valori și atribuie rezultatul variabilei djx63.
  • Folosește merge() cu all = FALSE pentru a îmbina djx, djx21 și djx63 în această ordine, apoi atribuie rezultatul variabilei djx2. Vizualizează-l cu plot.zoo().
  • Folosește apply() și funcțiile corespunzătoare pentru a calcula asimetria și kurtosis-ul fiecărei serii din djx2.
  • Folosește apply() și funcția corespunzătoare pentru a aplica testul Jarque-Bera pe fiecare serie din djx2.

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
___(___)
Editează și rulează codul