QuestPlus is a M

Psychophysics is a branch of experimental psychology concerned, primarily, with quantifying the limits of perception [

Adaptive psychophysical techniques attempt to answer such questions by systematically varying the parameters of a stimulus (e.g., the intensity of a sound), and finding the model that best fits the observer’s responses (e.g., whether or not the observer successfully detected each stimulus).

In the case of QUEST+, the user specifies the parametric form of a model, along with a set of possible values for each parameter (‘hypotheses’). The primary role of QUEST+ is to compute the posterior probability of each parameter value being true, given vectors of trial-by-trial stimulus values,

A detailed exposition of how QUEST+ does this is given elsewhere [

where _{i}_{i}

Each update of the posterior requires the model to consider the likelihood of every possible response observation given every possible parameter combination and every possible combination of stimulus values. Under typical use the posterior distribution is updated after every observation. This presents a considerable computational challenge. In practice, the current implementation of QUEST+ minimizes the computational burden by precomputing all of these conditional probabilities in advance, and storing the results in a look-up table. However, this approach is limited by the amount of available memory. For example, consider a task containing: two outcomes (e.g., ‘correct’ or ‘incorrect’), a stimulus with two parameters (e.g., contrast and spatial frequency), each of which can take 50 possible values, and a model with five parameters, each of which can take 150 possible values. This implies 50^{2} × 150^{5} × 2 probabilities: more values than the largest possible double array that M

In addition to its core function of estimating parameter values, QUEST+ also has two secondary functions. First, QUEST+ is able to advise the experimenter on what stimulus value(s) to present next. QUEST+ does this by computing the stimulus that minimizes the expected negative Shannon entropy of the N-dimensional posterior probability density (i.e., of the N parameter estimates). Essentially, this can be thought of as the most

Secondly, QUEST+ is also capable of advising the experimenter on when to stop testing (the Stopping Criterion). This is again computed based on the notion of entropy, and the precise mathematics can be found elsewhere in [

Imagine one wanted to know how capable a particular individual was of telling apart the frequency (pitch) of two tones. We know, from previous research, that performance (proportion of trials correct:

Graphical illustration of the example application, at the start of the first, second, fourth, eighth and sixteenth trial. Left panels show the 30 ‘hypotheses’ (i.e., possible values of µ, given the model in Equation 2). The darkness of the curves is proportional to the relative likelihood of the estimate being true. Right panels show the posterior density function, with a blue vertical line denoting the current estimate (here based on the mean value). The stimuli,

where

Finally, after specifying the model we must also specify the domain of possible responses (0: incorrect; 1: correct) and the domain of stimulus values, which in this case is a univariate parameter corresponding to the magnitude of the frequency difference between the two tones, in Hz. Given the model we are attempting to fit and the assumed range of possible parameter values, 40 possible stimulus values, log-distributed between 0.1 Hz and 100 Hz should be sufficient to constrain the model fit. Note, however, that these values should be refined through piloting and/or simulation, prior to running the final experiment.

Programmatically, the desired initialization is written as follows:

Then, during the test, we can query QUEST+ for suggested stimulus values, and update the QUEST+ with pairs of stimulus-response values (i.e., the actual stimulus value present, and the observed response). Thus:

Finally, once the test is complete, the QUEST+ can be queried to provide parameter estimates given the current state of the posterior density function (Note, however, that when reporting data, users may wish to obtain more accurate estimates by refitting the model post-hoc):

A graphical illustration of this code in action is given in Figure

Finally, it is important to note that QUEST+ is highly flexible/generalizable. For example, it is trivial to: (i) vary the underlying model; (ii) make more than one value a free parameter; and (iii) add prior estimates to each of the parameter values, thus:

For more examples of use, see [

The software is written entirely in M

End-to-end tests (which also serve as Minimal Working Examples) are incorporated within the QuestPlus class, and can be executed by running the static method QuestPlus.runExample(N), where N = 1, 2, …, 7. Test 6 in particular replicates an application from [

QuestPlus is pure M

QuestPlus requires M

None.

There are no M

Pete Jones wrote the software and is its current maintainer. Andrew B. Watson is the creator of the QUEST+ method.

GitHub

QuestPlus

GNU GPL v3.0

v1.0.0

Zenodo

28/09/2017

English

QUEST+ is suitable for all psychophysical applications. Because of its extremely high efficiency, it is particularly well-suited to domains where the total number of trials is restricted, such as when working with children or patients. Furthermore, because of its great flexibility, it is ideal for problems require the fitting of complex/arbitrary models. Currently, we are using it to estimate Contrast Sensitivity Functions in children with visual impairments.

This work was supported by the NIHR Biomedical Research Centre located at (both) Moorfields Eye Hospital and the UCL Institute of Ophthalmology.

The author has no competing interests to declare.