Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to enforce a specific composition of participants? #55

Open
eamanj opened this issue Mar 28, 2019 · 8 comments
Open

How to enforce a specific composition of participants? #55

eamanj opened this issue Mar 28, 2019 · 8 comments

Comments

@eamanj
Copy link

eamanj commented Mar 28, 2019

I have a game in which participants come from a panel with known attributes. We direct them to the platform with their attributes in the link. They still have the chance to update their attributes in an intro stage survey. How can I enforce a specific composition of subjects based on an attribute X? For example, I want 3 players with value of x and 2 players with value of y in their attribute X in the game stage. Is there any way to do this with the platform? If it requires making small changes in the core, can you direct me how to do this?

@npaton
Copy link
Contributor

npaton commented Mar 28, 2019

There is currently no easy way to do this. Assignment to a game happens early, and it is difficult to change the current system's behavior.

We have recognized this issue and we are working on a large change to Empirica that will address this case and other limitations we have come across. This new release of Empirica is not planned for the near future, but should be available later this year, hopefully this summer.

@joshua-a-becker
Copy link

@eamanj ---- you can hack a solution to this by using your game.init() function to assign people to groups. It's counter to Empirica's design, but gets the job done. The downside is that it's "leaky" for participants---i.e., you may find yourself unable to use all participants, and maybe have to pay them something just for showing up.

@npaton @amaatouq --- i've though a lot about game assignment... i don't have any perfect solution (i'm sure you've already faced a lot of the inevitable tradeoffs) and i'd love to join the brainstorm if it's still open for redesign. i'm currently sitting here looking at my server using 0.3 ECU just to sit idle, because I have a batch with 100 single-person game lobbies running.

@npaton
Copy link
Contributor

npaton commented Mar 29, 2019

@joshua-a-becker Let's plan to meet soon to discuss this, we'd love to get your input.

@eamanj
Copy link
Author

eamanj commented Mar 30, 2019

@joshua-a-becker are you saying that I should ask for more participants than I need and hope that the right composition eventually arrives? and send the redundant subjects to exit survey?

@amaatouq
Copy link
Member

No, what I believe josh meant is to have playerCount be 20 for example and then create at gameInit() 5 connected components (5 networks) of 4 players each.. in gameinit() you have access to their affiliation so you can decide to make each network exactly 2 and 2... then you have to change the code throughout such that people only observe their peers, not everyone in game.players list.

@joshua-a-becker
Copy link

you're both right --- @amaatouq is describing the technique, but this does necessarily result in overflow, so you might have to send some players away. like, if you need each group to have 50/50 democrats/republicans but you start with a 70/30 composition.... then you end up discarding 40% of your players.

AND i was imagining this solution, i realize, in the paradigm where everybody starts at the exact same time. it's more challenging for the trickle-in approach i'd guess. happy to share the tools i use for simultaneous start, which brings a host of other challenges.

admittedly a far from perfect solution---i was just brainstorming. could be useful for a pilot test but it gets expensive in the long run.

@joshua-a-becker
Copy link

joshua-a-becker commented Mar 30, 2019

though----i feel like you'd have to discard 40% of your players no matter what the method? Doug can probably comment better on that as he has experience with this.

@amaatouq
Copy link
Member

Or have your treatment be more continues (ie the level of polarization/diversity; rather than a binary treatement) and creating groups at random will allow you to make your causal claim .. also, you can make sure to qualify 50% of each type (even if the population is unbalanced, ie 70% 30%, which means you’ll over sample the minority group), which will increase your statsitical power.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants