Hi everyone !
I’m asking for help because I have trouble setting up an online experiment using pavlovia and prolific.
Context:
My experiment consist of transmission chain, i.e., people one after another completing a task.
I have already a running and working experiment for the first “generation” of participant.
Now, I need to take their results, and use them as inputs for the next generation.
Each result are in a neat .csv file, simply name “chainX.csv”, X being the number of the chain.
Using the shelf, I’m assigning each new participant a chain number, and then I retrieve the values from the .csv file corresponding to this specific chain.
All of that is working.
Concern:
If a participant quits the experiment (for example closing the tab), it count as a return on prolific, which leads to a new participant being recruited. However, this new participant might be attributed a chain number that might already be running, thus generating data that I don’t need.
Because we want to run multiple large generation, this can lead to quite a lost of money for my team.
Technical part:
In the shelf, I have an integer and a list as such:
chain_counter = 0
chain_csv = [chain1, chain2, etc…]
Just after the consent form, I do :
chain_csv = await psychoJS.shelf.getMostValue({key: [“chain_csv”]})
chain_counter = await psychoJS.shelf.getIntegerValue({key: [“chain_counter”]}) % chain_csv.length
condition_file = “path/” + chain_csv[chain_counter] + “.csv”;
chainInfo = new TrialHandler({
psychoJS: psychoJS,
nReps: 1, method: TrialHandler.Method.SEQUENTIAL,
extraInfo: expInfo, originPath: undefined,
trialList: condition_file,
seed: undefined, name: ‘chainInfo’});
psychoJS.shelf.addIntegerValue({key: [“chain_counter”], delta: 1})
Question:
Is there a way to either make prolific wait before recruiting again, or to track participant quitting so that I can update the shelf accordingly ?
If there’s not, I’m open to suggestion for mitigating damages.
Solution that I already though of:
- Adding another list (complete_csv for example) starting with 1 and going to 0 when participant complete the experiment, such that I’m left with only 1 on indexs where participant did not complete the experiment with these indexs csv.
Only problem is that the experiment is quite long (30 minutes ~), and if participants quit right at the beginning, the value on this list won’t be updated yet.
- I tried using the counterbalance option with dictionnaries, but it instantly delete the entry (my group are of size 1), thus creating a discrepancy between prolific wanting to recruit, and the shelf being empty.
I’m sorry for the long post, and I wish you all a good day.