Interference Measurement Model
Continuous reproduction: responses drawn to the target, to the other items by closeness, and to noise
c·e−s·d + a, to the total that each weight is divided by, so each added item takes weight from the target. At the start, going from set size 4 to 5 (equidistant) lowers the target's weight from 0.31 to 0.26. In imm() it is the set_size argument.nt_distances).c. An item at distance d from the cue gets c·e−s·d, so the target's near neighbours get part of it. Larger c: more responses at the target's colour; at the start, raising c from 1 to 2.72 lifts the target's weight from 0.31 to 0.41.a. It draws responses to the non-targets' colours whatever their distance from the cue. At the start item 3, π away, gets 0.04 from the cue and 1 from a, and still a weight of 0.16. version = "bsc" sets it to 0.c·e−s·d. At s = 0 every item gets all of c; at large s only the target does. At the start (set size 4, s = 1) item 2 is 1.57 rad from the target and gets e−1.57 = 0.21 of c.kappa narrows every peak. It moves no weight between the items and guessing; it only sets how far responses scatter around the colour they go to. At the start (kappa = 7.39), 0.65 of the responses that go to an item's colour fall within ±20° of it.b divided by all activations, is the probability of a guess: the flat floor of the density. At the start b = 1 against a total of 6.46 gives a guess weight of 0.15. bmm fixes b at 1 when fitting; here it moves so that its effect can be seen.What the model says
The interference measurement model (IMM; Oberauer & Lin, 2017) describes errors in continuous reproduction: the participant recalls the colour of a cued item by choosing it on a colour wheel. At recall every item on the display adds activation to its own colour, from two sources: cue-dependent activation c, which falls off with the item’s spatial distance \(d_i\) from the cued location at the rate s, and cue-independent activation a, which every item gets in the same amount. Background activation b reaches every colour on the wheel. Item \(i\) gets the activation \(c\,e^{-s d_i} + a\); the target is item 1, with \(d_1 = 0\). Each activation divided by the sum of all of them, b included, is a mixture weight: \(p_i\) for item \(i\), \(p_b\) for guessing. The response error \(x\), the distance on the wheel between the chosen colour and the target’s colour, then follows a mixture of von Mises distributions (the circular counterpart of the normal), one centred on each item’s colour \(\mu_i\) (measured from the target’s colour, so \(\mu_1 = 0\)) with the shared precision kappa, plus a uniform distribution for guessing:
\[ \begin{aligned} p_i &= \frac{c\,e^{-s d_i} + a}{\sum_j \left(c\,e^{-s d_j} + a\right) + b} \\[4pt] p_b &= \frac{b}{\sum_j \left(c\,e^{-s d_j} + a\right) + b} \\[4pt] f(x) &= \sum_i p_i \,\text{vM}(x;\, \mu_i, \kappa) + \frac{p_b}{2\pi} \end{aligned} \]
Raising c lifts the peak at the target and, by less, the peaks of the target’s spatial neighbours. Raising a lifts every item’s peak by the same amount, so responses move to the non-targets whatever their distance. Raising b lifts the flat floor of guesses. Raising s narrows the reach of the cue: \(e^{-s d}\) is 1 at the target and falls faster with distance the larger s is, so at large s only the target gets c, and at s = 0 every item gets the full c. kappa sets the width of every peak and changes no weight. Multiplying c, a and b by the same number leaves every weight unchanged, so data cannot tell those three apart from their ratios, and a fit has to fix one of them: the original publication fixed c at 1, bmm fixes b at 1 (log b = 0 on bmm’s link scale, the reference weight of the mixture). The page lets all three move so that each one’s effect can be seen.
The task
One trial is a colour reproduction. The display (left) shows the coloured discs; then one location is cued (the frame) and the participant clicks the target’s colour on the wheel (right). Each disc has its colour on the wheel, and the numbers link the two. The model needs, for every trial, the response error and each non-target’s colour relative to the target, both in radians, and each non-target’s spatial distance from the cued location.
The display has two layouts. On the circle, as in Oberauer et al. (2017), the items sit on an imaginary circle and a distance is the angle between two items, in radians from 0 to π. The spacing slider sets item 2’s distance; the other items follow at multiples of it, and at the slider’s maximum, 2π divided by the set size, they are equidistant. In the square, the items can sit anywhere, as in a visual-arrays display, and a distance is the straight line between two centres, measured in radii of the circle layout. Scatter places the items at random, at least 0.55 radii apart. Two close neighbours have about the same distance in both layouts, but distant items do not, because the straight line is shorter than the arc.
Drag a disc on the display or a colour on the wheel to move it, or click it and use the arrow keys. On the circle the target stays at the top and the others move along the circle; in the square every item moves. Switching to the square keeps the items where they are; switching back puts the target at the top again and each other item on the circle at its angle from the target, as seen from the display centre. After a drag, and in the square, the spacing control is off until Equidistant or a new set size. Equidistant returns to the circle preset, and Even colours spreads the colours evenly around the wheel again, as does a new set size.
Because s is a rate per unit of distance, its value depends on how distance is measured: compare s between conditions of one experiment, not between studies with other layouts or distance measures. bmm takes whatever distances the data contain.
Explore
The Predicted error distribution panel shows the density of the response error. Peaks sit at the target (0°) and at each non-target’s colour (the numbered triangles), and the bars below it show how the weight is split between the target (T), each non-target and guessing (G). The shaded band is ±20° around the target, the window the Across set size panel counts. Move item 2 closer to the target on the display, or its colour closer to the target’s colour, and watch which peak grows: distance changes the weight, colour changes where that weight lands.
Slider ranges come from bmm’s default priors. bmm estimates c, a, s and kappa on the log scale; the priors are normal(0, 1) for log c, log a and log s and normal(2, 1) for log kappa. Each slider spans the prior mean ± 3 SD on that scale and moves evenly in log units, while the number fields show natural units: c, a and s run from \(e^{-3} = 0.05\) to \(e^{3} = 20.1\), and kappa from \(e^{-1} = 0.37\) to \(e^{5} = 148\). They start at the prior means, \(e^0 = 1\) for c, a and s and \(e^2 = 7.39\) for kappa; the dashed curves and the “prior” bar keep these values. b has no prior because bmm fixes it at 1 (the “fixed to 0” in ?imm is log b); its slider runs from 0 to 5 to show what it does. Typed values outside the slider ranges are used as long as they are 0 or more and c, a and b are not all 0. Reset returns everything to the start.
Across task settings
The distances \(d_i\) enter the weights \(p_i\), and through them the likelihood (the probability the model assigns to the observed errors), so the IMM predicts a set-size effect with every parameter held fixed. Each added item adds \(c\,e^{-s d_i} + a\) to the denominator of every weight. With the items equidistant, the nearest neighbour sits at 2π divided by the set size, so every new item also moves the neighbours closer to the cued location and \(c\,e^{-s d}\) grows for them. The target’s share of the total falls, and responses move to the non-targets. These numbers follow the controls.
The three-parameter mixture model (mixture3p), bmm’s other model for these data, has parameters for the proportions of target and non-target responses themselves rather than for activations. With its parameters held fixed it predicts the same proportions at every set size from 2 on, so a set-size effect has to enter it through the parameters. This page shows the full IMM, imm(version = "full"). The two reduced versions are named after the parameters they keep: version = "bsc" drops a (the full model with a = 0), and version = "abc" drops s and the distances, so the non-targets get only a, as in the full model when s is large.
In bmm
The code updates with the controls. dimm() returns the density for one trial with the colours mu and distances dist in radians, the target first. imm() defines the model for a data set in which each row is a trial: nt_features names the columns with the non-targets’ colours, nt_distances the columns with their distances. bmf() writes the formula and bmm() estimates the parameters; my_data stands for your own data, and fitting runs Stan through brms. See the IMM article and the reference pages for imm() and dimm().