
Staircase Method
Category:
AddIn:
Scope:
Code Snippets:
Supports Material List:
Status Screen Widgets:
License:
Randomization
Psychophysical Methods
Global
no
no
yes
Standard EventIDE license
In this article:
The Staircase Method element is designed for psychophysical experiments where stimulus intensity must be adjusted trial-by-trial based on participant performance, using either the weighted up–down method (Kaernbach, 1991) or the Bayesian QUEST procedure. It provides real-time staircase visualization, automatic threshold statistics, and integrated data recording.
Methods
Kaernbach Weighted Up–Down
A rule-based staircase where correct and incorrect responses change stimulus intensity with different step sizes. The method converges toward a predefined performance level (e.g., 75% correct).
QUEST (Bayesian Adaptive Estimation)
A Bayesian method that maintains a posterior distribution of the threshold and selects the next intensity to efficiently reduce uncertainty.
After each response is added, the element automatically computes:
The next suggested stimulus intensity
Reversal statistics
Current threshold estimate
Standard deviation (SD)
Standard error (SE)
Actual correct rate
Completion state
The suggested intensity for the next trial is always available via the New Intensity property.
Properties
Name | Description | Type | On runtime change | |
Staircase Settings | ||||
Staircase Type | Selects the adaptive method. 0 = Kaernbach weighted up/down staircase. 1 = QUEST Bayesian adaptive threshold estimation. Changing this value at runtime resets the current staircase | General | Int32 | Resets estimator |
Initial Intensity | Defines the initial value of stimulus intensity. Changing at runtime resets all parameters | General | Double | Resets estimator |
Weighted Method Settings | ||||
Enforced Correct Rate | Defines the target performance level (%) for threshold estimation. Valid range: 0–100 | General | Double | |
Forward Step | Defines the change in stimulus intensity after a correct response. Sign defines staircase direction | General | Double | |
Inverse Step | Automatically calculated change in stimulus intensity after a wrong response | Status | Double | |
Minimal Reversal Number | Minimum number of reversals required to complete estimation | General | Int32 | |
Ignorable Reversal Number | Number of initial reversals excluded from final threshold estimation | General | Int32 | |
QUEST Settings | ||||
Target P(Correct) | Target performance level (0–1). Typical: 0.75 (2AFC), 0.5 (yes/no) | General | Double | |
Guess Rate (gamma) | Lower asymptote of psychometric function (e.g., 0.5 for 2AFC) | General | Double | |
Lapse Rate (lambda) | Upper-asymptote lapse rate (e.g., 0.02 = 2% errors at high intensity) | General | Double | |
Slope (beta) | Slope parameter of logistic psychometric function (typical range 1–10) | General | Double | |
Prior Mean | Prior mean of threshold (NaN uses Initial Intensity) | General | Double | |
Prior SD | Prior standard deviation of threshold | General | Double | |
Grid Half-Range | Half-range around prior mean for posterior discretization | General | Double | |
Grid Step | Step size of posterior grid (smaller = more precise, slower) | General | Double | |
Min Intensity (Clamp) | Optional minimum clamp for suggested intensity | General | Double | |
Max Intensity (Clamp) | Optional maximum clamp for suggested intensity | General | Double | |
Max Trials | Stops QUEST after this number of responses (0 disables) | General | Int32 | |
Stop SD | Stops QUEST when posterior SD drops below this value (≤0 disables) | General | Double | |
Staircase Plotting | ||||
Rendering Size | Defines rendering size of generated XAML staircase plot in pixels | Design | clSize | |
Plot Title | Title displayed on staircase plot | General | String | |
Show Subtitle | Shows staircase statistics in subtitle | General | Boolean | |
Font Size | Font size for plot labels | General | Double | |
Show Axis Bands | Enables axis bands in plot area | General | Boolean | |
Confidence Interval | Defines type of confidence intervals shown on plot | Design | enStar.. | |
XAML Staircase Plot | Returns live XAML control for binding to ContentControl | General | UIElem.. | |
Save Plot Now | Runtime command to save screenshot of the plot. Assign full file path string | Runtime Command | String | Executes save |
Runtime Control | ||||
Add Response Now | Adds a trial outcome (true/1 = correct, false/0 = wrong) | General | Object | Updates estimator |
New Intensity | Suggested stimulus intensity for next trial | Status | Double | |
Reset Staircase Now | Resets the current staircase and starts a new estimator | Runtime Command | Boolean | Resets estimator |
Runtime Results | ||||
Estimated Threshold | Current estimate of participant’s threshold | Status | Double | |
Estimated Threshold SD | Standard deviation of threshold estimate | Status | Double | |
Estimated Threshold SE | Standard error of threshold estimate | Status | Double | |
Actual Correct Rate | Real correct rate (%) across responses | Status | Double | |
Is Completed | Indicates whether threshold estimation is completed | Status | Boolean | |
Data Report Label | String label added to generated data report file names | General | String | |
Staircase Data | ||||
Response Count | Number of collected responses | Status | Int32 | |
All Responses | Boolean array of all collected responses | Status | Boolean[] | |
Reversal Count | Number of observed reversals (including ignorable) | Status | Int32 | |
Staircase Points | Double array of all intensity values in time order | Status | Double[] | |
Control | ||||
Is Enabled | If set to false the element is completely omitted when the experiment is run | Design | Boolean | |
Title | Title of the element | Design | String |
Practical Use
The Staircase Method element is typically used in trial-based experiments where stimulus intensity (contrast, sound level, duration, spatial frequency, etc.) must adapt dynamically.
Basic workflow:
Present stimulus at the intensity returned by New Intensity.
Collect participant response.
Assign true/false (or 1/0) to Add Response Now.
Read the updated New Intensity for the next trial.
Technique 1: Classic Weighted Up–Down Threshold Estimation
Set properties:
Staircase Type = 0
Initial Intensity
Enforced Correct Rate (e.g., 75%)
Forward Step
Minimal Reversal Number
On each trial:
Present stimulus at New Intensity.
Determine whether the response is correct.
Assign the result to Add Response Now.
Monitor properties:
Reversal Count
Estimated Threshold
Is Completed
When the required number of reversals is reached, the staircase finalizes the threshold estimate.
Technique 2: Bayesian QUEST Estimation
Set properties:
Staircase Type = 1
Target P(Correct)
Guess Rate (gamma)
Lapse Rate (lambda)
Prior Mean and Prior SD
Stop SD or Max Trials
On each trial:
Present stimulus at New Intensity.
Add response using Add Response Now.
Monitor properties:
Estimated Threshold
Estimated Threshold SD
Is Completed
QUEST stops automatically when the posterior SD drops below Stop SD or when Max Trials is reached.
Example Code Snippet
Visualization
The element provides a live staircase plot through the XAML Staircase Plot widget, which can be displayed on the status screen.
The plot can show:
Trial-by-trial intensity progression
Reversal points
Confidence intervals
Threshold statistics
Screenshots of the plot can be saved using Save Plot Now.
Runtime Results
Available outputs include:
Estimated Threshold
Estimated Threshold SD
Estimated Threshold SE
Actual Correct Rate
Reversal Count
Response Count
All Responses
Staircase Points
These values can be logged using standard EventIDE data recording tools.
Notes
Changing Initial Intensity or Staircase Type at runtime resets the current estimator.
In weighted staircases, step parameters should remain constant during estimation.
For stable threshold estimation, use at least 6–8 valid reversals (after ignored reversals).
In QUEST, choose a realistic Prior SD to ensure efficient convergence.
Use intensity clamping to prevent invalid stimulus values.
