问题描述
我必须计算 60 天滚动窗口 R2 时间序列的平均值。我的时间序列有 4680 个观察值。
我想知道,R2 的级数的平均值是回归的总 R2 吗?
示例:
Mean(series of r2) = R2 对所有样本数据的回归
解决方法
试试吧。我们展示了在这种情况下定义 R 平方的两种等效方法:
library(zoo)
set.seed(123)
n <- 4680
w <- 60
x <- rnorm(4680)
r2 <- function(x) summary(lm(x ~ seq_along(x)))$r.squared
# r2 <- function(x) cor(x,seq_along(x))^2 # this is equivalent
mean(rollapplyr(x,w,r2))
## [1] 0.4992133
r2(x)
## [1] 0.0001151601