Break in experiment: Does random work?


Author
Message
BehaviouralScience
BehaviouralScience
Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)Associate Member (232 reputation)
Group: Forum Members
Posts: 8, Visits: 1
Dear board,

I am running an experiment with 600 trials, that consists of a 3x2x10 design, thus with 600 trials I have had every possible combination.

<block all>
/ bgstim = (depressionreminder, anxietyreminder)
/ preinstructions = (ready)
/ trials = [1-600 = noreplace(aa, ad, dd, da, na, nd)]
/ blockfeedback = (latency, correct)
</block>

However that is much to long for the participants and I would like to split that in two (or three) giving them a chance to recover their attention. But I am afraid that the random counter will then start again with all items. Is there a possibility to put in a break, but let the random-noreplacement go on?

Thanks very much!

Martin

IvoR
IvoR
Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)Guru (6.6K reputation)
Group: Forum Members
Posts: 99, Visits: 1
Hey Martin,

Are you using Inquisit 2.0 or Inquisit 3.0? If you're using the latter, you should in the future post your questions in the Inquisit 3.0 subforum. Thanks in advance =)

To answer your question:
Inquisit isn't possible to make a break, but you can do that yourself using the branch and values-element.

Firstly, you define a values-element in which you make a variable which counts the times a trial was run:

<values>
/ numberoftrialsrun = 0
</values>

Second, you make sure that every trial raises this variable with one, for example:

<trial aa>
/ontrialbegin = [values.numberoftrialsrun= values.numberoftrialsrun+ 1]

Third and last, you use the branching-function to check if the number of 300 trials has been met. If so, you use it to call a pause-trial which you'll have to define yourself:

(continuing in trial aa)
/branch = [if (values.numberoftrialsrun == 300) trial.pause)]

When the pause-trial is finished, Inquisit will go back where it left of, so it will continue from the 300th trial, and the noreplace stays intact.

Hope this helped!

Ivor



Jule
Jule
Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)
Group: Forum Members
Posts: 8, Visits: 1

Hi,


some years later i am trying to do something similar but for some reason the code does not work (Error: statement (the branch statement) invalid. unmatched parenthesis).


I have added the /ontrialbegin and /branch lines to all my trials, made a counter and ... it does not work. any ideas what the error could mean?


thanks!


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

Error: statement (the branch statement) invalid. unmatched parenthesis


and ... it does not work. any ideas what the error could mean?



It means just that. There's a stray parenthesis:


/branch = [if (values.numberoftrialsrun == 300) trial.pause)]


Regards,


~Dave


Jule
Jule
Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)
Group: Forum Members
Posts: 8, Visits: 1

Thanks very much!!!


i have another question though: i have in total 520 trials which i want to break up in 5x104 trials. When i use the code above (/branch = [if (values.numberoftrialsrun == 104) trial.pause] ),  i get a break after 104 trials, but not in the remaining 416 trials... Is there any way of setting the counter (in 'value') back to 0 after it has reached 104? 


thanks in advance *


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

Well, yes, by the same way you increase the value in the first place. Just reset it to 0 in <trial pause> as in


<trial pause>
/ ontrialend = [values.numberoftrialsrun=0]


[...]


</trial>


Alternatively change your /branch to also trigger for 208, 312, etc. I.e.,


/ branch = [if (values.numberoftrialsrun == 104 || values.numberoftrialsrun == 208 || ...) trial.pause]


Regards,


~Dave


Jule
Jule
Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)Respected Member (471 reputation)
Group: Forum Members
Posts: 8, Visits: 1

thank you so much for your quick and helpful reply!



GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search