Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 16, 2023
Last Modified: January 12, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Visual Approach/Avoidance by the Self Task (VAAST) described by Aubé et al (2019). The VAAST is a cognitive test of spontaneous approach/avoidance tendencies towards two categories of stimuli. According to Aubé et al (2019) 'The VAAST simulates approach and avoidance movements of the whole self by manipulating the visual information provided to the participants'. This implementation uses word stimuli of the categories "positive" and "negative" as default examples. The running hypothesis is that people 'approach positive words and avoid negative words' (compatible pairings) faster than that they 'approach negative words and avoid positive words' (incompatible pairings).
The VAAST is provided by the authors as a PsyToolkit script, providing background stimuli, instructions and a step-by-step R script to analyze the data from the PsyToolkit output. The PsyToolkit is accessible to any researcher without cost.
The original script can be accessed here: word stimuli: https://www.psytoolkit.org/experiment-library/vaast_words.html image stimuli: https://www.psytoolkit.org/experiment-library/vaast_images.html
The Inquisit script provides the code to run the task on an absolutely sized screen if needed. Check section Defaults for more information. By default, the script uses the biggest 16:9 (the W:H dimensions of the background images) canvas on the current monitor.
DISCLAIMER: While Millisecond endeavors to replicate the task as faithfully as possible to the original, differences between the implementations may exist.
•
Aubé, B., Rougier, M., Muller, D., Ric, F., & Yzerbyt, V. (2019). The online-VAAST: A short and online tool to measure spontaneous approach and avoidance tendencies. Acta Psychologica, 201, 102942–102942. https://doi.org/10.1016/j.actpsy.2019.102942
15 minutes
In each VAAST trial a stimulus (here: positive or negative words) appear superimposed on a background (here: a street scene). Depending on instructions, participants have to press the 'approach' key or 'avoidance' key as fast as possible. For example, in one condition they are told to press the 'approach' key for positive words and the 'avoidance' key for negative words ('compatible condition'). In a second condition, participants are told to press the 'approach' key for negative words and the 'avoidance' key for positive words ('incompatible' condition).
When participants press the 'approach' key the background zooms in and the word itself gets larger. When they press the 'avoidance' key the opposite happens: the background zooms out and the word itself gets smaller. According to Aubé et al (2019) 'This visual feedback gives participants the impression that they are moving toward or away from the stimulus in the street, pretty much as in real life.'
The procedure runs the compatible and incompatible condition back to back. The order in which these conditions are run is determined by groupnumber assignment in this script. Group1: runs compatible -> incompatible Group2: runs incompatible -> compatible (if a random assignment is preferred, go to section Experiment and follow instructions)
(1) Keyboarch Check: this script checks if an attached external keyboard can be found.
If no external keyboard can be detected, participants get a brief note that a 'keyboard is required'
and the tasks aborts prematurely.
(2) Introduction to the Task
(3) Compatible Condition (see below for condition order information)
instructions: 'approach positive words and avoid negative words'
•Practice*
10 trials (5 positive, 5 negative; order is randomly determinded),
error feedback provided (when response is incorrect, no zooming happens. Instead, the word ERROR is presented)
instructions based on:
https://www.psytoolkit.org/experiment-library/vaast_words.html
The instructions in this script can be edited
in script "vaast_words_instructions_inc.iqjs"
File Name: vaast_words_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 |
| computer.hasKeyboard | 1 = an external keyboard was detected; 0 = no external keyboard detected |
| blockOrder | 1 = compatible (approach cat1 - positive) -> incompatible (avoid cat1- positive) 2 = incompatible (avoid cat1 - positive) -> compatible (approach cat1- positive) |
Summary Performance Metrics |
|
| propCorrectCat1App | Proportion correct responses for cat1 words (here: positive) under APPROACH instructions (compatible) |
| meanCorrRTCat1App | Mean correct response time (in ms) for cat1 words (here: positive) under APPROACH instructions |
| propCorrectCat1Av | Proportion correct responses for cat1 words (here: positive) under AVOID instructions (incompatible) |
| meanCorrRTCat1Av | Mean correct response time (in ms) for cat1 words (here: positive) under AVOID instructions |
| propCorrectCat2App | Proportion correct responses for cat2 words (here: negative) under APPROACH instructions (incompatible) |
| meanCorrRTCat2App | Mean correct response time (in ms) for cat2 words (here: negative) under APPROACH instructions |
| propCorrectCat2Av | Proportion correct responses for cat2 words (here: negative) under AVOID instructions (compatible) |
| meanCorrRTCat2Av | Mean correct response time (in ms) for cat2 words (here: negative) under AVOID instructions |
| propCorrectCompatible | Proportion correct responses for compatible word-instruction trials |
| meanCorrRTCompatible | Mean correct response time (in ms) for compatible word-instruction trials |
| propCorrectIncompatible | Proportion correct responses for incompatible word-instruction trials |
| meanCorrRTIncompatible | Mean correct response time (in ms) for incompatible word-instruction trials |
| compatibilityDiffRT | The difference (meanCorrRT_incompatible - meanCorrRT_compatible) positive: participant was faster to respond to compatible trials than to incompatible ones negative: participant was faster to respond to incompatible trials than to compatible ones 'compatible' word-instructions pairings are the hypothesis-consistent pairings (e.g. people approach positive words and avoid negative words) whereas the 'incompatible' word-instructions pairings are hypothesis-inconsistent). |
File Name: vaast_words_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 |
| computer.hasKeyboard | 1 = an external keyboard was detected; 0 = no external keyboard detected |
| blockOrder | 1 = compatible (approach cat1 - positive) -> incompatible (avoid cat1- positive) 2 = incompatible (avoid cat1 - positive) -> compatible (approach cat1- positive) |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| trialCounter | Custom trial counter per block |
| compatible | 1 = response to stimuli is compatible (hypothesis-consistent) 0 = otherwise |
| stimuli | Stores the currently presented word |
| valence | Valence of currently presented word (1 = cat1, positive; 2 = cat2, negative) |
| randomFixation | The duration (in ms) of the fixation cross, sampled from 800 to 2000 in 100ms steps |
| firstKey | 3 = the start key (here; H) was pressed and released before the start of the trial |
| response | The response of participant (scancode of response button) |
| responseText | Name of response key pressed |
| movement | 1 = approach, 2 = avoidance |
| correct | Correctness of response (1 = correct, 0 = error) |
| latency | Response latency (in ms); measured from: onset of words |
Debug Columns: Store The First And Second Static Stimuli Presented In A Trial |
|
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, the active canvas appears 'anchored' on the screen regardless of monitor size | lightGray |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | gray |
| defaultTextColor | Default color of text items presented on active canvas | black |
Word Size And Scaling Parameters |
||
| wordHeightPct | Proportional sizing of words (proportional to canvas height) | 10% |
| wordScalingApproach | 1.25 times the normal word size (increase) | 1.25 |
| wordScalingAvoid | 0.75 times the normal word size (decrease) | 0.75 |
Timing Parameters |
||
| feedbackWordDurationMS | The duration (in ms) that the resulting larger/smaller words are presented | 500 |
| itiMS | The intertrial interval (in ms) after feedback | 500 |
Responsekeys |
||
| topResponseKey | "Y" | |
| midResponseKey | if this is changed, change trial.cat1_start/trial.cat2_start (the release button is hard-coded) | "H" |
| bottomResponseKey | "N" | |
The Assignment Of Keys To Approach And Avoidance Keys |
||
| approachResponseKey | parameters.topResponseKey | |
| avoidResponseKey | parameters.bottomResponseKey | |
| startResponseKey | parameters.midResponseKey | |
Miscellaneous |
||
| runStartKeyReminderDuringPractice | True = a reminder to press and release start key is run after 5s if no response is made during practice false = no start key reminder is run the start key reminder feature was added by Millisecond | true |
| runStartKeyReminderDuringTest | True = a reminder to press and release start key is run after 5s if no response is made during test trial false = no start key reminder is run the start key reminder feature was added by Millisecond | false |