Это код моей скользящей регрессии:
# betas from rolling regression will be in betas_rolling_250 matrix
fixed.window<-30
models<-c("A~B+E","A~B+C","A~B+D","A~B+C","A~B+F","A~B+B","A~B+F","A~B+C")
betas_rolling_250<-matrix(,nrow=length(models),ncol=250-fixed.window)
rownames(betas_rolling_250)<-models;
#Sample Matrix
sample_matrix_250<-matrix(rexp(10, rate=.1),nrow=250, ncol=6)
colnames(sample_matrix_250)<-c("A","B","C","D","E","F")
for(i in 1:(length(sample_matrix_250[,1])-fixed.window)){
for(k in 1:length(rownames(betas_rolling_250))){
coefs<-lm(rownames(betas_rolling_250)[k],data=as.data.frame(sample_matrix_250[(221-i):(251-i),]))$coefficients[3]
betas_rolling_250[k,i]<-coefs }
}
Первый вопрос:
Возможно ли реализовать это с помощью функции lapply?
Я спрашиваю об этом, потому что мне придется сделать это 4 раза. Потому что у меня больше 4-х разных размеров: (sample_matrix_220
, sample_matrix_200
и sample_matrix_180
). Я не хочу, чтобы мой код был огромным.
Я думал об использовании списка. Вот почему я думал о функции lapply.
Возможно ли это?