___________________________________________________________________________________________________________________ Visual Approach/Avoidance by the Self Task (VAAST) (Template with Word Stimuli) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 03-16-2023 last updated: 03-20-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 03-20-2023 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements Millisecond Software'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 Editable Parameters 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 (thus absolute sizing is turned off by default). The Inquisit script does not provide further help with data analyses (with the exception of several summary variables). DISCLAIMER: While Millisecond Software thrives to replicate the task as faithfully as possible to the original, differences between the implementations may exist. ***Reference*** 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 ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ 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 needed, go to section Experiment and follow instructions) ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 15 minutes to complete ___________________________________________________________________________________________________________________ DATA FILE INFORMATION ___________________________________________________________________________________________________________________ The default data stored in the data files are: (1) Raw data file: 'vaast_words_raw*.iqdat' (a separate file for each participant) build: The specific Inquisit version used (the 'build') that was run computer.platform: the platform the script was run on (win/mac/ios/android) date, time: date and time script was run subject: with the current subject id group: with the current group id session: with the current session id //Screen Setup: (parameter) runAbsoluteSizes: true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm) false (0) = should use proportionally sized canvas (uses width = 16/9*screenHeight) canvasAdjustments: NA: not applicable => parameters- runAbsoluteSize was set to 'false' 0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough 1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and adjustments had to be made activeCanvasHeight_inmm: the width of the active canvas (by default: lightGray area) in mm activeCanvasWidth_inmm: the height of the active canvas in mm display.canvasHeight: the height of the active canvas in pixels display.canvasWidth: the width of the active canvas in pixels 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, blocknum: the name and number of the current block (built-in Inquisit variable) trialcode, trialnum: the name and number of the currently recorded trial (built-in Inquisit variable) Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those that do not store data to the data file. Note: trialcode 'showtime_cat1' and trialcode 'showtime_cat2' store the response data 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 stimulusitem.1 stimulusitem.2 *****Note: These are the variables that are akin to the output variables of the Psychotool script (https://www.psytoolkit.org/experiment-library/vaast_words.html#_data_output_file) blockOrder blockcode stimuli valence randomFixation firstKey movement correct latency (2) Summary data file: 'vaast_words_summary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectid: assigned subject id number groupid: assigned group id number sessionid: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) //Screen Setup: (parameter) runAbsoluteSizes: true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm) false (0) = should use proportionally sized canvas (uses width = 16/9*screenHeight) canvasAdjustments: NA: not applicable => parameters- runAbsoluteSize was set to 'false' 0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough 1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and adjustments had to be made activeCanvasHeight_inmm: the width of the active canvas (by default: lightGray area) in mm activeCanvasWidth_inmm: the height of the active canvas in mm display.canvasHeight: the height of the active canvas in pixels display.canvasWidth: the width of the active canvas in pixels 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 data////// propCorrect_cat1_app: proportion correct responses for cat1 words (here: positive) under APPROACH instructions (compatible) meanCorrRT_cat1_app: mean correct response time (in ms) for cat1 words (here: positive) under APPROACH instructions propCorrect_cat1_av: proportion correct responses for cat1 words (here: positive) under AVOID instructions (incompatible) meanCorrRT_cat1_av: mean correct response time (in ms) for cat1 words (here: positive) under AVOID instructions propCorrect_cat2_app: proportion correct responses for cat2 words (here: negative) under APPROACH instructions (incompatible) meanCorrRT_cat2_app: mean correct response time (in ms) for cat2 words (here: negative) under APPROACH instructions propCorrect_cat2_av: proportion correct responses for cat2 words (here: negative) under AVOID instructions (compatible) meanCorrRT_cat2_av: mean correct response time (in ms) for cat2 words (here: negative) under AVOID instructions propCorrect_compatible: proportion correct responses for compatible word-instruction trials meanCorrRT_compatible: mean correct response time (in ms) for compatible word-instruction trials propCorrect_incompatible: proportion correct responses for incompatible word-instruction trials meanCorrRT_incompatible: mean correct response time (in ms) for incompatible word-instruction trials compatibility_diffRT: 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 Note: '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). ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ (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) /////NOTE: the number of trials run depends on the number of items under item.cat1_words_training/item.cat2_words_training /////NOTE: by default, a reminder to press and release the startkey is presented by default after 5s if no startkey has been pressed during practice (check parameters.runStartKeyReminder_duringPractice for more info) *Test* 40 trials (20 positive, 20 negative; order is randomly determined) no errorfeedback /////NOTE: the number of trials run depends on the number of items under item.cat1_words/item.cat2_words /////NOTE: by default, NO reminder to press and release the startkey is presented during test trials (check parameters.runStartKeyReminder_duringTest for more info) (4) Incompatible Condition instructions: 'approach negative words and avoid positive words' *Practice* 10 trials (5 positive, 5 negative; order is randomly determinded) (Note: the same words are used as in the Compatible Practice) error feedback provided (when response is incorrect, no zooming happens. Instead, the word ERROR is presented) /////NOTE: the number of trials run depends on the number of items under item.cat1_words_training/item.cat2_words_training *Test* 40 trials (20 positive, 20 negative; order is randomly determined) (Note: the same words are used as in the Compatible Practice) no errorfeedback /////NOTE: the number of trials run depends on the number of items under item.cat1_words/item.cat2_words (5) END ////////Trial Procedure:///////// -Start Screen that presents an O superimposed on the start street scene. => Participants need to press the H key AND release it (in this script; releasing the Startkey frees the index fingers to get ready to respond to the stimulus. This is different from the official demo) -Upon release of the H key, a fixation cross appears on the street scene. => The duration of the fixation cross is randomly determined (800-2000ms, with step interval = 100ms) -A word appears on the street scene. => Participants have to decide as fast as possible whether to press the Y-key for APPROACH or the N-key for AVOID -As soon as response is registered, the feedback screen is presented: => Approach Key (Y) -> street scene is zoomed in AND word gets larger => Avoid Key (N) -> street scene is zoomed out AND word gets smaller - the word is erased after 500ms - after another 500ms (iti), the trial ends and the next one starts. //////Blockorder Information: group assignment/////// This script can be used to counterbalance the order of the two conditions 'Compatible->Incompatible' and 'Incompatible->Compatible' by using different groupnumbers. Group '1': runs compatible -> incompatible Group '2': runs incompatible -> compatible (if a random assignment is needed, go to section Experiment and follow instructions to change from a groupassignment based on groupnumber to a random assignment) ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ //////////WORDS///////////// positive and negative words taken from: Smith, P. & Waterman, M. (2003). Processing bias for aggression words in forensic and nonforensic samples. Cognition and Emotion, 17, 681-701. Practice: 5 positive, 5 negative Words Test: 20 positive, 20 negative Words (the same words are run in the Compatible and Incompatible Conditions) Note: *the words are provided as placeholders only, they can easily be replaced by others under section Editable Stimuli. *The number of words provided controls the number of trials run in each block. //////////BACKROUNDS///////////// background images from: https://www.psytoolkit.org/experiment-library/vaast_words.html ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ instructions based on: https://www.psytoolkit.org/experiment-library/vaast_words.html The instructions in this script can be edited under section 'Editable Instructions' ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ check below for (relatively) easily editable parameters, stimuli, instructions etc. Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment. The parameters you can change are: