CommencerCommencer gratuitement

Estimations des moments empiriques

La méthode par défaut pour estimer les moments d’un portefeuille est la méthode sur échantillon. Les moments sont calculés dans optimize.portfolio() en évaluant la fonction passée à l’argument momentFUN. Par défaut, momentFUN vaut set.portfolio.moments() qui calcule les moments empiriques. Ces moments sont ensuite utilisés comme entrées des fonctions objectif. Les moments à estimer dépendent des objectifs. Par exemple, un objectif visant à minimiser l’écart type du portefeuille ne nécessite qu’une estimation du second moment. À l’inverse, l’objectif de maximiser le ratio de Sharpe requiert l’estimation des premier et second moments. Les estimations empiriques des moments présentent des inconvénients, notamment l’erreur d’estimation et la malédiction de la dimension. Le risque d’erreur d’estimation augmente avec la dimension du nombre d’actifs et de paramètres à estimer.

Cet exercice fait partie du cours

Analyse de portefeuille intermédiaire en R

Afficher le cours

Instructions

  • Ajoutez un objectif de rendement avec "mean" comme nom d’objectif.
  • Calculez les moments empiriques avec set.portfolio.moments. Assignez-les à une variable nommée moments.
  • Vérifiez si le premier moment est égal à l’estimation empirique des rendements moyens.
  • Ajoutez un objectif de risque avec "StdDev" comme nom d’objectif.
  • Calculez les moments empiriques avec set.portfolio.moments. Assignez-les à une variable nommée moments.
  • Vérifiez si le second moment est égal à l’estimation empirique de la matrice variance-covariance.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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)
Modifier et exécuter le code