Stuff’s headline this morning National Back on Track, got me thinking a bit more about poll bias. Partly because the Fairfax Ipsos poll seems to have much higher numbers for National, and also because of the nice work presented by Danyl with his “bias corrected” poll, Gavin White of UMR’s analysis, along with two other poll aggregators, that of a Wikipedia Editor, and also Rob Salmond at Polity.
This stuff is a little oblique to that. I’ve used the Wikipedia data scraping strategy, and then used ggplot2 in R to produce these (relatively untidy graphs). The black line represents a default loess smoother, and as well as plotting a line for each company, I’ve also plotted a default loess for each company. For National, it’s clear that (especially in recent times) Fairfax Ipsos is particularly bullish on National. Also, just note for later that the black overall fit tends to quite heavily mimic the dirty yellow line for Roy Morgan.
For Labour, what is most remarkable is how consistent (and negative) the trends are for all the lines. Note Fairfax Ipsos sticking out again recently.
The smallest party I’m going to plot is for the greens. Again note that the dirty yellow line is the same shape as the black line.
So why does the Roy Morgan profile seem to share the shape with the same overall trend? Something I’ve known, but hadn’t really considered as an influence before, is that Roy Morgan is by far the most regular and frequent poll. This means unless that is weighted out, it will always dominate the shape of the trend. And as far as I’m aware, none of the poll averaging strategies do that.
- Fairfax is a bit of an outlier (favouring National over Labour).
- Because Roy Morgan poll the most frequently, most attempts to aggregate over different polls will be overweight with Roy Morgan.
And for any geeks, here is my ggplot2 code
ggplot(surveys, aes(Date, National)) +
geom_point(aes(shape = Company, colour = Company)) +
geom_line(aes(colour = Company)) +
geom_smooth(aes(colour = Company), method = “loess”,
se = FALSE, lwd = 1.5) +
geom_smooth(method = “loess”, colour = “black”, lwd = 1.5) +
theme_grey(18, “Gill Sans MT”) +
theme(legend.position = “bottom”, legend.text = element_text(size =10))