Aan de slagGa gratis aan de slag

Definieer een aangepaste momentfunctie

In veel gevallen bij geoptimaliseerde problemen met beperkingen wil de portfoliomanager of analist momenten schatten met een specifieke techniek en/of het idee van set.portfolio.moments() verder uitbreiden. Een door de gebruiker gedefinieerde aangepaste momentfunctie kan willekeurig benoemde argumenten hebben. Argumenten met de namen R voor de rendementen van de activa en portfolio voor het portfolio-object worden echter automatisch herkend en efficiënt verwerkt. Daarom is het sterk aan te raden R te gebruiken voor het object met asset returns en portfolio voor het portfolio-object.

De aangepaste momentfunctie moet een benoemde lijst teruggeven waarin de elementen de momenten voorstellen:

  • $mu: eerste moment (vector met verwachte rendementen)
  • $sigma: tweede moment (variantie-covariantiematrix)
  • $m3: derde moment (coscheefheidsmatrix)
  • $m4: vierde moment (cokurtosematrix)

In deze oefening schrijf je een aangepaste momentfunctie om de variantie-covariantiematrix te schatten met een robuuste methode. We gebruiken de functie cov.rob() uit het pakket MASS. De functiehandtekening moet argumenten hebben met de namen R voor de asset returns en portfolio voor het specificatie-object. De functie moet een benoemde lijst teruggeven. Omdat je alleen het tweede moment schat, hoef je alleen een lijst met één element terug te geven met de juiste naam. Je kunt deze regels toepassen om aangepaste momentfuncties te schrijven voor andere modellen zoals factormodellen, GARCH-modellen of elke andere klasse van modellen die theoretisch een betere schatting zouden moeten opleveren dan de steekproefschatting.

Deze oefening maakt deel uit van de cursus

Gevorderde portefeuilleanalyse in R

Cursus bekijken

Oefeninstructies

  • Definieer een functie moments_robust die de variantie-covariantiematrix van de asset returns schat met de methode "mcd".
  • Schat de portfoliomomenten die je zojuist hebt gedefinieerd. Ken dit toe aan een variabele moments. Dit doe je als controle om te zorgen dat je aangepaste momentfunctie werkt zoals verwacht.
  • Bereken de variantie-covariantiematrix direct met cov.rob() en controleer of deze gelijk is aan moments$sigma

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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$___
Code bewerken en uitvoeren