Het mean-variance-efficiënte portefeuille vinden
Een mean-variance-efficiënte portefeuille krijg je door de portefeuilleverwachtingswaarde gelijk te stellen aan een doelrendement en vervolgens de variantie van de portefeuille te minimaliseren. Een handige R-functie hiervoor is portfolio.optim() uit het R-pakket tseries. De standaardinstelling zoekt de mean-variance-efficiënte portefeuillegewichten onder de randvoorwaarde dat het portefeuillerendement gelijk is aan het rendement van de gelijkgewogen portefeuille. Het enige vereiste argument is de maandelijkse rendementendata van de portefeuillecomponenten waarvoor je de gewichten wilt bepalen.
De variabele returns met de maandrendementen van de DJIA-aandelen is al in de console geladen.
Deze oefening maakt deel uit van de cursus
Introductie tot portefeuilleanalyse in R
Oefeninstructies
- Laad de library
tseries. - Maak een mean-variance-efficiënte portefeuille van maandrendementen met de standaard van
portfolio.optim()waarbij het rendement van de gelijkgewogen portefeuille wordt nagestreefd, en ken de output toe aan de variabeleopt. - Maak een vector met gewichten uit je geoptimaliseerde portefeuille. De portefeuillegewichten vind je in
opt$pw. Noem ditpf_weights. - Ken de namen toe aan de assets met de gegeven code.
- Selecteer de optimale gewichten uit
pf_weightsdie groter dan of gelijk aan 1% zijn, noem ditopt_weights. - Gebruik barplot() om de verdeling van
opt_weightste visualiseren. - Print het verwachte portefeuillerendement (
opt$pm) en de volatiliteit (opt$ps) van de geoptimaliseerde portefeuille.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Load tseries
# Create an optimized portfolio of returns
opt <- portfolio.optim(___)
# Create pf_weights
pf_weights <- ___$pw
# Assign asset names
names(pf_weights) <- colnames(returns)
# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]
# Bar plot of opt_weights
# Print expected portfolio return and volatility
___$pm
___$ps