Excluded due to differences in evaluation method, this seems to be mainly a matter of vocabulary and syntax
# install.packages(c("wooldridge", "plm", "stargazer", "lme4"), dependencies = TRUE) library(wooldridge) library(plm) #> Le chargement a nécessité le package : Formula library(lme4) #> Le chargement a nécessité le package : Matrix data(wagepan)
Your first example is a simple linear model that ignores nr groups.
You cannot do this with lme4 because there is no “random effect” (in the sense of lme4 ).
This is what Gelman and Hill call the full pool.
Pooled.ols <- plm(lwage ~ educ + black + hisp + exper+I(exper^2)+ married + union + factor(year), data = wagepan, index=c("nr","year"), model="pooling") Pooled.ols.lm <- lm(lwage ~ educ + black + hisp + exper+I(exper^2)+ married + union + factor(year), data = wagepan)
Your second example seems to be equivalent to a mixed mixed random capture model with nr as a random effect (but the slopes of all predictors are fixed).
This is what Gelman and Hill call the partial union method.
random.effects <- plm(lwage ~ educ + black + hisp + exper + I(exper^2) + married + union + factor(year), data = wagepan, index = c("nr","year") , model = "random") random.effects.lme4 <- lmer(lwage ~ educ + black + hisp + exper + I(exper^2) + married + union + factor(year) + (1|nr), data = wagepan)
Your third example seems to fit the case: nr is a fixed effect, and you compute a different nr interception for each group.
Again: you cannot do this with lme4 because there is no “random effect” (in the sense of lme4 ).
This is what Gelman and Hill call "no association."
fixed.effects <- plm(lwage ~ I(exper^2) + married + union + factor(year), data = wagepan, index = c("nr","year"), model="within") wagepan$nr <- factor(wagepan$nr) fixed.effects.lm <- lm(lwage ~ I(exper^2) + married + union + factor(year) + nr, data = wagepan)
Compare the results:
stargazer::stargazer(Pooled.ols, Pooled.ols.lm, random.effects, random.effects.lme4 , fixed.effects, fixed.effects.lm, type="text", column.labels=c("OLS (pooled)", "lm no pool.", "Random Effects", "lme4 partial pool.", "Fixed Effects", "lm compl. pool."), dep.var.labels = c("log(wage)"), keep.stat=c("n"), keep=c("edu","bla","his","exp","marr","union"), align = TRUE, digits = 4) #> #> ===================================================================================================== #> Dependent variable: #> ---------------------------------------------------------------------------------------- #> log(wage) #> panel OLS panel linear panel OLS #> linear linear mixed-effects linear #> OLS (pooled) lm no pool. Random Effects lme4 partial pool. Fixed Effects lm compl. pool. #> (1) (2) (3) (4) (5) (6) #> ----------------------------------------------------------------------------------------------------- #> educ 0.0913*** 0.0913*** 0.0919*** 0.0919*** #> (0.0052) (0.0052) (0.0107) (0.0108) #> #> black -0.1392*** -0.1392*** -0.1394*** -0.1394*** #> (0.0236) (0.0236) (0.0477) (0.0485) #> #> hisp 0.0160 0.0160 0.0217 0.0218 #> (0.0208) (0.0208) (0.0426) (0.0433) #> #> exper 0.0672*** 0.0672*** 0.1058*** 0.1060*** #> (0.0137) (0.0137) (0.0154) (0.0155) #> #> I(exper2) -0.0024*** -0.0024*** -0.0047*** -0.0047*** -0.0052*** -0.0052*** #> (0.0008) (0.0008) (0.0007) (0.0007) (0.0007) (0.0007) #> #> married 0.1083*** 0.1083*** 0.0640*** 0.0635*** 0.0467** 0.0467** #> (0.0157) (0.0157) (0.0168) (0.0168) (0.0183) (0.0183) #> #> union 0.1825*** 0.1825*** 0.1061*** 0.1053*** 0.0800*** 0.0800*** #> (0.0172) (0.0172) (0.0179) (0.0179) (0.0193) (0.0193) #> #> ----------------------------------------------------------------------------------------------------- #> Observations 4,360 4,360 4,360 4,360 4,360 4,360 #> ===================================================================================================== #> Note: *p<0.1; **p<0.05; ***p<0.01
Gelman A, Hill J (2007) Data analysis using regression and multi-level / hierarchical models. Cambridge University Press (a very good book!)
Created 2018-03-08 reprex package (v0.2.0).