# QUEST staircase objects

An object of type questStaircase is a staircase using the QUEST functionality in Psychtoolbox. It assumes a Weibull psychometric function. In an experiment script you can make a questStaircase object outside trials using function questStaircaseObject and add it using addToExperiment.

Properties below go to inputs of Psychtoolbox QuestCreate as follows:

slopebeta
pCorrectAtFloorgamma
pBlinddelta
pCorrectAtThresholdpThreshold
threshold0tGuess
thresholdStdDev0tGuessSd
rangerange
resolutiongrain

## Input properties

### slopepCorrectAtFloorpBlindpCorrectAtThreshold

Default: slope = 3.5
Default: pCorrectAtFloor = 0.5
Default: pBlind = 0.01
Default: pCorrectAtThreshold = 0.82

###### slope is “slope” of the function. Positive = increasing psychometric function, negative = decreasing. This also determines whether the staircase steps down or up from a correct response.

pCorrectAtFloor is probability of correct response at floor performance (0–1).

pBlind is probability of responding blindly (0–1).

pCorrectAtThreshold is probability of correct response at threshold (0–1).

###### The Weibull psychometric function is defined as follows:
pc = pb*pc_floor+(1-pb)*(1-(1-pc_floor)*exp(-10.^(s*(x-threshold))))

where

pc = probability of correct response
x = stimulus level
s = slope
pc_floor = pCorrectAtFloor
pb = pBlind
threshold = threshold

Parameter defaults are typical for a two-alternative forced choice task with increasing psychometric function that is logarithmic with respect to physical intensity.

For more information a starting point is Watson & Pelli (1983). QUEST: A Bayesian adaptive psychometric method. Also the MATLAB help text for Psychtoolbox QUEST functions like QuestCreate is very good.

### threshold0thresholdStdDev0

No default: threshold0
Default: thresholdStdDev0 = 3

threshold0 and thresholdStdDev0 are initial guesses for threshold and threshold standard deviation in the QUEST model. These are in staircase value units, same as val and threshold. Generally you should set thresholdStdDev0 liberally—see notes in function help for Psychtoolbox QuestCreate.

### valAtthresholdAt

Default: valAt = staircase value at quantile of threshold probability distribution
Default: thresholdAt = threshold at mean of threshold probability distribution

###### A string specifying the point in the threshold probability distribution that the staircase value is taken at (valAt) and the threshold estimate is taken at (thresholdAt) for each trial:

<cds>"mean"<cds>
<cds>"quantile"<cds> (optimal quantile as calculated by the QUEST staircase)
<cds>"mode"<cds>

### rangeresolution

Default: range = 5
Default: resolution = 0.01

###### range determines the range of thresholds the model can work with = threshold0 ± range / 2 (staircase value units). Setting range larger than the realistic range of possible thresholds uses more computational resources but doesn’t harm the model (given a threshold probability distribution that is unbounded on both ends, e.g. log contrast). However, setting range smaller cuts off thresholds that the model may want to reach, which decreases the quality of the model’s estimates. If the model would step outside range during the experiment, you will see a warning to try again with range larger (the experiment will continue). So, set range liberally.

Also note range is independent of element property staircase fields min/max. It’s okay for range to be set wider and for the model to suggest a staircase value outside min/max. The staircased element will just test a truncated value within min/max and the staircase will add that value and correct/incorrect result to its data. This will not be what the model optimally wanted to know about but it will still be valid data. (This still applies in the common case that min/max are in different units than range due to staircase field setExpr, e.g. log versus non-log units.)

resolution is step size of the discrete threshold probability distribution (staircase value units).

report
info

min
max

maxNumReversals

## Record properties

PsychBench uses record properties to record information during experiments. You can't set record properties but you can see them in experiment results by listing them input property report.

val

responseScore

reversed

threshold

### thresholdStdDev

Estimate of threshold standard deviation after the trial. This is in staircase value units, same as val and threshold. Generally the value for the last trial in the staircase is the one you want.