如何计算 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))
输出: