Random effects variances in R and SPSS not matching
Thank you so very much for your assistance.
On Wed, Mar 31, 2021 at 4:18 PM Phillip Alday <me at phillipalday.com> wrote:
I don't think the optimum is well defined:
library("lattice")
library("lme4")
m2.4 <- lmer(value ~0 + name + (0+name| Student), data = dat,
REML=FALSE, control=lmerControl(optimizer="bobyqa",check.nobs.vs.nRE="warning")) Warning messages: 1: number of observations (=1600) <= number of random effects (=1600) for term (0 + name | Student); the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable 2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model is nearly unidentifiable: large eigenvalue ratio - Rescale variables?
p <- profile(m2.4)
There were 50 or more warnings (use warnings() to see the first 50)
xyplot(p)
Those are some very bad profiles! Also, this goes back to the lme4 safety-check that I had to disable. The fundamental problem is that there isn't enough data to completely distinguish the residual variance from the RE, so you get difference answers for the RE variance depending on how much you attribute to the residual variance. I also tried to do this with MCMC and flat priors (always a bad idea, but...) and also ran into bad convergence issues. Phillip On 31/3/21 10:43 pm, Simon Harmel wrote:
Thank you. I'll be happy to give more info. SPSS model syntax is shown on in Table 14.5, p. 585 (type `606` in page slot) of this book (http://docshare02.docshare.tips/files/31719/317194846.pdf). The SPSS output is shown on p. 588 (type `606` in page slot). I should add the covariance between `Y1` and `Y2` exactly match. and the log-likelihood seems to be almost identical. But variances differ by a lot. SPSS is using "ML". Please let me know if I can provide any further information. Thank you for your prompt reply, Simon On Wed, Mar 31, 2021 at 3:36 PM Phillip Alday <me at phillipalday.com <mailto:me at phillipalday.com>> wrote: Without more information, we don't know for sure that the models are
the
same in both languages.
It's too much of a time sink for a human to change model details
randomly until the output matches some expected output, but you could
probably do something with genetic programming or simulated
annealing to
do that....
But if you can get more information, I would start by making sure
- that the contrasts are truly the same
- assumed covariance structures are the same
- that one language isn't dropping some observations that the other
is
keeping (check the reporting number of observations levels of the
grouping var)
- the estimation method is the same across languages (ML,REML;
hopefully
SPSS isn't using something like quasi-likelihood)
- different optimizers (if available) give the same result across
languages (i.e. make sure you're not in a local optimum)
- cross checking the result against yet another software package
For example, cross-checking against lme4 immediately hints that this
model might not be advisable / have a well-defined optimum:
> m2.4 <- lmer(value ~0 + name + (0 + name| Student), data = dat,
REML=FALSE)
Error: number of observations (=1600) <= number of random effects
(=1600) for term (0 + name | Student); the random-effects parameters
and
the residual variance (or scale parameter) are probably
unidentifiable
Phillip
On 31/3/21 10:15 pm, Simon Harmel wrote:
> Dear All,
>
> For my reproducible model below, SPSS gives the variance component
of
> 119.95 for Y1, and 127.90 for Y2.
>
> But in `nlme::lme()` my variance components are 105.78 for Y1 and
113.73
> for Y2.
>
> Can we make the `lme()` reproduce the SPSS's variance components?
>
> #======= Data and R code:
> dat <-
>
> library(nlme)
>
> m2 <- lme(value ~0 + name, random = ~0 + name| Student, data =
dat, method
> = "ML")
>
> Random effects variance covariance matrix
> nameY1 nameY2
> nameY1 105.780 60.869
> nameY2 60.869 113.730
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-mixed-models at r-project.org
<mailto:R-sig-mixed-models at r-project.org> mailing list