MARS: mixed absolute and relative score
-
@casimir said in MARS: mixed absolute and relative score:
Likewise I think it's very likely that some voters will only use the lower part of the range, because they don't like any of the alternatives.
I'd like to see evidence of this. I don't understand why you'd bother taking time out of your day and going to the polls, only to say "I'd like my vote to only count for 50% of what it could."
I tend to be very careful when guessing what someone is doing in their head, other than using a reasonable strategy to get the best results for themselves, or simply being lazy.
-
@rob said in MARS: mixed absolute and relative score:
I'd like to see evidence of this. I don't understand why you'd bother taking time out of your day and going to the polls, only to say "I'd like my vote to only count for 50% of what it could."
You'd be very surprised. I ran some STAR elections for a college club, and it was very very frequent that people would not normalize their scores, or they would give equal scores even when only two candidates were running for the position.
Granted, these were incredibly low-stakes elections, but I was surprised it happened at all.
-
@andy-dienes Yeah I'd tend to chalk that up to unfamiliarity with the system, more than truly being intentional. Shouldn't that tend to go away over time once a system becomes more established?
Often people go into a new system (not just voting) and behave "nicely" and naively, and when they lose, they feel resentful and say "fine, I'll play hardball too," That's my observation anyway. Behaviour tends to converge on strategic, but it can take time.
-
@rob said in MARS: mixed absolute and relative score:
Behaviour tends to converge on strategic, but it can take time.
Experience with choose-one voting supports your point.
-
Hmm, I really like this idea in theory. Have you worked out what criteria it complies with?
-
If people don't use the maximum number in Score, I'd say they are trying to support "None of the Above" (NOTA). We should require that NOTA is treated as a candidate in all elections and that the specification of the election state what shall happen in case should NOTA win. Some candidates for that are:
- new candidates sought for another attempt to elect someone to the office;
- office abolished
-
@jack-waugh said in MARS: mixed absolute and relative score:
If people don't use the maximum number in Score, I'd say they are trying to support "None of the Above" (NOTA).
I don't see how those are logically related. If we want a NOTA option, I'd think that would be a situation where every candidate gets a score of <50%, or instead we could explicitly include an option for reopening nominations.
-
@lime said in MARS: mixed absolute and relative score:
Hmm, I really like this idea in theory. Have you worked out what criteria it complies with?
I haven't looked closer into it, but because it mixes score and Condorcet, it's trivial to see that it also fails most criteria either of those fails. In the same way, it very likely satisfies criteria that are satisfied by both Condorcet and score.
I'm pretty sure it satisfies: monotonicity, independence of clones, reversal symmetry, equal vote criterion
-
The below are the result of 4,000 simulated elections following the exact conditions of the STAR paper:
Despite the seeming complexity, MARS also resolves in around the same time as the other methods, and may quite possibly outperform methods requiring full pairwise preference matrices, which are even more complex.
-
Here's the code for use in vse-sim if interested:
@classmethod def results(cls, ballots, **kwargs): baseResults = super(MARS0to, cls).results(ballots, **kwargs) candidateIndices = list(range(len(baseResults))) remainingCandidates = candidateIndices[:] nvot = len(ballots) while len(remainingCandidates) > 1: (secondLowest, lowest) = sorted(remainingCandidates, key=lambda i: baseResults[i])[:2] voteMargin = sum(sign(ballot[lowest] - ballot[secondLowest]) for ballot in ballots)/nvot scoreMargin = (baseResults[lowest] - baseResults[secondLowest])/cls.topRank if (voteMargin > 0 and voteMargin > abs(scoreMargin)) or (scoreMargin > 0 and scoreMargin > abs(voteMargin)): remainingCandidates.remove(secondLowest) else: remainingCandidates.remove(lowest) winner = remainingCandidates[0] top = sorted(range(len(baseResults)), key=lambda i: baseResults[i])[-1] if winner != top: baseResults[winner] = baseResults[top] + 0.01 return baseResults
-
I've thought of a slightly-simpler variant on MARS: Each candidate's score is equal to their range score, plus the score of the strongest (highest-scored) candidate they majority-beat. Thinking through what properties this would have.