3 votos

¿Por qué la anualización de la matriz de covarianza muestreada cambia el vector de peso de las acciones?

Pregunta

  • Mientras optimizaba una cartera utilizando el método 'Global Minimum Variance' (GMV), descubrí que anualizar una matriz de covarianza muestreada afecta al vector de ponderaciones de acciones.
  • P1. ¿Por qué anualizar (multiplicando por 252) una matriz de covarianza afecta a los vectores de ponderaciones?
  • P2. ¿Es correcto anualizar una varianza y covarianza multiplicándolas por 252?

Información detallada

  • Verifico el resultado de la optimización de la cartera utilizando la biblioteca de Python PyPortfolioOpt.

  • En esta biblioteca, la entrada para la fórmula matemática de optimización son los rendimientos diarios de los activos.

  • La biblioteca "anualiza" la matriz de varianza-covarianza multiplicándola por 252. Puedes verificar el código aquí. El fragmento de código es el siguiente:

    def sample_cov(prices, frequency=252): ... return daily_returns.cov() * frequency

  • Para anualizar un coeficiente de Sharpe calculado a partir de los rendimientos diarios, los multiplicamos por la raíz cuadrada de 252, que es casi igual a 15.87. Pero ¿para anualizar una covarianza, simplemente la multiplicamos por 252? No tiene sentido para mí.

  • Además, multiplicar una covarianza por un número constante como 252, no cambia la clasificación de las covarianzas entre variables. Por ejemplo, supongamos que tenemos 3 variables aleatorias A, B y C y cov(A,B) = 0.4, cov(A,C) = -0.4, cov(B,C) = -0.7. Entonces, si seguimos multiplicándolas por 252, la co-movilidad relativa sigue siendo la misma.

  • Por lo tanto, no puedo entender por qué la anualización (multiplicando por 252) de la matriz de varianza-covarianza cambia el resultado de la optimización de la cartera.

0 votos

Desde mi entendimiento, el estándar 252 proviene de modelos en tiempo continuo con un Browniano que tiene una varianza de T en el tiempo T. En cuanto al índice de Sharpe, tiene sentido ya que el Sharpe utiliza la volatilidad y no la varianza. La volatilidad evoluciona por la raíz cuadrada del tiempo, por lo tanto, al anualizarse *sqrt(252). Mis 0.02$, espero que ayude.

0 votos

@Mayeulsgc Gracias por tu comentario. Pero, ¿qué significa el 0.02$ al final de tu comentario?

0 votos

Ahaha significa "mis 2 centavos", expresión en inglés que significa una pequeña contribución pero de todas formas lo estoy diciendo

4voto

David Rickman Puntos 2787

Q1. Calcular el GMVP implica tres operaciones:

  1. Invertir la matriz de covarianza $\Sigma$

  2. Multiplicar la inversa por un vector columna de 1's a la derecha: $x=\Sigma^{-1} \mathbf{1}$

  3. Normalizar este vector para que la suma de los elementos sea 1: $w= \frac{x}{1^T x}$

Nota que los rendimientos esperados $\mu$ no se utilizan en este cálculo.

Si multiplicas la covarianza por 252, la inversa y x se multiplicarán por $\frac{1}{252}$, pero $w$ será el mismo, ya que está normalizado.

Por lo tanto, al multiplicar la matriz de covarianza por cualquier número (distinto de 0), no se cambian los pesos de la cartera GMVP. Así que debes estar haciendo algo mal o diferente a lo que dije anteriormente.

Q2. Si estás usando rendimientos logarítmicos, el rendimiento por 1 año es la suma de 252 rendimientos diarios. Si los rendimientos son independientes, es verdad que la matriz de covarianza para los rendimientos anuales es 252 veces la matriz de covarianza de los rendimientos diarios. Esa es una propiedad de la covarianza de sumas de variables independientes.

0 votos

¿Es la volatilidad anualizada de la cartera igual a $\sqrt{w'\cdot (\Sigma \times 252) \cdot w}$?

1voto

Para la P1, no debería. Simplemente estás multiplicando la matriz de covarianza por una constante. Sin embargo, la cartera GMV óptima es muy sensible a los inputs. La diferencia podría deberse simplemente al redondeo (asumo que las diferencias son bastante pequeñas).

Otra forma en la que la anualización podría cambiar tus resultados es si estás utilizando costos de transacción (u otro compromiso con el riesgo). Por ejemplo, si tu función objetivo se ve así,

$\max\limits_x \left\{-\lambda x'\Sigma x-\gamma\text{Costo de Transacción}\right\}$,

entonces anualizar efectivamente aumenta tu parámetro de aversión $\lambda$, lo que penaliza más el riesgo en relación al costo de transacción. En este caso específico, es similar a forzar el turnover (enfatizar la reducción del riesgo a expensas del costo de transacción).

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