Random effect models with lmer function in R

Random effects are everywhere in survey data. Let's try to do appropriate modelling for them in R!
This note was prepared for Conjointly researchers, but it would be a shame to hide it inside internal documentation. It is very technical. You do not need to know any of this to use the tools. 😊

Understanding random effects models starts with Jared Knowles’ article Getting Started with Mixed Effect Models in R. Now, let’s get our hands dirty and generate some random data:

library(lme4)
library(data.table)

N=300

# Assign real coefficients
real_coefficients=list(
    blue=10,
    yellow=-10,
    green=5,
    speed=5,
    intercept=50
)

# Colour is a property of the object
data=data.table(
    colour=sample(c("blue","yellow","green"),N,replace=T),
    speed=runif(N,1,50)
)

# And assigning innate preference for each colour
for(i in names(real_coefficients)){
  data[colour==i,  innate_preference:= real_coefficients[[i]]]
}

# Actual preference is sum of innate preference for colour, innate preference for speed and error
data[,preference:=
  real_coefficients[["intercept"]]+
  innate_preference+
  (real_coefficients[["speed"]]*speed)+
  rnorm(N)
]

# Review what we have
data

Let’s estimate a simple model

summary(lm(preference~colour+speed,data=data))

Compare its coefficients to real_coefficients.

Let’s add random effect: measurement instrument (an intercept)

data$instrument=sample(c(-10,0,10),N,replace=T)

data[, new_preference:=preference+instrument]

# Explore results of model
model=lmer(new_preference~colour+speed + (1 | instrument), data = data)
summary(model)
coef(model)$instrument

Let’s add random effect: speed of measurement instrument (a slope)

data$instrument_speed=sample(c(-10,0,10),N,replace=T)

data[, new_preference:=preference+speed*instrument_speed+rnorm(N)]

# Explore results of model
model=lmer(new_preference~colour+speed + (speed | instrument_speed), data = data)
summary(model)
coef(model)$instrument_speed

That’s the end! Now we understand mixed effect models!


Written on 19 August 2021 by:
Nik Samoylov image
Nik Samoylov
Founder

Read these articles next:

Monadic Testing

What is Monadic Testing and How to Use It?

Research tools 6 January 2021

Monadic testing lets respondents review individual concepts one-by-one. By focusing participants' attention on one stimulus at a time, it delivers actionable deep-dive results for product and pricing decisions. View article

Sample Size Calculator

Sample Size Calculator

Research tools 15 July 2020

We've answered your questions about sample size in this handy guide. Use our new sample size calculator to get the right sample size for your next survey. View article

How to pick the best domain name

Drive Traffic to your Website with a Winning Domain Name

Research tools 28 June 2022

A domain name is so much more than an address for your website — it is a cornerstone of your brand. Here we explore the steps to take to develop the most eye-catching domain name for your business. View article