Millisecond Forums

How to individualise an IAT-experiment

https://forums.millisecond.com/Topic18909.aspx

By Joolz - 4/14/2016

Hello to all of you!

On behalf of my master thesis I am dealing with my very first Inquisit skript at the moment.
Until now my personal challenge has been surprisingly successful, but now I am trying to
individualise a set of pictures that should be presented during an IAT-Experiment.

Therefor I implemented a 9-point-likert-scale on which participant should rate the picture
material. Now I wish to "tell" my skript to choose 16 pictures out of that, the eight pictures
with the highest ratings and the eight pictures with the lowest.

For example if the picture ratings of a participant would look like this...

1 1 1 1 1 1 1 2 2 2 3 3 4 4 4 5 5 5 5 5 6 6 6 7 7 7 8 8 9

... I´d like Inquisit to use the pictures that belong to the ratings 1 1 1 1 1 1 1 2 for the first IAT category and
    the pictures that belong to the likert-ratings 9 8 8 7 7 7 6 6 for the other category.

Does someone have any idea how I could implement this in my script? I would be very thankful about any advice!!!

Thank you very much in advance!!!
Julia




Here some relevant scripting from my experiment. It might look like a mess to you, my appologies. I´ve never done any programmling before...

<item Attraktivitätseinschätzung_Bilder>

/100 =  "058.jpg"
/102 =  "141.jpg"
/103 =  "139.jpg"
/104 =  "084.jpg"
/105 =  "129.jpg"
/106 =  "100.jpg"
/107 =  "135.jpg"
/108 =  "143.jpg"

/109 =  "123.jpg"
/110 = "113.jpg"
/111 = "056.jpg"
/112 = "062.jpg"
/113 = "095.jpg"
/114 = "121.jpg"
/115 = "077.jpg"
/116 = "094.jpg"

/117 = "033.jpg"
/118 = "118.jpg"
/119 = "067.jpg"
/120 = "120.jpg"
/121 = "015.jpg"
/122 = "010.jpg"
/123 = "021.jpg"
/124 = "047.jpg"

/125 = "158f.jpg"
/126 = "162f.jpg"
/127 = "160f.jpg"
/128 = "138f.jpg"
/129 = "020f.jpg"
/130 = "161f.jpg"
/131 = "170f.jpg"
/132 = "069f.jpg"

/133 = "090f.jpg"
/134 = "107f.jpg"
/135 = "128f.jpg"
/136 = "104f.jpg"
/137 = "017f.jpg"
/138 = "067f.jpg"
/139 = "091f.jpg"
/140 = "125f.jpg"

/141 = "095f.jpg"
/142 = "027f.jpg"
/143 = "097f.jpg"
/144 = "123f.jpg"
/145 = "039f.jpg"
/146 = "153f.jpg"
/147 = "152f.jpg"
/148 = "121f.jpg"
</item>

<picture Attraktivitätseinschätzung_Bilder>
/ items = Attraktivitätseinschätzung_Bilder
/ select = noreplace
/ position = (53%, 50%)
/ size = (500, 375)
/ erase = false
</picture>

<list Bilder_Männer>
/ items = (100 - 124)
/ replace = false
</list>

<list Bilder_Frauen>
/ items = (125 - 148)
/ replace = false
</list>

<likert Attraktivitätseinschätzung>
/ showmousecursor = true
/ stimulusframes = [1 = Attraktivitätseinschätzung_Bilder]
/ anchors = [1="sehr schlecht aussehend"; 9="sehr gut aussehend"]
/ anchorwidth=80px
/ fontstyle = ("Arial", 13pt, false, false, false, false, 5, 1)
/ numpoints = 9
/ mouse = true
/ position=(53%, 90%)
/ recorddata = true
/ ontrialend = [values.Bewertung = trial.Attraktivitätseinschätzung.response]
/ ontrialend = [values.stimulus = picture.Attraktivitätseinschätzung_Bilder.currentitem]
</likert>


