bmm
  • Get started
  • Functions
  • Articles
  • Changelog
  • Develop
  • Parameter recovery
  • Model explorer
  1. Continuous reproduction tasks
  2. Interference Measurement Model
  • All models
  • How to read a page
  • Categorical decision tasks
    • Memory Measurement Model
    • Multinomial processing tree, span task
  • Continuous reproduction tasks
    • Interference Measurement Model
    • Two-parameter mixture model
    • Three-parameter mixture model
    • Signal discrimination model
  • Signal detection
    • Signal detection theory, yes/no
    • Signal detection theory, m-alternative forced choice
    • Signal detection theory, confidence ratings
  • Response times
    • EZ Diffusion Model
    • Censored Shifted Wald Model
    • Diffusion Decision Model
  1. Continuous reproduction tasks
  2. Interference Measurement Model

Interference Measurement Model

Continuous reproduction: responses drawn to the target, to the other items by closeness, and to noise

The task
Task settings
Items on the display, the target included. Every item adds its activation, 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.
Item 2's distance from the target along the display circle, in radians. Items 3, 4, … sit at 2, 3, … times this angle going round, and each one's distance is the shorter way round, at most π. At the start the spacing is at its maximum, 2π/4 = 1.57, so the 4 items are equidistant: items 2 and 4 are 1.57 rad from the target and item 3 is 3.14 rad (π) away. The model takes one distance per non-target (nt_distances).
Layout:
Parameters
Activation the cue gives to the item at the cued location: the target (1, in the frame) gets all of 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.
Activation every item gets wherever it is on the display: the target and each non-target get the same 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.
How fast the cue's activation falls with distance: an item at distance d gets 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.
Precision of recall, shared by all items: the concentration of the von Mises peak at each item's colour. Higher 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.
Background activation, which goes to every colour on the wheel rather than to an item. Its share of the total, 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.
Predicted error distribution
Draws N trials from the predicted distribution and shows their response errors as bars of 10° behind the curves. Each bar averages the density over its 10°, so the bars stay below a peak narrower than that. Below the legend: the expected mean |error|, circular SD and share within ±20°, against the same for this sample. The circular SD is √(−2 ln R), with R the length of the mean error vector; it grows without bound as the errors approach uniform, so above 140° only that bound is shown, and in a small sample of widely spread errors it comes out lower than expected. The sample keeps its random numbers while the sliders move, so it changes with the parameters; New sample draws other ones. In bmm: rimm(), in the code under In bmm; R draws its own sample, so its numbers differ from the page's.
Solid: now; dashed and "prior": prior means; band: ±20°. Weights of the target (T), non-targets, guessing (G).
Across set size
● Target weight and ■ share of errors within ±20°. Solid: now; dashed: prior means; open marker: current set size.

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().

bmm model explorer · source · code GPL-2, text CC BY 4.0

 
  • Report an issue

Built with Quarto. No R, no server: everything runs in your browser.