Suponga que tiene N series de tiempo (xts clase) ¿Puede sugerir una forma (por ejemplo, una función existente) para calcular la correlación media de balanceo (rolling = moving window)? Así que usted tiene (por ejemplo) 10 series de tiempo. El primer paso es calcular la correlación de 60 días entre primero y segundo, primero y tercero, primero y cuarto, y así sucesivamente. El segundo paso es calcular el promedio para ese valor de correlación. Fin del primer ciclo. Después de avanzar de un día y comenzar todo el proceso (primer y segundo paso) Los resultados son una serie de tiempo con los valores medios de correlación. ¿Puede alguien ayudar a encontrar una manera eficiente de hacer esto? Esta es la estructura de mis datos: Suponga que tiene todas las series en el marco de datos llamado X, en las primeras diez variables. Entonces: Si no los tienes en un marco de datos, entonces creo que la forma más fácil es primero hacer un marco de datos :) - siempre que su serie de tiempo son todos de la misma longitud. (editar) Para excluir la diagonal 1 de la matriz de correlación puede definir primero una función que calcula la media de todos los valores por debajo de la diagonal (o por encima del diag, no hace diferencia): (No probado, pero creo que shoudlwork) Respondió Apr 9 '14 a las 11:05 Gracias lebatsnok. Es correcto que en su función la media se calcula con el 1? Una matriz de correlación típica tiene 1 en la diagonal. ¿Cómo excluir a esos en el cálculo de la media? & Ndash; Fryc Apr 9 '14 at 16:00 Ok ahora tal vez es más fácil definir primero una función que calcula la media de la matriz de correlación, excluyendo la diagonal, y luego usar sapply. Vea la edición anterior & ndash; Lebatsnok Apr 9 '14 a las 18:35
Comments
Post a Comment