Överlappande avkastningar
När du aggregerar serier genom att summera dagliga log-avkastningar till längre intervall analyserar du ett mindre antal observationer. För att bevara datamängden kan du beräkna överlappande avkastningar med funktionen rollapplyr() – detta skapar också starka korrelationer mellan observationerna.
En genomsnittlig kalendervecka innehåller 5 handelsdagar. Genom att beräkna 5-dagars rörliga summor av log-avkastningarna för dagligt indexdata får du ungefärliga överlappande veckoavkastningar som avslutas varje kalendervecka. På samma sätt ger 21-dagars rörliga summor ungefärliga månadsavkastningar och 63-dagars rörliga summor ungefärliga kvartalsvisa avkastningar.
Låt oss titta på ett exempel med Dow Jones dagliga avkastningsdata i djx. Eftersom 5 värden används för att beräkna varje rörlig summa blir de första 4 värdena i resultatet NA. I det här fallet använder vi indexering för att ta bort dem:
> 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)]
I den här övningen beräknar du rörliga summor med olika intervall från djx, som finns inläst i din arbetsmiljö. Du beräknar sedan skevhet och kurtosis för de resulterande data och genomför Jarque-Bera-testet, precis som i tidigare övningar. Verkar de överlappande avkastningarna mer normalfördelade?
Den här övningen är en del av kursen
Kvantitativ riskhantering i R
Övningsinstruktioner
- Beräkna en 21-dagars rörlig summa av log-avkastningarna i
djx, ta bort de första 20 värdena och tilldela resultatet tilldjx21. - Beräkna en 63-dagars rörlig summa av log-avkastningarna i
djx, ta bort de första 62 värdena och tilldela resultatet tilldjx63. - Använd
merge()medall = FALSEför att slå sammandjx,djx21ochdjx63i den ordningen, och tilldela resultatet tilldjx2. Rita det medplot.zoo(). - Använd
apply()och lämpliga funktioner för att beräkna skevhet och kurtosis för varje serie idjx2. - Använd
apply()och lämplig funktion för att genomföra Jarque-Bera-testet på varje serie idjx2.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
___(___)