Welcome Guest, you are in: Login

EventIDE Wiki



Search the wiki


Staircase Method Element

Modified on 2018/08/03 05:03 by Administrator Categorized as Elements, Randomization


Element Icon Staircase Method
Category: Randomization AddIn: Psychophysics
Creator: OkazoLab Scope: Experiment
Owns Snippets: None Usage: Snippets


NameDescription                              ConstraintsTypeOn
Staircase Settings
Desired Correct Rate        Defines the fixed participant's performance level for the estimated threshold, in percentages. The staircase steps on correct and wrong responses will be different if this value is not equal change level-50%. The valid input range is between 0 and 100.                Double         
Initial Intensity        Defines the initial value of stimulus intensity. If the value is changed at runtime, the staircase aborts the current estimate and resets all parameters.                Double         
Forward Step        Defines the change in stimulus intensity for the correct response. A sign of the value defines the staircase direction relative to the initial value. The reverse step size for the wrong answers is calculated automatically, based on the Staircase Step and the value of Desired Correct Rate property and should remain fixed during the estimation procedure.                Double         
Inverse Step        Indicates a size of the change in stimulus intensity for the wrong response. The value is calculated automatically, based on the Desired Correct Rate and Staircase Step properties.                Double         
Reversal Number        Defines the total number of reversals, or staircase length, required to complete the threshold estimation                Int32         
Ignorable Reversals        Defines a number of the initial reversals that are excluded from the threshold estimation (but still be counted in the staircase length)                 Int32         
Staircase Plotting
Rendering Size        Defines the size of the generated XAML staircase plot in pixels. The plot is automatically stretched on rendering, but a larger rendering size improves the chart quality with some cost in performance. The rendering size is also used as the resulting image resolution, when the chart is saved into a file.                clSize         
Plot Title                        String         
Show Subtitle        Defines whether the staircase statistics is shown in the plot subtitle                Boolean         
Font Size        Defines the font size for plot labels                Double         
Show Axis Bands        Defines whether the axis bands are shown on the plot area                Boolean         
Confidence Interval        Defines a type of the confidence intervals shown on the XAML staircase plot                enStar..         
XAML Staircase Plot        Returns a live XAML control that can be used for direct binding to the Content property of the XAML ContentControl element, e.g. ContentControl with a generated staircase plot can be added to the status screen or to the XAML Layout element.                UIElem..         
Save Plot Now        Use this runtime command whenever you want to save a screenshot of the generated chart. To run the command, assign a string with a full file path and name to this property in a code snippet. The screenshot will be saved into the target file after the end of the snippet call. The format of the image file is defined by the extension of the file name, e.g. .bmp, .png or .jpg                String         
Runtime Control
Add Response Now        Assigning a new value to this property in code snippets adds a single trial outcome to the staircase estimator. The value should be either boolean or integer: true/1 for the correct response and false/0 for the wrong response.                Object         
New Intensity        Returns a value for the stimulus intensity in the next trial as suggested by the staircase estimator. The value is updated after adding responses to the staircase estimator.                Double         
Reset Staircase Now        Runtime command that resets the current staircase and start a new estimator                Boolean         
Runtime Results
Estimated Threshold        The current estimate of participant's threshold                Double         
Estimated Threshold SD        The current estimate of participant's threshold                Double         
Estimated Threshold SE        The current estimate of participant's threshold                Double         
Actual Correct Rate        Indicates the real correct rate calculated over all participant's responses, in percentages                Double         
Is Completed        Indicates whether the estimation of the threshold is completed - the total number of reversal is reached                Boolean         
Staircase Data
Response Count        Indicates the number of the collected responses in the current staircase                Int32         
All Responses        Returns a boolean array of the collected responses in the current staircase                 Boolea..         
Reversal Count        Indicates the number of the observed reversals in the current staircase (including the ignorable reversals)                Int32         
Staircase Points        Returns a double array of all intensity values in the current staircase. The array values are time-ordered and the value with the zero index corresponds to the initial intensity.                Double..         
Is Enabled        If set to false the element is completely omitted when the experiment is run                Boolean         
Title        Title of the element                String         

Staircase Method Element allows an easy implementation of the weighted up/down staircase method with the fixed predefined performance rate (Kaernbach, 1991). The element collects various statistics and provides a dynamic staircase plot, which can be monitored on the status screen.


