Millisecond Forums

Pictures repeating within trials

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

By claudiecoulombe - 7/14/2017

Dear Inquisit community,

We are running an experiment using a manikin AAT. In one block, we have 4 trials and in each trial, we are trying to prevent pictures from appearing more than once. We have attempted several methods to achieve this (explaining why our syntax is so messy) but have had no success (i.e. using a counter; using norepeatnoreplace in the element, in the trial, and/or block; resetinterval=0).

A sample of our syntax can be found below. Any help would be very appreciated!

<picture female_attractive1>
/ numitems = 7
/ items = ("AF1.jpg", "AF2.jpg", "AF3.jpg", "AF4.jpg","AF7.jpg", "AF9.jpg", "AF11.jpg")
/ size = (40%, 40%)
/ position = (50%, 50%)
/ erase = false
/resetinterval = 0
</picture>

<trial female_attractive_approach_up>
/ ontrialbegin = [values.y=85%; values.animationstep=1]
/ ontrialend = [picture.currentstimpic.item.1=picture.female_attractive1.currentitem]
/ ontrialend = [if(trial.female_attractive_approach_up.response==200)values.y=values.y-values.d]
/ ontrialend = [if(trial.female_attractive_approach_up.response==208)values.y=values.y+values.d]
/ stimulusframes = [1=blankscreen, fixation; 100=noreplacenorepeat(female_attractive1),erasefixation,avoid,manikin]
/ validresponse = (200, 208)
/ correctresponse = (200)
/ branch = [trial.movemanikinup1]
</trial>

<block female_attractive_approach_unattractive_avoid>
/ trials = [1-30=noreplace(female_attractive_approach_up, female_unattractive_avoid_up, female_attractive_approach_down,female_unattractive_avoid_down)]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Heterosexual"]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Bisexual"]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Other"]
/ skip = [radiobuttons.sex.response == "Male" && radiobuttons.sexori.response == "Homosexual"]
</block>

Thanks!
By Dave - 7/14/2017

claudiecoulombe - Friday, July 14, 2017
Dear Inquisit community,

We are running an experiment using a manikin AAT. In one block, we have 4 trials and in each trial, we are trying to prevent pictures from appearing more than once. We have attempted several methods to achieve this (explaining why our syntax is so messy) but have had no success (i.e. using a counter; using norepeatnoreplace in the element, in the trial, and/or block; resetinterval=0).

A sample of our syntax can be found below. Any help would be very appreciated!

<picture female_attractive1>
/ numitems = 7
/ items = ("AF1.jpg", "AF2.jpg", "AF3.jpg", "AF4.jpg","AF7.jpg", "AF9.jpg", "AF11.jpg")
/ size = (40%, 40%)
/ position = (50%, 50%)
/ erase = false
/resetinterval = 0
</picture>

<trial female_attractive_approach_up>
/ ontrialbegin = [values.y=85%; values.animationstep=1]
/ ontrialend = [picture.currentstimpic.item.1=picture.female_attractive1.currentitem]
/ ontrialend = [if(trial.female_attractive_approach_up.response==200)values.y=values.y-values.d]
/ ontrialend = [if(trial.female_attractive_approach_up.response==208)values.y=values.y+values.d]
/ stimulusframes = [1=blankscreen, fixation; 100=noreplacenorepeat(female_attractive1),erasefixation,avoid,manikin]
/ validresponse = (200, 208)
/ correctresponse = (200)
/ branch = [trial.movemanikinup1]
</trial>

<block female_attractive_approach_unattractive_avoid>
/ trials = [1-30=noreplace(female_attractive_approach_up, female_unattractive_avoid_up, female_attractive_approach_down,female_unattractive_avoid_down)]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Heterosexual"]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Bisexual"]
/ skip = [radiobuttons.sex.response == "Female" && radiobuttons.sexori.response == "Other"]
/ skip = [radiobuttons.sex.response == "Male" && radiobuttons.sexori.response == "Homosexual"]
</block>

Thanks!


<block female_attractive_approach_unattractive_avoid>
/ trials = [1-30=noreplace(
female_attractive_approach_up,
female_unattractive_avoid_up,
female_attractive_approach_down,
female_unattractive_avoid_down)]
...
</block>

You are running 30 trials, and you are sampling from 4 trial elements _in equal proportions_. That doesn't work out mathematically. 30/4 = 7.5, and there can be no such thing as "half a trial." I.e. some trial elements will necessarily be run more often than others and you'll see any stimuli those trials present repeated when that happens.

Assuming you have 7 items per trial-type, i.e. 28 different stimuli total, you'll want to run 28 trials, with the 4 trial elements sampled in equal proportions:

<block female_attractive_approach_unattractive_avoid>
/ trials = [1-28=noreplace(
female_attractive_approach_up,
female_unattractive_avoid_up,
female_attractive_approach_down,
female_unattractive_avoid_down)]
...
</block>

By claudiecoulombe - 7/14/2017

Hi Dave,

Thank you so much for your help! Our categories were initially uneven (we had 7 items in one and 8 in another), but by making the number of items even in each category, it seems to have solved the problem.


By Dave - 7/14/2017

claudiecoulombe - Friday, July 14, 2017
Hi Dave,

Thank you so much for your help! Our categories were initially uneven (we had 7 items in one and 8 in another), but by making the number of items even in each category, it seems to have solved the problem.



If you have an uneven number of items, then entering the trials into the block's /trials selection pool in the correct proportions would do the trick. To illustrate quickly, suppose trial "a" is supposed to display 4 items, and trial "b" has only two. I.e., you would want to run four instances of trial "a" and only two of trial "b". Then you'd specify:

<block example>
/ trials = [1-6 = noreplace(a,a,b)]
...
</block>

This will result in twice as many "a" trials than "b" trials, whereas

<block example>
/ trials = [1-6 = noreplace(a,b)]
...
</block>

would sample in equal proportions, i.e. you'd get three "a" trials and three "b" trials.