This script is in part based on the original gnatdemo.iqjs by Brian Nosek (nosek@virginia.edu)
Millisecond thanks Dr. Debbie Roy for her collaboration on this script!
Last Modified: January 07, 2024 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Self Esteem Go-Nogo Association Task (GNAT), a measure of a global marker for ego fragility.
In general, 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 'nice-ME (the target signal) is suggested if the dprime measure in the condition 'nice-ME' (aka both me-targets and nice attributes and are signals) is greater than the dprime measure in the condition 'nasty-ME' (aka me-targets and nasty attributes are signals).
This script implements the self esteem Go-Nogo Association Task (GNAT) similarly to the one described in:
Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility: Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161
GNAT Literature
Nosek, B. A., & Banaji, M. R. (2001). The go/no-go association task. Social Cognition, 19(6), 625-666.
10 minutes
Participants are asked to categorize nice and nasty words (e.g. "friendship"; "murder") and target items (e.g 'myself', 'them') into predetermined categories via keystroke presses. The basic task is to press the Spacebar if an item (e.g. "friendship") belongs to the category currently being tested (e.g. "nice") and to do nothing if it doesn't. For practice, participants sort items into categories "nice", "nasty", "me", and "not me". For the test, participants are asked to sort categories into the paired categories (e.g. "me OR nice"). When an item belongs to either one of these two categories, participants should press the Spacebar. Otherwise they should do nothing.
Default GNAT Set-Up in this script:
(1) 4 training blocks: one training block each for targetA (here: me), targetB (here: not me), attributeA (here: Nice),
attributeB (here: Nasty)
with response timeout of 600ms
-> block order is determined randomly
-> run 20 trials each (10 target:10 noise)
(2) 4 test blocks that combine targets and attributes with a response timeout (default: 600ms)
-> block order is determined randomly
-> each block runs 16 'practice trials' followed by 48 test trials (summary variables based on test trial performance only)
-> signal : noise = 1 : 1 (samenumber of attributeA, attributeB, signal and noise trials)
-> each attribute (12) is selected once during the test trials
-> each target is repeated 4x during the test trials
see section Editable Stimuli (stimuli from Gregg & Sedikides, 2010)
see section Editable Instructions
File Name: selfesteemgnat_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 |
Parameter Values |
|
| responseTimeout1Signal | Stores the response timeouts in ms used for signals in the testblocks in this script |
| responseTimeout1Noise | Stores the response timeouts in ms used for noise in in the testblocks in this script |
| targetALabel | The category used for target A |
| targetBLabel | The category used for target B |
| attributeALabel | The category used for attribute A |
| attributeBLabel | The category used for attribute B |
| propCorrectAA | Overall proportion correct for pairing targetA-attributeA (here: me-nice); test trials only |
| propCorrectAB | Overall proportion correct for pairing targetA-attributeB (here: me-nasty); test trials only |
| propCorrectBA | Overall proportion correct for pairing targetB-attributeA (here: not me-nice); test trials only |
| propCorrectBB | Overall proportion correct for pairing targetB-attributeB (here: not me-nasty); test trials only TARGET A Conditions signals = ME AA Condition signals = ME OR nice noise = anything else (NOT ME OR nasty) |
| rHitAA | Hit rate for pairing targetA-attributeA across all responsetimeouts; test trials only hit: pressing spacebar for signals (ME OR nice) in AA condition |
| rMissAA | Miss rate for pairing targetA-attributeA across all responsetimeouts; test trials only miss: not pressing spacebar for signals (ME OR nice) 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 (NOT ME OR nasty) in AA condition |
| rCrAA | Correct rejection (CR) for pairing targetA-attributeA across all responsetimeouts; test trials only cr: not pressing spacebar for noise stims (NOT ME OR nasty) in AA condition |
| zHitAA | Z-score of hit rate for pairings targetA-attributeA (here: ME-nice) |
| zFaAA | Z-score of FA rate for pairings targetA-attributeA (here: ME-nice) *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 'ME-nice' 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 = ME OR nasty noise = anything else (NOT ME OR nice) |
| rHitAB | Hit rate for pairing targetA-attributeB across all responsetimeouts; test trials only hit: pressing spacebar for signals (ME OR nasty) in AB condition |
| rMissAB | Miss rate for pairing targetA-attributeB across all responsetimeouts; test trials only miss: not pressing spacebar for signals (ME OR nasty) 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 (NOT ME OR nice) in AB condition |
| rCrAB | Correct rejection (CR) for pairing targetA-attributeB across all responsetimeouts; test trials only cr: not pressing spacebar for noise stims (NOT ME OR nice) in AB condition |
| zHitAB | Z-score of hit rate for pairings targetA-attributeB (here: ME-nasty) |
| zFaAB | Z-score of FA rate for pairings targetA-attributeB (here: ME-nasty) |
| dPrimeAB | Computes d' (parametric measure of discriminability btw. signals and noise) for 'ME-nasty' Pairings |
| cAB | C-criterion in AB condition TARGET B Conditions signals = NOT ME BA Condition signals = NOT ME OR nice noise = anything else (ME OR nasty) |
| rHitBA | Hit rate for pairing targetB-attributeA across all responsetimeouts; test trials only hit: pressing spacebar for signals (NOT ME OR nice) in BA condition |
| rMissBA | Miss rate for pairing targetB-attributeA across all responsetimeouts; test trials only miss: not pressing spacebar for signals (NOT ME OR nice) 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 (ME OR nasty) in BA condition |
| rCrBA | Correct rejection (CR) for pairing targetB-attributeA across all responsetimeouts; test trials only cr: not pressing spacebar for noise stims (ME OR nasty) in BA condition |
| zHitBA | Z-score of hit rate for pairings targetB-attributeA (here: NOT ME-nice) |
| zFaBA | Z-score of FA rate for pairings targetB-attributeA (here: NOT ME-nice) |
| dPrimeBA | Computes d' (parametric measure of discriminability btw. signals and noise) for 'NOT ME-nice' Pairings |
| cBA | C-criterion in BA condition AB Condition signals = NOT ME OR nasty noise = anything else (ME OR nice) |
| rHitBB | Hit rate for pairing targetB-attributeB across all responsetimeouts; test trials only hit: pressing spacebar for signals (NOT ME OR nasty) in BB condition |
| rMissBB | Miss rate for pairing targetB-attributeB across all responsetimeouts; test trials only miss: not pressing spacebar for signals (NOT ME OR nasty) 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 (ME OR nice) in Bb condition |
| rCrBB | Correct rejection (CR) for pairing targetB-attributeB across all responsetimeouts; test trials only cr: not pressing spacebar for noise stims (ME OR nice) in Bb condition |
| zHitBB | Z-score of hit rate for pairings targetB-attributeB (here: NOT ME-nasty) |
| zFaBB | Z-score of FA rate for pairings targetB-attributeB (here: NOT ME-nasty) |
| dPrimeBB | Computes d' (parametric measure of discriminability btw. signals and noise) for 'NOT ME-nasty' Pairings |
| cBB | C-criterion in BB condition |
| gnatpart1 | (a) subtracting d' for the Not-me & Nice (BA) block from d' for the me & Nice block (AA) => AA-BA => if positive: participant is better at discriminating btw. signal and noise when both 'me' and 'nice' are signals than when 'not me' and 'nice' are signals This supports closer association of 'me' and 'nice' than 'not me' and 'nice' |
| gnatpart2 | (b) subtracting d' for the me & Nasty (AB) block from d' for the Not-me & Nasty block (BB)=> BB-AB => if positive: participant is better at discriminating btw. signal and noise when both 'not me' and 'nasty' are signals than when 'me' and 'nasty' are signals This supports closer association of 'not me' and 'bad' than 'me' and 'bad' |
| gnatall | A composite index of implicit self-esteem (Gregg & Sedikides, 2010) => sum of GNATpart1 and GNATpart2 => the higher the composite score, the closer a participant associates 'me' with 'good' and 'not me' with 'bad' => measure of self-esteem |
| (3) | Datafile "instructions_survey.iqdat" stores the name input raw data |
File Name: selfesteemgnat_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 |
| 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" (single category categorization) vs. "test" (2 categories categorization) |
| targetALabel | The category used for target A |
| targetBLabel | The category used for target B |
| attributeALabel | The category used for attribute A |
| attributeBLabel | The category used for attribute B |
| responseTimeoutTarget | Time in ms that is allowed for response in a signal trial |
| responseTimeoutNoise | Time in ms that is allowed for response in a noise trial |
| signal | 1 = signal trial (spacebar response is correct) 0 = noisetrial (no response is correct) |
| targetType | "A" vs. "B" (here: A-me; B-not me) |
| pairing | "AA" -> targetA-attributeA (here: me and nice) "AB" -> targetA-attributeB (here: me and nasty) "BA" -> targetB-attributeA (here: not me-nice) "BB" -> targetB-attributeB (here: not me-nasty) |
| 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) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| 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) (samefor 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) |