User Manual: Inquisit Self-Esteem GNAT


___________________________________________________________________________________________________________________	

									Self Esteem GNAT 
___________________________________________________________________________________________________________________	

This script is in part based on the original gnatdemo.iqx by Brian Nosek (nosek@virginia.edu)
last updated:  02-23-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 02-23-2022 Millisecond Software

Millisecond Software thanks Dr. Debbie Roy for her collaboration on this script!

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________

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 Reference:
Nosek, B. A., & Banaji, M. R. (2001). The go/no-go association task.  Social Cognition, 19(6), 625-666. 

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
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.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 10 minutes to complete

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________
The default data stored in the data files are:

(1) Raw data file: 'selfesteemgnat_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, group: 					with the current subject/groupnumber
session:							with the current session id

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. 

phase:								"training" (single category categorization) vs. "test" (2 categories categorization)

item.targetAlabel.items.1			the category used for target A
item.targetBlabel.items.1:			the category used for target B
item.attributeAlabel.items.1:		the category used for attribute A
item.attributeBlabel.items.1:		the category used for attribute B

responsetimeout_target:				time in ms that is allowed for response in a signal trial
responsetimeout_noise:				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)


(2) Summary data file: 'selfesteemgnat_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)

///parameter settings:									
responsetimeout1_signal:			stores the response timeouts in ms used for signals in the testblocks in this script
responsetimeout1_noise:				stores the response timeouts in ms used for noise in in the testblocks in this script

item.targetAlabel.items.1			the category used for target A
item.targetBlabel.items.1:			the category used for target B
item.attributeAlabel.items.1:		the category used for attribute A
item.attributeBlabel.items.1:		the category used for attribute B

propCorrect_AA:						overall proportion correct for pairing targetA-attributeA (here: me-nice); test trials only
propCorrect_AB:						overall proportion correct for pairing targetA-attributeB (here: me-nasty); test trials only
propCorrect_BA:						overall proportion correct for pairing targetB-attributeA (here: not me-nice); test trials only
propCorrect_BB:						overall proportion correct for pairing targetB-attributeB (here: not me-nasty); test trials only

Note: z-score calculations: adjustments (see Gregg & Sedikides, 2010, p.148)
If the hit rate / FA rate is 0 => 0.005 is used instead (aka 0.005 is added to the hit/FA rate)
IF the hit rate / FA rate is 1.0 => 0.995 is used instead (aka 0.005 is subtracted from the hit/FA rate)

rHit_AA:							hit rate for pairing targetA-attributeA (here: me-nice) across all responsetimeouts; test trials only
rFA_AA:								false alarm (FA) rate for pairing targetA-attributeA (here: me-nice) across all responsetimeouts; test trials only
zhit_AA:							z-score of hit rate for pairings targetA-attributeA (here: me-nice)
zFA_AA:								z-score of FA rate for pairings targetA-attributeA (here: me-nice)

AA_dprime:							Computes d' (parametric measure of discriminability) for Me-Nice Pairings
										=> Range (in this script): 
										-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)

rHit_AB:							hit rate for pairing targetA-attributeB (here: me-nasty) across all responsetimeouts; test trials only
rFA_AB:								false alarm (FA) rate for pairing targetA-attributeB (here: me-nasty) across all responsetimeouts; test trials only
zhit_AB:							z-score of hit rate for pairings targetA-attributeB (here: me-nasty)
zFA_AB:								z-score of FA rate for pairings targetA-attributeB (here: me-nasty)

AB_dprime:							Computes d' (parametric measure of discriminability) for Me-Nasty Pairings
										=> Range (in this script): 
										-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)

rHit_BA:							hit rate for pairing targetB-attributeA (here: not me-nice) across all responsetimeouts; test trials only
rFA_BA:								false alarm (FA) rate for pairing targetB-attributeA (here: not me-nice) across all responsetimeouts; test trials only
zhit_BA:							z-score of hit rate for pairings targetB-attributeA (here: not me-nice)
zFA_BA:								z-score of FA rate for pairings targetB-attributeA (here: not me-nice)

BA_dprime:							Computes d' (parametric measure of discriminability) for Not Me-Nice Pairings
										=> Range (in this script): 
										-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)

rHit_BB:							hit rate for pairing targetB-attributeB (here: not me-nasty) across all responsetimeouts; test trials only
rFA_BB:								false alarm (FA) rate for pairing targetB-attributeB (here: not me-nasty) across all responsetimeouts; test trials only
zhit_BB:							z-score of hit rate for pairings targetB-attributeB (here: not me-nasty)
zFA_BB:								z-score of FA rate for pairings targetB-attributeB (here: not me-nasty)

BB_dprime:							Computes d' (parametric measure of discriminBBility) for not Me-Nasty Pairings
										=> Range (in this script): 
										-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)

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				
								
																
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

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

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________
see section Editable Stimuli (stimuli from Gregg & Sedikides, 2010)

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
see 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:

/responsetimeout1_signal:		stores the longest response timeouts in ms used in this study for targets
								Note: 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)