In case you haven't already received an adequate reply (which I
haven't seen) or figured this out on your own, I will comment. Consider
the following modifications of an example in the 'lmer' documentation:
(fm0.0 <- lmer(Reaction~(1|Subject), sleepstudy))
(fm0.1 <- lmer(Reaction~1+(1|Subject), sleepstudy))
(fm0.s <- lmer(Reaction~Subject+(1|Subject), sleepstudy))
The first two models are equivalent, as can be seen from looking
at the output. In the "formula" language, something like
"Reaction~X"
means to estimate an intercept plus an X effect. If you want a
no-constant model, you must specify "Reaction ~ -1+X". When X is a
factor, "Reaction ~ -1+X" effectively fits the same model as
"Reaction~X" using an alternative parameterization. If X is numeric,
"Reaction~X" means estimate b0 and b1 in Reaction = b0 + b1*X + error.
Meanwhile, "Reaction ~ -1+X" means estimate only b1 in Reaction = b1*X
+
error. In this latter case, the introduction of "-1" actually changes
the model.
The third model "Reaction~Subject+(1+Subject) is a confusion: The
"~Subject" part asks lmer to estimate a separate parameter for each
Subject. The (1|Subject) term asks lmer to estimate the standard
deviation for between-Subject random variability after the fixed effects
are removed. Since Subject is also listed as a fixed effect in this
model, the model is overparameterized: I'm not certain, but it appears
to me that the software doesn't know whether to allocate
subject-specific deviations from the overall mean to the fixed effects
coefficients or the random effect, and it appears to do a little of both.
It might be nice if 'lmer' included a check for factors appearing
as both fixed and random effects. However, I believe that 'lme4' and (R
more generally) is primarily a research platform for new statistical
algorithm development. Most of the R Core Team work to maintain R under
the GNU license primarily because it supports their research (and
educational) objectives. The product therefore may not strive to be as
supportive for naive users as commercial software.
Hope this helps.
Spencer Graves
Aimin Yan wrote:> consider p as random effect with 5 levels, what is difference between these
> two models?
>
> > p5.random.p <- lmer(Y
> ~p+(1|p),data=p5,family=binomial,control=list(usePQL=FALSE,msV=1))
> > p5.random.p1 <- lmer(Y
> ~1+(1|p),data=p5,family=binomial,control=list(usePQL=FALSE,msV=1))
>
> thanks,
>
> Aimin Yan
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>