【发布时间】:2019-04-18 05:35:36
【问题描述】:
我基本上想运行 1000 次线性回归(非常简单,Y~X)并从每个回归中提取系数。每个回归都在 Y 的 200 个观测值的“块”中,因为每个回归的 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(),但我不太确定这是否会产生结果。如果问的不多,我将不胜感激,因为我仍在学习如何编程,有时会令人沮丧!
【问题讨论】:
标签: r error-handling linear-regression coefficients