Pictures repeating within trials


Author
Message
claudiecoulombe
claudiecoulombe
Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)
Group: Forum Members
Posts: 2, Visits: 15
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!
Edited 7 Years Ago by claudiecoulombe
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
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>


claudiecoulombe
claudiecoulombe
Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)Associate Member (135 reputation)
Group: Forum Members
Posts: 2, Visits: 15
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.



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
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.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search