noreplace in categorization task


Author
Message
Desiree
Desiree
Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)
Group: Forum Members
Posts: 5, Visits: 25
Currently working on a categorization task in which people have to indicate for every picture of a face whether the face has a sad or an angry emotional expression.
The experiment is working, but after collecting data in monkey mode I found out that in both testblocks (4 and 7) the pictures are not shown as I want them to.

Within each block, the right number of pictures is shown (128 trials per block). Per block and within each category of pictures (16 categories), I want every picture to be shown 8 times. However, as of yet, this is not the case: per category, some pictures are shown 10 times, others 7, others 9.

I have tried several things but I can't seem to get it to work the way I want it to.
I don't have a lot of experience, so suggestions would be of great help!
I added parts of the script below.


<item Male_Black_Sad.l>
/1 = "38M_SA_C.bmp"
/2 = "39M_SA_C.bmp"
/3 = "42M_SA_C.bmp"
/4 = "41M_SA_C.bmp"
</item>

<picture Male_Black_Sad.l>
/items = Male_Black_Sad.l
/ position = (50,50)
/ size = (375, 375)
/ select = noreplace
</picture>


<trial Male_Black_Sad_l>
/ pretrialpause = 200
/ stimulustimes=[0=fixation, reminder_left, reminder_right; 300=Male_Black_Sad.l; 500=blank]
/ correctresponse = ("a")
/ errormessage = true(error,400)
/ validresponse = ("a", "l")
</trial>


<block AngrySad>
/ preinstructions = (test, test_AngrySad)
/ trials = [1-128 = noreplace(Female_Black_Angry_l, Female_White_Angry_l, Male_Black_Angry_l, Male_White_Angry_l, Female_Black_Sad_r, Female_White_Sad_r, Male_Black_Sad_r, Male_White_Sad_r)]
/ onblockbegin = [values.reminder_left = "Angry"; values.reminder_right = "Sad"]
</block>

<expt>
/ preinstructions = (Instructions1, Instructions2, Instructions3)
/ blocks = [1 = Prime_Black_vs_White; 2 = Instructions4; 3 = AngrySad_practice; 4 = AngrySad; 5 = between; 6 = SadAngry_practice; 7 = SadAngry; 8 = end]
/ subjects = (1 of 4)
</expt>

Tags
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
I'm not sure what the relevance of the code snippets you posted is supposed to be.

The block you included

<block AngrySad>
...
/ trials = [1-128 = noreplace(Female_Black_Angry_l, Female_White_Angry_l, Male_Black_Angry_l, Male_White_Angry_l, Female_Black_Sad_r, Female_White_Sad_r, Male_Black_Sad_r, Male_White_Sad_r)]
...
</block>

does not even run the <trial> you included

<trial Male_Black_Sad_l>
/ pretrialpause = 200
/ stimulustimes=[0=fixation, reminder_left, reminder_right; 300=Male_Black_Sad.l; 500=blank]
/ correctresponse = ("a")
/ errormessage = true(error,400)
/ validresponse = ("a", "l")
</trial>

Male_Black_Sad_l is nowhere to be found in

/ trials = [1-128 = noreplace(Female_Black_Angry_l, Female_White_Angry_l, Male_Black_Angry_l, Male_White_Angry_l, Female_Black_Sad_r, Female_White_Sad_r, Male_Black_Sad_r, Male_White_Sad_r)]

What that /trials attribute will do is run a total of

16 Female_Black_Angry_l trials,
16 Female_White_Angry_l trials,
16 Male_Black_Angry_l trials,
16 Male_White_Angry_l trials,
16 Female_Black_Sad_r trials,
16 Female_White_Sad_r trials,
16 Male_Black_Sad_r trials, and
16 Male_White_Sad_r trials

in random order. How those trials sample from any stimulus elements is an entirely different matter.

Please see https://www.millisecond.com/forums/FindPost14400.aspx which should hopefully clarify how one can think about *trial* selection vs. stimulus selection.


Desiree
Desiree
Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)Partner Member (756 reputation)
Group: Forum Members
Posts: 5, Visits: 25
I am so sorry - I included the wrong block.
This is the block I intended to include:

<block SadAngry>
/ preinstructions = (test, test_SadAngry)
/ trials = [1-128 = noreplace(Female_Black_Sad_l, Female_White_Sad_l, Male_Black_Sad_l, Male_White_Sad_l, Female_Black_Angry_r, Female_White_Angry_r, Male_Black_Angry_r, Male_White_Angry_r)]
/ onblockbegin = [values.reminder_left = "Sad"; values.reminder_right = "Angry"]
</block>

Responding to this: 
"What that /trials attribute will do is run a total of
16 Female_Black_Angry_l trials,
16 Female_White_Angry_l trials,
16 Male_Black_Angry_l trials,
16 Male_White_Angry_l trials,
16 Female_Black_Sad_r trials,
16 Female_White_Sad_r trials,
16 Male_Black_Sad_r trials, and
16 Male_White_Sad_r trials
in random order. How those trials sample from any stimulus elements is an entirely different matter."

This is indeed what happens. My problem however, is that not every stimulus is presented equally across participants. So, for example, one participant sees one Female_White_Angry_l stimulus (picture) 4 times, while the other participants sees it 5 times. 

I thought this meant that something is wrong with the picture element:
<picture Male_Black_Sad.l>
/items = Male_Black_Sad.l
/ position = (50,50)
/ size = (375, 375)
/ select = noreplace
</picture>

But I have no idea what I have to change in order to get it to work right..
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
The <picture> element will sample its four items randomly without replacement ("noreplace")

<picture Male_Black_Sad.l>
/items = Male_Black_Sad.l
/ position = (50,50)
/ size = (375, 375)
/ select = noreplace
</picture>

<item Male_Black_Sad.l>
/1 = "38M_SA_C.bmp"
/2 = "39M_SA_C.bmp"
/3 = "42M_SA_C.bmp"
/4 = "41M_SA_C.bmp"
</item>

If you have one <trial> displaying that <picture>

<trial Male_Black_Sad_l>
/ pretrialpause = 200
/ stimulustimes=[0=fixation, reminder_left, reminder_right; 300=Male_Black_Sad.l; 500=blank]
/ correctresponse = ("a")
/ errormessage = true(error,400)
/ validresponse = ("a", "l")
</trial>

and run 16 instances of that trial in a <block>, each of the 4 items will be displayed 4 times.

Just do

<block someblock>
/ trials = [1-16 = Male_Black_Sad_l]
</trial>

to see this for yourself.

> My problem however, is that not every stimulus is presented equally across participants. So, for example, one participant sees one
> Female_White_Angry_l stimulus (picture) 4 times, while the other participants sees it 5 times.

This, then, means you have one or several mistakes somewhere in your script. You either have *multiple* <trial> elements that display the same <picture>, some <picture> elements referencing the wrong <item> element, or the wrong items listed in the <item> element itself.

I recommend you go through your script with a fine-toothed comb to find those mistakes.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search