Return to the Evaluative Movement Assessment (EMA) page
___________________________________________________________________________________________________________________	

								EVALUATIVE MOVEMENT ASSESSMENT (EMA) - keyboard responses
___________________________________________________________________________________________________________________

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 05-03-2016
last updated:  03-09-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-09-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements a version of the Evaluative Movement Assessment (EMA) procedure.
The EMA is a response time measure of implicit evaluations. Specifically, this script is designed as a template and assesses
people's implicit attitudes towards "weekend", "mosquito", and "airport" using well established EMA targets "cavities" and 
"movie theaters" as attitude calibration targets.

It is suggested that the calculated EMA scores for several target categories
1) help rank the evaluations on a single scale
2) provide a neutral preference point for the scale
 
Reference:

Miguel Brendl, C.M, Arthur B. Markman, A.B. & Messner, C. (2005).
Journal of Experimental Social Psychology, 41, 346–368.

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants are asked to move words (targets and distractors) -that are displayed either to the right or
left of their own name- either towards or away from the name. In this script, participants move
the stimuli by repeatedly pressing a left or right response button which 'moves' the stimuli
visually closer or father away from the name.
Targets: all towards (or all away; depending on block instructions)
Distractors: towards/away depends on valence of word
											 
___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 30 minutes to complete

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

(1) Raw data file: 'evaluativemovementassessment_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. 									
									
stimType:							"target1"/"target2"/"target3"/"target4"/"target5", "distractor", "calibration","filler"
direction:							stores the direction in which the current word should be moved in relationship to the name ("towards" vs. "away")
stimPosition:						"left": word is presented on left side of the screen; "right": word is presented on right side of the screen
stim_x:								stores the x coordinate of the stimulus
correctMovement:					stores the direction the current word should be moved ("left" vs. "right")
valence:							stores the valence of the currently presented word ("positive", "negative", "")
stim:								stores the currently presented word
ACC:								stores whether the initial movement is in the correct direction (irrespective of latencies and later movement changes)
RT:									stores the latency (in ms) of the initial movement measured from onset of words to pressing the response button

valid:								1 = initial response was correct, within the responsewindow, and movement direction stayed the same throughout
									0 = otherwise
								
initial Move:						stores the direction of the initial movement (left vs. right)						
Direction Change:					true = participant changed movement direction; false = participant did not change movement direction

	

(2) Summary data file: 'evaluativemovementassessment_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)
								
propCorrect_all:					overall proportion correct for the 4 main blocks based on performance in distractor, targets and calibration target trials
medianRT_all:						overall median latency (in ms) of correct responses for the 4 main blocks based on distractors, targets and calibration trials
meetsExclusion:						returns 1 if participant's error rate exceeds parameters.exclusionCriterium (default: errorate > 0.07)

CC:								calibration coefficient as the difference of the two to estimate the positivity bias of the participant
								positivity bias: the tendency to be faster when moving a word towards the name than away from it
								(even if both directions are congruent with the valence of the word)
								calculated as the difference between the mean of the away latencies of the calibration targets
								and the mean of the toward latencies of the calibration targets (here: target 4 and target 5)

medianRT_target1_away:			median latency (in ms) of correct responses for moving target1 away from the name								
medianRT_target1_towards:		median latency (in ms) of correct responses for moving target1 towards the name
EMA_target1:					EMA score for target1; difference in away and towards median latency corrected by the calibration coefficient

medianRT_target2_away:			median latency (in ms) of correct responses for moving target2 away from the name								
medianRT_target2_towards:		median latency (in ms) of correct responses for moving target2 towards the name
EMA_target2:					EMA score for target2; difference in away and towards median latency corrected by the calibration coefficient

medianRT_target3_away:			median latency (in ms) of correct responses for moving target3 away from the name								
medianRT_target3_towards:		median latency (in ms) of correct responses for moving target3 towards the name
EMA_target3:					EMA score for target3; difference in away and towards median latency corrected by the calibration coefficient

medianRT_target4_away:			median latency (in ms) of correct responses for moving target4 away from the name								
medianRT_target4_towards:		median latency (in ms) of correct responses for moving target4 towards the name
EMA_target4:					EMA score for target4; difference in away and towards median latency corrected by the calibration coefficient

