Single Category (SC) Implicit Attitude Test (IAT) SCRIPT INFO Main Inquisit programming: Sean Draine (seandr@millisecond.com) last updated: 04-11-2017 by K.Borchert (katjab@millisecond.com) for Millisecond Software LLC Copyright © 04-11-2017 Millisecond Software BACKGROUND INFO The SC-IAT script is based on: Karpinski, A. & Steinman, R.B. (2006). The Single Category Implicit Association Test as a Measure of Implicit Social Cognition. Journal of Personality and Social Psychology, 91, 16–32. and the general IAT.iqx script published by Millisecond Software LLC Differences btw. this script and Karpinski & Steinman (2006) - error responses in this script need to be corrected before moving on - no response window: stimuli stay on screen until a correct response is given. A reminder to "respond more quickly" is optional if latencies exceed a certain limit (see section "Editable Values" for more info) - no error response correction necessary for d-score calculation as error responses needed to be corrected before moving on (therefore an error penalty was added automatically to each error latency) IAT-Background Info: The Implicit Association Task (Greenwald, McGhee, & Schwartz, 1998) is a widely-used cognitive-behavioral paradigm that measures the strength of automatic (implicit) associations between concepts in people’s minds relying on latency measures in a simple sorting task. The strength of an association between concepts is measured by the standardized mean difference score of the 'hypothesis-inconsistent' pairings and 'hypothesis-consistent' pairings (d-score) (Greenwald, Nosek, & Banaji, 2003). In general, the higher the d-score the stronger is the association between the 'hypothesis-consistent' pairings (decided by researchers). Negative d-scores suggest a stronger association between the 'hypothesis-inconsistent' pairings. Inquisit calculates d-scores using the improved scoring algorithm as described in Greenwald et al (2003). Error trials are handled by requiring respondents to correct their responses according to recommendation (p.214). This differs slightly from Karpinski & Steinman (2006) who removed noresponse trials from d-score calculations and replaced error responses with the mean latency + 400ms penalty. D-scores obtained with this script: positive D-scores: positive attitude towards animals negative D-scores: negative attitude towards animals References: Greenwald, A. G., McGhee, D. E., & Schwartz, J. K. L. (1998). Measuring individual differences in implicit cognition: The Implicit Association Test. Journal of Personality and Social Psychology, 74, 1464-1480. Greenwald, A. G., Nosek, B. A., & Banaji, M. R. (2003). Understanding and Using the Implicit Association Test: I. An Improved Scoring Algorithm. Journal of Personality and Social Psychology, 85, 197-216. *Task* Participants are asked to categorize attributes (e.g. "joyful"; "tragic") and animal names into predetermined categories via keystroke presses. The basic task is to press a left key (E) if an item (e.g. "joyful") belongs to the category presented on the left (e.g. "Animal OR Good") and to press the right key (I) if the word (e.g. "tragic") belongs to the category presented on the right ("Bad") . Pairings are reversed for a second test: press a left key (E) if an item (e.g. "joyful") belongs to the category presented on the left (e.g. "Good") and to press the right key (I) if the word (e.g. "tragic") belongs to the category presented on the right ("Animal OR Bad"). The order of the pairings is counterbalanced by groupnumber. DATA FILE INFORMATION: The default data stored in the data files are: (1) Raw data file: 'SC_IAT_raw*.iqdat' (a separate file for each participant) build: Inquisit build computer.platform: the platform the script was run on date/time/group/subject: built in variables that track date and time when script was run with the assigned subject- and group number Note: group1/group2 counterbalance the order in which the pairings are run blockcode: the name of the current trial blocknum: the number of the current trial trialcode: the name of the current trial trialnum: the number of the current trial response: the final trial response (scancodes of the keys pressed) Note: script saves the final and -by design- correct response correct: the accuracy of the initial response 0 = initial response was incorrect and needed to be corrected 1 = initial response is correct latency: the latency of the final (correct) response stimulusnumber: the number of the current stimulus stimulusitem: the currently presented item expressions.d: overall d-score / latdiff: difference between mean latencies in incompatible and compatible block /percentcorrect: the overall percent correct score of initial responses of compatible and incompatible trials with qualifying latencies (2) Summary data file: 'SC_IAT_summary*.iqdat' (a separate file for each participant) script.startdate: date script was run script.starttime: time script was started script.subjectid: subject id number script.groupid: group id number script.elapsedtime: time it took to run script (in ms) computer.platform: the platform the script was run on /completed: 0 = script was not completed; 1 = script was completed (all conditions run) EXPERIMENTAL PROCEDURE: a) Block Practice Compatible* (24 trials); responses not counted towards D-score b) Block Compatible (72 trials) c) Block Practice InCompatible (24 trials); responses not counted towards D-score d) Block InCompatible (72 trials) *order compatible - incompatible counterbalanced by groupnumber => one D-score is determined TRIALS After a pretrialpause of 250ms (default, editable), stimuli are presented until correct response is given. In contrast to Karpinski & Steinman (2006), participants have to correct error responses and stimulus stays on screen until response is corrected. If latencies exceed a certain limit, a reminder to "respond more quickly" is optional in this script (see Editable Values for more info). STIMULI: - 21 words for Attribute Categories Good/Bad - 7 words for target category (here: Animals) SCORING: Inquisit calculates d-scores using the improved scoring algorithm as described in Greenwald et al (2003). Only trials from test blocks count towards d-score calculation in this script. Error trials are handled by requiring respondents to correct their responses according to recommendation Greenwald et al (2003, p.214). This differs slightly from Karpinski & Steinman (2006) who removed noresponse trials from d-score calculations and replaced error responses with the block mean latency + 400ms error penalty. STIMULI Stimuli can be edited under section Editable Stimuli INSTRUCTIONS Instructions can be edited under 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: /showsummaryfeedback: set parameter showsummaryfeedback = true to display summary feedback to participants at the end (default) set parameter showsummaryfeedback = false if no summary feedback should be presented to participants /pretrialpause: pause before stimuli presentation (default: 250ms) /showreminder: true = shows a reminder to respond faster if latencies exceeds a predetermined latency Note: Karpinsky & Steinman (2006) call using a reminder "largly window dressing" but that the response window (in this script: a pseudo response window) might create a "sense of urgency" (p.18) false = does not show reminder to respond more quickly (default in this script) /reminderRT: if response latency is larger than reminderRT, a reminder is presented to respond faster (if parameters.showreminder = true) Note: error responses have to be corrected in this script; this will add ms to their response latencies /reminderduration: time that the reminder to respond more quickly stays on the screen (default: 500ms) ************************************************************************************************************** ************************************************************************************************************** EDITABLE PARAMETERS: change editable parameters here ************************************************************************************************************** ************************************************************************************************************** /showsummaryfeedback = true /pretrialpause = 250 / showreminder = false / reminderRT = 2000 / reminderduration = 500 ************************************************************************************************************** ************************************************************************************************************** EDITABLE STIMULI: change editable stimuli here ************************************************************************************************************** ************************************************************************************************************** This sample IAT can be easily adapted to different target categories and attributes. To change the categories, you need only change the stimulus items and labels immediately below this line. *********************************************************************** /1 = "Good" /1 ="beautiful" /2 = "celebrating" /3 = "cheerful" /4 = "excellent" /5 = "excitement" /6 = "fabulous" /7 = "friendly" /8 = "glad" /9 = "glee" /10 = "happy" /11 = "laughing" /12 = "likable" /13 = "loving" /14 = "marvelous" /15 = "pleasure" /16 = "smiling" /17 = "splendid" /18 = "superb" /19 = "paradise" /20 = "triumph" /21 = "wonderful" /1 = "Bad" /1 = "angry" /2 = "brutal" /3 = "destroy" /4 = "dirty" /5 = "disaster" /6 = "disgusting" /7 = "dislike" /8 = "evil" /9 = "gross" /10 = "horrible" /11 = "humiliate" /12 = "nasty" /13 = "noxious" /14 = "painful" /15 = "revolting" /16 = "sickening" /17 = "terrible" /18 = "tragic" /19 = "ugly" /20 = "unpleasant" /21 = "yucky" /1 = "Relationships" / 1 = "companionship" / 2 = "happiness" / 3 = "exclusivity" / 4 = "feeling loved" / 5 = "closeness" / 1 = "financial stability" / 2 = "sexual intimacy" / 3 = "status" / 4 = "social acceptance" / 5 = "spreading my genes" ************************************************************************************************************** ************************************************************************************************************** EDITABLE INSTRUCTIONS: change instructions here ************************************************************************************************************** ************************************************************************************************************** / 1 = "<%expressions.buttoninstruct1%>Words representing the categories at the top will appear one-by-one in the middle of the screen. When the item belongs to a category on the left, press the left <%expressions.buttoninstruct2%>; when the item belongs to a category on the right, press the right <%expressions.buttoninstruct3%>. Items belong to only one category. If you make an error, an X will appear - fix the error by hitting the other <%expressions.buttoninstruct4%>. This is a timed sorting task. GO AS FAST AS YOU CAN while making as few mistakes as possible. Going too slow or making too many errors will result in an uninterpretable score. Continue on with some practice trials." / 2 = " Sort the same three categories again. Words representing the categories at the top will appear one-by-one in the middle of the screen. When the item belongs to a category on the left, press the left <%expressions.buttoninstruct2%>; when the item belongs to a category on the right, press the right <%expressions.buttoninstruct3%>. Items belong to only one category. If you make an error, an X will appear - fix the error by hitting the other <%expressions.buttoninstruct4%>. This is a timed sorting task. GO AS FAST AS YOU CAN while making as few mistakes as possible. Going too slow or making too many errors will result in an uninterpretable score." / 3 = " See above, the three categories now appear together in a new configuration. Remember, each item belongs to only one group. The rules stay the same: Words representing the categories at the top will appear one-by-one in the middle of the screen. When the item belongs to a category on the left, press the left <%expressions.buttoninstruct2%>; when the item belongs to a category on the right, press the right <%expressions.buttoninstruct3%>. Items belong to only one category. If you make an error, an X will appear - fix the error by hitting the other <%expressions.buttoninstruct4%>. This is a timed sorting task. GO AS FAST AS YOU CAN while making as few mistakes as possible. Going too slow or making too many errors will result in an uninterpretable score. Continue on with some practice trials." / 4 = " Sort the same three categories again. Words representing the categories at the top will appear one-by-one in the middle of the screen. When the item belongs to a category on the left, press the left <%expressions.buttoninstruct2%>; when the item belongs to a category on the right, press the right <%expressions.buttoninstruct3%>. Items belong to only one category. If you make an error, an X will appear - fix the error by hitting the other <%expressions.buttoninstruct4%>. This is a timed sorting task. GO AS FAST AS YOU CAN while making as few mistakes as possible. Going too slow or making too many errors will result in an uninterpretable score." **************************************************************************************************** general instruction expressions: adjust the instruction text depending on device used to run script **************************************************************************************************** /buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"";} else {"Put your middle or index fingers on the E and I keys of your keyboard. ";} /buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"response button ('E') provided on the bottom left of your screen with your left middle or index finger";} else {"(E) key";} /buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"response button ('I') provided on the bottom right of your screen with your right middle or index finger";} else {"(I) key";} /buttoninstruct4 = if (computer.touch && !computer.haskeyboard) {"response button";} else {"key";} *********************************************************************** Performance summary *********************************************************************** / stimulustimes = [0=summary] / validresponse = (" ") / recorddata = false / ontrialbegin = [values.magnitude = "little to no"] / ontrialbegin = [if( abs(expressions.d) > 0.15 ) values.magnitude = "a slight"] / ontrialbegin = [if( abs(expressions.d) > 0.35 ) values.magnitude = "a moderate"] / ontrialbegin = [if( abs(expressions.d) >= 0.65 ) values.magnitude = "a strong"] / ontrialbegin = [if(expressions.d >= 0.0) expressions.attitude = "positive"] / ontrialbegin = [if(expressions.d < 0.0) expressions.attitude = "negative"] / items = ("Your IAT score (D) was <% expressions.d %>, which suggests <% values.magnitude %> <% expressions.attitude %> implicit attitude towards <% item.targetALabel.1 %>.~n~n~nPress the spacebar to complete this session.") / size = (60%, 60%) / hjustify = left ************************************************************************************************************** !!!REMAINING CODE: Customize after careful consideration only!!! ************************************************************************************************************** ************************************************************************************************************** ************************************************************************************************************** DEFAULTS ************************************************************************************************************** ************************************************************************************************************** script requires Inquisit 5.0.0.0 or higher / fontstyle = ("Arial", 3.5%) / screencolor = black / txbgcolor = black / txcolor = white / minimumversion = "5.0.0.0" / canvasaspectratio = (4, 3) ************************************************************************************************************** ************************************************************************************************************** DATA ************************************************************************************************************** ************************************************************************************************************** Note: data file explanations under User Manual Information at the top *********************** raw data file *********************** / columns = (build, computer.platform, date, time, group, subject, blockcode, blocknum, trialcode, trialnum, response, correct, latency, stimulusnumber, stimulusitem,expressions.m1, expressions.sd1, expressions.m2, expressions.sd2, expressions.m3, expressions.sd3, expressions.m4, expressions.sd4, expressions.d1, expressions.d2, expressions.d, expressions.latdiff1, expressions.latdiff2, expressions.latdiff, expressions.percentcorrect) / separatefiles = true **************** summary data **************** / columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, expressions.m1, expressions.sd1, expressions.m2, expressions.sd2, expressions.m3, expressions.sd3, expressions.m4, expressions.sd4, expressions.d1, expressions.d2, expressions.d, expressions.latdiff1, expressions.latdiff2, expressions.latdiff, expressions.percentcorrect) / separatefiles = true ************************************************************************************************************** ************************************************************************************************************** VALUES: automatically updated ************************************************************************************************************** ************************************************************************************************************** /completed: 0 = script was not completed; 1 = script was completed (all conditions run) /correct: 1 = correct response; 0 = incorrect response / sum1: tracks the sum of the latencies to correct responses (and latencies <= 10000ms) for the compatible block / sum2: tracks the sum of the latencies to correct responses (and latencies <= 10000ms) for the incompatible block / n1: counts the number of correct trials in compatible block / n2: counts the number of correct trials in incompatible block / ss1: tracks the sum of the squared latencies to correct responses (and latencies <= 10000ms) in the compatible block / ss2 tracks the sum of the squared latencies to correct responses (and latencies <= 10000ms) in the incompatible block / magnitude: stores the magnitude of the implicit preference: "little to no", "a slight", "a moderate", "a strong" / n_correct: counts all initial correct responses of all trials that count towards D score /completed = 0 /correct = 0 / sum1 = 0 / sum2 = 0 / sum3 = 0 / sum4 = 0 / n1 = 0 / n2 = 0 / n3 = 0 / n4 = 0 / ss1 = 0 / ss2 = 0 / ss3 = 0 / ss4 = 0 / magnitude = "unknown" / n_correct = 0 ************************************************************************************************************** ************************************************************************************************************** EXPRESSIONS ************************************************************************************************************** ************************************************************************************************************** / m1: mean latencies of correct responses in compatible block for intimacy benefits / m2: mean latencies of correct responses in compatible block for personal benefits / m3: mean latencies of correct responses in incompatible block for intimacy benefits / m4: mean latencies of correct responses in incompatible block for personal benefits / m5: mean latencies of correct responses in compatible block / m6: mean latencies of correct responses in incompatible block / sd1: standard deviation of latencies of correct responses in compatible block for intimacy benefits / sd2: standard deviation of latencies of correct responses in compatible block for personal benefits / sd3: standard deviation of latencies of correct responses in incompatible block for intimacy benefits / sd4: standard deviation of latencies of correct responses in incompatible block for personal benefits / sdi: standarddeviation of latencies overall for intimacy benefits / sdp: standarddeviation of latencies overall for personal benefits / sd: standarddeviation of latencies overall / d1: overall D-score for intimacy benefits / d2: overall D-score for personal benefits / d: overall D-score (across all trials) / latdiff1: difference between mean latencies in incompatible and compatible block for intimacy benefits / latdiff2: difference between mean latencies in incompatible and compatible block for personal benefits / latdiff: difference between mean latencies in incompatible and compatible block overall / attitude: positive vs. negative / percentcorrect: calculates the overall percent correct score of initial responses of compatible and incompatible trials with specified latencies / m1 = values.sum1 / values.n1 / m2 = values.sum2 / values.n2 / m3 = values.sum3 / values.n3 / m4 = values.sum4 / values.n4 / sd1 = sqrt((values.ss1 - (values.n1 * (expressions.m1 * expressions.m1))) / (values.n1 - 1)) / sd2 = sqrt((values.ss2 - (values.n2 * (expressions.m2 * expressions.m2))) / (values.n2 - 1)) / sd3 = sqrt((values.ss3 - (values.n3 * (expressions.m3 * expressions.m3))) / (values.n3 - 1)) / sd4 = sqrt((values.ss4 - (values.n4 * (expressions.m4 * expressions.m4))) / (values.n4 - 1)) / sdi = sqrt((((values.n1 - 1) * (expressions.sd1 * expressions.sd1) + (values.n3 - 1) * (expressions.sd3 * expressions.sd3)) + ((values.n1 + values.n3) * ((expressions.m1 - expressions.m3) * (expressions.m1 - expressions.m3)) / 4) ) / (values.n1 + values.n3 - 1) ) / sdp = sqrt((((values.n2 - 1) * (expressions.sd2 * expressions.sd2) + (values.n4 - 1) * (expressions.sd4 * expressions.sd4)) + ((values.n2 + values.n4) * ((expressions.m2 - expressions.m4) * (expressions.m2 - expressions.m4)) / 4) ) / (values.n2 + values.n4 - 1) ) / sd = sqrt((((values.n1 - 1) * (expressions.sd1 * expressions.sd1) + (values.n2 - 1) * (expressions.sd2 * expressions.sd2) + (values.n3 - 1) * (expressions.sd3 * expressions.sd3) + (values.n4 - 1) * (expressions.sd4 * expressions.sd4)) + ((values.n1 + values.n2 + values.n3 + values.n4) * ((expressions.m1 - expressions.m2 - expressions.m3 - expressions.m4) * (expressions.m1 - expressions.m2 - expressions.m3 - expressions.m4)) / 8) ) / (values.n1 + values.n2 + values.n3 + values.n4 - 1) ) / d1 = (expressions.m3 - expressions.m1) / expressions.sdi / d2 = (expressions.m4 - expressions.m2) / expressions.sdp / d = ((expressions.m3 + expressions.m4) - (expressions.m1 + expressions.m2)) / expressions.sd / latdiff1 = expressions.m3 - expressions.m1 / latdiff2 = expressions.m4 - expressions.m2 / latdiff = (expressions.m4 + expressions.m3) - (expressions.m1 + expressions.m2) / attitude = "unknown" / percentcorrect = (values.n_correct/ (block.compatibletestib.trialcount + block.compatibletestpb.trialcount + block.incompatibletestib.trialcount + block.incompatibletestpb.trialcount)) * 100 ************************************************************************************************************** ************************************************************************************************************** INSTRUCTIONS ************************************************************************************************************** ************************************************************************************************************** / stimulustimes = [1=instructions, spacebar] / correctresponse = (" ") / errormessage = false / correctmessage = false / recorddata = false / items = instructions / hjustify = left / size = (90%, 60%) / position = (50%, 85%) / valign = bottom / select = sequence / resetinterval = 20 ************************************************************************************************************** ************************************************************************************************************** STIMULI ************************************************************************************************************** ************************************************************************************************************** / items = ("Press the SPACE BAR to begin.") / position = (50%, 95%) / valign = bottom / items = attributeA / fontstyle = ("Arial", 5%) / txcolor = green / items = attributeB / fontstyle = ("Arial", 5%) / txcolor = green / items = ibenefits / size = (20%, 20%) / items = pbenefits / size = (20%, 20%) / position = (50%, 75%) / items = ("X") / color = red / fontstyle = ("Arial", 10%, true) / position = (50%, 75%) / items = ("O") / color = green / fontstyle = ("Arial", 10%, true) / items = attributeAlabel / valign = top / halign = left / position = (5%, 5%) / txcolor = green / fontstyle = ("Arial", 5%) / items = attributeBlabel / valign = top / halign = right / position = (95%, 5%) / txcolor = green / fontstyle = ("Arial", 5%) / items = targetAlabel / valign = top / halign = left / position = (5%, 19%) / fontstyle = ("Arial", 5%) / items = targetAlabel / valign = top / halign = right / position = (95%, 19%) / fontstyle = ("Arial", 5%) / items = targetAlabel / valign = top / halign = left / position = (5%, 5%) / fontstyle = ("Arial", 5%) / items = targetAlabel / valign = top / halign = right / position = (95%, 5%) / fontstyle = ("Arial", 5%) / items = ("or") / valign = top / halign = left / position = (5%, 12%) / fontstyle = ("Arial", 5%) / items = ("or") / valign = top / halign = right / position = (95%, 12%) / fontstyle = ("Arial", 5%) /items = ("Please, respond more quickly!") /txcolor = yellow / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) ************************************************************************************************************** ************************************************************************************************************** TRIALS ************************************************************************************************************** ************************************************************************************************************** /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = attributeA] /validresponse = (18, 23) /correctresponse = (18) /responsemessage = (23,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.attributea.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.attributea.latency >= parameters.reminderRT) trial.reminder] /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = attributeB] /validresponse = (18, 23) /correctresponse = (23) /responsemessage = (18,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.attributeb.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.attributeB.latency >= parameters.reminderRT) trial.reminder] /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = ibenefits] /validresponse = (18, 23) /correctresponse = (18) /responsemessage = (23,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.ibenefitsleft.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.ibenefitsleft.latency >= parameters.reminderRT) trial.reminder] /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = pbenefits] /validresponse = (18, 23) /correctresponse = (18) /responsemessage = (23,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.pbenefitsleft.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.pbenefitsleft.latency >= parameters.reminderRT) trial.reminder] /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = ibenefits] /validresponse = (18, 23) /correctresponse = (23) /responsemessage = (18,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.ibenefitsright.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.ibenefitsright.latency >= parameters.reminderRT) trial.reminder] /pretrialpause = parameters.pretrialpause /stimulusframes = [1 = pbenefits] /validresponse = (18, 23) /correctresponse = (23) /responsemessage = (18,error,150) /correctmessage = true(correctmessage,150) /ontrialend = [if (trial.pbenefitsright.correct) values.correct = 1 else values.correct = 0] /branch = [if (parameters.showreminder == true && trial.pbenefitsright.latency >= parameters.reminderRT) trial.reminder] /stimulusframes = [1 = reminder] /timeout = parameters.reminderduration /correctresponse = (noresponse) /recorddata = false ************************************************************************************************************** ************************************************************************************************************** BLOCKS ************************************************************************************************************** ************************************************************************************************************** Note: presents the trials in a 7:7:10 ratio => 14 (good + target) on responsekey_left and 10 (bad) on responsekey_right / bgstim = (attributeAleft, orleft, targetAleftmixed, attributeBright) / trials = [1=instructions; 2-32 = noreplace(ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / responsemode = correct *** compatible test for intimacy benefits Note: presents the trials in a 7:7:10 ratio => 14 (good + target) on responsekey_left and 10 (bad) on responsekey_right / bgstim = (attributeAleft, orleft, targetAleftmixed, attributeBright) / trials = [1-72 =noreplace(ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, ibenefitsleft, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / ontrialend = [if(block.compatibletestib.latency <= 10000) values.sum1 = values.sum1 + block.compatibletestib.latency] / ontrialend = [if(block.compatibletestib.latency <= 10000) values.n1 = values.n1 + 1] / ontrialend = [if(block.compatibletestib.latency <= 10000) values.ss1 = values.ss1 + (block.compatibletestib.latency * block.compatibletestib.latency)] / ontrialend = [if(block.compatibletestib.latency <= 10000) values.n_correct += block.compatibletestib.correct] / responsemode = correct *** compatible test for personal benefits / bgstim = (attributeAleft, orleft, targetAleftmixed, attributeBright) / trials = [1-72 =noreplace(pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, pbenefitsleft, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / ontrialend = [if(block.compatibletestpb.latency <= 10000) values.sum2 = values.sum2 + block.compatibletestpb.latency] / ontrialend = [if(block.compatibletestpb.latency <= 10000) values.n2 = values.n2 + 1] / ontrialend = [if(block.compatibletestpb.latency <= 10000) values.ss2 = values.ss2 + (block.compatibletestpb.latency * block.compatibletestpb.latency)] / ontrialend = [if(block.compatibletestpb.latency <= 10000) values.n_correct += block.compatibletestpb.correct] / responsemode = correct Note: presents the trials in a 7:7:10 ratio => 10 (good) on responsekey_left and 14 (bad + target) on responsekey_right / bgstim = (attributeAleft, targetARightMixed, orright, attributeBright) / trials = [1=instructions; 2-32 = noreplace(ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / responsemode = correct **** incompatible test for intimacy benefits Note: presents the trials in a 7:7:10 ratio => 10 (good) on responsekey_left and 14 (bad + target) on responsekey_right / bgstim = (attributeAleft, targetARightMixed, orright, attributeBright) / trials = [1-72 = noreplace(ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, ibenefitsright, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / ontrialend = [if(block.incompatibletestib.latency <= 10000) values.sum3 = values.sum3 + block.incompatibletestib.latency] / ontrialend = [if(block.incompatibletestib.latency <= 10000) values.n3 = values.n3 + 1] / ontrialend = [if(block.incompatibletestib.latency <= 10000) values.ss3 = values.ss3 + (block.incompatibletestib.latency * block.incompatibletestib.latency)] / ontrialend = [if(block.incompatibletestib.latency <= 10000) values.n_correct += block.incompatibletestib.correct] / responsemode = correct **** incompatible test for personal benefits Note: presents the trials in a 7:7:10 ratio => 10 (good) on responsekey_left and 14 (bad + target) on responsekey_right / bgstim = (attributeAleft, targetARightMixed, orright, attributeBright) / trials = [1-72 = noreplace(pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, pbenefitsright, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeA, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB, attributeB)] / ontrialend = [if(block.incompatibletestpb.latency <= 10000) values.sum4 = values.sum4 + block.incompatibletestpb.latency] / ontrialend = [if(block.incompatibletestpb.latency <= 10000) values.n4 = values.n4 + 1] / ontrialend = [if(block.incompatibletestpb.latency <= 10000) values.ss4 = values.ss4 + (block.incompatibletestpb.latency * block.incompatibletestpb.latency)] / ontrialend = [if(block.incompatibletestpb.latency <= 10000) values.n_correct += block.incompatibletestpb.correct] / responsemode = correct / bgstim = (attributeAleft, orleft, targetAleftmixed, attributeBright) / trials = [1=instructions] / recorddata = false / bgstim = (attributeAleft, attributeBright, orright, targetArightmixed) / trials = [1=instructions] / recorddata = false ************************************************************************************************************** ************************************************************************************************************** EXPERIMENT ************************************************************************************************************** ************************************************************************************************************** Groupassignment is done randomly *** compatible first, ib first /subjects = (1 of 4) /groupassignment = random / blocks = [1=practice_compatibletest; 2=compatibletestinstructions; 3=compatibletestib; 4=compatibletestpb; 5=practice_incompatibletest; 6=incompatibletestinstructions; 7=incompatibletestib; 8=incompatibletestpb] /onexptend = [values.completed = 1] *** compatible first, pb first /subjects = (2 of 4) /groupassignment = random / blocks = [1=practice_incompatibletest; 2=incompatibletestinstructions; 3=incompatibletestib; 4=incompatibletestpb; 5=practice_compatibletest; 6=compatibletestinstructions; 7=compatibletestib; 8=compatibletestpb] /onexptend = [values.completed = 1] *** incompatible first, ib first /subjects = (3 of 4) /groupassignment = random / blocks = [1=practice_compatibletest; 2=compatibletestinstructions; 3=compatibletestpb; 4=compatibletestib; 5=practice_incompatibletest; 6=incompatibletestinstructions; 7=incompatibletestpb; 8=incompatibletestib] /onexptend = [values.completed = 1] *** incompatible first, pb first /subjects = (4 of 4) /groupassignment = random / blocks = [1=practice_incompatibletest; 2=incompatibletestinstructions; 3=incompatibletestpb; 4=incompatibletestib; 5=practice_compatibletest; 6=compatibletestinstructions; 7=compatibletestpb; 8=compatibletestib] /onexptend = [values.completed = 1] *********************************************************************** Test Monkey *********************************************************************** / latencydistribution = normal(500, 100) / percentcorrect = 90 ************************************************************************************************************** End of File **************************************************************************************************************