Both before and since the UK election in May, there has been a lot of talk of electoral reform and how it would affect British politics and the makeup of Parliament. As the Liberal Democrats have secured a referendum on bringing in Alternative Vote, I thought it would be a worthwhile exercise to develop a full simulation of how elections under Alternative Vote would work out in the UK, based on the results from May 6th.
While there are full methodological details below, the model I’ve developed is a full and thorough simulation of AV, modeling every round of transfers in all 650 constituencies, based on educated estimates of the transfer rates between different parties. I’ve run the model twice, under slightly different assumptions. In the first version of the model (which I’ll refer to as the simple model), I have assumed that the votes cast on the 6th of May would be the first preferences of voters in an AV election. This is a nice simple assumption to make, but it doesn’t take into account that people vote tactically in first-past-the-post (FPTP), and often won’t actually vote for their preferred candidate if they don’t think he has a chance of winning. AV would remove the incentive to do so, so you would expect that first preferences would be different than votes cast under FPTP.
In an attempt to account for this, I’ve also run a second version of the model (which I’ll call the adjusted model). One of the notable features of the recent election is how different the actual result was from what people were saying to pollsters right up to the day before the vote. It’s a reasonable hypothesis to say that the polls were reporting the actual preferences of voters, and that the shift on election day was the result of people voting tactically due to FPTP. As such, for the adjusted model, I’ve applied a proportionate adjustment to the first preference votes in each constituency, to make the national tallies add up to what the pre-election polls were predicting. It’s hoped that this adjusted model can better capture the true first preferences of voters than the simple one.
Anyway, on to the results. After running through the model for each set of assumptions, here are the predicted seat totals for the simple AV model (AV-Smp), the adjusted AV model (AV-Adj) and the actual election results for reference (FPTP):
|Con||307||285 (-22)||269 (-38)|
|Lab||258||245 (-13)||207 (-51)|
|LD||57||94 (+37)||148 (+91)|
|PC||3||2 (-1)||2 (-1)|
|Green||1||0 (-1)||0 (-1)|
What’s immediately obvious is that, as would be expected, the Lib Dems gain the most benefit from the new system, as they’re the party most disadvantaged by FPTP. What might be surprising, though, is quite how much they benefit from it when you look at the adjusted model. It’s often pointed out that AV is not a truly proportional electoral system, which is quite true. However, my model suggests that it would be far more proportional than the current system, with the Lib Dems winning 23% of the seats on 27% of the vote, rather than the current 9% of the seats on 24% of the vote.
The model also suggests that coalition government could well become the norm under AV, as under both simulations a government would need any two of the big three parties to form a majority. Nonetheless, this simulation is being applied to an outlier election in the first place, and it’s still entirely possible for parties to gain an overall majority under alternative vote.
It’s worth pointing out that this isn’t developed as a predictive model of elections under AV; it’s a simulation of what might have been on May 6th, not what will happen in future elections. I might amend it in future to analyze likely results in the next election (if it’s held under AV), but the output will be unlikely to closely reflect what you see above, due to changes in political dynamics between elections. The Lib Dems, for example, are likely to lose out on transfers from Labour and independents after going into government with the Tories, but will be more transfer-friendly to Tory voters.
The results for each constituency were taken from the Press Association’s website, taking the corrected results where appropriate. In taking down candidates’ parties, I modeled the following parties:
- Liberal Democrat
- Sinn Fein
- Plaid Cymru
- Green Party
All other candidates were counted as independents, as modeling any of the smaller parties would have been very difficult and unlikely to have any impact on the final result anyway.
After taking down the results of each party in each constituency, I split the constituencies between those from England, Scotland, Wales and Northern Ireland. This was necessary due to the effect of the regional parties, and the variances in likely transfer rates between different parties in different regions. I had considered splitting England into different regions for modeling purposes, but decided against it as I didn’t feel that I had enough polling data to confidently estimate the difference in transfer patterns between the regions. Nonetheless, separating Scotland and Wales (and, of course, Northern Ireland) was still necessary due to the regional parties, and clearer transfer differences.
To model the transfer rates between each of the parties, I primarily used the data from a ComRes poll from the 26th of April, where they asked a question on what party respondents would give a hypothetical second preference to. This poll would be quite reliable for proportional transfer rates between the three main parties, but barely reliable at all for transfer rates to and from the smaller parties, due to the small sample size for each. As such, for the numbers below, the transfer ratios between the main parties closely resemble the proportions from the poll, but the numbers for the smaller parties were mainly educated estimates, with the invaluable assistance of Ed Gaffney in formulating them. It’s worth noting that the model wouldn’t be particularly sensitive to transfer rates for the smaller parties, so even if these numbers are off, it won’t have a huge effect on the results.
Consideration also has to be give to the fact that the poll in question suggests a much bigger number of first-preference Liberal Democrat voters than was actually the case (and a similarly smaller number of Tory and Labour voters). Second preferences aren’t going to be independent from first preferences, so it’s likely that a poll which showed accurate first preferences would have given slightly different second preference distributions. Unfortunately there weren’t any polls at all close to the election that got the result correct, and as far as I can tell none of the older polls asked the second preference question. As such, I’ve decided to stick to the ComRes poll in question, as it’s the most reliable I can find, and would quite well fit the adjusted model in any case.
The transfer ratios between each party in each of the four regions I’ve modeled are as follows, and are the same for each version of the model:
The tables are to be read along each row, with the eliminated party in the first column. For example, if a Labour candidate is eliminated in an English constituency, 10% of his votes will be transferred to the Tory candidate, 67% of them to the Lib Dem candidate, 5% to the Green candidate, etc. ‘N/T’ is the proportion of non-transferrable votes, ie. ballots where the voter didn’t fill in a second preference.
The model goes through each constituency and simply simulates each round of transfers under AV. So, the candidate with the fewest votes gets eliminated first, and his votes are transferred to each of the other candidates according to the appropriate entries in the tables above. Then, the remaining candidate with the fewest votes is eliminated, and his votes are transferred, and so on. Before each round of transfers, if any candidate already has over 50% of the vote, he’s declared the winner, and the model takes down the winning party and moves on to the next constituency.
Between each round of transfers, the model ‘normalizes’ the transfer matrix that it uses to calculate how many votes transfer to each party. It does this by zeroing the entries for transfers to any parties which are no longer in the running, and then proportionally increasing the transfer rates to each of the other parties to make sure they sum to 100%. In this way, the model appropriately handles the elimination of parties between different rounds of voting and ensures all votes are properly accounted for, without any transfers to ‘ghost candidates’ who have already been eliminated.
As an example of how this works, if there are only three candidates left after a few rounds of transfers in an English constituency; one Tory, one Labour and one Lib Dem, and the Tory is to be eliminated, his votes will be transferred at a rate of 12.2% to the Labour candidate, 67.1% to the Lib Dem, and 20.7% non-transferrable. You can see that these transfers are still in the same proportion to each other as they are in the table above, but have been increased to ensure 100% of the votes go to the remaining parties.
Between each round the model also recalculates the winning threshold based on 50% + 1 of the remaining votes, after having removed all the non-transferred votes from earlier rounds.
In estimating the first preference votes for my adjusted model, I took the simple average of the final polls from each pollster before the actual vote (taken from fivethirtyeight.com). These polls suggested that (excluding Northern Ireland), the Conservatives would have received 35.5% of the vote, Labour 27.4%, the Lib Dems 27.5% and others 9.6%. I then applied a proportional national swing, by multiplying each Conservative candidate’s vote by a factor of 0.96, each Labour candidate’s vote by 0.924, each Lib Dem candidate’s vote by 1.167 and all other candidates votes by 0.98. The national vote then added up to the numbers suggested by the polls.
I chose a proportional swing to model the vote shift, rather than a uniform national swing, or two main reasons. The first is technical; under a uniform national swing it’s possible for a candidate to end up with a negative number of votes, which not only makes no sense, but would completely mess up my model’s calculations. The second is simply that I feel a proportional swing is more appropriate to model a shift in a single election (particularly a three-way election), even if uniform national swing may have been more accurate in the past in modeling shifts between elections (and when there were only two viable parties).
In the Northern Ireland table, the entry ‘Ind Un’ is short for ‘Independent Unionist’ and is used for Sylvia Hermon and Rodney Connor, as I felt the standard ‘independent’ designation wouldn’t have been appropriate for them. Nonetheless, I would be very quick to admit that my model is far from appropriate for simulating the results in Northern Ireland. I included it in the model for completeness, but an accurate simulation of Northern Ireland would need a model that properly takes into account the unique political dynamic in the region, and designed by someone who understands that dynamic much better than I do. As it happened, my model actually didn’t predict any changes in NI constituencies.
Something I considered when designing the model was to make individual transfer tables for certain idiosyncratic constituencies, such as Brighton Pavilion, Buckingham and Wyre Forest. These constituencies have rather different dynamics due to particularly strong candidates from small parties, and as my model gives a relatively small proportion of transfers to independents and the smaller parties, it might not be entirely appropriate for them.
In the end, I made the deliberate decision to model these constituencies in exactly the same way I model all the others, rather than attempt to model them separately. There are a number of reasons I made this choice. Firstly, to appropriately model individual constituencies, I would need a level of local knowledge about each of these constituencies that I simply don’t have. Polling data isn’t available on individual constituencies, so any transfer ratios I could come up with would basically be complete guesses, and couldn’t be taken to be in any way reliable. Secondly, once I start modeling constituencies on an individual basis, I have to make choices as to which constituencies are worth separately modeling. Once again, this introduces an extra level of bias in terms of which constituencies I would choose to single out. I personally don’t have a good enough knowledge of constituency-level politics in the UK to make these decisions, neither do I have any objective way of determining which constituencies require special treatment.
My third reason for using a single model across all constituencies in any given region is simplicity. If my model is biased, I would prefer it to be a simple, consistent bias that can easily be taken into account by anyone interpreting the results. Once I start to model constituencies on an individual basis I’d be introducing a wide range of complex biases that would make it considerably more difficult to determine whether the overall results are valid or not.
That all being said, there are two constituencies that would be worth looking at for anyone interpreting the results. The first of those is Brighton Pavilion, where the Greens sensationally took a seat on the 6th of May. Both versions of my model give this seat to the Labour candidate after transfers. However, it’s entirely possible that the prominence of Caroline Lucas, the Green candidate in the constituency, would have helped her win enough transfers to take the seat.
The second constituency worth looking at is Wyre Forest. In this constituency, the outgoing MP was Richard Taylor, representing a local group known as ‘The Independent Community and Health Concern’, who was beaten by the Conservative candidate in the election. Both versions of my model give the seat to the Tories after transfers, but it’s actually probable that transfers from the Labour and Lib Dem candidates would have heavily favored Taylor, giving him the seat.
The model was developed via a combination of Microsoft Excel and Applescript. I would have developed it entirely in Excel, using Visual Basic for the scripting, so that I could distribute it for others to use, but unfortunately Microsoft removed Basic support from the most recent version of Excel for Macs, so Applescript had to do the job instead. Nonetheless, while this combination may not have been particularly computationally efficient, it helped me keep an eye on everything to make sure the model was running as expected.