Picture Go/No-Go Association Task - GNAT

Technical Manual

original Script Author: Brian Nosek (nosek@virginia.edu)

Created: October 29, 2000

Last Modified: January 07, 2024 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements a demo for the Go-Nogo Association Task (GNAT) using categories 'fruit' and 'insects' as two target categories.

The GNAT uses the Go-Nogo framework of responding to signal and noise stimuli to investigate implicit bias towards a target category. In contrast to reaction time based tests of implicit bias (e.g. Implicit Association Test), the GNAT framework mainly focuses on accuracy data and specifically d prime measures (measures of sensitivity to distinguish signals from noise in signal detection theory) to infer implicit bias.

For example, a positive association of 'fruit' (the target signal) is suggested if the dprime measure in the condition 'Fruit-Good' (aka both Fruit and good attributes are signals) is greater than the dprime measure in the condition 'Fruit-Bad' (aka both fruit and bad attributes are signals).

Literature Reference: Nosek, B. A., & Banaji, M. R. (2001). The go/no-go association task. Social Cognition, 19(6), 625-666.

Adjustments to z-scores as described by: Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility: Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)

•Note (by B. Nosek - original script author): This task is for demonstration purposes only. Using the GNAT for research requires intentional decisions about numerous design parameters. Discussion of some of those parameters can be found in Nosek and Banaji (2001; Social Cognition). This example is a minimalist example and is not designed to maximize reliability, it only demonstrates the core properties of the task.

Additional Notes (K. Borchert, Millisecond Software): GNATdemo.iqjs was edited to allow for: - easy changes in GNAT target categories (under Editable Stimuli) - easy changes in response timeouts (under Editable Parameters) -> by default the task is set up to run 2 different response timeouts (750ms vs. 600ms) for critical testblocks - easy setting of target vs. noise response timeouts (see Experiment 5 in Nosek & Banaji, 2001) -> by default, response timeouts for target and noise trials are the same - easy changes in interstimulus intervals (time btw. offset of one stimulus and onset of the next) (under Editable Parameters) - recorded correct responses reflect the actual accuracy of the participant's response while keeping feedback accurate - includes summary variables (hits and false alarm counts/rates)

Furthermore script gnat_pictures.iqjs is provided by Millisecond to run a GNAT with picture target/noise items and word attributes.

Duration

20 minutes

Description

Participants are asked to categorize attributes (e.g. "happy"; "unhappy") and target items (e.g fruits "apple"; insects "bug") into predetermined categories via keystroke presses. The basic task is to press the Spacebar if an item (e.g. "happy") belongs to the category currently being tested (e.g. "Good") and to do nothing if it doesn't. For practice, participants sort items into categories "Good", "Bad", "Fruit", and "Insect". For the test, participants are asked to sort categories into the paired/combined categories (e.g. "Fruit OR Good"). When an item belongs to either one of these two categories, participants should press the Spacebar.

Procedure

Default GNAT Set-Up in this script:
(1) 4 training blocks: one training block each for targetA (here: insects), targetB (here: fruits), attributeA (here: good), attributeB (here: bad)
with response timeout of 1000ms (editable under section Editable Values)
-> block order is determined randomly
-> run 20 trials each (10 target:10 noise)

(2) 4 test blocks that combine targets and attributes with a faster response timeout (default: 750ms)
-> block order is determined randomly
-> each block runs 16 'practice trials' followed by 60 test trials (summary variables based on test trial performance only)
-> signal : noise = 1 : 1

(3) 4 test blocks that combine targets and attributes with an even faster response timeout (default: 600ms)
-> block order is determined randomly
-> each block runs 16 'practice trials' followed by 60 test trials (summary variables based on test trial performance only)
-> signal : noise = 1 : 1


• Number of trials run as well as 'signal : noise' ratios can only be edited on block level (see section BLOCKS)

Stimuli

see section Editable Stimuli

Each of the categories runs 15 stims by default. You add further stims to the item elements.
The target/noise pictures were downloaded from https://pixabay.com

Instructions

see section Editable Instructions

Summary Data

File Name: gnatdemo_summary*.iqdat

Data Fields

