Last updated 16 October 2020
This chart shows the estimated probability of the key possible governing combinations after the coming New Zealand general election, which will be held on Saturday 17 October 2020.
Barring a major polling error or a historically rapid change of public mood, the new government will be Labour-led and not need New Zealand First as part of their coalition (of course, they may negotiate a broader coalition than needed anyway). There is a modest chance that Labour will not need the Greens in a coalition.
Those chances are based on the possibility of a combination of parties having a majority in Parliament. There will probably be 120 seats in Parliament, but there is a possibility of an additional seat under certain combinations of circumstances, which are dealt with in the model. The chart below shows the full distribution of results for selected possible combinations of parties:
The forecast starts with a loose prior (t distribution with four degrees of freedom) for the vote for the Labour Party. My starting position, before any polling data is in, is that the swing against the party with the incumbent Prime Minister will be drawn from the historical distribution of that swing: about 1.3% drop in vote for their party with a standard deviation of about 3.2%. The fat-tailed t distribution means we should expect outliers up to three standard deviations from this mean swing without being terribly surprised.
When that prior is combined with a latent state space model based on polling data, we see this trend, and an expected range of voting possibilities by election day:
Our model delivers a probability distribution for the actual party vote on election day, shown in the next chart. This is basically a slice through the above ribbon chart, showing the range of expected party vote on just that one final day:
These party votes are converted to numbers of seats in Parliament via methods that allow for the possibility of small parties winning electorate seats (eg ACT in Epsom; Maori Party in the Maori Electorates).
The Bayesian method used to estimate this model allows the “house effects” of each pollster-party combination to be estimated. These are not interesting in themselves (unless you are a pollster) but are a useful nuisance-factor to control for. The point estimates of each pollster’s house effects are shown in this chart:
One of the strongest trends in house effects is that opinion polls tend to overestimate the actual vote for the Green Party.
This final chart shows the distribution of seats expected for a wider range of parties and combinations than the first few visualisations presnted earlier.
Full references for the underlying core environment:
My source code for these forecasts:
nzelectR package which holds the polling and election results data (there’s also a version on CRAN but it’s out of date at the moment)
I also depend on some anonymous contributor/s to Wikipedia who update/s this page with polling data.
I strongly recommend reading Nate Silver’s reflections on The Real Story of 2016 about polls, forecasts and political analysis in the 2016 US Presidential election, much of which is relevant in other electoral situations. It includes this gem:
“…there are real shortcomings in how American politics are covered, including pervasive groupthink among media elites, an unhealthy obsession with the insider’s view of politics, a lack of analytical rigor, a failure to appreciate uncertainty, a sluggishness to self-correct when new evidence contradicts pre-existing beliefs, and a narrow viewpoint that lacks perspective from the longer arc of American history.”
This page is not associated with any political party, media or commentator. I have made every effort to provide a transparent, technical probabilistic forecast of the election results and limit any subjective judgement to technical matters relating to model building. No political judgement or interpretation is to be inferred from these forecasts. Even more than is always the case, this page has no connection whatsoever to my day job.
Non-politicised corrections, reactions or suggestions are welcomed - use the comments section below (or in the sidebar depending how you are reading this) or log an issue with the source code repository on GitHub.