[R-sig-ME] correlation of random intercepts and slopes

Titus von der Malsburg malsburg at gmail.com
Mon Jun 20 20:56:09 CEST 2011


Dear list!

I have a situation where lmer reports much higher
correlations of random slopes and intercepts than I would
expect.  I generated fake data for a fictitious experiment
using the function new.df shown below.  The experiment has a
within-factor 'cond' with levels 1 and 2, a set of items and
subjects which are both measured repeatedly.  There are
random intercepts and slopes for items and subjects.  On top
there's sampling error.  The dependent measure 'rt' is some
kind of reaction time.  Example:

  > d <- new.df(cond1.rt=600, effect.size=10, sdev=10,
                nsubj=49, sdev.int.subj=10, sdev.slp.subj=10,
                nitems=16, sdev.int.items=10,
                sdev.slp.items=10)

cond1.rt is the average reaction time in condition 1.
cond1.rt+effect.size is the rt in condition 2, sdev
the sampling error, the rest concerns number of subjects and
items, and the sdevs of their random intercepts and slopes.
This is the head of the data frame:

  > head(d)
    subj item cond       rt re.int.subj re.slp.subj re.int.item re.slp.item
  1    1    1    1 628.4764    12.15373    4.138659   -0.932447    6.619795
  2    1    1    2 603.1140    12.15373   -4.138659   -0.932447   -6.619795
  3    1    2    1 617.8467    12.15373    4.138659   -2.980553    2.471397
  4    1    2    2 606.5777    12.15373   -4.138659   -2.980553   -2.471397
  5    1    3    1 622.8397    12.15373    4.138659   -2.133049    5.101761
  6    1    3    2 616.4011    12.15373   -4.138659   -2.133049   -5.101761

The random intercepts and slopes have small correlations:

  > with(subset(d, cond==1), cor(re.int.subj, re.slp.subj))
  [1] 0.2650591
  > with(subset(d, cond==1), cor(re.int.item, re.slp.item))
  [1] -0.3144838

But when I roll an lmer model, I see much higher correlations
of slopes and intercepts:

  > lmer(rt~cond+(cond|item)+(cond|subj), d)
  Linear mixed model fit by REML
  Formula: rt ~ cond + (cond | item) + (cond | subj)
     Data: d
     AIC   BIC logLik deviance REMLdev
   12050 12098  -6016    12040   12032
  Random effects:
   Groups   Name        Variance Std.Dev. Corr
   subj     (Intercept) 349.735  18.7012
            cond         82.905   9.1052  -0.839
   item     (Intercept) 201.250  14.1863
            cond         81.835   9.0463  -0.732
   Residual              98.758   9.9377
  Number of obs: 1568, groups: subj, 49; item, 16

  Fixed effects:
              Estimate Std. Error t value
  (Intercept)  594.053      4.511  131.70
  cond           8.120      2.657    3.06

  Correlation of Fixed Effects:
       (Intr)
  cond -0.765


When I xyplot the data, I can't see any correlation of
slopes and intercepts.  Could anybody please enlighten
me as to why lmer reports these high correlations?

Many thanks!

  Titus


  new.df <- function(cond1.rt=600, effect.size=10, sdev=10,
                     sdev.int.subj=10, sdev.slp.subj=10, nsubj=10,
                     sdev.int.items=10, sdev.slp.items=10, nitems=10) {

    ncond <- 2

    subj <- rep(1:nsubj, each=nitems*ncond)
    item <- rep(1:nitems, nsubj, each=ncond)
    cond <- rep(0:1, nsubj*nitems)
    err  <- rnorm(nsubj*nitems*ncond, 0, sdev)
    d    <- data.frame(subj=subj, item=item, cond=cond+1, err=err)

    # Adding random intercepts and slopes for subjects:
    re.int.subj   <- rnorm(nsubj, 0, sdev.int.subj)
    d$re.int.subj <- rep(re.int.subj, each=nitems*ncond)
    re.slp.subj   <- rnorm(nsubj, 0, sdev.slp.subj)
    d$re.slp.subj <- rep(re.slp.subj, each=nitems*ncond) * (cond - 0.5)

    # Adding random intercepts and slopes for items:
    re.int.item   <- rnorm(nitems, 0, sdev.int.items)
    d$re.int.item <- rep(re.int.item, nsubj, each=ncond)
    re.slp.item   <- rnorm(nitems, 0, sdev.int.items)
    d$re.slp.item <- rep(re.slp.item, nsubj, each=ncond) * (cond - 0.5)

    d$rt <- (cond1.rt + cond*effect.size
             + d$re.int.subj + d$re.slp.subj
             + d$re.int.item + d$re.slp.item
             + d$err)

    d
  }




More information about the R-sig-mixed-models mailing list