Schattingen van steekproefmomenten
De standaardmethode voor het schatten van portefeuillemomenten is de steekproefmethode. De momenten worden berekend in optimize.portfolio() door de functie uit te voeren die is doorgegeven aan het momentFUN-argument. De standaard voor momentFUN is set.portfolio.moments() en die berekent standaard de steekproefmomenten. De momenten worden vervolgens gebruikt als invoer voor de doelfuncties. Welke momenten je moet schatten, hangt af van de doelen. Een doel om de standaarddeviatie van de portefeuille te minimaliseren vereist bijvoorbeeld alleen een schatting van het tweede moment. Vergelijk dat met het doel om de Sharpe-ratio te maximaliseren, waarvoor zowel het eerste als het tweede moment moeten worden geschat. Steekproefschattingen van de momenten hebben nadelen, zoals schattingsfouten en de vloek van dimensionaliteit. Het risico op schattingsfouten neemt toe naarmate het aantal activa en het aantal te schatten parameters groter wordt.
Deze oefening maakt deel uit van de cursus
Gevorderde portefeuilleanalyse in R
Oefeninstructies
- Voeg een rendementsdoel toe met
"mean"als doelnaam. - Bereken de steekproefmomenten met
set.portfolio.moments. Ken dit toe aan een variabelemoments. - Controleer of het eerste moment gelijk is aan de steekschatting van de gemiddelde rendementen.
- Voeg een risicodoel toe met
"StdDev"als doelnaam. - Bereken de steekproefmomenten met
set.portfolio.moments. Ken dit toe aan een variabelemoments. - Controleer of het tweede moment gelijk is aan de steekschatting van de variantie-covariantiematrix.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Add a return objective with "mean" as the objective name
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___)
# Calculate the sample moments
moments <- set.portfolio.moments(R = ___, portfolio = ___)
# Check if moments$mu is equal to the sample estimate of mean returns
moments$mu == colMeans(asset_returns)
# Add a risk objective with "StdDev" as the objective name
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___)
# Calculate the sample moments using set.portfolio.moments. Assign to a variable named moments.
moments <- set.portfolio.moments(R = ___, portfolio = ___)
# Check if moments$sigma is equal to the sample estimate of the variance-covariance matrix
moments$sigma == cov(asset_returns)