📜  如何计算 R 中的滚动相关性?

📅  最后修改于: 2022-05-13 01:54:23.175000             🧑  作者: Mango

如何计算 R 中的滚动相关性?

在本文中,我们将讨论 R 编程语言中的滚动相关性。

相关性用于获得两个变量之间的关系。

  • 如果相关性为正,则结果为 1。
  • 如果相关性为负,它将导致 -1。
  • 如果没有相关性,它将导致 0。

滚动相关性用于获取滚动窗口上的两个时间序列之间的关系。我们可以使用 rollapply()函数来计算,这在 zoo 包中是可用的,所以我们必须加载这个包。

语法

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

在哪里,

  • data 是输入数据框。
  • width 是一个整数,它指定滚动相关性的窗口宽度。
  • FUN 是要应用的函数。
  • by.column 用于指定是否将函数分别应用于每一列。

我们可以使用 cor()函数获得相关性。

语法

cor(column1,column2)

示例 1 :计算数据帧的滚动相关性的 R 程序。

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))


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))


输出

示例 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))

输出