Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 17, 2012
Last Modified: January 13, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Approach-Avoidance Task (AAT), a test of implicit behavioral avoidance tendencies. This script uses a joystick for response making and is thus limited to Windows.
Wiers, R.W., Rinck, M., Dictus, M. & Wildenberg van den, E. (2009). Relatively strong automatic appetitive action-tendencies in male carriers OPRM1 G-allele. Genes, Brain and Behavior, 8, 101-106.
6 minutes
Participants are asked to do a categorization task of portrait vs. landscape pictures (of 4 different categories, e.g. alcohol, soda etc). If the picture is a landscape picture, they are asked to push the joystick away from body which shrinks the picture (=AVOID). If the picture is a portrait picture, they are asked to pull the joystick towards body which enlarges the picture (=APPROACH). Pull (Approach) and Push (Avoid) responses in regard to landscape and portrait formats are counterbalanced across participants by groupnumber.
format/direction counterbalanced by group number (odd vs even) (Inquisit Lab: manual input of subject id and group id at beginning of task)
1. runs a trial sequence generation block via helper script AATSequenceGenerator.iqjs
2. runs a practice block
3. runs the AAT test block
PRACTICE:
• PracticeStimuli: gray rectangle in landscape and portrait format
• 10 trials (5 landscape and 5 portrait formats in random order)
• gives error feedback
TEST BLOCK:
• 80 test trials (4 categories x 2 formats x 10 repetitions) in a semi randomized order
(see below for more info on generating the trial sequence)
• intertrial interval of 300ms
TRIAL SEQUENCE:
Wiers et al (2009) used a semi randomized order of all 80 test stimuli with the following two constraints:
1. no more than three consecutive stimuli of the same category
2. no more than three consecutive stimuli of the same format
a helper script "AATSequenceGenerator" generates a trialsequence that fulfills those constraints.
1. The time to generate this sequence DOES differ across participants
Safeguards are in place to prevent the script to take longer than 5s (default setting).
If the script cannot produce a sequence that fullfills all constraints within that time
limit or within the pre-established number of attempts (default: 1000) - whichever comes first- ,
a pre-generated sequence will be randomly selected from the pool of pre-generated sequences.
In the majority of cases, however, a new sequence should be found within ms.
2. The code is specific to running 8 categories
If more categories should be run, go to section 'BLOCKS' and follow instructions to use a complete randomized
algorithm (without constraints).
Wiers et al (2009): categorization of 4 types of stimuli
1) alcohol pictures
2) color and shape matched appetitive stimuli (e.g pictures of soda bottles)
3) good pictures containing people and animals
4) bad pictures containing people and animals
• 10 stimuli per category (each of these in landscape and portrait format)
• The stimuli used in this script are based on the original ones used.
Millisecond thanks Dr. Wiers for generously sharing his material!
Just a word of caution: the stimuli are culturally specific and may not work for your study.
To substitute your own stimuli, go to
script aat_stimuli.iqjs and replace the images
The instructions are not original to Wiers et al (2009). They are provided by Millisecond
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
See script aat_joystick_instructions_inc.iqjs
File Name: aat_joystick_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 |
| expCondition | Used for counterbalancing experimental conditions 1: push for landscape, pull for portrait 2: pull for landscape, push for portrait |
| propCorrectOverall | Proportion correct across all test trials |
| meanRTOverall | Mean latency (in ms) of correct responses across all test trials |
| sdRT | Standard deviation of correct responses across all test trials |
| medianRTOverall | Median latency (in ms) of correct responses across all test trials |
| aatDiffScoreCat1 | Corrected AAT Difference Scores for Cat1/Cat2 (here: alcohol images) Diff Scores = median latency of correct trials for Push trials - median latency of correct trials for Pull trials latency only for initial response interpretation Positive Scores = Pushing slower than pulling => "APPROACH" Negative Scores = Pulling slower than pushing => "AVOID" |
| aatDiffScoreCat2 | Corrected AAT Difference Scores for Cat1/Cat2 (here: non-alcohol images) |
| aatDiffScoreCat3 | Corrected AAT Difference Scores for Cat1/Cat2 (here: other positive images) |
| aatDiffScoreCat4 | Corrected AAT Difference Scores for Cat1/Cat2 (here: other negative images) |
| sequence | The experimental trial sequence generated for the participant |
File Name: aat_joystick_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 |
| expCondition | Used for counterbalancing experimental conditions 1: push for landscape, pull for portrait 2: pull for landscape, push for portrait |
| 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. |
| currentTrial | The name of the currently running Trial Sequence (e.g. AAT1) |
| stimulus | The presented stimulus image |
| targetCategory | The targetcategory of the targetstimulus, 1 - 4 1) alcohol pictures 2) color and shape matched appetitive stimuli (e.g pictures of soda bottles) 3) positive pictures containing people and animals 4) negative pictures containing people and animals |
| targetFormat | The targetFormat of the targetstimulus (l = landscape; p = portrait) |
| correctResp | Stores the correct response for the current stimulus |
| initialResponse | Stores the original response to the stimulus (PUSH vs. PUL) |
| accuracy | Stores the correctness of the initial response (1 = correct; 0 = error) |
| finalResponse | Stores the final response: PUSH vs. PULL |
| changeDirection | Stores how often participant changed direction during zooming (0 = no change) |
| rt | Stores the latency of the initial response (in ms) |
| completeRT | Stores how long it takes until the joystick is fully extended in whatever direction (in ms) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| interTrialInterval | Sets the intertrialinterval for the AAT trials in ms | 300 |