unevenly sized lists for stimulusitems


Author
Message
jdb
jdb
Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)
Group: Forum Members
Posts: 6, Visits: 18
I have a question about item selection!
I have two types of trials, call them "core" and "varying" trials:
<trial core>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivecore, negativecore)]
/ response = free
</trial>

<trial varying1>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying1, negativevarying1)]
/ response = free
</trial>

<trial varying2>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying2, negativevarying2)]
/ response = free
</trial>

The thing is that for each block, there should be 8 core trials for every 1 varying trial (there are 80 core items and 10 varying items). I tried using a list:
<list trials>
/items = (trial.core, trialvarying1)
/poolsize = 90
/selectionmode = random
</list>

Calling that list in a block doesn't wind up with the list doing anything – I end up with 45 core trials and 45 varying trials – not what I want. I thought about using /itemprobabilities = [.888888; .2222222] but that seems like it's not really what I mean to do. I could also potentially repeat the items in the list?
/items = (trial.core, trial.core, trial.core, trial.core, trial.core, trial.core,
     trial.core, trial.core, trialvarying1)

Anyway, I've re-ran the experiment so many times at this point that I figured I would ask for help. Anyone have a solution for this? I realize that maybe the simplest solution is to just make separate word lists (not have a core, and instead just put it in each of the other word lists) but that didn't occur to me until after I had spent a while debugging and at this point I'm feeling stubborn.
I guess I should add that I consulted this post, but haven't found it to help me find a solution.

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
jdb - Thursday, February 23, 2017
I have a question about item selection!
I have two types of trials, call them "core" and "varying" trials:
<trial core>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivecore, negativecore)]
/ response = free
</trial>

<trial varying1>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying1, negativevarying1)]
/ response = free
</trial>

<trial varying2>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying2, negativevarying2)]
/ response = free
</trial>

The thing is that for each block, there should be 8 core trials for every 1 varying trial (there are 80 core items and 10 varying items). I tried using a list:
<list trials>
/items = (trial.core, trialvarying1)
/poolsize = 90
/selectionmode = random
</list>

Calling that list in a block doesn't wind up with the list doing anything – I end up with 45 core trials and 45 varying trials – not what I want. I thought about using /itemprobabilities = [.888888; .2222222] but that seems like it's not really what I mean to do. I could also potentially repeat the items in the list?
/items = (trial.core, trial.core, trial.core, trial.core, trial.core, trial.core,
     trial.core, trial.core, trialvarying1)

Anyway, I've re-ran the experiment so many times at this point that I figured I would ask for help. Anyone have a solution for this? I realize that maybe the simplest solution is to just make separate word lists (not have a core, and instead just put it in each of the other word lists) but that didn't occur to me until after I had spent a while debugging and at this point I'm feeling stubborn.
I guess I should add that I consulted this post, but haven't found it to help me find a solution.

A <list> with correctly specified /itemprobabilities is exactly what you should use:

<trial core>
/ trialduration = 50
</trial>

<trial varying>
/ trialduration = 50
</trial>

<block myblock>
/ trials = [1-90 = list.triallist]
</block>

<list triallist>
/ items = (trial.core, trial.varying)
/ poolsize = 90
/ itemprobabilities = [.88889; .11111]
</list>

will result in 80 "core" trials and 10 "varying" trials in the <block>.

Alternatively, you can achieve the same result without resorting to a <list>. Simply enter trials in the desired 8:1 ratio into a standard noreplace() selection pool:

<block myblock>
/ trials = [1-90 = noreplace(core, core, core, core, core, core, core, core, varying)]
</block>
Edited 7 Years Ago by Dave
jdb
jdb
Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)Respected Member (475 reputation)
Group: Forum Members
Posts: 6, Visits: 18
Dave - Thursday, February 23, 2017
jdb - Thursday, February 23, 2017
I have a question about item selection!
I have two types of trials, call them "core" and "varying" trials:
<trial core>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivecore, negativecore)]
/ response = free
</trial>

<trial varying1>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying1, negativevarying1)]
/ response = free
</trial>

<trial varying2>
/ validresponse = ("1", "0")
/ correctresponse = ("1")
/ responseinterrupt = trial
/ stimulustimes = [0=noreplace(positivevarying2, negativevarying2)]
/ response = free
</trial>

The thing is that for each block, there should be 8 core trials for every 1 varying trial (there are 80 core items and 10 varying items). I tried using a list:
<list trials>
/items = (trial.core, trialvarying1)
/poolsize = 90
/selectionmode = random
</list>

Calling that list in a block doesn't wind up with the list doing anything – I end up with 45 core trials and 45 varying trials – not what I want. I thought about using /itemprobabilities = [.888888; .2222222] but that seems like it's not really what I mean to do. I could also potentially repeat the items in the list?
/items = (trial.core, trial.core, trial.core, trial.core, trial.core, trial.core,
     trial.core, trial.core, trialvarying1)

Anyway, I've re-ran the experiment so many times at this point that I figured I would ask for help. Anyone have a solution for this? I realize that maybe the simplest solution is to just make separate word lists (not have a core, and instead just put it in each of the other word lists) but that didn't occur to me until after I had spent a while debugging and at this point I'm feeling stubborn.
I guess I should add that I consulted this post, but haven't found it to help me find a solution.

A <list> with correctly specified /itemprobabilities is exactly what you should use:

<trial core>
/ trialduration = 50
</trial>

<trial varying>
/ trialduration = 50
</trial>

<block myblock>
/ trials = [1-90 = list.triallist]
</block>

<list triallist>
/ items = (trial.core, trial.varying)
/ poolsize = 90
/ itemprobabilities = [.88889; .11111]
</list>

will result in 80 "core" trials and 10 "varying" trials in the <block>.

Alternatively, you can achieve the same result without resorting to a <list>. Simply enter trials in the desired 8:1 ratio into a standard noreplace() selection pool:

<block myblock>
/ trials = [1-90 = noreplace(core, core, core, core, core, core, core, core, varying)]
</block>

Right! Makes a lot of sense. I think I was hoping that there was some way of explicitly saying "don't start replacing from [the shorter item list] until the longer items run out" but it sounds like that's not possible. This way is straightforward.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search