Tengo una matriz (n,m)
(específicamente que contiene rendimientos de activos durante n
días para m
activos). Estoy tratando de calcular la matriz de covarianza exponencialmente ponderada para estos activos en este período de tiempo, pero quiero limitar la cantidad de datos con los que se calcula cada matriz de covarianza.
Para ser más específico, quiero calcular estas matrices de covarianza usando medias vidas de 20 observaciones, pero no quiero incluir más de 40 observaciones en cada uno de estos cálculos.
He llegado hasta construir un DataFrame de pandas que tiene una forma de (n, m, 40)
, por lo que cada valor de n
contiene las últimas 40 observaciones de los activos m
. Estaba pensando que sería capaz de calcular una sola matriz de covarianza exponencialmente ponderada con una vida media de 20 observaciones en cada n
usando los datos en esa fila, pero me quedo corto. ¿Puedo calcularlo de esta manera o hay un enfoque diferente que debería tomar?
Editar: Estoy buscando evitar los bucles for
en esta solución.