Staircase element assists in implementing the single staircase method that efficiently estimates participant's detection threshold in regards to stimulus intensity (e.g. contrast or duration). The element continuously calculates adjustments for stimulus intensity on the basis of participant's consecutive responses. In addition, the element estimates the threshold of the given participant, collects various statistics and even generates the real-time staircase plot for the status screen. In general, element's staircase algorithm resembles the classical staircase procedure introduced by von Békésy (1947). More particularly, the current algorithm is a replica of the weighted up/down staircase method with the fixed performance rate (Kaernbach, 1991). The element implements a single staircase. If multiple staircases, interleaved or not, are required by an experimental paradigm, several Staircase elements can be used in parallel. As it is shown below, only a new lines of user code are required to make use of Staircase Method element in any experiment.


Example of the staircase plot on Status Screen

Example of the staircase plot on Status Screen

Practical Use

Creating a staircase

Design time
  1. Add Staircase element to any of experiment's event. The event choice is not important for elements, like Staircase Method, working in the global scope of the experiment.
  2. Set a value of Initial Intensity property of the element. The numerical value should correspond the initial level of stimulus intensity that can be easily detected. For example, the number can be related to the opacity of a picture, or to duration of an audio.
  3. Set a value of Staircase Step property. The signed value denotes an adjustment of the stimulus intensity when the correct response is given by a participant. The adjustment on the wrong response is calculated by the element automatically as suggested by the weighted method. Smaller step value may lead to more accurate but slower staircase convergence.
  4. Set a percentage value of Performance Level property. The staircase procedure will be automatically adapted to keep participant's performance on the given fixed level. Thus, the staircase results will always show participant's detection threshold on the given performance level, e.g for 80% of detection rate. The chance level corresponds to the value 50.
  5. Set a value of Reversal Number property to define a total number of reversals necessary to complete the staircase procedure. Reaching the maximal reversal number does not stop the staircase procedure, the element simply signals this moment by setting true to its Is Completed property, which, in turn, can be used to control the experiment flow logic.
  6. Set a value of Ignorable Reversal greater than zero, if it's necessary to exclude several initial reversals from the threshold estimation, e.g. to avoid occasional outliers before convergence of the staircase close to the real threshold level.
  7. Create proxy variables for AddResponse and Next Intensity properties of the element. The first proxy will be used to add participant's responses to the staircase whereas the second for the adjusting stimulus intensity.
  8. Create proxy variables for the selected properties of Runtime Results category. The proxies will allow to monitor staircase statistics on the Status Screen and save results to Report.
  9. In order to add a single participant response to the staircase, the trial outcome has to be added via AddResponse proxy (usually, at the end of a trial):
    if (Response==1)

    Integer values can be assigned to AddReponse proxy as well:
    AddResponse=Response; /// the Response here is an integer variable, which is equal 1 or 0 depending on the trial outcome
  10. Adjust the intensity of the stimulus with Next Intensity value. A new value is calculated each time after adding a participant response (via AddResponse). At the start of the staircase Next Intensity is equal to Initial Intensity
    RendererOpacity=NextIntensity; /// adjusts the opacity of the visual stimulus

    EventDuration=Convert.ToUInt64(NextIntensity); /// adjusts duration of the stimulus presentation
  11. After completion of the current staircase, it can be reset and used again in a new sequence of trials. Use the following code:
    ResetStaircase=true; /// ResetStaircase is a proxy variable linked to element's property of the same name.
  12. The overall staircase progress (changes on the stimulus intensity over time) can be written to Report with the following code:
    Report="Stairscase of the stimulus intensity:\r\n";
    for (int i=0;i<StaircasePoints.Length;i++)
    Report=Report+StaircasePoints[i]+";"; /// where StaircasePoint is a proxy variable linked to element's property of the same name.
  13. The graphical representation of the staircase progress can be monitored on the status screen with Staircase Plot property. The following code for Status Screen shows XAML binding to a proxy linked with the Staircase Plot property:
    <Image Source="{Binding StaircasePlot}"/>


Adding participant's response to the staircase and adjusting the stimulus intensity with the next value MUST NOT be done in the same code snippet (the element estimates a new intensity after completion of the snippet where a new response is added). Instead, use separate consequent snippets in the experiment flow for these two actions. The example of the incorrect code is below:

/// Incorrect use of the staircase !!!
EventDuration=Convert.ToUInt64(NextIntensity); /// Next Intensity is not updated yet


Demo experiment that shows an use of the StaircaseMethod can be found in: \Demos\Elements\Psychophisical_Methods\Staircase_Element_Demo.eve

ScrewTurn Wiki version Some of the icons created by FamFamFam.