Trouver le portefeuille efficient moyenne–variance
Un portefeuille efficient moyenne–variance s’obtient en minimisant la variance du portefeuille sous la contrainte que le rendement espéré du portefeuille soit égal à un rendement cible. Une fonction R pratique pour cela est portfolio.optim() du package R tseries. Son comportement par défaut calcule les pondérations du portefeuille efficient moyenne–variance sous la contrainte que le rendement du portefeuille soit égal à celui d’un portefeuille équipondéré. Le seul argument nécessaire est la série de rendements mensuels des composantes du portefeuille dont il faut déterminer les pondérations.
La variable returns, qui contient les rendements mensuels des actions du DJIA, est déjà chargée dans la console.
Cet exercice fait partie du cours
Introduction à l’analyse de portefeuille en R
Instructions
- Chargez la bibliothèque
tseries. - Créez un portefeuille efficient moyenne–variance de rendements mensuels en utilisant la valeur par défaut de
portfolio.optim()(ciblant le rendement du portefeuille équipondéré) et affectez le résultat à la variableopt. - Créez un vecteur de pondérations à partir de votre portefeuille optimisé. Les pondérations se trouvent dans
opt$pw. Nommez ce vecteurpf_weights. - Attribuez les noms aux actifs en utilisant le code fourni.
- Sélectionnez, depuis
pf_weights, les pondérations optimales supérieures ou égales à 1 %, et appelez ce vecteuropt_weights. - Utilisez barplot() pour visualiser la distribution de
opt_weights. - Affichez le rendement espéré (
opt$pm) et la volatilité (opt$ps) du portefeuille optimisé.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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