线性回归用于不同的样品选择

时间:2014-06-02 19:27:12

标签: r regression

我编辑了以下可重现的数据帧(DF),它来自stackoverflow用户G. Grothendieck。

Lines <- "Ctry  year   Carx   Brx
A    2000    13     12
A    2001     8     16
A    2002    12     20
A    2003    16     18
A    2004    10     25
A    2005    13     12
B    2000    20     22
B    2001    24     20
B    2002    32     14
B    2003    32     24
B    2004    30     18
B    2005    36     14   
C    2000    42     36
C    2001    46     25
C    2002    45     32
C    2003    56     38
C    2004    56     15
C    2005    58     60
"
DF <- read.table(text = Lines, header = TRUE)

我想根据下面所示代码选择的样本进行回归估计。

subset(DF, (Carx < 15 & year==2005), select=c(Ctry, year, Carx))

DF$class <- "low"

for(i in seq(15,25, by=5)) {

for( j in seq(35,45, by=5)) {

test <- subset(DF, (Carx < i & year==2005), select=c(Ctry, year, Carx))
for (k in unique(test$Ctry)) DF[DF$Ctry==k,"class"]<-"low"

test <- subset(DF, (Carx < j & Carx > i & year==2005), select=c(Ctry,year, Carx))
for (k in unique(test$Ctry)) DF[DF$Ctry==k,"class"]<-"middle"

test <- subset(DF, (Carx > j & year==2005), select=c(Ctry, year, Carx))
for (k in unique(test$Ctry)) DF[DF$Ctry==k,"class"]<-"high"
 }
}

我想估计的回归方程是;

require(lme4)
est.1 <- lmer(Carx~1+year+(1+year|Ctry), data=DF,REML=F)

我的问题是,我想将上述代码产生的样本选择输入到回归方程中。如果我正确编写代码,对于每个i和j,我将获得不同的数据样本。我希望得到每个样本的回归结果。

感谢您的帮助...

1 个答案:

答案 0 :(得分:0)

如果您只想使用数据的子集来拟合模型,可以使用subset=参数

est.1 <- lmer(Carx~1+year+(1+year|Ctry), data=DF,REML=F, subset=class=="low")

仅查看class=="low"的记录。但是,在您的测试数据中,classCtry完全相关,因此您无法对Ctry进行估算,因为所有这些值都是固定的类。