A Bayesian model of political support over time

The political support estimates are based on a Bayesian statistical model that tracks public support for political parties day by day. It uses public political party support polls, which are noisy and biased, to estimate how the underlying voter preference change over time. The result is a probabilistic picture of the political landscape for each day along with uncertainty intervals.

A latent view of public opinion

For each party, we model the "true" public support as a latent variable that evolves over time. These scores are not probabilities, but rather mathematical representations that reflect the relative support each day. These latent variables evolve via a Gaussian random walk, which means that support today tend to be similar to support yesterday, but can change gradually over time. The size of these day-to-day changes is governed by an estimated volatility parameter, allowing the model to learn whether voter sentiment is relatively stable or unusually turbulent.

Handling the messiness of polls

Polls are not created equally. They vary in sample quality, methodology, and sample size, all of which can introduce bias and noise. Instead of assuming that polls perfectly reflect public opinion, the model explicitly accounts for systematic pollster-specific biases.

Each pollsters gets a set of adjustments representing how it tends to overstate or understate support for each party. When a poll arrives, the model takes the latent support on that day, adjusts it by the bias of the pollster, converts it into probabilities, and evaluates how probable the poll would be under these assumptions. If it conflicts with expectations, the posterior distribution widens, and if it aligns well, the model grows more confident.

Bayesian updating

All these components come together through a statistical technique called Markov Chain Monte Carlo (MCMC) sampling. The algorithm explores thousands of possible configurations of the before-mentioned variables, each time adjusting them slightly and evaluating how well they explain the observed polling data. These samples naturally represent both the uncertainty in public opinion today and the uncertainty caused by polling noise. The spread of these simulated outcomes determines the probability of finishing with a given vote share.

Interpreting the results

The final output isn't a single number but a whole probability distribution: a set of thousands of political support trajectories. The more frequently a scenario appears in these simulations, the more probable the model considers it. As with any statistical forecast, the model relies on the assumption that the future behaves similarly to the past.