¿Cómo calcular la correlación móvil en R?

En este artículo, discutiremos la correlación continua en el lenguaje de programación R.

La correlación se utiliza para obtener la relación entre dos variables.

  • Dará como resultado 1 si la correlación es positiva.
  • Dará como resultado -1 si la correlación es negativa.
  • dará como resultado 0 si no hay correlación.

Las correlaciones móviles se utilizan para obtener la relación entre dos series temporales en una ventana móvil. Podemos calcular usando la función rollapply(), esto está disponible en el paquete del zoológico, así que tenemos que cargar este paquete.

Sintaxis :

rollapply(data, width, FUN, by.column=TRUE)

dónde,

  • data es el marco de datos de entrada.
  • ancho es un número entero que especifica el ancho de la ventana para la correlación móvil.
  • FUN es la función a aplicar.
  • by.column se usa para especificar si aplicar la función a cada columna por separado.

Podemos obtener correlación usando la función cor().

Sintaxis :

cor(column1,column2)

Ejemplo 1 : programa R para calcular la correlación móvil para el marco de datos.

R

# load the library
library(zoo)
 
# create dataframe with 3 columns
data = data.frame(day=1:15,
                   col1=c(35:49),
                   col2=c(33:47))
 
# display
print(data)
 
# get rolling correlation for col1 and
# col2 with width 6
print(rollapply(data, width=6, function(x) cor(x[,2],x[,3]),
                by.column=FALSE))

Salida :

Ejemplo 2:

R

# load the library
library(zoo)
 
# create dataframe with 3 columns
data = data.frame(
                   col1=c(23,45,23,32,23),
                   col2=c(1,45,67,32,45))
 
# display
print(data)
 
# get rolling correlation for col1 and
# col2 with width 2
print(rollapply(data, width=2, function(x) cor(x[,1],x[,2]),
                by.column=FALSE))

Salida :

Publicación traducida automáticamente

Artículo escrito por sireeshakanneganti112 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *