Millisecond Forums

Noreplace with two stimulus pools of different size

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

By SmaugWithACamera - 9/27/2015

Hello,

I have a picture recognition experiment. I have 98 items in total, consisting of real items and distractions. The item pool and the distractor pool are not equal in size (the distractor pool is much smaller) and despite the noreplace command some distractors appear several times whereas some of the actual items don't appear at all.

My respective script looks like this:

<block abfrage>
/ bgstim = (Hilfe, Hilfe2)
/preinstructions = (inst.3)
/screencolor = (0, 0, 0)
/trials = [1 - 98 = noreplace(objekt, distr.ob)]
</block>

I looked up the trial attribute in the handbook and found that if you repeat one pool it will set the relation in which this pool will be featured compared to the other pool.
E.g.
/trials = [1 - 30 = noreplace(objekt, objekt, distr.ob)]
resulting in two thirds of objekt displayal and 1 third of distr.ob displayal.

I get that as thus /trials = [1 - 98 = noreplace(objekt, distr.ob)] means a ratio of 50:50, resulting in some of the distractors, that don't make up half the size of the 98 items, will appear several times (even though I don't really get what the no replace command then does in this case).

The problem is that my item and distractor ratio can't be broken down that easily because I have 63 items and 35 distractors.
Is there any convenient way to have every item and every distractor appear once and randomly?

Best regards

Smaug
By Dave - 9/27/2015

Option #1: Spell out the noreplace() pool in the /trials attribute, i.e. enter objekt 63 times and distr.obj 35 times.

Option #2: Use a <list> for trial selection, with /itemprobabilities set accordingly. In the case at hand, it would look something like this:

<values>
/ objektcount = 0
/ distraktorcount = 0
</values>

<block myblock>
/ trials = [1-98=list.trialpool; 99=counts]
</block>

<list trialpool>
/ items = (trial.objekt, trial.obj.distr)
/ poolsize = 98
/ itemprobabilities = (0.64; 0.36)
/ selectionmode = random
/ replace = false
</list>

<trial objekt>
/ ontrialend = [values.objektcount +=1]
/ trialduration = 10
</trial>

<trial obj.distr>
/ ontrialend = [values.distraktorcount +=1]
/ trialduration = 10
</trial>

<trial counts>
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = ("Trials run: <%values.objektcount%> x objekt; <%values.distraktorcount%> x obj.distr")
</text>