medianRT_target5_away:			median latency (in ms) of correct responses for moving target5 away from the name								
medianRT_target5_towards:		median latency (in ms) of correct responses for moving target5 towards the name
EMA_target5:					EMA score for target5; difference in away and towards median latency corrected by the calibration coefficient

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________

1 practice block of 24 trials: only distractor items (12 positive, 12 negative; randomly selected from the list of distractors)
5 EMA blocks run in a AABBA/BBAAB within subjects design (performance during the first A block is not considered for calculation of EMA scores)
(order is counterbalanced by groupnumber)

Each EMA block: 83 trials
- 5 Targets tested (each with one target word) - each repeated 7 times = 35 target trials
	Note: the odd number of trials results in the targets being unequally often left or right to the name.
	For each participant, it's decided randomly whether the targets are more often left than right to the name.
	
- 40 distractor items (20 positive, 20 negative) - each repeated once = 40 distractor trials
- 4 filler items (2 positive, 2 negative) - each repeated 2 times (used as prefatory trials before start of block and after rest period) = 8 filler trials
- each block presents a rest trial in the middle (block starts again with 4 filler trials)

Block Sequence:
- 4 filler trials
- 38 randomly selected trials from targets, distractors
- rest trial
- 4 filler trials
- 37 randomly selected trials from targets, distractors

Trial Sequence:
blank (600ms)->name in white frame + 4 XXXX (700ms)->XXXXmask replaced by red attitude word-> wait for response -> potential error feedback


EMA Score Calculation: EMA scores are based on the difference in median latencies of away and toward movements corrected by a calibration constant

Positive Response Bias (positivity bias): participants tend to be faster in moving stimuli towards their names than away from their names
regardless of valence of target words
=> Diff (awayRT - towardsRT) tend to be positive (which affects the neutral point evaluation though not the relative ranking of 'preferences')
=> correction/calibration necessary

Calibration Algorithm applied in this script:
1) run known (2) target words as calibration targets; these target words need to roughly have a mean valence rating of 0
(here: 'movie theater' and 'cavities', see Brendl et al, 2005)

2) establish calibration constant: CC = meanRT(away) - meanRT(towards) for the two calibration targets
(if no bias towards 'towards' movements, one would expect CC = 0 with the selected calibration targets)

3) Use calibration constant in EMA score calculations:
EMA(target1) = median(away_target1) - median(towards_target1) - CC
EMA(target2) = median(away_target2) - median(towards_target2) - CC
EMA(target3) = median(away_target3) - median(towards_target3) - CC

EMA(target4) = median(away_target4) - median(towards_target1) - CC (=calibration target) => 0
EMA(target5) = median(away_target5) - median(towards_target1) - CC (=calibration target) => 0

based on: (awayRT-CC/2) - (towardsRT + CC/2) = awayRT - towardsRT - 2*CC/2 = awayRT - towardsRT - CC

Removal of error trials for calculation of EMA scores: 
- only latencies of correct initial responses within the set response window (between 100-3000ms after onset of words)
and without response reversals are considered for EMA score calculations

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________
see section Editable Stimuli

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
provided by Millisecond Software as htm-files (htm files can be edited with Notepad (Windows) or TextEdit (Mac))

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

Response Keys: Tools-> Keyboard Scancodes

/responsekeyLeft:					the left response button (default: "A")
/responsekeyRight:					the right response button (default: "L")


/nameSize:							the fontheight in canvas height percentages of the name stimulus (default; 4%)
/name_leftx:						the left horizontal screen position in canvas width percentage of the name/stim (default: 30%)
/name_rightx:						the right horizontal screen position in canvas width percentage of the name/stim (default: 70%)

/blankDuration:						the duration of the blank screen (in ms) at beginning of trial (default: 600ms)
/XXXXDuration:						the duration of the XXXX mask (in ms) (default: 700ms)
/MinValidResponseLatency:			the duration of the minimum valid response latency in ms; measured from onset of targets (default: 100ms)
/MaxValidResponseLatency:			the duration of the maximum valid response latency in ms; measured from onset of targets (default: 3000ms)
/ITI:								intertrial interval in ms (default: 0)

/exclusionCriterium:				sets the overall error rate in the testblocks that would exclude a participant from further analyses (default: 0.07)
									Note: if the error rate indicates exclusion from analyses, 
									the summary data file stores a '1' under expressions.meetsExclusion