[R-sig-ME] Specifying Random Effects For Multiple Cross-Level Interactions
David Jones
david.tn.jones at gmail.com
Wed Apr 13 17:02:20 CEST 2016
Many thanks, Thierry - this is very helpful and I am very grateful for
your input. I am sending this message via plain text as well :) I will
plan on going forward with just a random intercept while specifying
the cross-level interaction.
On Tue, Apr 12, 2016 at 3:05 PM, Thierry Onkelinx
<thierry.onkelinx at inbo.be> wrote:
> 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 at 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 at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
>
More information about the R-sig-mixed-models
mailing list