Hitta den mean-variance-effektiva portföljen
En mean-variance-effektiv portfölj kan beräknas genom att minimera portföljvariansen under villkoret att portföljens förväntade avkastning är lika med en målavkastning. En praktisk R-funktion för detta är portfolio.optim() i R-paketet tseries. Standardimplementationen hittar de mean-variance-effektiva portföljvikterna under villkoret att portföljens avkastning är lika med avkastningen för den likaviktade portföljen. Det enda argumentet som behövs är månadsavkastningsdata för de tillgångar som vikterna ska beräknas för.
Variabeln returns, som innehåller månadsavkastningarna för DJIA-aktierna, är redan inläst i konsolen.
Den här övningen är en del av kursen
Introduktion till portföljanalys i R
Övningsinstruktioner
- Läs in biblioteket
tseries. - Skapa en mean-variance-effektiv portfölj av månadsavkastningar med standardinställningen i
portfolio.optim(), som riktar in sig på den likaviktade portföljens avkastning, och tilldela resultatet till variabelnopt. - Skapa en vektor med vikter från din optimerade portfölj. Portföljvikterna finns i
opt$pw. Kalla dennapf_weights. - Tilldela tillgångarna namn med hjälp av den medföljande koden.
- Välj de optimala vikterna från
pf_weightssom är större än eller lika med 1 %, och kalla dessaopt_weights. - Använd barplot() för att visualisera fördelningen av
opt_weights. - Skriv ut den förväntade portföljens avkastning (
opt$pm) och volatilitet (opt$ps) för den optimerade portföljen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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