10 votos

¿Paridad de riesgo jerárquica con restricciones de asignación?

En lo realmente interesante papel de Marcos López de Prado se aplica una variación de la paridad de riesgo por la que los activos subyacentes de la cartera se dividen primero en "grupos de correlación" y los porcentajes de asignación se distribuyen en función de ello.

Más concretamente, el algoritmo de asignación consiste en dividir inicialmente los activos en dos grupos y asignar en ellos una asignación basada en la varianza, mientras se procede con un procedimiento recursivo en forma de árbol para los miembros de los dos grupos iniciales.

Esto da como resultado que los pesos estén en [0,1], sin embargo, como se menciona un par de veces en el documento, esto puede ser fácilmente modificado para acomodar diferentes restricciones. ¿Alguna idea de cómo sería posible? Por ejemplo, ¿cómo puedo conseguir que los pesos estén en el rango [0,01 0,1]?

4voto

Wim Coenen Puntos 225

EDITADO

Tienes razón. Tenemos que mirar al pueblo a las "hojas" en cada iteración. Yo lo haría de la siguiente manera:

Si $L_i^{(j)}$ es el conjunto de índices del $j$ rama ( $j \in \{1,2\}$ ), entonces definimos $s_i^{(j)}=\sum_{n \in L_i^{(j)}w_n}$ el peso de la rama antes del escalado y $n_i^{(j)}=\left|L_i^{(j)}\right|$ el número de hojas de la rama.

Las restricciones de caja para los pesos que llamamos $w_\text{min}$ y $w_\text{max}$ .

Dejemos que $\alpha_i$ sea el factor de escala para $L_i^{(1)}$ y $1-\alpha_i$ el factor de escala para $L_i^{(2)}$ .

Para cumplir con las restricciones, tenemos que comprobar los pesos resultantes.

Si escalamos los pesos de $L_i^{(j)}$ por $\alpha_i$ Debemos tener suficiente margen de maniobra para que la restricción de peso mínimo pueda seguir encajando en el peso de la rama y debemos tener un peso limitado para poder cumplir los límites superiores:

$$ \alpha_i s_i^{(1)} \geq n_i^{(1)} w_\text{min}$$ $$ \alpha_i s_i^{(1)} \leq n_i^{(1)} w_\text{max}$$

Para el otro lado de la rama, tenemos que comprobar, lo análogo:

$$ (1-\alpha_i) s_i^{(2)} \geq n_i^{(2)} w_\text{min}$$ $$ (1-\alpha_i) s_i^{(2)} \leq n_i^{(2)} w_\text{max}$$

Si juntamos las cuatro, obtenemos las siguientes desigualdades para $\alpha_i$ :

$$ \text{max}\left(1-\frac{n_i^{(2)}w_\text{max}}{s_i^{(2)}},\frac{n_i^{(1)}w_\text{max}}{s_i^{(1)}}\right) \leq \alpha_i \leq \text{min}\left(1-\frac{n_i^{(2)}w_\text{min}}{s_i^{(2)}},\frac{n_i^{(1)}w_\text{max}}{s_i^{(1)}}\right)$$

Así que si definimos el límite inferior como $\text{LB}_i$ y el límite superior como $\text{UB}_i$ ajustamos el factor de escala de la siguiente manera:

$$ \hat{\alpha}_i = \text{max}(\text{LB}_i,\text{min}(\alpha_i,\text{UB}_i))$$

Si $\text{UB}_i \leq \text{LB}_i$ y luego terminar la función. Espero que esto sólo ocurra si las restricciones son incompatibles, pero no he intentado probarlo.

De esta manera, se puede proceder con el algoritmo mientras se cumplen las restricciones.

Las restricciones lineales en los activos sigle son probablemente el único tipo de restricciones útiles que se pueden imponer. Las restricciones sobre los pesos de los sectores, por ejemplo, serán imposibles aquí debido a la estructura de agrupación. En la práctica, puedo ver que esto es un gran inconveniente.

Comparado con el clásico Presupuesto de Riesgo de volatilidad inversa, este enfoque es realmente elegante, ya que sólo ignora la parte de la matriz de covarianza de la varianza que es de poca importancia si se quiere.

0 votos

Gracias por tu comentario, puedo ver dos problemas con este enfoque: 1. algunos de mis activos son tan volátiles que actualmente (y después de usar algún método de contracción de la matriz de covarianza) bajo el mismo sub-cluster uno de los activos obtener 0,004 ponderación y el otro 0. 0101... de alguna manera el algo debería mirar hacia adelante en cuántas 'hojas'/activos están bajo cada cluster y establecer el mínimo basado en esto 2. Si inicializo los pesos a 0.1, dado el hecho de que empezamos con dos nodos, finalmente los pesos sumarán 0.2

0 votos

OK estoy de acuerdo contigo en la inicialización, ese es mi error. Tenemos que inicializar con $1$ por supuesto. Creo que también podríamos añadir la restricción máxima en el factor de escala. Esa debió ser la idea del autor. Estoy 100% de acuerdo contigo: la cosa no es ni fácil ni sencilla. Mirar a través de las hojas no puede ser lo que el autor tenía en mente. Editaré mi respuesta y lo intentaré de nuevo si no te importa...

0 votos

Claro, cualquier otra idea es bienvenida

-1voto

Loren Pechtel Puntos 2212

En la fórmula 3.c de la página 8 de su documento.

Lo tenemos:

$\alpha = 1 - v_1/(v_1 + v_2$ )

Donde a ~ (0,1), por tanto $v_1$ y $v_2$ están ambos entre (0,1) y suman también 1. Así que podemos escalar ambos $v_1$ y $v_2$ apropiadamente ex:

$v^{new}_1 = (1-0.01) * v_1 + 0.01$

Esto nos daría el rango de peso deseado

0 votos

$v_1$ y $v_2$ son las volatilidades de las agrupaciones... (por lo que no están entre $0$ y $1$ También no suman a $1$ . No veo cómo esto se relaciona con las pesas... Además, el máximo según el OP debería ser $0.1$ .

0 votos

Gracias por tu respuesta, podría aplicar esto a los pesos (mientras que las u's son las volatilidades del cluster) pero hay un bucle for ahí... Podría aplicar una variación de tu transformación después de calcular todos los pesos, pero creo que esto distorsionará la metodología

0 votos

@vanguard2k el documento sugiere modificar los pasos 3.c-3.e ¿quizás me estoy equivocando de escala? También puedes sustituir el 1 por el máximo deseado, es decir $(0.1 - 0.01) * v_1 + 0.01$ para el rango [0,01, 0,1]

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