number of trials not as expected in a block


Author
Message
xizhouxie
xizhouxie
Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)
Group: Forum Members
Posts: 21, Visits: 91
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


xizhouxie
xizhouxie
Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)
Group: Forum Members
Posts: 21, Visits: 91
xizhouxie - 11/13/2020
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


just adding that when i get the 26, 24, vs 25 trials all around, I'm also having pictures repeat, which is not what we want.  
Dave
Dave
Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)
Group: Administrators
Posts: 10K, Visits: 62K
xizhouxie - 11/13/2020
xizhouxie - 11/13/2020
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


just adding that when i get the 26, 24, vs 25 trials all around, I'm also having pictures repeat, which is not what we want.  

/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

You're sampling the 12 trial elements *in equal proportions*. 150/12 = 12.5. There obviously can be no such thing as 0.5 of a trial, hence you get imbalances. Enter the trial elements in the proportions you want into the noreplace selection pool.

xizhouxie
xizhouxie
Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)
Group: Forum Members
Posts: 21, Visits: 91
Dave - 11/13/2020
xizhouxie - 11/13/2020
xizhouxie - 11/13/2020
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


just adding that when i get the 26, 24, vs 25 trials all around, I'm also having pictures repeat, which is not what we want.  

/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

You're sampling the 12 trial elements *in equal proportions*. 150/12 = 12.5. There obviously can be no such thing as 0.5 of a trial, hence you get imbalances. Enter the trial elements in the proportions you want into the noreplace selection pool.

that makes total sense. so I need to spell out the 150 trials total? 
Dave
Dave
Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)Supreme Being (871K reputation)
Group: Administrators
Posts: 10K, Visits: 62K
xizhouxie - 11/13/2020
Dave - 11/13/2020
xizhouxie - 11/13/2020
xizhouxie - 11/13/2020
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


just adding that when i get the 26, 24, vs 25 trials all around, I'm also having pictures repeat, which is not what we want.  

/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

You're sampling the 12 trial elements *in equal proportions*. 150/12 = 12.5. There obviously can be no such thing as 0.5 of a trial, hence you get imbalances. Enter the trial elements in the proportions you want into the noreplace selection pool.

that makes total sense. so I need to spell out the 150 trials total? 

If I'm reading your original description correctly, for "chem mixed" and "engl mixed", two distinct <trial> elements together form a "type", and you want 25 trials of each "type", but don't care if the within-type distribution is 12 x subtrial A and 13 x subtrial B, or 13 x subtrial A and 12 x subtrial B.. If so, the proper way to do this would be to create a dummy <trial> element for each type that you sample at the block-level, and have the actual trials in a <list> that the dummy trial /branch'es to. I.e.

<block example>
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,Chem_mixed,Engl_mixed)]
</block>

with

<trial chem_mixed>
/ trialduration = 0
/ recorddata = false
/ branch = [
    list.chem_mixed_trials.nextvalue;
]
</trial>

// with poolsize 24 and equal proportions, we're guaranteed to get 12 x chem_correct_mixed and 12 x chem_incorrect_mixed
// the 25th sample will randomly be either chem_correct_mixed or chem_incorrect_mixed
<list chem_mixed_trials>
/ items = (trial.chem_correct_mixed, trial.chem_incorrect_mixed)
/ poolsize = 24
</list>

<trial engl_mixed>
/ trialduration = 0
/ recorddata = false
/ branch = [
    list.engl_mixed_trials.nextvalue;
]
</trial>

<list engl_mixed_trials>
/ items = (trial.engl_correct_mixed, trial.engl_incorrect_mixed)
/ poolsize = 24
</list>

Edited 2 Weeks Ago by Dave
xizhouxie
xizhouxie
Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)Associate Member (131 reputation)
Group: Forum Members
Posts: 21, Visits: 91
Dave - 11/13/2020
xizhouxie - 11/13/2020
Dave - 11/13/2020
xizhouxie - 11/13/2020
xizhouxie - 11/13/2020
I have 6 types of trials and I want them randomly displayed in one block so that I get 150 trials total:
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

12/13Chem_correct_mixed,
13/12Chem_incorrect_mixed, adding to 25 total 
12/13Engl_correct_mixed,
13/12Engl_incorrect_mixed, adding to 25 total

Picture:
Chem_correct and Chem_incorrect share a picture element with 50 items, 
Engl_correct and  Engl_incorrect share a picture element with 50 items,
Chem_correct_mixed and Chem_incorrect_mixed share a picture element with 25 items,
Engl_correct_mixed and Engl_incorrect_mixed share a picture element with 25 items,
All picture elements are set to noreplacenorepeat


CODE:
This is what I have in the block:
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

But instead of getting 
25 Chem_correct,
25 Chem_incorrect,
25 Engl_correct,
25 Engl_incorrect,

I would get 26, 24, ...
How do I fix that?


just adding that when i get the 26, 24, vs 25 trials all around, I'm also having pictures repeat, which is not what we want.  

/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,
Chem_correct_mixed,Chem_incorrect_mixed,Engl_correct_mixed,Engl_incorrect_mixed)]

You're sampling the 12 trial elements *in equal proportions*. 150/12 = 12.5. There obviously can be no such thing as 0.5 of a trial, hence you get imbalances. Enter the trial elements in the proportions you want into the noreplace selection pool.

that makes total sense. so I need to spell out the 150 trials total? 

If I'm reading your original description correctly, for the "chem mixed" and "eng mixed", two distinct <trial> elements together form a "type", and you want 25 trials of each "type", but don't care if the within-type distribution is (12 x subtrial A and 13 x subtrial B, or 13 x subtrial A and 12 x subtrial B). If so, the proper way to do this would be to create a dummy <trial> element for each type that you sample at the block-level, and have the actual trials in a <list> that the dummy trial /branch'es to. I.e.

<block example>
/ trials = [1-150 = noreplace(Chem_correct,Chem_incorrect,Engl_correct,Engl_incorrect,Chem_mixed,Engl_mixed)]
</block>

with

<trial chem_mixed>
/ trialduration = 0
/ recorddata = false
/ branch = [
    list.chem_mixed_trials.nextvalue;
]
</trial>

// with poolsize 24 and equal proportions, we're guaranteed to get 12 x chem_correct_mixed and 12 x chem_incorrect_mixed
// the 25th sample will randomly be either chem_correct_mixed or chem_incorrect_mixed
<list chem_mixed_trials>
/ items = (trial.chem_correct_mixed, trial.chem_incorrect_mixed)
/ poolsize = 24
</list>

<trial engl_mixed>
/ trialduration = 0
/ recorddata = false
/ branch = [
    list.engl_mixed_trials.nextvalue;
]
</trial>

<list engl_mixed_trials>
/ items = (trial.engl_correct_mixed, trial.engl_incorrect_mixed)
/ poolsize = 24
</list>



Perfect. Thank you so much. This is extremely clear.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search