HT crear un nuevo vector en el marco de datos que realiza la correlación de los vectores existentes

StackOverflow https://stackoverflow.com/questions/2467019

  •  20-09-2019
  •  | 
  •  

Pregunta

Tengo una serie temporal de dos índices, con cada fila que representa el precio de cierre en el mismo día. Me gustaría ir a la fila 30 y al pasado en los últimos 30 'días' y calcular la correlación de Pearson. Y luego almacenar ese valor en un nuevo vector. A continuación, repetir el cálculo para toda la serie temporal.

Es una tarea trivial en Excel, por lo que estoy convencido de que se puede hacer en R. No sé el método a utilizar sin embargo.

¿Fue útil?

Solución

Hay muchas maneras de hacer esto (como todo en R). Siempre recomiendo el uso de una serie de tiempo cuando se trabaja con datos de series de tiempo.

El paquete zoo es probablemente el más popular paquete de series de tiempo (aunque también se puede mirar a los demás como el XTS, series de tiempo, su, FTS):

library(zoo)
z <- zoo(data.frame(a=1:50, b=3:52), as.Date(1:50))
rollapply(z, 30, cor, by.column=F, align = "right")

También puede encontrar la función chart.RollingCorrelation en el paquete PerformanceAnalytics útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top