Millisecond Forums

Present randomly a certain number of specific stimuli (prime).

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

By derodriguezz - 2/11/2018

Hi!
I'm using the AMP task (affective misattribution procedure), where I must present 20 trials of one kind of image (primeA), 20 trials of another kind (primeB) and some neutral stimuli. When I run the script, the differents stimuli are presented different number of times between them, instead the quantity that I need. I got this result with this code:
<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [1 = instructions; 2-61 = noreplacenorepeat(primeA, primeB, primeNeutral)]
</block>


To get the proportion between primes (20/20) I wrote this code (that presents 4 randomized trials of stimuli primeA and stimuli primeB, followed by one neutral, 10 times): 

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [
1 = instructions; 2 = getReady; 
3-6 = noreplacenorepeat(primeA, primeB); 7 = primeNeutral; 
8-11 = noreplacenorepeat(primeA, primeB); 12 = primeNeutral; 
13-16 = noreplacenorepeat(primeA, primeB); 17 = primeNeutral;
18-21 = noreplacenorepeat(primeA, primeB); 22 = primeNeutral;
23-26 = noreplacenorepeat(primeA, primeB); 27 = primeNeutral;
28-31 = noreplacenorepeat(primeA, primeB); 32 = primeNeutral;
33-36 = noreplacenorepeat(primeA, primeB); 37 = primeNeutral;
38-41 = noreplacenorepeat(primeA, primeB); 42 = primeNeutral;
43-46 = noreplacenorepeat(primeA, primeB); 47 = primeNeutral;
48-51 = noreplacenorepeat(primeA,primeB); 52 = primeNeutral;
]
/ recorddata = true
</block>

But still, the stimuli are not fully randomized. Is there any way to make that code simpler, guaranteeing at the end the number of presentation of all kind of stimuli?
By Dave - 2/12/2018

derodriguezz - Sunday, February 11, 2018
Hi!
I'm using the AMP task (affective misattribution procedure), where I must present 20 trials of one kind of image (primeA), 20 trials of another kind (primeB) and some neutral stimuli. When I run the script, the differents stimuli are presented different number of times between them, instead the quantity that I need. I got this result with this code:
<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [1 = instructions; 2-61 = noreplacenorepeat(primeA, primeB, primeNeutral)]
</block>


To get the proportion between primes (20/20) I wrote this code (that presents 4 randomized trials of stimuli primeA and stimuli primeB, followed by one neutral, 10 times): 

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [
1 = instructions; 2 = getReady; 
3-6 = noreplacenorepeat(primeA, primeB); 7 = primeNeutral; 
8-11 = noreplacenorepeat(primeA, primeB); 12 = primeNeutral; 
13-16 = noreplacenorepeat(primeA, primeB); 17 = primeNeutral;
18-21 = noreplacenorepeat(primeA, primeB); 22 = primeNeutral;
23-26 = noreplacenorepeat(primeA, primeB); 27 = primeNeutral;
28-31 = noreplacenorepeat(primeA, primeB); 32 = primeNeutral;
33-36 = noreplacenorepeat(primeA, primeB); 37 = primeNeutral;
38-41 = noreplacenorepeat(primeA, primeB); 42 = primeNeutral;
43-46 = noreplacenorepeat(primeA, primeB); 47 = primeNeutral;
48-51 = noreplacenorepeat(primeA,primeB); 52 = primeNeutral;
]
/ recorddata = true
</block>

But still, the stimuli are not fully randomized. Is there any way to make that code simpler, guaranteeing at the end the number of presentation of all kind of stimuli?

If you want 50 trials total, with 20 x primeA, 20 x primeB, and 10 x primeNeutral, all in random order, you need to enter the trials into the noreplace() selection pool in the desired proportions:

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [1 = instructions; 2-51 = noreplacenorepeat(primeA, primeA, primeB, primeB, primeNeutral)]
</block>
By derodriguezz - 2/22/2018

Dave - Monday, February 12, 2018
derodriguezz - Sunday, February 11, 2018
Hi!
I'm using the AMP task (affective misattribution procedure), where I must present 20 trials of one kind of image (primeA), 20 trials of another kind (primeB) and some neutral stimuli. When I run the script, the differents stimuli are presented different number of times between them, instead the quantity that I need. I got this result with this code:
<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [1 = instructions; 2-61 = noreplacenorepeat(primeA, primeB, primeNeutral)]
</block>


To get the proportion between primes (20/20) I wrote this code (that presents 4 randomized trials of stimuli primeA and stimuli primeB, followed by one neutral, 10 times): 

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [
1 = instructions; 2 = getReady; 
3-6 = noreplacenorepeat(primeA, primeB); 7 = primeNeutral; 
8-11 = noreplacenorepeat(primeA, primeB); 12 = primeNeutral; 
13-16 = noreplacenorepeat(primeA, primeB); 17 = primeNeutral;
18-21 = noreplacenorepeat(primeA, primeB); 22 = primeNeutral;
23-26 = noreplacenorepeat(primeA, primeB); 27 = primeNeutral;
28-31 = noreplacenorepeat(primeA, primeB); 32 = primeNeutral;
33-36 = noreplacenorepeat(primeA, primeB); 37 = primeNeutral;
38-41 = noreplacenorepeat(primeA, primeB); 42 = primeNeutral;
43-46 = noreplacenorepeat(primeA, primeB); 47 = primeNeutral;
48-51 = noreplacenorepeat(primeA,primeB); 52 = primeNeutral;
]
/ recorddata = true
</block>

But still, the stimuli are not fully randomized. Is there any way to make that code simpler, guaranteeing at the end the number of presentation of all kind of stimuli?

If you want 50 trials total, with 20 x primeA, 20 x primeB, and 10 x primeNeutral, all in random order, you need to enter the trials into the noreplace() selection pool in the desired proportions:

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [1 = instructions; 2-51 = noreplacenorepeat(primeA, primeA, primeB, primeB, primeNeutral)]
</block>

okey, so if i understood correctly, if i want 60 trials total, with 20xprimeA, 20xPrimeB, and 20xprimeNeutral, all in random order, this will be the proportions?

<block test>
/ bgstim = (attributeAlabel, attributeBlabel)
/ trials = [
1 = instructions; 2 = getReady;
3-62 = noreplacenorepeat(primeA, primeA, primeA, primeB, primeB, primeB, primeNeutral, primeNeutral, primeNeutral)
]
/ recorddata = true
</block>