Exercise: Face Recognition Reaction Times

The scenario

You have a new dataset, face_rt_exercise.csv, from a face-recognition study. The structure of this dataset is similar to the previous attractiveness rating project we examined. The aim of this exercise is to help with identifying the kinds of hierarchical structure in the data, and then fitting a model that accounts for it.

The study. 60 participants each saw a series of faces and pressed a key as soon as they recognised whether the face was familiar or unfamiliar to them, and we recorded their reaction time (RT) in milliseconds. Before the task, each participant completed a short questionnaire giving a self-reported face perception ability score (the PI20, z-scored: 0 is average, positive is worse-than-average).

Faces were of Hollywood or Dutch celebrities, so each face appears only in one of the two familiarity conditions.

As this study was run online, not everyone finished all the studies, quitting early for various reasons.

The variables

Column Meaning
pid participant identifier
faceid stimulus (face) identifier
familiar familiar == 1 or unfamiliar == 0
PI20 participant’s self-reported face perception ability (z-scored)
RT reaction time in milliseconds (the outcome)
pid faceid familiar PI20 RT familiar_c
ppt_1 face_40 1 1.209709 252.3732 familiar
ppt_1 face_18 1 1.209709 468.2914 familiar
ppt_1 face_38 1 1.209709 310.4380 familiar
ppt_1 face_3 0 1.209709 326.2907 unfamiliar
ppt_1 face_22 1 1.209709 343.3488 familiar
ppt_1 face_34 1 1.209709 329.8804 familiar

How to set up in jamovi

  1. Open face_rt_exercise.csv in jamovi.
  2. Check the variable types: pid, faceid, and familiar should be nominal; PI20 and RT should be continuous.
  3. Go to the GAMLj module → Mixed Model (install GAMLj from the modules library if it isn’t already there).

RT is, naturally, the DV, while PI20 and familiar are covariates. The cluster variables should be obvious now too.

Jamovi’s random-effects block relies on the Wilkinson notation we saw earlier, e.g.:

trial_type | faceid

means “let the effect of trial_type vary across faces” (a random slope), and

1 | faceid

means “let the baseline vary across faces” (a random intercept). You tick these into the random-effects builder.


Your task

For each of the five hypotheses below:

  1. Write down the Wilkinson formula (fixed + random parts) you would fit.
  2. Build it in jamovi.
  3. Identify the single piece of output that answers the question, and grab that number.

Each model builds on the last, so a sense of increasing complexity is normal!


H1. Are familiar faces recognised faster than unfamiliar ones?

The simplest question: a main effect of trial type.

Incorporate random intercepts for participants and stimuli.

  • Formula: rt ~ ...?
  • What in the output answers it?
  • Your answer (estimate + SE + p):

Start with random intercepts only for both pid and face. The fixed effect of familiar is the parameter of interest.


H2. Do participants differ in how big their familiarity advantage is?

Some people may recognise familiar faces much faster than unfamiliar ones, while others don’t differ. Can we quantify the existence of this effect?

  • What random term must you add?
  • What in the output answers it?
  • Your answer (the relevant SD):

You need a random slope for familiar. The answer is the SD of that slope in the random-effects table — it quantifies how much the familiarity effect varies from person to person.


H3. Do faces differ in how big the familiarity advantage is?

Maybe some faces show a large familiar-vs-unfamiliar gap and others don’t. That is, some familiar faces might be really easy to recognise, while some unfamiliar might be very hard.

  • What random term must you add?
  • What in the output answers it?
  • Your answer (the relevant SD):

The mirror image of H2, but now on the stimulus side!


Interim

Looking over the last three models you have run, how has the addition of the various random effects altered the interpretation of the effect of familiarity?

What do the correlations amongst the random effects tell us so far?

Should there be a random slope for familiarity on stimuli? This is worth thinking hard on!

There should not be a random slope for familiar|faceid. That variable does not vary within a face - it is always either familiar or unfamiliar. This is a key issue with these models - sometimes they will fit, other times they will warn you, but the increased flexibility means you can incorporate nonsense into the model and alter your conclusions.

H4. Does the familiarity advantage depend on self-reported ability?

Do better self-rated perceivers show a bigger (or smaller) familiarity benefit?

  • What must you add to the fixed effects?
  • What in the output answers it?
  • Your answer (estimate + p):

This is an interaction: familiar * PI20 in the fixed effects. You will need to compute a new variable in Jamovi to estimate this properly, simply done by multiplying PI20 and familiarity together.


H5. Do faces differ in how much the PI20 affects RT?

On some faces, high-ability perceivers may pull far ahead; on others, ability may not matter. Does this sensitivity vary across faces?

  • What random term must you add?
  • What in the output answers it?
  • Your answer (the SD, and the correlation with the face intercept):

PI20 is a person-level covariate, but its effect can vary across faces — so the term is a random slope of PI20 over face. Note this is the same logical move as letting ICS vary across faces in the cosmetics study. Look at both the SD of the ability slope and its correlation with the face intercept in the random-effects table.

Why can’t you put PI20 | pid? Because ability is constant within a person — there’s no within-person variation to estimate a slope against. This is the same reason we had to rethink the trick H3 question about putting a slope of familiarity on faces, e.g. familiar | faceid


The full model

By H5 you should have arrived at:

rt ~ PI20 + familiar + PI20:familiar
     + (1 + familiar | pid)
     + (1 + PI20 | faceid)

One model gives you several answers. All the unbalanced data used in full, with no aggregation, and no splitting up continuous variables.

Questions to think about as you go

  • At H1, how many trials did each model actually use? Compare with what a by-participant average would have given you.
  • At H4, what would you have had to do to test the interaction with a traditional ANOVA? What does that cost?

If you finish early

  • Add a check: does the familiarity effect’s significance change between the H4 model and the full H5 model? Which random structure makes the PI20 effect’s uncertainty more honest?
  • Plot the predicted RTs for the PI20 * familiar interaction (GAMLj’s “plots” tab) and compare it to what a median-split on ability would have shown.