Text- und Bildelemente für den IAT:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<item Bilder_attraktive_Männer>
/1 =  "058.jpg"
/2 =  "141.jpg"
/3 =  "139.jpg"
/4 =  "084.jpg"
/5 =  "129.jpg"
/6 =  "100.jpg"
/7 =  "135.jpg"
/8 =  "143.jpg"
</item>

<picture Bilder_attraktive_Männer>
/ items = Bilder_attraktive_Männer
/ size = (55%, 55%)
/ position = (53,50)
/ select = noreplace
</picture>

<item Bilder_attraktive_Frauen>
/9  = "158f.jpg"
/10 = "162f.jpg"
/11 = "160f.jpg"
/12 = "138f.jpg"
/13 = "020f.jpg"
/14 = "161f.jpg"
/15 = "170f.jpg"
/16 = "069f.jpg"
</item>

<picture Bilder_attraktive_Frauen>
/ items = Bilder_attraktive_Frauen
/ size = (55%, 55%)
/ position = (53,50)
/ select = noreplace
</picture>

<item Bilder_unattraktive_Männer>
/17 = "033.jpg"
/18 = "118.jpg"
/19 = "067.jpg"
/20 = "120.jpg"
/21 = "015.jpg"
/22 = "010.jpg"
/23 = "021.jpg"
/24 = "027.jpg"
</item>

<picture Bilder_unattraktive_Männer>
/ items = Bilder_unattraktive_Männer
/ size = (55%, 55%)
/ position = (53,50)
/ select = noreplace
</picture>

<item Bilder_unattraktive_Frauen>
/25 = "095f.jpg"
/26 = "027f.jpg"
/27 = "097f.jpg"
/28 = "123f.jpg"
/29 = "039f.jpg"
/30 = "153f.jpg"
/31 = "152f.jpg"
/32 = "121f.jpg"
</item>

<picture Bilder_unattraktive_Frauen>
/ items = Bilder_unattraktive_Frauen
/ size = (55%, 55%)
/ position = (53,50)
/ select = noreplace
</picture>

!!! These above should be replaced with the individualised stimulus set !!!

