[R-sig-ME] Specifying Random Effects For Multiple Cross-Level Interactions
Thierry Onkelinx
thierry.onkelinx at inbo.be
Tue Apr 12 21:05:18 CEST 2016
Dear David,
Please don't post in HTML as is can mangle up code and output.
It seems like you have only 2 or 3 observations per site. That amount of
replications per site only allows to fit a random intercept.
Best regards,
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
2016-04-12 17:10 GMT+02:00 David Jones <david.tn.jones op gmail.com>:
> I have a question about cross-level interactions in lmer which is a novice
> one, but I cannot find examples online to address this in lmer because most
> examples only focus on 1 cross-level interaction at a time.
>
> I am trying to look at a model with 4 L1 variables, 4 L2 variables, and a
> cross-level interaction between each respective pair (for 4 total
> interactions). I have tried to specify the models in lmer, but have had
> problems with the models and understanding why the errors occur. I have
> searched these archives, and also used Doug Bates's slides and the lme4
> wiki, among other resources.
>
> As a preface, my sample is small (N=61, 29 clusters). L1 units (Xs) are
> nested under site (between-subjects variables are the Ws). I would prefer
> to use mixed-effects models if possible given precedent in my field. Here
> are the the models I have tried:
>
> For this first model, I get near perfect correlations between each set of
> random intercepts/slopes (from looking at resources, it is probably because
> my model has too many random effects). Syntax for the model as well as the
> output for random effects is below.
>
> model1 <- lmer(y ~ x1 + x2 + x3 + x4 + w1 + w2 + w3 + w4 +
> x1:w1 + x2:w2 + x3:w3 + x4:w4 +
> (x1 | site) + (x2 | site) + (x3 | site) + (x4 | site),
> data = dataset,
> REML=FALSE)
>
> Random effects:
> Groups Name Variance Std.Dev. Corr
> site (Intercept) 0.000e+00 0.000e+00
> x1 7.594e-14 2.756e-07 NaN
> site.1 (Intercept) 9.916e+00 3.149e+00
> x2 5.444e+01 7.378e+00 1.00
> site.2 (Intercept) 0.000e+00 0.000e+00
> x3 1.965e-11 4.433e-06 NaN
> site.3 (Intercept) 1.262e-01 3.553e-01
> x4 2.262e+00 1.504e+00 1.00
> Residual
>
> Given this, I tried a different model with only 1 random intercept and a 1
> random slope for each L1 variable (which are uncorrelated with intercepts
> or each other). This runs (the first model I listed didn't converge for one
> of my DVs; all of these examples have output associated with the same DV).
> But, I often get perfect 0s for the random effects for the slopes (not even
> a very, very small number like 7.2e-10, but rather literally 0.000 for the
> variance and its SD, as if the random slopes are perfectly multicollinear).
> Syntax and output are below.
>
> model2 <- lmer(y ~ x1 + x2 + x3 + x4 + w1 + w2 + w3 + w4 +
> x1:y1 + x2:y2 + x3:y3 + x4:y4 +
> (1 | site) + (0 + x1 | site) + (0 + x2 | site) + (0 + x3
> | site) + (0 + x4 | site), data = dataset,
> REML=FALSE)
>
>
> Random effects:
> Groups Name Variance Std.Dev.
> site (Intercept) 4.091 2.023
> site.1 x1 0.000 0.000
> site.2 x2 0.000 0.000
> site.3 x3 0.000 0.000
> site.4 x4 0.000 0.000
> Residual 53.150 7.290
>
> If I specify a model with fewer effects, I do get non-negligible random
> slopes, but the correlation between random effects generally is still
> perfect.
>
> model3 <- lmer(y ~ x1 + x2 + x3 + x4 + w1 + w2 + w3 + w4 +
> x1:y1 + x2:y2 + x3:y3 + x4:y4 +
> (x1 | site), data = dataset, REML=FALSE)
>
> Random effects:
> Groups Name Variance Std.Dev. Corr
> site (Intercept) 10.01 3.164
> x1 55.76 7.467 1.00
> Residual 46.04 6.785
>
> Finally, if I tried to let estimate all random effects and let them covary,
> the model won't run R indicates that there are way too many random effects
> to estimate - syntax for this is below:
>
> model3 <- lmer(y ~ x1 + x2 + x3 + x4 + w1 + w2 + w3 + w4 +
> x1:y1 + x2:y2 + x3:y3 + x4:y4 +
> (1 + x1 + x2 + x3 + x4 | site), data = dataset,
> REML=FALSE)
>
> The main thing that is confusing me is, for each cross level interaction,
> shouldn't I need a random slope for each L1 predictor? My main question
> then is, how should I address this situation?
>
> I recognize there is something I must be doing wrongly as I am new to
> cross-level interactions. I must be specifying redundant intercepts/slopes
> at some point. As secondary questions, what do the multiple intercepts
> represent that were obtained from the first model, and why are there
> multiple listings for site when specifying uncorrelated random effects
> (e.g., site.1, site.2, etc.)?
>
> Many thanks for your input.
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-mixed-models op r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
[[alternative HTML version deleted]]
More information about the R-sig-mixed-models
mailing list