___________________________________________________________________________________________________________________ SINGLE N-BACK TASK - location (nonadaptive, 1-key version) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software LLC Date: March, 2012 last updated: 10-08-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 10-08-2024 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements a basic shape n-back procedure. The n-back task is a go/nogo working-memory performance task with increasing levels of difficulty. The implemented procedure is based on: Jaeggi, Susanne M.; Studer-Luethi, Barbara; Buschkuehl, Martin; Su, Yi-Fen; Jonides, John; Perrig, Walter J. (2010). The relationship between n-back performance and matrix reasoning - implications for training and transfer. Intelligence, 38, 625–635. Millisecond Software thanks Dr. Susanne Jaeggi for kindly providing original instruction materials, stimuli, as well as assistance! 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) ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ In the 1-key single n-back task, participants are shown a sequence of blue squares in varying screen locations (3x3 matrix with center being used for fixation) and are asked to indicate whether the screen location of the current square fulfills the following criteria: for N=0 trials: - is the location of the square directly above the fixation cross? If so (it's a target), and press "A". If not, don't respond. for N=1 trials: - is the location of the square the same as the one that preceded it? If so (it's a target), and press "A". If not, don't respond. for N=2 trials: - is the location of the square the same as the one presented two trials before? If so (it's a target), and press "A". If not, don't respond. for N=3 trials: - is the location of the square the same as the one presented three trials before? If so (it's a target), and press "A". If not, don't respond. etc. for increasing levels of N ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 15 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'singlenbacktask_locations_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 such as feedback trials. Thus, trialNum may not reflect the number of main trials run per block. totalBlocks: the total number of experimental blocks run n: the current level N tested startTrialCounter: keeps track of how many start trials have been run currentTarget: position number of the current target currentPosition: position number of the current square xpos: the horizontal coordinate of the current square (in canvas pct) ypos: the vertical coordinate of the current square (in canvas pct) response: the Response of the participant (scancode of response button): 0 = no response 31 = 'A' key (positive response) responseCategory: "Hit" vs. "Omission Error" vs. "CorrReject" vs. "Commission Error" correct: the correctness of the response (1 = correct; 0 = otherwise) latency: how fast a participant responded within the given timeframe, if at all (in ms) no responses = the entire trialduration list.blockAcc.mean: proportion correct during the current block (start trials are excluded from block acc assessment by default, editable) (2) Summary data file: 'singlenbacktask_locations_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) round: the total number of experimental blocks run the following summary variables are only based on performance on trial.target/trial.nontarget (excludes trial.start even if parameters.excludeStartTrialfromPerformanceMeasure = false) propCorrect: overall proportion correct (across all test blocks) 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 hitFA rate) IF the hit rate FA rate is 1.0 => 0.995 is used instead (aka 0.005 is subtracted from the hitFA rate) list.hitsOverall.itemCount: the absolute number of target trials (across all test blocks) hitRateOverall: overall hit rate (across all test blocks) = hitting 'A' for targets missRateOverall: overall miss rate hitRTOverall: overall mean hit response time (in ms; across all test blocks) list.commissionsOverall.itemCount: the absolute number of nontarget trials (across all test blocks) faRateOverall: overall False Alarm/Commission Error Rate (across all test blocks) = hitting 'A' for nontargets crRateOverall: overall correct rejection rate faRT: overall mean False Alarm response time (in ms; across all test blocks) zHitRateOverall: the z-score of the overall hit rate zFaRateOverall: the z-score of the overall False Alarm rate dPrimeOverall: Computes d' (parametric measure of sensitivity): The higher the value, the better targets were overall correctly distinguished from nontargets (d' = 0: chance performance; negative values: nontargets were treated as targets and targets were treated as nontargets) cOverall: 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) dv: dependent variable suggested by Jaeggi et al (2010): (TotalHits - TotalFA)/number of experimental blocks The following variables look at the different levels of N. If a level of N was not run, the variables will store "not run" //Level N = 0 hitRateN0: hit rate (hitting 'A' for targets) for level N = 0 missRateN0: miss rate for level N = 0 hitRTN0: mean hit response time (in ms) for level N = 0 faRateN0: False Alarm/Commission Error Rate (hitting 'A' for nontargets) for level N = 0 crRateN0: correct rejection rate for level N = 0 zHitRateN0: the z-score of the hit rate for level N = 0 zFaRateN0: the z-score of the False Alarm rate for level N = 0 dPrimeN0: Computes d' (parametric measure of sensitivity) for level N = 0 cN0: c-criterium for level N = 0 (same for Level N=1-6) Note: if additional levels of N are run, further changes to the code need to be made ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ - After instructions, participants receive 10 trials of practice per level N tested (here: N = 2 to N = 4), Note: edit list.nextN_practice to change levels of N practiced - once practice is done, participants get the option to repeat practice (see parameters.allowPracticeRepeat) - After practice, participants receive 3 blocks per level of N tested. By default, the level of N increases from 1 to 3. Note: edit list.Nlevel to change a) N levels tested b) number of testblocks c)selection of N-levels Block Information: - Each single n-task block consists of 20+ trials using 8 different locations (3x3 matrix with center being used for fixation). => + trials are the N trials that cannot display target locations yet (=start trials). Their numbers vary depending on N. The data collected during these start trials are NOT included in performance counts for Correct Rejections/False Alarms. => Of the actual 20 experimental trials, 6 present a target and 14 do not (3:7 ratio). To change the ratio, you need to change the relevant code under block.Test - The computer selects randomly a) whether it is a target trial or not and b) what shape to show if it is not a target trial Trial Information: - Each trial presents the square for 500ms and waits another 2500ms before presenting the next square in the sequence. The trialduration can be edited by experimenter. - Participants have the entire 3000ms to respond by pressing "A" if they detect a target. ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ 1 blue square, see section Editable Stimuli Note: if the image is changed, the instruction pages need to be updated accordingly ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited under section Editable Instructions Instructions are not original to the task. They are provided by Millisecond Software as htm pages and simple page elements and can be edited either by changing the provided html files or directly under Editable Instructions. Note: in order for the instructions to reflect alternative parameter settings, some of the conditionalized code used in the htm files can be found in the script itself. ___________________________________________________________________________________________________________________ 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: /allowPracticeRepeat: true: practice can be repeated as often as indicated (default) false: practice cannot be repeated /excludeStartTrialfromPerformanceMeasure: true (1): performance during start trials that cannot be targets yet is not considered for Block level performance analyses, e.g. for feedback purposes (default) false (0): performance during start trials that cannot be targets yet IS considered for block performance analyses (default) /soa: Stimulus Onset Asynchrony (default: 3000ms) /stimulusPresentationTime: the presentation time (in ms) of the stimuli (default: 500ms) /stimHeightPct: the height of the stim (here: blue square) relative to canvas height (Note: should not exceed 25%) debugmode: 0 debugmode = 1: targetalerts are shown on screen, debugmode = 0, no targetalerts are shown (default) (in general: if levels of N are changed, adjustments need to be made to instructions and list.Nlevel)