For a paper on social norms, I want to predict an individual attitude by an interaction of another individual attitude with attitudes that people within the same region (e.g., cluster) hold.

In the dataset with which I would like to test this prediction, I have the three attitudes that I mentioned (Dependent Variable DV, Predictor 1 Pred1 and Predictor 2 Pred2) all on the level of the individual, but I also have a variable that indicates what region participants live in (Region).

Therefore, I believe I am looking for a cross-level interaction of two predictors on an individual-level outcome. Now, my DV does not appear to vary meaningfully between regions with an ICC < .05. However, I still believe that it is appropriate to conduct a multilevel model because I am not per se interested in variation of my DV by cluster, but in the interaction of Predictor 1 with the variation of Predictor 2 between clusters. Am I right that in this case a multilevel model is the way to go?

If yes, this is my best attempt at specifying my model using the lme4 package:

fit <- lmer(DV ~ 1 + Pred1*Pred2 + (1 + Pred2|Region),data=df)

However, I don't think this is correct because my fixed effects are very similar to the output I get if I specify a normal linear model with the same predictors. My interpretation is that this way, I am adding a random intercept for Regions and a random slopes for Pred2 for Region, but I am still also adding the fixed interaction effect on the individual level for Predictor 2. I do not care about Predictor 2 at the individual level - I only want to know how the variation of Predictor 2 between Regions interacts with Predictor 1 on my dependent variable.

Is anyone able to help me specify the model such that my aim is achieved? Would I need to add a variable in my dataset that contains the mean of Pred2 as an aggregate of the region for each individual?

Thank you very much in advance!


1 Answer 1


If both pred1 and pred2 are level 1 predictors (i.e. both measured and modeled at the level of the individual respondent so that you have many values for these variables for each Region), you don't actually have a cross-level interaction but a Level1 x Level1 interaction, and therefore you don't necessarily need a random slope. You can probably just have the random intercept of Region, as in

fit<-lmer(DV ~ 1 + Pred1*Pred2 + (1|Region), data=df)

(possibly you don't even need to use lmer if region ICC is that low, you might be able to just use single-level regression).

On the other hand, if you want to study the effect of Region average pred2, and don't care about the individual level pred2, you probably want to use the pred2 Region average in your model instead of the individual-level pred2. In this case you do have a cross-level interaction - but then you can't have Region-specific random slope of pred2 because you only have one value per Region for pred2. However, in this case you could and probably should include pred1 random slope:

fit<-lmer(DV ~ 1 + Pred1*Pred2_regionmean + (1+Pred1|Region), data=df)
  • 1
    $\begingroup$ Alright, so I basically misunderstood how model specification works. I followed your recommendation to aggregate Pred2 over region (to the effect that all my effects disappeared, well). Thank you so much! $\endgroup$ Commented Aug 17, 2023 at 8:31
  • $\begingroup$ A late addition but did you Region-mean center pred1? That is a customary centering technique in multilevel models with level 1 predictors, and the coefficients may be difficult to interpret if you use the raw predictor values. If you didn't I recommend you try a model with region-mean-centered Pred! $\endgroup$
    – Sointu
    Commented Aug 23, 2023 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.