Kom igångKom igång gratis

Ö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

Visa kurs

Ö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 till djx21.
  • Beräkna en 63-dagars rörlig summa av log-avkastningarna i djx, ta bort de första 62 värdena och tilldela resultatet till djx63.
  • Använd merge() med all = FALSE för att slå samman djx, djx21 och djx63 i den ordningen, och tilldela resultatet till djx2. Rita det med plot.zoo().
  • Använd apply() och lämpliga funktioner för att beräkna skevhet och kurtosis för varje serie i djx2.
  • Använd apply() och lämplig funktion för att genomföra Jarque-Bera-testet på varje serie i djx2.

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
___(___)
Redigera och kör kod