r - DF中多个变量的单变量滚动窗口的R循环
问题描述
我敢肯定这很明显,但我是 R 的初学者,我花了一大半早上的时间试图解决这个问题......
所以,我有 24 个时间序列的 3410 个观测值的 DF。我想创建一个循环来进行滚动窗口回归。我想在滚动窗口中对因变量 DF[,1] 上的所有自变量 DF[,2:24] 进行回归,并及时提取 R2 的演变。
我尝试了以下代码,但它不起作用:
resultsList <- list()
for (i in 1:ncol(var)) {
lmfit <- roll_regres(var[,1]~var[,i], var, 126, do_compute = c("sigmas", "r.squareds"))
resultsList[[i]] <- summary(lmfit)
}
我收到以下错误:
Error in roll_cpp(Y = y, X = x, window = width, do_compute_R_sqs = do_compute_R_sqs, :
'dchdd' failed with code 1
我还使用 rollapply 尝试了以下代码,但它也不起作用:
resultsList <- list()
for (i in 1:ncol(var)) {
lmfit <- rollapply(var, width = 126, FUN = function(x) lm(var[, i] ~ var[,1]), by =1, align = "left")
resultsList[[i]] <- summary(lmfit)
}
我收到以下错误:
Error in zoo(rval, index(x)[i]) :
“x” : attempt to define invalid zoo object
如果有人可以帮助我,我将非常感激。
提前感谢您提供的任何帮助。
解决方案
我解决了这个问题;这是代码:
#Loop RW 6 months
resultsList6M <- list()
for (i in 1:ncol(var)) {
lmfit <- roll_regres(var[,i]~cu, var, 126,do_compute = c("r.squareds"))
resultsList6M[[i]] <- lmfit["r.squareds"]
}
RS16m <- ts(as.numeric(as.character(unlist(resultsList6M[[1]]["r.squareds"]))),start = c(2007, 5), frequency = 252)
ts_plot(RS16m,
title = "126 Days RW, CADUSD ~ EURUSD ",
Xtitle = "Time",
Ytitle = "RSQUARED",
width = 1)
现在,我可以及时对 R2 进行图形分析,我计划在 6 个月、1 年和 3 年重复滚动窗口。
推荐阅读
- c# - 如何在 C# 中从特定点到终点进行索引?
- python - 将传感器数据附加到文件,特定于列
- javascript - 用 Tampermonkey 替换网页中的特定颜色
- monitoring - java.rmi.server.hostname 和 com.sun.management.jmxremote.host 的区别
- php - 使用 PHP 检查电子邮件 ID 是否已存在于数据库中
- javascript - Sapper:产品构建中奇怪的重复元素
- python - 创建一个有反应的频道 - Discord.py
- yaml - 使用 Helm 将属性设置为 true
- python - Django如何处理多个请求
- r - ggplot构面网格中列上的重叠数据