3 votos

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

Pregunta

  • Mientras optimizaba un portafolio utilizando el método de 'Varianza Mínima Global' (GMV), encontré que annualizar una matriz de covarianza muestreada hace una diferencia en el vector de pesos de las acciones.
  • P1. ¿Por qué annualizar (multiplicando por 252) una matriz de covarianza hace una diferencia en los vectores de pesos?
  • P2. ¿Es correcto annualizar una varianza y covarianza multiplicándolos por 252?

Información detallada

  • Reviso el resultado de la optimización del portafolio utilizando la biblioteca de Python PyPortfolioOpt.

  • En esta biblioteca, la entrada para la fórmula matemática de optimización es un rendimiento diario de los activos.

  • La biblioteca "annualiza" la matriz de varianza-covarianza multiplicándola por 252. Puedes revisar el código aquí. El extracto del código es el siguiente:

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

  • Para annualizar un índice 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 annualizar una covarianza, los multiplicamos solo por 252? No tiene sentido para mí.

  • Además, multiplicar una covarianza por un número constante como 252, no cambia las clasificaciones de 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 aún los multiplicamos por 252, la relación de movimiento conjunto sigue siendo la misma.

  • Por lo tanto, no entiendo por qué annualizar (multiplicando por 252) la matriz de varianza-covarianza cambia el resultado de la optimización del portafolio.

0 votos

Desde mi entendimiento, el estándar 252 proviene de modelos continuos de tiempo con un Browniano que tiene una varianza de T en el tiempo T. En cuanto al ratio 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 anualizarla se multiplica por *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 yo lo digo de todas formas

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 los elementos sumen 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, multiplicar la matriz de covarianza por cualquier número (que no sea 0) no cambia los pesos de la cartera GMVP. Así que debes estar haciendo algo mal o diferente a lo que dije anteriormente.

Q2. Si estás utilizando rendimientos logarítmicos, el rendimiento para 1 año es la suma de 252 rendimientos diarios. Si los rendimientos son independientes, es cierto 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

¿La volatilidad del portafolio anualizada es igual a $\sqrt{w'\cdot (\Sigma \times 252) \cdot w}$?

1voto

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

Otra forma en que anualizar podría cambiar tus resultados es si estás utilizando costos de transacción (o cualquier otra compensación 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 aumenta efectivamente tu parámetro de aversión $\lambda$, lo que penaliza más el riesgo en relación con el costo de transacción. En este caso específico, es similar a forzar la rotación (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