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 Conjoint.ly 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:

Offsetting carbon emissions in market research

Automate Your Market Research to Offset Carbon

Strategy and innovation Research tools 30 September 2019

Conjoint.ly is now offsetting carbon emissions with every purchase of our automated market research platform. Find out why. View article

How to Test Claims for Consumer Products

How to Test Claims for Consumer Products

Research tools Strategy and innovation 1 May 2019

Claims testing is a research methodology that allows you to identify the most convincing claims for your brand or product category. Learn about types of claims and the ways to test them in this introduction to claims research. View article

Market Research Glossary

Market Research Glossary

Research tools 14 August 2020

Our market research glossary defines some key terms relating to a range of industry concepts. Learn some new consumer research lingo from basic research concepts to more advanced and technical definitions. View article