この投稿は私の質問に出てきます:独立変数ごとに個別に依存する線形回帰ループ
ただし、回帰のためにローリング期間を追加しようとしています。
例:
data <-data.frame("col1"=runif(10,2,10),"col2"=runif(10,1,10),"col3"=runif(10,1,10),"col4"=runif(10,1,10))
sapply(data, function(x) rollapply(data,30, coef(lm(data$col1~x,data=data))))
編集:私が何を求めているのかをより深く理解するために、Sapplyメソッドを使用する前に(ベクトル化されたソリューションが好まれたというSOの投稿を読んだ後)、必要な列をループするループを試みていたことに注意する必要があります独立変数として使用します。
betadf <- data.frame()
for (i in colnames(data2[,3:ncol(data2)])){
formula <- formula(paste("variablename ~",i,sep=""))
data3 <- na.omit(merge(data2[,'variablename'],data2[,i]))
model <- na.omit(rollapply(data3,rollperiod,
function(z) coef(lm(formula,data=as.data.frame(z))),
by.column = FALSE, align = "right"))
colnames(model) <- c("intercept",i)
betadf <- cbind(betadf,model[,i])
}