Controlling the number of times a stimulus is presented over entire experiment


Controlling the number of times a stimulus is presented over entire...
Author
Message
Selene_MQ
Selene_MQ
New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)
Group: Forum Members
Posts: 15, Visits: 36
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene
Attachments
EIB_learning_a.iqx (24 views, 42.00 KB)
Dave
Dave
Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)
Group: Administrators
Posts: 10K, Visits: 55K
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.
Selene_MQ
Selene_MQ
New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)
Group: Forum Members
Posts: 15, Visits: 36
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene
Dave
Dave
Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)
Group: Administrators
Posts: 10K, Visits: 55K
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Selene_MQ
Selene_MQ
New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)
Group: Forum Members
Posts: 15, Visits: 36
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!
Dave
Dave
Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)
Group: Administrators
Posts: 10K, Visits: 55K
Selene_MQ - 4/30/2020
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!

You have to hardcode two things, then.

- The full item order in the non-target list, and set it to /selectionmode = sequence
- The order of target and non-target trials run by the blocks. That you'll then also have to switch to a list, and set it to sequence.

That's not necessarily hard, but fiddly and error-prone given the amount of trials.
Selene_MQ
Selene_MQ
New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)
Group: Forum Members
Posts: 15, Visits: 36
Dave - 4/30/2020
Selene_MQ - 4/30/2020
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!

You have to hardcode two things, then.

- The full item order in the non-target list, and set it to /selectionmode = sequence
- The order of target and non-target trials run by the blocks. That you'll then also have to switch to a list, and set it to sequence.

That's not necessarily hard, but fiddly and error-prone given the amount of trials.

Thank you very much for your answer, Dave.
I generated, for each of the 8 blocks, the sequence that I want, and have also generated for each block a vector with the order of Target/Non-target that matches my sequence.
I am not sure how to implement it, because each of the 8 blocks will have a different sequence... Would you please be able to help with this? I have attached the script, and under the "LIST" tab, you can see the orders that I generated.

Thank you so much for your help,
Selene
Attachments
EIB_learning_aWorking on it.iqx (12 views, 49.00 KB)
Dave
Dave
Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)
Group: Administrators
Posts: 10K, Visits: 55K
Selene_MQ - 5/4/2020
Dave - 4/30/2020
Selene_MQ - 4/30/2020
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!

You have to hardcode two things, then.

- The full item order in the non-target list, and set it to /selectionmode = sequence
- The order of target and non-target trials run by the blocks. That you'll then also have to switch to a list, and set it to sequence.

That's not necessarily hard, but fiddly and error-prone given the amount of trials.

Thank you very much for your answer, Dave.
I generated, for each of the 8 blocks, the sequence that I want, and have also generated for each block a vector with the order of Target/Non-target that matches my sequence.
I am not sure how to implement it, because each of the 8 blocks will have a different sequence... Would you please be able to help with this? I have attached the script, and under the "LIST" tab, you can see the orders that I generated.

Thank you so much for your help,
Selene

You can creat lists of lists and select the list you need /onblockbegin. See e.g. https://www.millisecond.com/forums/Topic16652.aspx#16717, https://www.millisecond.com/forums/FindPost20679.aspx




Edited Last Month by Dave
Selene_MQ
Selene_MQ
New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)New Member (34 reputation)
Group: Forum Members
Posts: 15, Visits: 36
Dave - 5/4/2020
Selene_MQ - 5/4/2020
Dave - 4/30/2020
Selene_MQ - 4/30/2020
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!

You have to hardcode two things, then.

- The full item order in the non-target list, and set it to /selectionmode = sequence
- The order of target and non-target trials run by the blocks. That you'll then also have to switch to a list, and set it to sequence.

That's not necessarily hard, but fiddly and error-prone given the amount of trials.

Thank you very much for your answer, Dave.
I generated, for each of the 8 blocks, the sequence that I want, and have also generated for each block a vector with the order of Target/Non-target that matches my sequence.
I am not sure how to implement it, because each of the 8 blocks will have a different sequence... Would you please be able to help with this? I have attached the script, and under the "LIST" tab, you can see the orders that I generated.

Thank you so much for your help,
Selene

You can creat lists of lists and select the list you need /onblockbegin. See e.g. https://www.millisecond.com/forums/Topic16652.aspx#16717, https://www.millisecond.com/forums/FindPost20679.aspx




