数据帧中等大小的行组的线性回归

时间:2015-04-19 18:23:49

标签: r

我有一个2列的数据框:y和x。数据框的尺寸为10000行和2列。 10000行指的是500个样本,每个样本有20 y和20 x。

如何对每个样本(每组20行)执行线性回归,以便将估计的系数存储在单独的500行数据结构中?

我知道我可以执行summary(lm(y ~ x))$coefficients[2, 1]来获取数据帧中每一行的估计系数。但是,我的目标是每个样本的估计系数,而不是每一行。

1 个答案:

答案 0 :(得分:1)

如果您创建一个标识每行所属子集的列,则可以使用by()在不同子集上执行回归。首先,一些样本数据

N<-10000
n<-20
dd<-data.frame(x=runif(N))
dd<-transform(dd, y= 4-2*x + rnorm(N))

现在,为了适应模型

fits<-t(sapply(by(dd, rep(1:(N/n), each=n), function(x) lm(y~x, x)), coef))
head(fits)
#   (Intercept)          x
# 1    4.025626 -2.3476841
# 2    4.684731 -3.0566627
# 3    4.011690 -1.8731735
# 4    3.788382 -1.9182377
# 5    3.461123 -1.0965173
# 6    3.671282 -0.9247785
相关问题