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程序计算数据帧的滚动相关。
# 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))
输出 :
例2 :
# 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))
输出: