Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 29, 2025
Last Modified: January 05, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements an Interval Estimation Task, a simple measure of sense of agency leveraging the temporal illusion known as 'intentional binding' (Malik & Obhi, 2019). Intentional Binding = people tend to perceive the temporal interval between a voluntary action and its effect to be shorter than the same interval when it separates an involuntary action and effect. Malik & Obhi (2019), e.g., used the Interval Estimation Task to show that social exclusion impacted people's sense of agency.
The implemented procedure in this script is based on the one described by Malik & Obhi (2019) using written responses instead of verbal ones.
Malik, R. A., & Obhi, S. S. (2019). Social exclusion reduces the sense of agency: Evidence from intentional binding. Consciousness and Cognition, 71, 30–38. https://doi.org/10.1016/j.concog.2019.03.004
10 minutes
Participants are asked to press the space key at a time of their choosing whenever they see a blank, white screen. This space-key press triggers a beep which is played with various delays. Participants are asked to estimate the duration of the delay in milliseconds by entering their response in a provided textbox.
- 1 block of 30 trials
- 3 different delays tested (100,400,700)
- 10 trials per each delay
=> order of delays is randomized for each run
provided by Millisecond - can be edited under section 'Editable Stimuli'
provided signal tone: created in Audacity with amplitude=1, frequency=1000Hz, Duration=100ms
provided by Millisecond - can be edited under section 'Editable Instructions'
in script "intervalestimationtask_instructions_inc.iqjs"
File Name: intervalestimationtask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| 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 |
| meanEstimateMS | The mean delay estimate across all tested delays (in ms) => measure of agency |
File Name: intervalestimationtask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| phase | "intro", "demo", "test" |
| blockCounter | Tracks the number of test blocks run |
| trialCounterPerBlock | Tracks the number of trials run per current block |
| delayMS | The (theoretical) delay for the tone in ms |
| respTimestamp | The script.elapsed timestamp of the [space] press (in ms) |
| sound.beep.timestamp | The script.elapsed timestamp of the played tone (onset of tone) (in ms) |
| actualDelayMS | The calculated difference btw. space-press and onset of tone (in ms) (ACTUAL DELAY) |
| diffMS | The calculated difference btw. entered response (in ms) and actualDelayMS -> positive value: estimate was longer -> negative value: estimate was shorter |
| response | The response of participant (e.g. the entered estimate) |
| responseText | If key was pressed, this column stores the label of the pressed response key (e.g. N) |
| latency | Response latency (in ms); measured from: onset of textbox until response is submitted |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| numberOfBlocks | The number of blocks to run | 1 |
Per Block |
||
| numberOfDelays | Number of response-tone delays to test per block | 3 |
| minDelayMS | The minimum delay in ms | 100 |
| delayStepSizeMS | The delay-stepsize in ms | 300 |
| numberTrialsPerDelay | The number of trials to test per ITI | 10 |
| demoDelayMS | The response-tone delay (in ms) used for the demo trial | 900 |
Timing Parameters |
||
| spacePressReminderMS | The delay (in ms) that a 'press space' reminder is flashed onto the screen if no space response is | 5000 |
| reminderDurationMS | The duration (in ms) of the reminder before it gets erased again | 5000 |
| getReadyDurationMS | The duration (in ms) of the get-ready- message before the task starts | 1000 |