Kom igångKom igång gratis

Definiera en anpassad momentfunktion

I många fall med begränsade optimeringsproblem kan portföljförvaltaren eller analytikern vilja skatta moment med en specifik teknik och/eller utöka funktionaliteten i set.portfolio.moments(). En användardefinierad anpassad momentfunktion kan ha godtyckligt namngivna argument. Argument med namnen R för tillgångsavkastningar och portfolio för portföljobjeltet identifieras dock automatiskt och hanteras på ett effektivt sätt. Därför rekommenderas det starkt att använda R för avkastningsobjektet och portfolio för portföljobjeltet.

Den anpassade momentfunktionen ska returnera en namngiven lista där elementen representerar momenten:

  • $mu: första momentet (vektor med förväntad avkastning)
  • $sigma: andra momentet (varians-kovariansmatris)
  • $m3: tredje momentet (coskevhetsmatris)
  • $m4: fjärde momentet (cokurtosismatris)

I den här övningen skriver du en anpassad momentfunktion för att skatta varians-kovariansmatrisen med en robust metod. Vi använder funktionen cov.rob() från paketet MASS. Funktionssignaturen ska ha argument med namnen R för tillgångsavkastningar och portfolio för specifikationsobjektet. Funktionen ska returnera en namngiven lista. Eftersom du bara skattar det andra momentet behöver du bara returnera en lista med ett element med lämpligt namn. Du kan tillämpa samma principer för att skriva anpassade momentfunktioner för andra modeller, till exempel faktormodeller, GARCH-modeller eller andra modellklasser som teoretiskt sett bör ge bättre skattningar än stickprovsestimat.

Den här övningen är en del av kursen

Portföljanalys på avancerad nivå i R

Visa kurs

Övningsinstruktioner

  • Definiera en funktion med namnet moments_robust som skattar varians-kovariansmatrisen för tillgångsavkastningarna med metoden "mcd".
  • Skatta portföljmomenten med den funktion du just definierade. Tilldela resultatet till en variabel med namnet moments. Det här steget fungerar som en kontroll för att säkerställa att din anpassade momentfunktion fungerar som förväntat.
  • Beräkna varians-kovariansmatrisen direkt med cov.rob() och kontrollera om den är lika med moments$sigma.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Define custom moment function
moments_robust <- function(R, portfolio){
  out <- list()
  out$___ <- cov.rob(R, method = ___)$cov
  out
}

# Estimate the portfolio moments using the function you just defined 
moments <- moments_robust(R = ___, portfolio = ___)

# Check the moment estimate
cov.rob(___, method = ___)$cov == moments$___
Redigera och kör kod