original Script Author: Brian Nosek (nosek@virginia.edu)
Created: October 29, 2000
Last Modified: April 03, 2026 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
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).
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)
20 minutes
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.
see section Editable Stimuli in script gnatdemo_stimuli_inc.iqjs
Each of the categories runs 15 stims by default. You can add further stims to the item elements.
The target/noise pictures were downloaded from https://pixabay.com
see section Editable Instructions in script gnatdemo_instructions_inc.iqjs
File Name: gnatdemo_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 |
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 |
Aa: 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) |
| 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: Signals = Insects Or Bad Stims; Noise = Anything Else (Fruit Or Good Stims) |
|
| rHitAB | Hit rate for pairing targetA-attributeB across all responsetimeouts; test trials only |
| rMissAB | Miss rate for pairing targetA-attributeB across all responsetimeouts; test trials only |
| rFaAB | False alarm (FA) rate for pairing targetA-attributeB across all responsetimeouts; test trials only |
| rCrAB | Correct rejection (CR) for pairing targetA-attributeB across all responsetimeouts; test trials only |
| 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) in AB condition |
| 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 |
Ba: Signals = Fruit Or Good Stims; Noise = Anything Else (Fruit Or Bad Stims) |
|
| rHitBA | Hit rate for pairing targetB-attributeA across all responsetimeouts; test trials only |
| rMissBA | Miss rate for pairing targetB-attributeA across all responsetimeouts; test trials only |
| rFaBA | False alarm (FA) rate for pairing targetB-attributeA across all responsetimeouts; test trials only |
| rCrBA | Correct rejection (CR) for pairing targetB-attributeA across all responsetimeouts; test trials only |
| 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) in BA condition |
| cBA | C-criterion in BA condition |
Bb: Signals = Fruit Or Bad Stims; Noise = Anything Else (Insects Or Good Stims) |
|
| rHitBB | Hit rate for pairing targetB-attributeB across all responsetimeouts; test trials only |
| rMissBB | Miss rate for pairing targetB-attributeB across all responsetimeouts; test trials only |
| rFaBB | False alarm (FA) rate for pairing targetB-attributeB across all responsetimeouts; test trials only |
| rCrBB | Correct rejection (CR) for pairing targetB-attributeB across all responsetimeouts; test trials only |
| 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) in BB condition |
| 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 |
File Name: gnatdemo_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 | "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) |
| responseText | Label of response key |
| correct | The accuracy of response (1 = correct; 0 = error) |
| latency | The latency of the response in ms (or if no response: response timeout duration) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Timing Parameters |
||
| 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 | 1000 |
| 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 | 750 |
| 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 | 600 |
| 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 | 500 |
| responseTimeout1Noise | Stores the longest response timeouts in ms used in this study for noise stimuli | 1000 |
| responseTimeout2Noise | Stores the next response timeouts in ms used in this study for noise stimuli | 750 |
| responseTimeout3Noise | Stores the next response timeouts in ms used in this study for noise stimuli | 600 |
| responseTimeout4Noise | Stores a potential next response timeouts in ms that could be used for noise stimuli | 500 |
| isi | Stores the interstimulus interval (time between offset of one stimulus and onset of next) | 500 |
Sizing Parameters |
||
| picHeightPct | The percentage height of the pictures (relative canvas height) | 50% |