6 votos

¿Cómo implementar la máxima diversificación en R?

Estoy tratando de codificar el problema de optimización para las carteras de diversificación máxima.

El principal problema que estoy teniendo es traducir correctamente la función objetivo en código y portarla al optimizador en general.

¿Cómo se puede abordar esto? ¿Puede solucionarse con R? quadprog ?

La función objetivo a maximizar es el ratio de diversificación:

d(P) = P'E / sqrt(P'VP)

Dónde:

  • E es el vector de volatilidades de los activos,
  • P es el vector de pesos
  • V es la matriz de covarianza.

5voto

penti Puntos 93

Puede encontrar el código fuente completo de R en el sitio de Inversor sistemático .

Por ejemplo, eche un vistazo a este post sobre Carteras de máxima Sharpe . Allí se ve que creó la función de ayuda portfolio.allocation.helper para los siguientes métodos de optimización:

EW=equal.weight.portfolio,
RP=risk.parity.portfolio,
MV=min.var.portfolio,
MD=max.div.portfolio,
MC=min.corr.portfolio,
MC2=min.corr2.portfolio,
MCE=min.corr.excel.portfolio,
MS=max.sharpe.portfolio

Ahora se puede encontrar el código fuente completo aquí .

Querrá echar un vistazo a max.div.portfolio que se basa en el método de:

Hacia la máxima diversificación por Y. Choueifaty, Y. Coignard, El Journal of Portfolio Management, Otoño 2008, Vol. 35, No. 1: pp. 40-51

4voto

m0j0 Puntos 21

Para que conste, la fórmula de la cartera de máxima diversificación se puede encontrar en esto papel .

Como se puede ver en el quadprog documentación minimiza los problemas de la siguiente forma:

$$ \min - d'b + \tfrac12 b' D b ~ \text{with} ~ A' b \geq b_0 $$

Así que claramente, no es bueno para su fórmula.

Puede considerar optim o una de sus extensiones para su problema.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X