NameDescription
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
Parameter Values
responseTimeout2Signal Stores the response timeouts in ms used for signals in the first gnat round (2 blocks) in this script (default: 700ms)
responseTimeout2Noise Stores the response timeouts in ms used for noise in the first gnat round (2 blocks) in this script (default: 700ms)
responseTimeout3Signal Stores the response timeouts in ms used in this study for signals in the second gnat round (2 blocks) in this script (default: 550ms)
responseTimeout3Noise Stores the response timeouts in ms used for noise in the second gnat round (2 blocks) in this script (default: 550ms)
responsetimeouts1 (1000ms) are used for practice only and responsetimeouts4 are not run
Performance Metrics
propCorrectAA Overall proportion correct for pairing targetA-attributeA (here: insects-good); test trials only
propCorrectAB Overall proportion correct for pairing targetA-attributeB (here: insects-bad); test trials only
propCorrectBA Overall proportion correct for pairing targetB-attributeA (here: fruit-good); test trials only
propCorrectBB Overall proportion correct for pairing targetB-attributeB (here: fruit-bad); test trials only
TARGET A Conditions
signals = insects
AA Condition
signals = insects OR good stims
noise = anything else (fruit OR bad stims)
rHitAA Hit rate for pairing targetA-attributeA across all responsetimeouts; test trials only
hit: pressing spacebar for signals (insects OR good stims) in AA condition
rMissAA Miss rate for pairing targetA-attributeA across all responsetimeouts; test trials only
miss: not pressing spacebar for signals (insects OR good stims) in AA condition
rFaAA False alarm (FA) rate for pairing targetA-attributeA across all responsetimeouts; test trials only
false alarm: pressing spacebar for noise stims (fruit OR bad stims) in AA condition
rCrAA Correct rejection (CR) for pairing targetA-attributeA across all responsetimeouts; test trials only
cr: not pressing spacebar for noise stims (fruit OR bad stims) in AA condition
zHitAA Z-score of hit rate for pairings targetA-attributeA (here: insects-good)
zFaAA Z-score of FA rate for pairings targetA-attributeA (here: insects-good)
*Adjustments to z-scores as recommended by
Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility
Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)
=> Adjustments are made if the FArate (hitRate) = 0 (increased to 0.005) or 1 (decreased to 0.995)*
dPrimeAA Computes d' (parametric measure of discriminability btw. signals and noise) for 'insects-good' Pairings
=> Range (in this script)
-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)
=> The higher the value, the better signals (go stims) were distinguished from noise (nogo stims)
(d' = 0: chance performance; negative d-primes: participant treated nontargets as targets and targets as nontargets)
cAA C-criterion in signal detection:The absolute value of c provides an indication of the strength of
the response bias/response style
negative: participant more likely to report that signal (go stims) is present (liberal response style)
may favor faster responding in speed-accuracy trade-off response paradigms
positive: favoring caution (conservative response style)
AB Condition
signals = insects OR bad
noise = anything else (fruit OR good)
rHitAB Hit rate for pairing targetA-attributeB across all responsetimeouts; test trials only
hit: pressing spacebar for signals (insects OR bad) in AB condition
rMissAB Miss rate for pairing targetA-attributeB across all responsetimeouts; test trials only
miss: not pressing spacebar for signals (insects OR bad) in AB condition
rFaAB False alarm (FA) rate for pairing targetA-attributeB across all responsetimeouts; test trials only
false alarm: pressing spacebar for noise stims (fruit OR good) in AB condition
rCrAB Correct rejection (CR) for pairing targetA-attributeB across all responsetimeouts; test trials only
cr: not pressing spacebar for noise stims (fruit OR good) in AB condition
zHitAB Z-score of hit rate for pairings targetA-attributeB (here: insects-bad)
zFaAB Z-score of FA rate for pairings targetA-attributeB (here: insects-bad)
dPrimeAB Computes d' (parametric measure of discriminability btw. signals and noise) for 'insects-bad' Pairings
cAB C-criterion in AB condition
dPrimeDiffTargetA The difference in dprime btw. AA (insects-good) and AB (insects-bad)
=> if d prime for insects-good is larger than for insects-bad (positive difference)
participant more closely associated insects with good than with bad attributes
=> if d prime for insects-good is smaller than for insects-bad (negative difference)
participant more closely associated insects with bad than with good attributes
TARGET B Conditions
signals = fruit
BA Condition
signals = fruit OR good stims
noise = anything else (insects OR bad stims)
rHitBA Hit rate for pairing targetB-attributeA across all responsetimeouts; test trials only
hit: pressing spacebar for signals (fruit OR good stims) in BA condition
rMissBA Miss rate for pairing targetB-attributeA across all responsetimeouts; test trials only
miss: not pressing spacebar for signals (fruit OR good stims) in BA condition
rFaBA False alarm (FA) rate for pairing targetB-attributeA across all responsetimeouts; test trials only
false alarm: pressing spacebar for noise stims (insects OR bad stims) in BA condition
rCrBA Correct rejection (CR) for pairing targetB-attributeA across all responsetimeouts; test trials only
cr: not pressing spacebar for noise stims (insects OR bad stims) in BA condition
zHitBA Z-score of hit rate for pairings targetB-attributeA (here: fruit-good)
zFaBA Z-score of FA rate for pairings targetB-attributeA (here: fruit-good)
dPrimeBA Computes d' (parametric measure of discriminability btw. signals and noise) for 'fruit-good' Pairings
cBA C-criterion in BA condition
AB Condition
signals = fruit OR bad
noise = anything else (insects OR good)
rHitBB Hit rate for pairing targetB-attributeB across all responsetimeouts; test trials only
hit: pressing spacebar for signals (fruit OR bad) in BB condition
rMissBB Miss rate for pairing targetB-attributeB across all responsetimeouts; test trials only
miss: not pressing spacebar for signals (fruit OR bad) in BB condition
rFaBB False alarm (FA) rate for pairing targetB-attributeB across all responsetimeouts; test trials only
false alarm: pressing spacebar for noise stims (insects OR good) in BB condition
rCrBB Correct rejection (CR) for pairing targetB-attributeB across all responsetimeouts; test trials only
cr: not pressing spacebar for noise stims (insects OR good) in BB condition
zHitBB Z-score of hit rate for pairings targetB-attributeB (here: fruit-bad)
zFaBB Z-score of FA rate for pairings targetB-attributeB (here: fruit-bad)
dPrimeBB Computes d' (parametric measure of discriminability btw. signals and noise) for 'fruit-bad' Pairings
cBB C-criterion in BB condition
dPrimeDiffTargetB The difference in dprime btw. BA (fruit-good) and BB (fruit-bad)
=> if d prime for fruit-good is larger than for fruit-bad (positive difference)
participant more closely associated fruit with good than with bad attributes
=> if d prime for fruit-good is smaller than for fruit-bad (negative difference)
participant more closely associated fruit with bad than with good attributes
by default, this script runs testblocks for responsetimeouts2 and responsetimeouts3

Raw Data

File Name: gnatdemo_raw*.iqdat

Data Fields

NameDescription
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
phase "training" (one category) vs. "test" (two categories)
responseTimeoutTarget Time in ms that is allowed for response in a given target trial
responseTimeoutNoise Time in ms that is allowed for response in a given noise trial
signal 1 = signal trial (spacebar response is correct)
0 = noise trial (no response is correct)
targetType "A" vs. "B" (here: A-insects; B-fruit)
pairing "AA" -> targetA-attributeA (here: insects and good)
"AB" -> targetA-attributeB (here: insects and bad)
"BA" -> targetB-attributeA (here: fruit-good)
"BB" -> targetB-attributeB (here: fruit-bad)
trialType Training phase: "training"
test phase: "practice" vs. "test"
stimulusItem The presented stimulusitems in order of presentation in stimulusframes (see trials)
response Response made (either 57 = Spacebar or 0 for no response)
correct The accuracy of response (1 = correct; 0 = error)
latency The latency of the response in ms (or if no response: response timeout duration)

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
responseTimeout1Signal Stores the longest response timeouts in ms used in this study for targets
by default, the longest response timeout in this script is used for blocks
that test attributes and targets separately (default: 1000ms)
responseTimeout2Signal Stores the next response timeouts in ms used in this study for targets
by default, in this script this is the first response time used for blocks
that test attributes and targets simultaneously (default 750ms)
responseTimeout3Signal Stores the next response timeouts in ms used in this study for targets
by default, this is the second response time used for blocks
that test attributes and targets simultaneously (default 600ms)
responseTimeout4Signal Stores a potential next response timeouts in ms that could be used for targets
-> code provided under section BLOCKS
by default, this responsetimeout4_signal is not used in this script
(same for noise trials: by default they are the same in this script)
isi Stores the interstimulus interval (time between offset of one stimulus and onset of next)
picHeightPct The percentage height of the pictures