Thanks for your answer Dace. I had a look at these posts and try to adapt it to my code. I think I'm not too far off, but it just won't start. Now it throws an error when it reaches the blocks : "Could not locate element ". " and "trial 2 is unassigned" for each of the blocks.

Any idea where I sent wrong?

Thanks so much!
Attachments
EIB_learning_aWorking on it.iqx (12 views, 59.00 KB)
Dave
Dave
Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)Supreme Being (805K reputation)
Group: Administrators
Posts: 10K, Visits: 55K
Selene_MQ - 5/5/2020
Dave - 5/4/2020
Selene_MQ - 5/4/2020
Dave - 4/30/2020
Selene_MQ - 4/30/2020
Dave - 4/29/2020
Selene_MQ - 4/29/2020
Dave - 4/28/2020
Selene_MQ - 4/28/2020
Good morning,

I am very new to Inquisit and still not familiar with how it works. I have been trying to adapt the existing Emotional-n-back task that I got from the library, to create a simple 1-back task using 56 different images. The idea is for participants to implicitely learn these images by doing a 1-back task. So far, the script seems to be doing approximately what I want, except that when I calculated at the end the number of times each image was presented, it varied greatly (with 8 blocks, and 64 images per block, I would expect each of my 56 images to appear about 9 times, but in reality it varied between 2 and 23). I really don't know how to control this so that each image appears the same number of times across the experiment.

I have attached the script to this post, and would greatly appreciate any help you may provide,

Thank you so much in advance,
Selene

<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
/ not = (values.currenttarget)
/ replace = true
</list>

You're sampling items randomly *with* replacement. If you want a more even distribution, sample without replacement.

Thanks a  lot for that. It does make it slightly better, but there is still a large variation in the number of times each image is seen (from 7 to 18 times instead of having them all presented 9 times). Is there another way to make it more even, that doesn't require massive changes in the script?

Thank you so much!
Selene

Well, it's an n-back task. I.e. some images *have* to be repeated more than others, because they're target images, i.e. the same image as than n (here: 1) trials before. Other images aren't targets, so will ultimately be displayed less often, because -- among other things -- there are fewer target trials than there are non-target trials. In short, no, I don't think there's any easy way to force each image to be displayed exactly (or close to) 9 times over the course of the task. In fact, I don't know that there's any way at all.

Thanks for your answer. I do understand that the targets have to be repeated, but because each image in the pool can be a target (i.e. there isn't a separate pool of images that constitute the non-target images), I think it's possible to think of a solution that will present each image exactly as many times as possible.

So my new question is: if I can figure out an order of presentation that works (for example: 4 6 8 8 5 9 1 12 13 13 etc... over the entire experiment), how easy is it to then hard-code the order in the script?

Thanks a lot!

You have to hardcode two things, then.

- The full item order in the non-target list, and set it to /selectionmode = sequence
- The order of target and non-target trials run by the blocks. That you'll then also have to switch to a list, and set it to sequence.

That's not necessarily hard, but fiddly and error-prone given the amount of trials.

Thank you very much for your answer, Dave.
I generated, for each of the 8 blocks, the sequence that I want, and have also generated for each block a vector with the order of Target/Non-target that matches my sequence.
I am not sure how to implement it, because each of the 8 blocks will have a different sequence... Would you please be able to help with this? I have attached the script, and under the "LIST" tab, you can see the orders that I generated.

Thank you so much for your help,
Selene

You can creat lists of lists and select the list you need /onblockbegin. See e.g. https://www.millisecond.com/forums/Topic16652.aspx#16717, https://www.millisecond.com/forums/FindPost20679.aspx




Thanks for your answer Dace. I had a look at these posts and try to adapt it to my code. I think I'm not too far off, but it just won't start. Now it throws an error when it reaches the blocks : "Could not locate element ". " and "trial 2 is unassigned" for each of the blocks.

Any idea where I sent wrong?

Thanks so much!

Your /trials attributs in the blocks are all misspecified.

/ trials = [1 = startfixation; 2 - 66 = (nontarget, nontarget, nontarget, nontarget, ...)]

To run the sequence you specifed, it ought to be

/ trials = [1 = startfixation; 2 = sequence(nontarget, nontarget, nontarget, nontarget, ...)]

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search