Return to the Police Officer's Dilemma Task page


Script Author: Katja Borchert, Ph.D. ( for Millisecond Software LLC
Date: 04-12-2012
last updated:  03-10-2020 by K. Borchert ( for Millisecond Software, LLC

Script Copyright © 03-10-2020 Millisecond Software

This script provides the Police Officer Dilemma Task (PODT); a computer-simulated task 
to measure racial bias in shooting decisions.

Correll, J., Park, B., Judd, C.M., & Wittenbrink, B. (2002). The Police Officer's Dilemma:
Using Ethnicity to Disambiguate Potentially Threating Individuals. Journal of Personality 
and Social Psychology, 83, 1314-1329. (Experiment 1)

Correll, J., Hudson, S.M., Guillermo, S., & Ma, D.S. (2014). The Police Officer’s Dilemma: 
A Decade of Research on Racial Bias in the Decision to Shoot.
Social and Personality Psychology Compass 8/5 (2014): 201–213.

*Adjustments to z-scores (for signal detection parameter calculations) 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)

All images used in this script are the originals. Millisecond Software thanks Dr. Correll et al for
providing generous assistance!

Participants see a series of men, either White or Black, that either hold harmless objects or guns, 
and have to decide -within a short timeframe- whether to 'shoot' (if there is a gun) or 
not to 'shoot' (no gun present). 'Shooting' is done via response button presses.
Before each target appears, participants see a varying number of backgrounds. 
The targets (men with objects) appear in the last background shown. 

the default set-up of the script takes appr. 15 minutes to complete

The default data stored in the data files are:

(1) Raw data file: 'podt_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
script.sessionid:					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. 
								1 = shoot key A; non shoot-key L
									2 = shoot key L; non shoot-key A
values.condition:					practice: "gun" vs. "object"
										1 = Gun White
										2 = Gun Black
										3 = Object White
										4 = Object Black
values.itemnumber:					determines the itemnumber of the target image
values.selectbackground:			determines which background picture is selected
values.repetition:					determines how many background images are to be  presented
values.backgroundduration:			determines how long each background slide is presented
values.count_background:			counts how many background slides have been presented

response:							the participant's response (scancode of response button)
										30: A (group1 -> shoot; group2 -> nonshoot)
										38: L (group2 -> shoot; group1 -> nonshoot)
values.responseCat:							"shoot", "not shoot", "no response"			
correct:							the correctness of the response (1 = correct; 0 = incorrect)
values.result:						either "Hit", "Miss", "CR" (correct rejection), "FA" (false alarm) or "no response"
latency: 							the response latency (in ms); measured from onset of target picture						keeps a running tab of the total money earned (or lost)

(2) Summary data file: 'podt_summary*.iqdat' (a separate file for each participant)

computer.platform:					the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:						assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:					time it took to run script (in ms); measured from onset to offset of script
script.completed:					0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)
														1 = shoot key A; non shoot-key L
									2 = shoot key L; non shoot-key A							keeps a running tab of the total money earned (or lost)

expressions.ACC_BlackGun:			proportion correct shoot decision for Black guys holding a gun
expressions.RTcorrect_BlackGun:		mean reaction time (in ms) to correctly shoot for Black guys holding a gun
expressions.ACC_BlackObject:		proportion correct 'non-shoot' decisions for Black guys holding an object
expressions.RTcorrect_BlackObject:	mean reaction time (in ms) to correctly hit 'not shoot' key for Black guys holding an object

expressions.ACC_WhiteGun:			proportion correct shoot decision for White guys holding a gun
expressions.RTcorrect_WhiteGun:		mean reaction time (in ms) to correctly shoot for White guys holding a gun
expressions.ACC_WhiteObject:		proportion correct 'non-shoot' decisions for White guys holding an object
expressions.RTcorrect_WhiteObject:	mean reaction time (in ms) to correctly hit 'not shoot' key for White guys holding an object

values.count_ObjectWhite:		    counts the trials in each of the 8 conditions

values.Sum_WhiteCRs:				keeps a running total of Hits, Misses, FAs, CRs for each ethnicity

expressions.MeanRT_WhiteCRs:		the mean reaction times for Hits, Misses, FAs, CRs for each ethnicity (in ms)

expressions.percent_WhiteCRs:		the percentages of Hits-Misses and CRs-FAs, separately for each ethnicity

Signal Detection Analysis for hits and false alarms:

dprime:								Computes d' (parametric measure of discriminability btw. signals (here: guns) and noise(here: objects))
									with d' = z(hitrate) - z(FalseAlarm rate)
									=> Range (in this script): 
									-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)
									=> The higher the value, the better signals (guns) were overall distinguished from noise (objects)
									(d' = 0: chance performance; negative d-primes: participant treated nontargets as targets and targets as nontargets)

criterion C:						calculates the criterion to 'shoot' vs. not 'shoot' 
									with criterion C = - (z(hitrate) + z(FalseAlarm rate))/2
									* values around 0: no bias towards shooting or not shooting
									*the more negative the value, the more lax the criterion to shoot (bias towards shooting)
									*the more positive the value, the more stringent the criterion to shoot (bias towards not shooting)

expressions.dprime_Black			Computes d' for Black targets
expressions.criterionC_Black:		calculates the criterion to 'shoot' vs. not 'shoot' Black targets									
expressions.dprime_White			Computes d' for White targets
expressions.criterionC_White:		calculates the criterion to 'shoot'  vs. not 'shoot' White targets
Note: Correll et al (2014) report that generally, d-prime values tend to be similar between the two groups, showing that
participants are able to distinguish between guns and objects similarly well for Black and White targets.
The criterions 'to shoot', however, tend to differ in that it is more lax ('biased towards shooting') 
for Black actors than it is for White actors.

Design: 2 (ethnicity: black vs. white) x 2 (gun vs. no gun) = 4 experimental conditions, 
all tested within participants in a mixed design (see Correll et al, 2002)

1 Practice Block: 20 trials
1 Test Block: 80 Trials, 20 trials in each of the 4 conditions, conditions are randomly sampled without replacement
(see list.condition for details)
- shoot keys are counterbalanced by groupnumber
- Number of background images in background slideshow: 
randomly  (with replacement) determined, between 1-4 (see list.repetition) (-> Correll et al, 2002)

Trials Sequences: 
Fixation (500ms)-> Background (variable number) (500-1000ms)-> target (850ms)-> Feedback (3000ms)

original pictures; editable under section Editable Stimuli

Current Instructions modelled after the latest instructions used by Correll et al (these later instructions are 
less detailed than the original 2002 instructions)

Instructions are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
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:

HitReward....FAPunish: 				amounts earned or lost depending on Hits, Misses, Correct Rejections (CR), False Alarms (FA)
fixationduration:					the duration of the fixation cross in ms (default: 500, original)
timeout:							timeout of main experimental trials in ms, default = 850ms
feedbackduration:					the duration of the feedback in ms, default = 3000

key1/key2:							the scancodes of the shoot and noshoot keys (keys are counterbalanced), default: "A" and "L"
									Note: for the script to run correctly on touchscreen, key1 should be the left key
									and key2 should be the right key.

/optionalSummaryFeedback:			true (1) = Participants receive a summary feedback matrix (with %correct and incorrect 
										responses as well as response times for correct choices) (default)
									false (0) = no final feedback is provided