<text attraktiv_rechts>
/ items = ("eher attraktiv")
/ valign = top
/ halign = right
/ position = (100%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text unattraktiv_links>
/ items = ("eher unattraktiv")
/ valign = top
/ halign = left
/ position = (5%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text oder_links>
/ items = ("oder")
/ valign = top
/ halign = left
/ position = (5%, 12%)
/ fontstyle = ("Arial", 5%)
</text>

<text oder_rechts>
/ items = ("oder")
/ valign = top
/ halign = right
/ position = (100%, 12%)
/ fontstyle = ("Arial", 5%)
</text>


<item Vermeidung_Bezeichnung>
/1 = "Vermeidung"
</item>

<text Vermeidung_rechts>
/ items = Vermeidung_Bezeichnung
/ valign = top
/ halign = right
/ position = (100%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text Vermeidung_links>
/ items = Vermeidung_Bezeichnung
/ valign = top
/ halign = left
/ position = (5%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text Vermeidung_rechts_Doppeltbelegung>
/ items = Vermeidung_Bezeichnung
/ valign = top
/ halign = right
/ position = (100%, 19%)
/ fontstyle = ("Arial", 5%)
</text>

<text Vermeidung_links_Doppeltbelegung>
/ items = Vermeidung_Bezeichnung
/ valign = top
/ halign = left
/ position = (5%, 19%)
/ fontstyle = ("Arial", 5%)
</text>

<item Vermeidung>
/ 1 = "Flucht"
/ 2 = "Abstand"
/ 3 = "meiden"
/ 4 = "fort"
/ 5 = "Distanz"
/ 6 = "flüchten"
/ 7 = "ausweichen"
/ 8 = "weg"
</item>

<text Vermeidung>
/ items = Vermeidung
/ fontstyle = ("Arial", 66pt, true)
/ position = (53,50)
</text>

<item Annäherung_Bezeichnung>
/1 = "Annäherung"
</item>

<text Annäherung_rechts>
/ items = Annäherung_Bezeichnung
/ valign = top
/ halign = right
/ position = (100%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text Annäherung_links>
/ items = Annäherung_Bezeichnung
/ valign = top
/ halign = left
/ position = (5%, 5%)
/ fontstyle = ("Arial", 5%)
</text>

<text Annäherung_rechts_Doppeltbelegung>
/ items = Annäherung_Bezeichnung
/ valign = top
/ halign = right
/ position = (100%, 19%)
/ fontstyle = ("Arial", 5%)
</text>

<text Annäherung_links_Doppeltbelegung>
/ items = Annäherung_Bezeichnung
/ valign = top
/ halign = left
/ position = (5%, 19%)
/ fontstyle = ("Arial", 5%)
</text>

<item Annäherung>
/ 1 = "aufsuchen"
/ 2 = "Nähe"
/ 3 = "Intimität"
/ 4 = "berühren"
/ 5 = "Kontakt"
/ 6 = "heran"
/ 7 = "annähern"
/ 8 = "hin"
</item>

<text Annäherung>
/ items = Annäherung
/ fontstyle = ("Arial", 66pt, true)
/ position = (53,50)
</text>

<text Fehler_IAT>
/ position = (50%, 75%)
/ items = ("X")
/ position = (53, 50)
/ color = (255, 0, 0)
/ fontstyle = ("Arial", 10%, true)
</text>

<text Erinnerung>
/items = ("Bitte versuchen Sie schneller zu reagieren")
/txcolor = red
/ position = (53,50)
/ fontstyle = ("Arial", 18, true, false, false, false, 5, 1)
</text>


<trial attraktive_Männer>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = list.attraktive_Männer_IAT]
/ validresponse = (18, 23)
/ correctresponse = (23)
/ responsemessage = (18,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.RT = trial.attraktive_Männer.latency]
/ ontrialend = [values.correct = trial.attraktive_Männer.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.Attraktivität = "hoch"]
/ ontrialend = [values.stimulus = list.Bilder_attraktive_Männer.currentitem]
/ branch = [if (values.showreminder == true && trial.attraktive_Männer.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial unattraktive_Männer>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = list.unattraktive_Männer_IAT]
/ validresponse = (18, 23)
/ correctresponse = (18)
/ responsemessage = (23,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.RT = trial.unattraktive_Männer.latency]
/ ontrialend = [values.correct = trial.unattraktive_Männer.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.Attraktivität = "gering"]
/ ontrialend = [values.stimulus = list.Bilder_unattraktive_Männer.currentitem]
/ branch = [if (values.showreminder == true && trial.unattraktive_Männer.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial attraktive_Frauen>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Bilder_attraktive_Frauen]
/ validresponse = (18, 23)
/ correctresponse = (23)
/ responsemessage = (18,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.RT = trial.attraktive_Frauen.latency]
/ ontrialend = [values.correct = trial.attraktive_Frauen.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.stimulus = list.Bilder_attraktive_Frauen.currentitem]
/ ontrialend = [values.Attraktivität = "hoch"]

/ branch = [if (values.showreminder == true && trial.attraktive_Frauen.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial unattraktive_Frauen>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Bilder_unattraktive_Frauen]
/ validresponse = (18, 23)
/ correctresponse = (18)
/ responsemessage = (23, Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.RT = trial.unattraktive_Frauen.latency]
/ ontrialend = [values.correct = trial.unattraktive_Frauen.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.Attraktivität = "gering"]
/ ontrialend = [values.stimulus = list.Bilder_unattraktive_Frauen.currentitem]

/ branch = [if (values.showreminder == true && trial.unattraktive_Frauen.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial Vermeidung_links>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Vermeidung]
/ validresponse = (18, 23)
/ correctresponse = (18)
/ responsemessage = (23,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.iat_format = "Vermeidung"]
/ ontrialend = [values.RT = trial.Vermeidung_links.latency]
/ ontrialend = [values.correct = trial.Vermeidung_links.correct]
/ ontrialend = [values.Bewertung = 0]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.Attraktivität = 0]
/ ontrialend = [values.stimulus = text.Vermeidung.currentitem]

/ branch = [if (values.showreminder == true && trial.Vermeidung_links.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial Annäherung_links>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Annäherung]
/ validresponse = (18, 23)
/ correctresponse = (18)
/ responsemessage = (23,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.iat_format = "Annäherung"]
/ ontrialend = [values.RT = trial.Annäherung_links.latency]
/ ontrialend = [values.correct = trial.Annäherung_links.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.stimulus = text.Annäherung.currentitem]

/ branch = [if (values.showreminder == true && trial.Annäherung_links.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial Vermeidung_rechts>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Vermeidung]
/ validresponse = (18, 23)
/ correctresponse = (23)
/ responsemessage = (18,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.iat_format = "Vermeidung"]
/ ontrialend = [values.RT = trial.Vermeidung_rechts.latency]
/ ontrialend = [values.correct = trial.Vermeidung_rechts.correct]

/ ontrialend = [values.completeRT= values.endtime - values.starttime]
/ ontrialend = [values.endtime = script.elapsedtime]
/ ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
/ ontrialbegin = [values.completeRT = 0]

/ ontrialend = [values.stimulus = text.Vermeidung.currentitem]

/ branch = [if (values.showreminder == true && trial.Vermeidung_rechts.latency >= values.reminderrt) trial.Erinnerung]
</trial>

<trial Annäherung_rechts>
/ pretrialpause = values.pretrialpause
/ stimulusframes = [1 = Annäherung]
/ validresponse = (18, 23)
/ correctresponse = (23)
/ responsemessage = (18,Fehler_IAT,300)
/ inputdevice = keyboard
/ ontrialend = [values.iat_format = "Annäherung"]
/ ontrialend = [values.RT = trial.Annäherung_rechts.latency]
/ ontrialend = [values.correct = trial.Annäherung_rechts.correct]
/ ontrialend = [values.stimulus = text.Annäherung.currentitem]

/ branch = [if (values.showreminder == true && trial.Annäherung_rechts.latency >= values.reminderrt) trial.Erinnerung]
</trial>

here only an example block:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

<block Kompatibilitätstest_Vermeidung>
/ bgstim = (attraktiv_rechts, oder_links, Vermeidung_links_Doppeltbelegung, unattraktiv_links)
/ trials = [1-56 =noreplace(Vermeidung_links, Vermeidung_links, Vermeidung_links, Vermeidung_links,
    attraktive_Männer, attraktive_Männer, attraktive_Männer,
                attraktive_Frauen, attraktive_Frauen, attraktive_Frauen,
    unattraktive_Männer, unattraktive_Männer, 
                unattraktive_Frauen, unattraktive_Frauen)]

/ responsemode = correct
/ ontrialbegin = [values.iat_format = "Vermeidung"]
</block>

<block Kompatibilitätstest_Annäherung>
/ bgstim = (attraktiv_rechts, oder_rechts, Annäherung_rechts_Doppeltbelegung, unattraktiv_links)
/ trials = [1-56 =noreplace(Annäherung_rechts, Annäherung_rechts, Annäherung_rechts, Annäherung_rechts,
    attraktive_Männer, attraktive_Männer,
                attraktive_Frauen, attraktive_Frauen,
    unattraktive_Männer, unattraktive_Männer, unattraktive_Männer,
                unattraktive_Frauen, unattraktive_Frauen, unattraktive_Frauen)]

/ responsemode = correct
/ ontrialbegin = [values.iat_format = "Annäherung"]
</block>



 
By Dave - 4/14/2016

You can find a viable (I think) approach outlined in this thread:

https://www.millisecond.com/forums/Topic2644-1.aspx

Hope this helps.