Estimaciones muestrales de momentos
El método predeterminado para estimar los momentos de la cartera es el método muestral. Los momentos se calculan en optimize.portfolio() evaluando la función pasada al argumento momentFUN. El valor por defecto de momentFUN es set.portfolio.moments(), que a su vez calcula los momentos muestrales. Estos momentos se usan como entrada de las funciones objetivo. Los momentos que hay que estimar dependen de los objetivos. Por ejemplo, un objetivo para minimizar la desviación estándar de la cartera solo requiere una estimación del segundo momento. Compáralo con el objetivo de maximizar el ratio de Sharpe, que requiere estimar el primer y el segundo momento. Las estimaciones muestrales de los momentos tienen desventajas, como el error de estimación y la maldición de la dimensionalidad. El riesgo de error de estimación aumenta a medida que crece la dimensión de los activos y el número de parámetros a estimar.
Este ejercicio forma parte del curso
Análisis de carteras intermedio en R
Instrucciones del ejercicio
- Añade un objetivo de retorno con
"mean"como nombre del objetivo. - Calcula los momentos muestrales usando
set.portfolio.moments. Asigna el resultado a una variable llamadamoments. - Comprueba si el primer momento es igual a la estimación muestral de los rendimientos medios.
- Añade un objetivo de riesgo con
"StdDev"como nombre del objetivo. - Calcula los momentos muestrales usando
set.portfolio.moments. Asigna el resultado a una variable llamadamoments. - Comprueba si el segundo momento es igual a la estimación muestral de la matriz de varianzas-covarianzas.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)