2015-04-19 60 views
0

我有一個2列的數據幀:y和x。數據框的尺寸爲10000行2列。 10000行是指500個樣本,每個樣本有20個和20個。數據幀中等大小行的線性迴歸

如何對每個樣本(每組20行)執行線性迴歸,以便可以將估計係數存儲在單獨的500行數據結構中?

我知道我可以執行summary(lm(y ~ x))$coefficients[2, 1]來獲取數據幀中每一行的估計係數。但是,我的目標是每個樣本的估計係數,而不是每一行。

回答

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