Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: March 26, 2014
Last Modified: June 06, 2023 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the interweaved STAIRCASE METHOD to estimate the difference threshold for a particular color red
Ehrenstein, W.H. & and Addie Ehrenstein, A. (1999). Psychophysical Methods. In U. Windhorst & H. Johansson, Hakan (Eds.), Modern Techniques in Neuroscience Research (pp.1211-1241). Heidelberg: Springer. (->https://uni-leipzig.de/~isp/isp/history/texts/PSYPHY-M.PDF)
2 minutes
In the staircase procedure, participants are asked repeatedly whether a red Target color is lighter or darker than a red base color.
For example: the red component of the target color is lighter. As long as participants say the target red is lighter than the base red, the target red gets adjusted down by a preestablished step size (editable value). Once participants reverse their answer (and say it's darker), the adjustment reverses and the the target color is turned up lighter by the preestablished step size. The reversal threshold = average of the last two target red values before reversal (e.g. one perceived lighter and one perceived darker than baseline) gets noted. Once a predetermined number of reversals has taken place (parameters.max_reversals) the difference threshold is calculated as the mean of all the obtained reversal thresholds.
Interweaved staircase method: two staircases are run at the same time. One staircase starts with a lighter red target (= staircase DOWN), the other staircase starts with a darker red target (= staircase UP) The individual trials of each staircase are either called in a random or in an alternate fashion (-> parameters.staircase_order). The purpose of the interweaved staircase method is to somewhat obscure the nature of the procedure.
In general, the staircase procedure is considered a variant of the Method of Limits with the difference that once a participant changes the response (e.g. from "it's lighter" to "it's darker") the threshold estimation isn't over but the adjustments are reversed and a predetermined number of reveral thresholds are noted => the threshold gets crossed several times.
By default, this script runs one cycle: one up and one down staircase interweaved
see section Editable Instructions
File Name: staircasemethod_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| cycles | Stores the number of staircase cycles run |
| staircaseOrder | Select from "alternate" (default) or "random" alternate: staircase up and staircase alternate (until one of the staircases has reached the max. number of reversals) random: staircases are selected randomly (until one of the staircases has reached the max. number of reversals) |
| step | The stepsize with which the target color increases/decreases (default: 2) |
| initialdifference | Initial difference in the red component of target and base (default: 50+1 = 51) in this script the initial difference is selected in such a way that the adjusted targetvalues are always either above or below baseline. |
| baselineValue1 | The baseline_value of the first "limits" cycle |
| diffThreshold1 | Stores the Difference Threshold of the first cycle by design, this script only runs one cycle |
File Name: staircasemethod_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| staircase | 1 = staircase DOWN 2 = staircase UP |
| directionDown | 1 = target lighter 2 = target darker for staircase DOWN |
| directionUp | 1 = target lighter 2 = target darker for staircase UP |
| baselineValue | Stores the red color target tone of the current base |
| targetValueDown | Stores the red color target tone of the current target Color in the DOWN staircase |
| targetValueUp | Stores the red color target tone of the current target Color in the UP |
| response | The participant's response (scancode of response) |
| latency | The response latency |
| countReversalsDown | Count number of direction reversal for staircase DOWN |
| countReversalsUp | Count number of direction reversal for staircase UP |
| reversalThreshold | Estimated Threshold at Reversal point (midpoint between last two target values) |
| diffThresholdDown | Mean reversal thresholds for current UP Staircase (thresholds: midpoint between the last two target values before reversal response) |
| diffThresholdUp | Mean reversal thresholds for current DOWN Staircase (thresholds: midpoint between the last two target values before reversal response) |
| diffThreshold | Mean threshold (based on current DiffThreshold_up and DiffThreshold_Down) for the current cycle |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| responseKeyLighter: - | ||
| responseKeyDarker | The response key assignments (scancodes and labels) | |
| baselineValue1 | The baseline value (0 -> black, 255 -> brightest red) to add further staircase cycles with different basevalues add a value for each new baseline value you want to test and go to BLOCKS for further instructions. | |
| step | The stepsize with which the target color increases/decreases | 2 |
| initialdifference | Initial difference in the red component of target and base in this script the initial difference is selected in such a way that the targetvalues are always either above or below baseline. | 50+1 = 51 |
| maxReversals | The maximum number of reversals per staircase | |
| staircaseOrder | Select from "alternate" (default) or "random" alternate: staircase up and staircase alternate (until one of the staircases has reached the max. number of reversals) random: staircases are selected randomly (until one of the staircases has reached the max. number of reversals) |