This page provides some background on the Bayesian poll aggregation models I use on this site for the 2024-25 Australian Federal election. At the moment I am using three different Bayesian models:
- A Gaussian Random Walk (GRW) which models the election by assuming (1) voting intention on any single day only varies a little from the day before, (2) the polls are a noisy indication of population voting intention, and (3) individually pollsters have systemic biases but collectively across all pollsters the polls are unbiased.
- A Gaussian Random Walk that is Left Anchored (GRWLA) to the election outcome at the previous election. Otherwise, this model makes the same assumptions as the GRW above.
- A Gaussian Process (GP) model, that assumes the hidden voting intention on a day on which a poll was conducted will be be closely correlated with nearby polls but less correlated with polls further away in time. The degree of covariance between polls is specified by a quadratic exponentiation kernel. In these models I use a length-scale of 40 days, such that polls 40 days apart will have a correlation of around 0.61, polls 80 days apart will have a correlation of around 0.14, and polls 120 days apart will have a correlation of around 0.01. Like the above models, the GP model also assumes that individually pollsters have systemic biases but collectively across all pollsters the polls are unbiased.
Caveats
The Gaussian Process (GP) model is not without problems. The model reverts to an underlying assumption of voting intention when polling density over a period is low (as it is in the year after the previous election). It also tends to revert to this underlying assumption at each end of the series. To manage this tendency, I make the underlying assumption of voting intention the mean of the most recent ten polls. This has a minimal impact on the right-hand side of a GP series chart, but may have a pronounced effect on the left-hand side (if the initial voting intention within the period under analysis differs substantially from the final voting intention).
With the house effects component of the model, I only sum-to-zero those pollsters/firms that have five or more polls in the data series. This means that bespoke and irregular pollsters will not affect the level of the aggregated poll series. Furthermore, where a pollster has explicitly (or obviously) changed its methodology, only the polls from the most recent methodology are included in the house effect, sum-to-zero calculations. The pervious polls are excluded from the sum-to-zero calculations on the basis that the polling firm thought the earlier polling was producing poorer results than the newer methodology.
To the extent I can identify them, I seek to exclude multi-regression post-stratification (MRP) polls in the source data from Wikipedia. These are not new polling data. Typically, they are national aggregations of polling data from two or more other polls.
More information
I source the data for my polling aggregations from the Wikipedia page: Opinion polling for the next Australian federal election
These models are encoded in Python and they can be seen on my github repository. If you want to look at the models closely, you should look at:
- the notebooks _data_capture.ipynb and _poll_agg.ipynb, and
- the Python file bayes_tools.py
The GRW and GRWLA modelling is based on the work of Simon Jackman in Bayesian Analysis for Social Sciences (2009).