Introduction
The Implicit Association Task (IAT) is a well known very popular reaction time test in social psychology.
The original IAT paper by Greenwald and colleagues (1998) has been cited more than 6000 times (as of December 2021), which means this study has received a lot of attention from other researchers. |
The task is very popular among social psychologists, because unlike the frequently used questionnaire methods, this method (seem to) provide an object measure of people’s social attitudes.
In short, in an IAT task, people see words and need to classify them, for example as "pleasant" or "unpleasant". The trick is that while people classify words, there are task irrelevant categories. For example, when classifying names according to racial group (in the US, different ethnic groups have their own popular names, like Ebony among African Americans), people are also shown the irrelevant categories "pleasant" and "unpleasant". The IAT argument is that people’s response speed is unconsciously influenced by the task-irrelevant classification categories (e.g., racists might respond more quickly to identifying the name Ebony when the correct category "black" is closely presented to the word "unpleasant").
In the original paper it says about this:
Of course, construct validity of the IAT measure cannot be assumed just from the suspicion that virtually all White Americans may have automatic negative associations to African American names. There is a plausible alternative interpretation: that Experiment 3’s White college student subjects were much less familiar with the African American stimulus names than they were with the White-American stimulus names. This differential familiarity, coupled with the expectation of greater liking for more familiar stimuli (Zajonc, 1968), could explain the IAT results. This possible alternative to the implicit racism interpretation is considered further in the General Discussion.
1998
The way some social psychologists interprete the IAT has led to controversy. Read here an interesting piece from the Wall Street Journal how the IAT has been abused to conclude we are all racists at heart. Or are we maybe? Time for critical thinking! |
The interpretation of the IAT as a measure to discover unconsciously held beliefs is debatable, but that has not made the IAT any less popular, and PsyToolkit can help you to run your own IAT experiment. Use it responsibly, though! When you write your report about the IAT, your teacher will be more impressed when you are able to list the challenges in interpreting IAT results. So it is good to list the criticisms of IAT in your report. You might also look up how the IAT people have responded to such criticism.
There are lots of newer articles on this topic, of course. Currently, we are working on adding some lessons and more resources on this popular paradigm. Check this website soon again. |
About this implementation
This is based on Experiment 1 of the original Greenwald et al. (1998) paper. You really need to carefully read the Greenwald paper to understand the logic of the design. One of the issues is that you really need different groups of participants, because the order of blocks influences response times as well. The PsyToolkit code gives tips on how to this.
The words used are of flowers and insects. This means that your insect and flower knowledge needs to be pretty up to date. Many English-fluent foreigners might never have seen some of these words before (in fact, many native English speakers might not have either, unless they are font of gardening). It is best to run the study with your own set of words. This is where you can show your creativity, and again, this is where you can impress your teacher with coming up with an interesting set of stimuli (apart from words, you can use images). |
You do not want that stimuli repeat themselves immedeately or ever; that is why the "all_before_repeat" option is used. This makes sure that a chosen stimulus (chosen from the table) will not be used before all other stimuli have been used. |
Run the demo
In this example, you will see words and you need to categorize. |
Data output file
In PsyToolkit, the data output file is simply a textfile. The save line of the PsyToolkit experiment script determines what is being saved in the data output file. Typically, for each experimental trial, you would have exactly one line in your text file, and each number/word on that line gives you the information you need for your data analysis, such as the condition, response speed, and whether an error was made. |
Meaning of the columns in the output datafile. You need this information for your data analysis.
Colum | Meaning |
---|---|
1 |
Blockname |
2 |
Blocknumber |
3 |
Centrally presented word |
4 |
Response time |
5 |
Status (1=correct, 2=wrong, 3=too slow) |
PsyToolkit code
Click to expand the PsyToolkit script code (part of zip file below)
# PsyToolkit implementation of a shortened IAT (# indicates comment lines)
#
# a short simplified version of the Implicit Association Task (IAT)
# the word stimulu are taken from "Measuring Individual Differences
# in Implicit Cognition: The Implicit Association Test"
# (Greenwald et al., 1998, Journal of Personality and Social Psych).
# note that there are further comments before the blocks start
bitmaps
instructions
smiley
frowny
ready
fonts
arial 18
# in the following tables, there is the stimulus word and two possible
# responses (depending on which target category is presented left or right)
table flowers_insects_list
"aster" 1 2
"clover" 1 2
"hyacinth" 1 2
"marigold" 1 2
"poppy" 1 2
"azalea" 1 2
"crocus" 1 2
"iris" 1 2
"orchid" 1 2
"rose" 1 2
"bluebell" 1 2
"daffodil" 1 2
"lilac" 1 2
"pansy" 1 2
"tulip" 1 2
"buttercup" 1 2
"daisy" 1 2
"lily" 1 2
"peony" 1 2
"violet" 1 2
"camation" 1 2
"gladiola" 1 2
"magnolia" 1 2
"petunia" 1 2
"zinnia" 1 2
"ant" 2 1
"caterpillar" 2 1
"flea" 2 1
"locust" 2 1
"spider" 2 1
"bedbug" 2 1
"centipede" 2 1
"fly" 2 1
"maggot" 2 1
"tarantula" 2 1
"bee" 2 1
"cockroach" 2 1
"gnat" 2 1
"mosquito" 2 1
"termite" 2 1
"beetle" 2 1
"cricket" 2 1
"hornet" 2 1
"moth" 2 1
"wasp" 2 1
"blackfly" 2 1
"dragonfly" 2 1
"horsefly" 2 1
"roach" 2 1
"weevil" 2 1
table pleasant_unpleasant_list
"caress" 1 1
"freedom" 1 1
"health" 1 1
"love" 1 1
"peace" 1 1
"cheer" 1 1
"friend" 1 1
"heaven" 1 1
"loyal" 1 1
"pleasure" 1 1
"diamond" 1 1
"gentle" 1 1
"honest" 1 1
"lucky" 1 1
"rainbow" 1 1
"diploma" 1 1
"gift" 1 1
"honor" 1 1
"miracle" 1 1
"sunrise" 1 1
"family" 1 1
"happy" 1 1
"laughter" 1 1
"paradise" 1 1
"vacation" 1 1
"abuse" 2 1
"crash" 2 1
"filth" 2 1
"murder" 2 1
"sickness" 2 1
"accident" 2 1
"death" 2 1
"grief" 2 1
"poison" 2 1
"stink" 2 1
"assault" 2 1
"disaster" 2 1
"hatred" 2 1
"pollute" 2 1
"tragedy" 2 1
"bomb" 2 1
"divorce" 2 1
"jail" 2 1
"poverty" 2 1
"ugly" 2 1
"cancer" 2 1
"evil" 2 1
"kill" 2 1
"rotten" 2 1
"vomit" 2 1
"agony" 2 1
"prison" 2 1
table flowers_insects_pleasant_unpleasant_list
"aster" 1 2
"clover" 1 2
"hyacinth" 1 2
"marigold" 1 2
"poppy" 1 2
"azalea" 1 2
"crocus" 1 2
"iris" 1 2
"orchid" 1 2
"rose" 1 2
"bluebell" 1 2
"daffodil" 1 2
"lilac" 1 2
"pansy" 1 2
"tulip" 1 2
"buttercup" 1 2
"daisy" 1 2
"lily" 1 2
"peony" 1 2
"violet" 1 2
"camation" 1 2
"gladiola" 1 2
"magnolia" 1 2
"petunia" 1 2
"zinnia" 1 2
"ant" 2 1
"caterpillar" 2 1
"flea" 2 1
"locust" 2 1
"spider" 2 1
"bedbug" 2 1
"centipede" 2 1
"fly" 2 1
"maggot" 2 1
"tarantula" 2 1
"bee" 2 1
"cockroach" 2 1
"gnat" 2 1
"mosquito" 2 1
"termite" 2 1
"beetle" 2 1
"cricket" 2 1
"hornet" 2 1
"moth" 2 1
"wasp" 2 1
"blackfly" 2 1
"dragonfly" 2 1
"horsefly" 2 1
"roach" 2 1
"weevil" 2 1
# note the pleasant unpleasant cats are not turned around
"caress" 1 1
"freedom" 1 1
"health" 1 1
"love" 1 1
"peace" 1 1
"cheer" 1 1
"friend" 1 1
"heaven" 1 1
"loyal" 1 1
"pleasure" 1 1
"diamond" 1 1
"gentle" 1 1
"honest" 1 1
"lucky" 1 1
"rainbow" 1 1
"diploma" 1 1
"gift" 1 1
"honor" 1 1
"miracle" 1 1
"sunrise" 1 1
"family" 1 1
"happy" 1 1
"laughter" 1 1
"paradise" 1 1
"vacation" 1 1
"abuse" 2 2
"crash" 2 2
"filth" 2 2
"murder" 2 2
"sickness" 2 2
"accident" 2 2
"death" 2 2
"grief" 2 2
"poison" 2 2
"stink" 2 2
"assault" 2 2
"disaster" 2 2
"hatred" 2 2
"pollute" 2 2
"tragedy" 2 2
"bomb" 2 2
"divorce" 2 2
"jail" 2 2
"poverty" 2 2
"ugly" 2 2
"cancer" 2 2
"evil" 2 2
"kill" 2 2
"rotten" 2 2
"vomit" 2 2
"agony" 2 2
"prison" 2 2
task flowers_insects
keys e i
table flowers_insects_list
draw off
if &order == 1
show text "flower" -250 -50
show text "insect" 250 -50
fi
if &order == 2
show text "insect" -250 -50
show text "flower" 250 -50
fi
draw on
delay 100
show rectangle 0 0 10 10 255 255 255 # fixpoint
delay 200
clear -1
delay 200
show text @1
if &order == 1
readkey @2 3000
fi
if &order == 2
readkey @3 3000
fi
clear -1
if STATUS != CORRECT
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 300
fi
if STATUS == CORRECT
show bitmap smiley
delay 300
clear -1
delay 300
fi
delay 700
save BLOCKNAME BLOCKNUMBER @1 RT STATUS
task pleasant_unpleasant
keys e i
table pleasant_unpleasant_list
show text "pleasant" -250 50
show text "unpleasant" 250 50
delay 100
show rectangle 0 0 10 10 255 255 255 # fixpoint
delay 200
clear -1
delay 200
show text @1
readkey @2 3000
clear -1
if STATUS != CORRECT
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 300
fi
if STATUS == CORRECT
show bitmap smiley
delay 300
clear -1
delay 300
fi
delay 700
save BLOCKNAME BLOCKNUMBER @1 RT STATUS
task mixed
keys e i
table flowers_insects_pleasant_unpleasant_list
draw off
if &order == 1
show text "flower" -250 -50
show text "insect" 250 -50
fi
if &order == 2
show text "insect" -250 -50
show text "flower" 250 -50
fi
show text "pleasant" -250 50
show text "unpleasant" 250 50
draw on
delay 100
show rectangle 0 0 10 10 255 255 255 # fixpoint
delay 200
clear -1
delay 200
show text @1
if &order == 1
readkey @2 3000
fi
if &order == 2
readkey @3 3000
fi
clear -1
if STATUS != CORRECT
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 100
show bitmap frowny
delay 100
clear -1
delay 300
fi
if STATUS == CORRECT
show bitmap smiley
delay 300
clear -1
delay 300
fi
delay 700
save BLOCKNAME BLOCKNUMBER @1 RT STATUS
######################################################################
# the blocks start here
# the blockorder is randomly set
# order 1
# 1) flowers_insects
# 2) pleasant_unpleasant
# 3) mix_compatible
# 4) insects_flowers
# 5) mix_incompatible
# in the analysis, you want to compare blocks 5 and 4
# order 2
# 1) insects_flowers
# 2) pleasant_unpleasant
# 3) mix_incompatible
# 4) flowers_insects
# 5) mix_compatible
# in the analysis, you want to compare blocks 5 and 4
# ---------------------------------------------------------
block instructions
message instructions
block flowers_insects
set &order 1 ## order 1 means: flowers=left,insects=right
tasklist
flowers_insects 50 all_before_repeat
end
feedback
set &meanrt mean c4 ; select c5 == 1 && c2 == 1
text 0 0 &meanrt ; prefix "Your average response speed is " ; postfix " milliseconds"
text 0 100 "press space to continue"
end
block pleasant_unpleasant
message ready
tasklist
pleasant_unpleasant 50 all_before_repeat
end
feedback
set &meanrt mean c4 ; select c5 == 1 && c2 == 2
text 0 0 &meanrt ; prefix "Your average response speed is " ; postfix " milliseconds"
text 0 100 "press space to continue"
end
block mix_compatible
message ready
set &order 1 ## order 1 means: flowers=left,insects=right
tasklist
mixed 50 all_before_repeat
end
feedback
set &meanrt_com mean c4 ; select c5 == 1 && c2 == 3
text 0 0 &meanrt ; prefix "Your average response speed (compatible) is " ; postfix " milliseconds"
text 0 100 "press space to continue"
end
block insects_flowers
message ready
set &order 2 ## order 2 means: flowers=right,insects=left
tasklist
flowers_insects 50 all_before_repeat
end
feedback
set &meanrt mean c4 ; select c5 == 1 && c2 == 4
text 0 0 &meanrt ; prefix "Your average response speed is " ; postfix " milliseconds"
text 0 100 "press space to continue"
end
block mix_incompatible
message ready
set &order 2 ## order 2 means: flowers=right,insects=left
tasklist
mixed 50 all_before_repeat
end
feedback
set &meanrt_inc mean c4 ; select c5 == 1 && c2 == 5
set &iat_effect expression &meanrt_inc - &meanrt_com
text 0 -100 &meanrt ; prefix "Your average response speed is in last block (incompatible) is " ; postfix " ms"
text 0 0 &iat_effect ; prefix "Your IAT compatibility effect = INC - COM = "; postfix " ms"
text 0 100 "press space to continue"
end
# --------------------------------------------------------------------
# blockorder needs to be counterbalanced
# --------------------------------------------------------------------
blockorder
instructions
flowers_insects
pleasant_unpleasant
mix_compatible
insects_flowers
mix_incompatible
blockorder
instructions
insects_flowers
pleasant_unpleasant
mix_incompatible
flowers_insects
mix_compatible
Download
If you have a PsyToolkit account, you can upload the zipfile directly to your PsyToolkit account. Watch a video on how to do that. If you want to upload the zipfile into your PsyToolkit account, make sure the file is not automatically uncompressed (some browsers, especially Mac Safari, by default uncompress zip files). Read here how to easily deal with this. |
Further reading
-
Greenwald, A.G., McGhee,D.E., & Schwartz, J.L.K. (1998). Measuring Individual Differences in Implicit Cognition: The Implicit Association Test. Journal of Personality and Social Psychology, 74, 1464-1480.