Encontrar la cartera eficiente media-varianza
Una cartera eficiente media-varianza puede obtenerse como la solución que minimiza la varianza de la cartera bajo la restricción de que la rentabilidad esperada de la cartera sea igual a una rentabilidad objetivo. Una función de R muy útil para hacerlo es portfolio.optim() del paquete tseries. Su implementación por defecto encuentra los pesos de la cartera eficiente media-varianza imponiendo que la rentabilidad de la cartera sea igual a la rentabilidad de la cartera equiponderada. El único argumento necesario son los datos de rentabilidades mensuales de los componentes de la cartera para los que hay que determinar los pesos.
La variable returns con las rentabilidades mensuales de las acciones del DJIA ya está cargada en la consola.
Este ejercicio forma parte del curso
Introducción al análisis de carteras en R
Instrucciones del ejercicio
- Carga la librería
tseries. - Crea una cartera eficiente media-varianza de rentabilidades mensuales usando el comportamiento por defecto de
portfolio.optim()(objetivo: la rentabilidad de la cartera equiponderada) y asigna la salida a la variableopt. - Crea un vector de pesos a partir de tu cartera optimizada. Los pesos de la cartera están en
opt$pw. Llámalopf_weights. - Asigna los nombres a los activos usando el código proporcionado.
- Selecciona los pesos óptimos de
pf_weightsque sean mayores o iguales al 1 %; llama a estoopt_weights. - Usa barplot() para visualizar la distribución de
opt_weights. - Imprime la rentabilidad esperada de la cartera (
opt$pm) y la volatilidad (opt$ps) de la cartera optimizada.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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