3 votos

¿Cómo calcular correctamente la media de las correlaciones múltiples?

Estoy tratando de obtener un promedio a través de 3 correlaciones. Usando Python, obtengo estas correlaciones con:

corr = df.apply(lambda s: df.corrwith(s))

que da salida:

   A         B         C
A  1.000000  0.057896  -0.159932
B  0.057896  1.000000  0.581226
C  -0.159932 0.581226  1.000000

El triángulo inferior de la matriz se aísla con:

corr.values[np.tril_indices(len(corr))] = np.nan

Ahora es cuando necesito tu ayuda. Soy consciente de que una media aritmética de corr sería el enfoque incorrecto. Desde este puesto Parece que hay cierta preferencia por "transforme cada coeficiente de correlación utilizando la Z de Fisher, calcule la media de los valores de la z, y luego vuelva a transformar al coeficiente de correlación" .

Lo hago de la siguiente manera:

mean_z = np.nanmean(np.arctanh(corr).values)
mean_corr = np.tanh(mean_z)

¿Está de acuerdo con este enfoque y se aplica correctamente?

El objetivo es obtener una correlación media en una cartera.

0 votos

Tu cálculo parece correcto, no veo ningún error evidente. Si el tamaño de tu muestra es grande ni siquiera me importaría esa transformación para ser honesto. ¿Entiendo que quieres eliminar el sesgo del estimador de correlación? Tenga en cuenta que el estimador de correlación de la muestra está sesgado hacia abajo, pero la transformación de Fisher sesga el estimador hacia arriba. Yo sugeriría utilizar otro método para corregir el sesgo, el método de Olkin y Pratt es superior al de Fisher. enlace Ten en cuenta que estos métodos sólo son válidos para el pdf normal.

0 votos

Muchas gracias. Sí, habría que asumir una distribución normal, lo que es complicado en una serie temporal financiera. En ocasiones he tenido errores de "división por 0" al hacer Fisher, por lo que es posible que tenga que volver a utilizar la media aritmética u otros métodos. Los tamaños de las muestras para todas las correlaciones ts son todos iguales y n=90. Me encantaría escuchar otras opiniones, y siéntase libre de publicar su comentario como respuesta.

4voto

MitziMeow Puntos 101

El problema con el estimador de correlación de la muestra definido como: $$r_{sample} =\frac{\sum\left(X_i - \bar{X}\right)\left(Y_i - \bar{Y}\right)}{\sqrt{\sum\left(X_i-\bar{X}\right)^2\left(Y_i-\bar{Y}\right)^2}}.$$ es que es parcial. El sesgo es, de hecho, a la baja, es decir $r_{sample}$ tiende a ser menor que la población $\rho$ . Por lo tanto, cuando promediamos un estimador sesgado estamos manteniendo el sesgo.

Olkin y Pratt (1958) sugirieron un estimador insesgado para el coeficiente de correlación: $$r_{corrected}=r_{sample}(1+\frac{1-r_{sample}^2}{2(n-3)})$$ que es muy preciso y superior al de Fisher (que sesga el estimador al alza), según enlace . Para el tamaño de la muestra $n=90$ vemos que la corrección es realmente pequeña y se puede ignorar con seguridad el sesgo y promediar las correlaciones sin corrección.

Algunas personas afirman que no se debe calcular la correlación media entre diferentes pares de activos. Yo tiendo a no estar de acuerdo con eso. A continuación presento dos razonamientos.

Correlación media de la cartera

Si quiere calcular la correlación media para la cartera entonces debe tener en cuenta las ponderaciones de la cartera. Tierens y Anadu (2004) enlace propone un método para calcular la correlación media de la cartera: $$p_{av}=\frac{2\sum_{i=1}^{N}\sum_{j>i}^{N}w_i w_j p_{i,j}}{1-\sum_{i=1}^{N}w_i^2}$$

Esta correlación media tiene una interpretación muy bonita, si tenemos dos carteras lineales

  • uno con idéntica varianza del activo e idéntica correlación entre todos los pares $i, j$ de activos igual a $p_{av}$
  • segundo con idéntica varianza de los activos pero diferentes correlaciones entre pares $i, j$ de activos igual a $p_{i,j}$

entonces la varianza de ambas carteras es igual y sus VaR también son iguales. De esto se deduce que cuando la correlación media disminuye, la varianza de la cartera disminuye también. Por lo tanto, la correlación media proporciona información útil.

Medida de la similitud de dos matrices de correlación

Podemos calcular la distancia entre dos matrices de correlación y comparar su similitud enlace . La métrica de la distancia es: $$d = 1 - \frac{\text{tr}(R_1 \cdot R_2)}{\|R_1\| \cdot \|R_2\|},$$ donde $R_1$ y $R_2$ son dos matrices de correlación y la norma es la norma de Frobenius. Esta métrica toma valores de 0 (matriz idéntica) a 1. Podemos comparar cualquier matriz de correlación con esa métrica. Pero resulta que si nos limitamos sólo a escalares, entonces la media simple de todas las correlaciones minimiza la distancia $d$ Es decir. $R_2$ con entradas fuera de la diagonal iguales a $p_{av-equal}$ es la más parecida a la matriz original $R_1$ .

$$p_{av-equal}=\frac{\sum_{i=1}^{N}\sum_{j>i}^{N}p_{i,j}}{N(N-1)/2}$$ es una simple media de entradas no diagonales.

0 votos

Muy bien explicado, un millón de gracias

0 votos

La pregunta ha sido formulada con código python, debe ser respondida con código python.

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