You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R包QCSIS实现滚动窗口分位数相关性的代码问题

滚动窗口分位数相关性计算修正方案

你的代码核心问题是循环内未对x和y进行滚动窗口切片,每次调用qc()都传入了完整数据集,因此重复输出全局静态分位数相关性。以下是修正后的代码及说明:

修正后的循环实现代码

library(QCSIS)

# 生成随机变量
n   <- 4000
x   <- rnorm(n)
y   <- 2 * x + rt(n, df = 1)
tau <- 9 / 10

# 静态分位数相关性计算
fit <- qc(x = x, y = y, tau = tau)
fit$rho 

# 滚动窗口分位数相关性计算
s <- 260 # 窗口大小
window_count <- n - s + 1
Rho.mat <- matrix(0, 1, window_count) # 初始化结果存储矩阵

# 修正循环:每次提取当前窗口的子集数据
for(i in 1:window_count) {  
  # 关键操作:截取第i个滚动窗口对应的x、y子集
  x_window <- x[i:(i + s - 1)]
  y_window <- y[i:(i + s - 1)]
  fit <- qc(x = x_window, y = y_window, tau = tau) 
  Rho.mat[,i] <- fit$rho  
}  

关键修改点

  • 循环内通过x[i:(i+s-1)]和y[i:(i+s-1)]定位当前滚动窗口的数据集,确保每次qc()计算的是窗口内的分位数相关性
  • 新增window_count变量替代重复的n-s+1,提升代码可读性

更简洁的lapply实现版本

如果不想用循环,也可以用lapply简化代码:

# 用lapply批量计算窗口相关性
rho_list <- lapply(1:window_count, function(i) {
  qc(x = x[i:(i+s-1)], y = y[i:(i+s-1)], tau = tau)$rho
})
Rho.mat <- matrix(unlist(rho_list), 1, window_count)

内容的提问来源于stack exchange,提问作者Ameer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:50:34