Some of you might be familiar with the social deduction game, The Resistance. It's a fun game of asymmetric knowledge where traitors try to hide within a group and covertly fail a mission. It's also a very popular game in my group of friends and the source of many an argument. I'm trying to do some analysis of the game (with the understanding that a complete analysis will definitely be impossible!).

The game

(skip this if you know how to play!)

In The Resistance players are either members of the resistance trying to overthrow a corrupt government or sneaky governmental spies trying to undermine the resistance. The spies know each other but the resistance members don't.

The game consists of 5 rounds. Each round involves a leader (who rotates through) selecting a certain number of people to go on a mission. Once a team is decided upon, the mission is put to a public vote. A majority vote decides whether the mission goes ahead, or if the team is scrapped and the leader rotates to create a new team. This "approved" team then votes in secret whether the mission is a "success" or a "failure". A single failure on a mission renders it unsuccessful. This is done by dealing a pass and fail card to each member on a team, and those members returning either a pass or a fail. Resistance members must pass each mission. Spies have a choice whether to pass or fail.

Both the number of spies and the number of people on each mission depend on the number of people playing the game. Round sizes and number of spies (wikipedia)

Work so far

Definition of Variables:

  • $N$: Number of players
  • $M_i$: Number of people in the $i$th mission
  • $S_T$: Total number of spies
  • $s$: Number of spies in a given scenario
  • $R$: The "result" of a mission (i.e., number of fail cards revealed)
  • $s*=\min(S_T, M)$ an filler variable representing the upper limit of some calculations later
  • $P$ is the probability of some event
  • $C$ is the number of combinations something can happen

In my analysis so far, I've calculated a few things.

The probability of a particular mission having $s$ spies is simple combinatorics $$P(\text{Mission has s spies}) = \frac{\binom{N-S_T}{M_i-s}{S_T \choose s}}{N\choose M_i}$$

The probability, given a result $R$, that any single person on a mission is a spy involves summing over the possibilities - if no fails show up, the spies may be simply lying low. If one fail shows up, there may be two spies and one is lying low (in this case, we start summation at R=1 fail) $$ P(\text{Player }i\text{ is a spy}) = \sum_{j=R}^{s^*} P(s)\frac{s}{M}$$

The probability, given a results $R$ from a mission, that any single player not on a mission is a spy, similar to above. $$ P(\text{Player }i\text{ is a spy}) = \sum_{j=R}^{s^*} P(s)\frac{S_T-s}{N-M}$$

I've also calculated the above with the assumption that you are on the side of the resistance, as this is often the only thing that players know for sure.

My question is this: given a series of probabilities for each player which represent the likelihood of them being a spy $\{P_1,P_2,\ldots,P_N \}$, and given the results of a subsequent mission $R$ (on which a random selection of $M_i$ players went), how do I update these probabilities? Is this even possible using simple calculations like this?

What I've attempted to do so far is to analyse the mission as though it were a "medical intervention" by attempting to calculate the sensitivity and specificity of an arbitrary mission in detecting spies.

      |    Spy    |   No spy  |
Fail  |    TP     |     FP    |
Pass  |    FN     |     TN    |

TN, TP, FN, FP stand for True and False negatives and positives respectively. With this I assigned an arbitrary probability $\eta$ the probability that any particular spy would vote to fail a mission. It's possible to fill this table:

$$TN = P(\text{0 spies})$$ $$TP = \sum_{j=1}^{s^*}P(j)(1-(1-\eta)^j)$$ $$FN = 1 - TP$$ $$FP = 0$$

You can calculate the sensitivity and specificity of using a mission as a "test" for spies:

$$Sn = {TP \over {TP+FN}}$$ $$Sp = {TN \over {TN+FP}}$$

This gives a specificity of 100% which makes sense, because if a mission has a fail then you are absolutely certain there is a spy on it. I then tried calculating the pre- and post-test probabilities based on this but ran into problems. Given a specificity of 100%, the likelihood ratio is infinity.

If you're interested in the numbers, you can find my worksheet here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.