lookit / lookit-api

Codebase for Lookit v2 and Experimenter v2. Includes an API. Docs: http://lookit.readthedocs.io/
https://lookit.mit.edu/
MIT License
10 stars 18 forks source link

Balanced condition assignment based on what other sessions have been completed #677

Open theomorfoisse opened 4 years ago

theomorfoisse commented 4 years ago

The problem is this: I have 48 different videos corresponding to different conditions, and I would like each participant to see one of these 48 videos, but not randomly. I would like to be able to administer them in a particular order - the first participant would see the first video, the n-th participant, the n-th video... etc. So the idea is to create a kind of global variable for all the experiments that allows the right video to be seen by the right participant. An idea is to use this global variable to indicate the value of whichFrames in a select-randomizer-test frame, if that's make sense.

In summary, the idea is to do assignment based on what sessions other kids have done, by storing additional (non-identifiable) data on the study model itself - e.g. something like “conditions for the last probably-usable response.”

Théo Morfoisse

Possible general approaches:

kimberscott commented 4 years ago

Just copying over some notes from Slack -

The current workaround: If you essentially want to end up with N usable data points evenly balanced across each of 48 conditions, you could start out assigning kids randomly and (as you code the data and count up how many usable data points you have) stop testing in the conditions that are done. This is obviously a bit clunky (and will require stopping/resubmitting/restarting as you change conditions) but is what people have done so far, and works fine.

There are a few things that make “just do the next video for the next kid” a little more complicated than it sounds to set up as an option, though not impossible:

Questions for Théo and any other folks interested -

theomorfoisse commented 4 years ago
  1. I don't think the order is essential here. What is more important is that each child be associated with a specific condition.

  2. There's a compromise here for sure. On the one hand we would like to eliminate a condition if we are sure that the data is analyzable - child meets the criteria and the family completes the entire study. On the other hand, as you said, the algorithm has to be reactive, if several children are starting the experiment in the same time. But I would opt for safety, and I would wait until the child has done all the experiment, and checks some criteria set in the survey for example.

kimberscott commented 4 years ago

Merging this with lookit/ember-lookit-frameplayer#47, Allow randomization with a goal of maintaining a given ratio of condition assignments

kimberscott commented 3 years ago

Note this is a frequent question/request on Slack (probably 5-10 people now?) as well as important for MCS - prioritize among other usability issues!