|
Post by lourenco on Jun 13, 2020 16:58:34 GMT
Greetings everyone!
So I have an experiment with 160 total trials, and 8 different conditions. I want to make every condition having exactly 20 trials each. Righ now, some conditions are having 23, while others 18. Is there a way to do it?
Thanks in advance!
|
|
|
Post by alexandra (AEC) on Jun 15, 2020 9:28:06 GMT
Hi there,
it would help hugely if you could describe your experiment in a bit more detail and also show relevant code to your problem. Otherwise it is very hard to be able to help.
|
|
|
Post by lourenco on Jun 15, 2020 12:58:49 GMT
Hi there, it would help hugely if you could describe your experiment in a bit more detail and also show relevant code to your problem. Otherwise it is very hard to be able to help.
Hi Alexandra, thank's for your answer.
So, imagine a classic Simon task. We create a table in the code with four lines, one for every condition. The command "table" on the code then randomly chooses one line on each trial, right?
My problem is to make every line of the table (each respective condition on the Simon Task) be choosen the same amount of trials. So if I have 100 trials, every condition will be choosen in 25 trials exactly. Right now this is being random, so not always every condition gets 25 trials.
|
|
|
Post by alexandra (AEC) on Jun 15, 2020 15:31:34 GMT
Yes, rows in tables are by default chosen randomly. Have you set in your block that all rows should be chosen before being repeated? block blockname tasklist yourtask 160 all_before_repeat end If you have written this in your script, you might have a similar problem as alessiab appears to have, who posted a similar thread here psytoolkit.boards.net/thread/248/trial-list. Is it the same problem? If so, I do not know what the problem could be, because my experiments work fine with the all_before_repeat command. I just double-checked this second.
|
|
|
Post by Lourenco2 on Jun 17, 2020 16:02:58 GMT
Thank you, Alexandra, I think this will solve my issue.
|
|
|
Post by lourenco on Jun 30, 2020 13:38:13 GMT
Hello, me again with the same issue.
So, I've written the "all before repeat" command on the block session, as suggested.
The problem still persists. I'm getting different number of trials for each condition I have (I have 8 conditions and 120 trials, so I would like exactly 15 trials per each condition).
The suggestion by the administrator was this:
"Oct 17, 20 PsyToolkit Avatar 19 7:07:48 GMT -3 PsyToolkit said: There are 2 questions here, which I will answer separately....
1) How do I get exactly the same numbers of trials as requested. Now in your case, there is a random selection, so you will get something close. If you want instead EXACTLY the numbers do it as follows:
- Make one "task" for valid trials (for example valid_task) - Make one "task" for invalid trials (for example invalid_task)
Then in your "block" create a task list as follows with trial numbers behind the tasks matching your likelihood. For example
tasklist valid_task 60 invalid task 40 end
2) Again, you want EXACTLY the numbers you want. That means you do not have pure randomness, and that can be done, similarly to the solution to question 1.
Of course, if you are really so detailed about the exact numbers, you need to ask yourself some other questions as well: For example, what happens when people make a mistake. It maybe that a participant just looked out of the window for two seconds and missed a trial. Is that not a problem for you? If not, then why do you want to enforce exact trial numbers instead of a real randomness. Of course, I know, some people want to do it that way, it is technically possible, but not really making any difference, I think.
If you want to have more control, you can also do the following, as a completely different solution:
- Make one task, and let valid/invalid as well as SOAs set by the table - Make a large table, do the randomization "offline" and include that table. - Run the table with the "fixed" option as follows:
tasklist my_task fixed 100 end
"
I am not sure if this solution will work for my case. I dont want to do divide my tasks, because this way the first will be done followed by the second.
I want the conditions still being random, but in a way that each condition gets selected the same number of trials.
My script is as follows:
table simoncompistalateral50 "estesq respesq comp valida" -600 red_circle pistalateral -600 1 "estdir respesq incomp valida" 600 red_circle pistalateral 600 1 "estdir respdir comp valida" 600 green_circle pistalateral 600 2 "estesq respdir incomp valida" -600 green_circle pistalateral -600 2 "estesq respesq comp invalida" -600 red_circle pistalateral 600 1 "estdir respesq incomp invalida" 600 red_circle pistalateral -600 1 "estdir respdir comp invalida" 600 green_circle pistalateral -600 2 "estesq respdir incomp invalida" -600 green_circle pistalateral 600 2
task simoncompistalateral50 table simoncompistalateral50 keys q p show bitmap colaladoesquerdo -200 400 show bitmap colaladodireito 200 400 show bitmap fixacao 0 0 delay 1000 clear 3 show bitmap @4 @5 0 delay 150 clear 4 show bitmap @3 @2 0 readkey @6 1000 clear 5 delay 1000 save BLOCKNAME @1 KEY STATUS RT
block pistalateral50 message mensagemprimeirointervalo tasklist simoncompistalateral50 120 all_before_repeat end
|
|
|
Post by PsyToolkit on Jun 30, 2020 14:31:28 GMT
You also need to ask yourself the question WHY exactly it has to be EXACTLY N numbers for each condition. People will not notice minute differences from it anyway, and arguably, people make mistakes, probably because they simply did not look at the screen or because they blinked, were distracted, so you can NEVER have exactly the same amount of experience in each condition anyway.
|
|
|
Post by lourenco on Jun 30, 2020 14:55:19 GMT
You also need to ask yourself the question WHY exactly it has to be EXACTLY N numbers for each condition. People will not notice minute differences from it anyway, and arguably, people make mistakes, probably because they simply did not look at the screen or because they blinked, were distracted, so you can NEVER have exactly the same amount of experience in each condition anyway. Thank you for the answer. I understand this.
It's a methodological concern, strictly linked to my experimental hypothesis. I'm testing the influence of clues in the Simon task, and it would be important that the clues would appear equally on both sides, otherwise the effect I will measure may be due to this unbalance between the conditions.
If this cannot be done, that's ok, I believe the high number of participants may "dillute" this unbalance.
One think I can't figure it out is why the command "all-before-repeat" did not work. Any thoughts on that?
|
|