Я в основном хочу запустить 1000 линейных регрессий (очень просто, Y ~ X) и извлечь коэффициенты из каждого.Каждая регрессия состоит из «кусков» из 200 наблюдений за Y, так как X остается одинаковым для каждой регрессии.Вот что у меня есть:
X<-rgamma(200,23,2)
U_list <- replicate(1000,rnorm(200,0,1),simplify = FALSE)
U_list <- setNames(U_list,paste0("U",seq_along(U_list)))
U<-unlist(U_list)
Y_list<-0.6+0.4*X+U
Y_list<-setNames(Y_list,paste0("Y",seq_along(Y_list)))
Y<-unlist(Y_list)
Чтобы попробовать это, я попытался использовать цикл for
k<-seq(from=1, to=200000, by=200)
for(i in k){
assign(paste0("reg", i), lm(Y[i:199+i]~X))
}
. Я имел в виду, что с этим циклом я буду делать что-то подобное
reg1<-lm(Y[1:200]~X)
reg2<-lm(Y[201:400]~X) etc.
Но появляется следующая ошибка, и я ее не совсем понимаю, потому что, если я делаю регрессии одну за другой, я получаю результат
Error in model.frame.default(formula = Y[i:199 + i] ~ X, drop.unused.levels = TRUE) :
variable lengths differ (found for 'X')
Для коэффициентаизвлечение, я подумал о некотором rbind (), но я не совсем уверен, может ли это привести.Если спросить не так много, я был бы признателен за помощь, поскольку я все еще учусь программировать, а иногда это расстраивает!