Latest national poll median date: October 20
Projections reflect recent polling graciously made publicly available by pollsters and media organizations. I am not a pollster, and derive no income from this blog.
Showing posts with label About this Blog. Show all posts
Showing posts with label About this Blog. Show all posts

Friday, October 4, 2019

Polling-Related Adjustments 2019, Round 4

This post reviews polls of smaller areas than the six standard polling regions (BC, AB, SK/MB, ON, QC, Atlantic), and polls providing breakdowns of smaller areas. Resulting adjustments to the model are indicated in bold. You can view earlier rounds of polling-related adjustments here (round 1)here (round 2) and here (round 3). (I may still update the Round 3 post for polls ending in September.)

Update Oct. 6: Mainstreet's Rosemont--La Petite-Patrie and Orléans riding polls added. No adjustment.

Update Oct. 9: Mainstreet's Saint-Hyacinthe--Acton riding poll added. Adjustments made.

Update Oct. 11: Mainstreet's Montmagny--L'Islet--Kamouraska--Rivière-du-Loup riding poll added. Adjustments made.

Update Oct. 12: Mainstreet's Beauce riding poll added. Adjustments updated.

Update Oct. 12: Léger's 10/7-8 QC breakdown and Campaign Research's 10/8-10 ON and MB/SK breakdowns added. Regional adjustments updated.

Update Oct. 15: Mainstreet's Sherbrooke riding poll added. Adjustments updated.

Update Oct. 16: Mainstreet's Trois-Rivières riding poll added. Adjustments made.

Update Oct. 19: The following are added:
- Mainstreet's 10/9 Jonquière poll. Adjustments updated.
- Insights West's 10/13-16 BC poll. Adjustments updated.
- Campaign Research's 10/16-18 MB/SK breakdown. Adjustments updated.

Update Oct. 19: The following are added:
- Nanos' 10/4-13 QC breakdown, Forum's 10/11 QC poll and Léger's 10/13-15 QC poll. Adjustments updated.
- Mainstreet's Québec, Vancouver Granville and Laurier--Sainte-Marie riding polls. Adjustments made/updated.

Update Oct. 20: Léger's 10/17-18 QC breakdown added. Adjustments updated.

Update Oct. 20: Nanos' 10/7-13 ON breakdown and Léger's 10/10-14 GTA poll added. No change to adjustments.

Update Oct. 20: Campaign Research's 10/16-20 ON breakdown and IRG's 10/15-17 battleground region breakdown added. Adjustments updated.


I. Regional Polls

Atlantic Canada
Innovative Research's 10/15-17 poll
IRG shows the Liberals performing better than expected in Atlantic cities at the expense of the NDP, and the reverse pattern holding in rural areas. The following adjustments are added and overlaid on top of the provincial adjustments made previously:
- 10 urban ridings: NDP -2.5, LIB +2.5
- 22 rural ridings: NDP +1, LIB -1


Québec
Campaign Research's 9/30-10/2 poll
This poll broadly confirms previous adjustments. No change.

Léger's 10/7-8 poll
This poll shows that the recent upheaval in QC was far from uniform, with the BQ rising far more outside Montreal CMA than inside, and the Tory vote holding up better in Quebec City than elsewhere. Major changes (in bold) to sub-regional adjustments were made:
Quebec City CMA: CON -4, NDP +1, LIB +3, BQ -1
Montreal CMA: CON -2.5 (-1 in far suburbs); NDP +3 (Island), +2.5 (near suburbs); LIB +3.5 (Island), +3 (near suburbs), +1 (far suburbs), GRN +0.5 (Island of Montreal only), BQ -3.5 (-0.5 in far suburbs)
Rest of Quebec North: CON +3.5, NDP -3, LIB -4, BQ +3.5
Rest of Quebec South: CON +4, NDP -2.5, LIB -4.5 (-3.5 in Eastern Townships), GRN -0.5, BQ +3.5
(Salaberry--Suroît is mostly outside of Montreal CMA but shares some characteristics with it. Since the Montreal CMA and Rest of QC S adjustments go in opposite directions, I have left this riding unadjusted. Moreover, due to the large difference between Quebec City and Rest of QC North adjustments, I am computing the adjustment in Beauport--Côte-de-Beaupré--Île-d'Orléans--Charlevoix and Portneuf--Jacques-Cartier according to their rough population distribution: 55% and 58% respectively in Quebec City CMA, 45% and 42% outside.)

Nanos' 10/4-13 breakdown
Forum's 10/11 poll
Léger's 10/13-15 poll
Since Nanos' poll had a very coarse regional breakdown, and since Forum's regions were not clearly defined, they had very little influence on the adjustments. Instead, almost all of the changes are based on the Léger poll, which gave a fine regional breakdown thanks to its sample size of over 3,000. We learn that the Liberal vote is less concentrated in Montreal than thought, perhaps because that's where voters are most likely to defect to the NDP due to Singh's debate performance. Eastern QC is an area where the Bloc has seemingly risen less, and where the Liberals are holding up better. The adjustments are (I'm not bothering to bold the ones changing since they're almost all changing, except for the Greens):
- Island of Montreal: CON -1.5, NDP +3, LIB +1, GRN +0.5, BQ -2.5
- Laval and near South Shore suburbs: CON -1.5, NDP +2.5, LIB +1, GRN +0.5, BQ -2
- Far South Shore suburbs: CON -1, LIB +1, BQ -0.5
- North Shore suburbs: CON +2.5, NDP -3, LIB +1
- Quebec CMA: CON -5, NDP +2, LIB +1.5, BQ -0.5
- Rest of South of St. Lawrence down to and including Rivière-du-Loup and Mauricie: NDP -1, LIB -2, GRN -0.5, BQ +3
- East of Rivière-du-Loup, Saguenay--Lac-Saint-Jean, Côte-Nord: CON +4, NDP -3, LIB +1.5, GRN -0.5, BQ -1.5
- Lanaudière and west (outside Montreal CMA): CON +3, NDP -4, LIB -3, BQ +4

I have canceled the riding adjustment for Montmagny--L'Islet--Kamouraska--Rivière-du-Loup. I have not applied these changes to Beauce, Shefford and Compton--Stanstead, who have old riding adjustments. The above note concerning Salaberry--Suroît, Beauport--Côte-de-Beaupré--Île-d'Orléans--Charlevoix and Portneuf--Jacques-Cartier applies.

Léger's 10/17-18 poll
The final Léger poll shows a different support pattern across the different regions of QC. The adjustments above are changed as follows (these are overlaid on top of those above):
- Montreal CMA (except far suburbs): CON +0.5, NDP -1, LIB +1.5, BQ -1
- Quebec CMA: GRN -0.5, BQ +0.5
- Rest of QC: CON -0.5, NDP +1, LIB -1.5, BQ +1
(Same comments as above apply.)


Ontario
Campaign Research's 9/30-10/2 poll
There are some minor changes, in bold, to the adjustments, which are now:
7 central Toronto ridings: NDP -4, LIB +3, GRN +1
Halton/Peel: CON -1.5, NDP +2.5, GRN -1
York and Durham inside Toronto CMA: CON -1.5, NDP +2.5, GRN -1
Durham outside Toronto CMA: CON -1, NDP +2, GRN -1
Simcoe: CON -2, NDP +1.5, LIB -0.5, GRN +1
Hamilton/Niagara: CON -1.5, NDP +0.5, LIB +1, GRN 0
Southwest: CON +0.5, NDP -1.75, LIB +0.75, GRN +0.5
East outside Ottawa: CON -1, NDP +0.5, LIB -1.5, GRN +2
City of Ottawa: CON +2, NDP +1.5, LIB -3.5
North: CON +5, NDP -4, LIB 0, GRN -1

Campaign Research's 10/8-10 poll
Here are the tweaks to the adjustments:
7 central Toronto ridings: NDP -5, LIB +4, GRN +1
Halton/Peel: CON -1, NDP +3, LIB -1, GRN -1
York and Durham inside Toronto CMA: CON -1.5, NDP +2.5, GRN -1
Durham outside Toronto CMA: CON -1.5, NDP +2.5, GRN -1
Simcoe: CON -2, NDP +1.5, LIB -0.5, GRN +1
Hamilton/Niagara: CON -2, NDP +1, LIB +1, GRN 0
Southwest: NDP -1.5, LIB +1, GRN +0.5 [CON adjustment removed]
East outside Ottawa: CON +0.5, LIB -2.5, GRN +2 [NDP adjustment removed]
City of Ottawa: CON +1.5, NDP +2, LIB -3.5
North: CON +5, NDP -5, LIB +1, GRN -1

Nanos' 10/7-13 breakdown
Léger's 10/10-14 GTA (actually Toronto CMA) poll
These polls together had no effect on the Ontario adjustments. Both were fairly neutral in the City of Toronto. Léger's poll was very negative for the Liberals in the 905 (relative to uniform swing, using Léger's recent ON results as baseline), but Nanos' poll was positive for them there, so overall, it's consistent with the current slightly negative LIB adjustment. Other deviations from uniform swing were in line with current adjustments.

Campaign Research's 10/16-20 poll
Here are the tweaks to the adjustments:
7 central Toronto ridings: NDP -5, LIB +4, GRN +1
Halton/Peel: CON -0.5, NDP +2.5, LIB -0.5, GRN -1.5
York/Durham: CON -1.5, NDP +2.5, GRN -1
Simcoe: CON -2, NDP +1.5, LIB -0.5, GRN +1
Hamilton/Niagara: CON -1.25, NDP 0, LIB +0.75, GRN +0.5
Southwest: CON -1, NDP -1.5, LIB +1.5, GRN +1
East outside Ottawa: CON +0.75, NDP +0.5, LIB -2.75, GRN +1.5
City of Ottawa: CON +2, NDP +3, LIB -4.5, GRN -0.5
North: CON +5, NDP -4.5, LIB +1, GRN -1.5


Manitoba/Saskatchewan
Campaign Research's 9/30-10/2 poll
Campaign Research's 10/8-10 poll
This These polls suggests that the Liberals are holding up better than expected in SK, and less so in MB. The latter is consistent with the recent Probe Research MB poll. However, earlier Campaign Research polls showed the opposite, so I will hold off for more evidence before making an additional adjustment here. New adjustments: LIB -0.9 in MB, +1.05 in SK. Opposite adjustments are made for the NDP; added to existing adjustments, the totals are: NDP +2.4 in Winnipeg, +0.9 in MB, -2.05 in SK.

As for the adjustments made previously (lower CON, higher NDP in Winnipeg; opposite in SK), this poll confirms them, and if anything suggests they could be larger. Thus, they are upheld, and may be increased going forward. these polls, taken together, confirm them.

Campaign Research's 10/16-18 poll
This breakdown suggests that increases to the pro-CON/anti-NDP adjustment in SK and pro-NDP/anti-CON adjustment in MB are warranted. The total adjustments are now:
- Winnipeg: CON -2.4, NDP +3.3, LIB -0.9
- Rest of MB: CON -0.9, NDP +1.8, LIB -0.9
- SK: CON +2.05, NDP -3.1, LIB +1.05


British Columbia
Insights West's 10/13-16 poll
This poll suggests that maintaining or increasing previous adjustments (Rest of BC: CON+, NDP-; Vancouver Island: LIB+, GRN-; opposite in Metro Vancouver) are warranted. Furthermore, the Tories appear to be doing a bit better than expected on Vancouver Island, and the NDP a bit worse. The new adjustments are:
- Metro Vancouver: CON -1.5, NDP +2, LIB -1.5, GRN +1
- Vancouver Island: CON +1.5, NDP -1.5, LIB +3, GRN -3
- Rest of BC: CON +2.5, NDP -3.5, LIB +1
Note: Fraser Valley ridings and West Vancouver--Sunshine Coast--Sea-to-Sky Country are not adjusted, as these ridings (per majority of population) are not part of Metro Vancouver, but they are not rural ridings and may be included in Metro Vancouver by Insights West. The riding adjustment in Vancouver Granville supersedes the Metro Vancouver adjustment.

Innovative Research's 10/15-17 poll
IRG largely confirms that previously made adjustments should be larger, except in the rest of BC, where it appears that the Tories are not overperforming quite as much.
- Metro Vancouver: CON -1.5, NDP +2, LIB -2, GRN +1.5
- Vancouver Island: CON +2.5, NDP -2, LIB +4, GRN -4.5
- Rest of BC: CON +1.5, NDP -3, LIB +1.5


II. Riding Polls (by Mainstreet unless otherwise noted)

Note: A riding poll will result in a model adjustment ONLY IF it shows a substantial deviation from regional swing and/or it is in a riding with unusual factors. Most riding polls will therefore be ignored: they generally did not help much in 2015.

Rosemont--La Petite-Patrie, ? (published 10/6)
This poll's results are almost uncannily similar to the model projection! No adjustment.

Orléans, ? (published 10/6)
The difference between the model projection and these polls results is well within the poll's margin of error for all parties. No adjustment.

Saint-Hyacinthe--Acton, 10/2
According to this poll, contrary to model expectations, the Tories are not competitive in this riding. Adjustments: CON -6, NDP +1, LIB +3, GRN -1, BQ +3.

Montmagny--L'Islet--Kamouraska--Rivière-du-Loup, 10/5
This poll has the Tory incumbent lower, and both the Bloc and Liberal candidates a bit higher than expected. Adjustments: CON -4, LIB +2, BQ +2 (CON -4, LIB +4 after 10/7-8 Léger update, cancelled after 10/13-15 Léger update).

Beauce, 10/9
This poll still shows a wafer-thin Conservative lead, despite the Tory drop in QC. On the other hand, Bernier has a slight advantage with older voters, which helps him. I have reduced the PPC adjustment from +30 to +28.5, while the CON adjustment goes from -30 to -29 (the missing 0.5% due to the age issue). Note, however, that Bernier's strong performance in the Oct. 10 debate may give him a boost.

Sherbrooke, 10/?
This poll is worse for the Bloc and better for the NDP than expected, probably because the previous Mainstreet poll of this riding did not mention candidate names, which likely hurt the NDP incumbent. The new adjustments have both the Liberals and NDP pulling from the Bloc and Tories (rather than the Liberals pulling from the NDP and Tories): CON -2, NDP +3, LIB +4, BQ -5 (NDP +2, LIB +3, BQ -5 after 10/13-15 Léger update).

Trois-Rivières, 10/9
This poll suggests that the star Tory candidate, former mayor of Trois-Rivières, is pulling a personal vote that could see him overcome Scheer's unpopularity in QC. Adjustments: CON +5, NDP +1, LIB +1, BQ -7 (CON +7, BQ -7 after 10/13-15 Léger update).

Jonquière, 10/9
This poll confirms the earlier adjustment of the NDP incumbent taking from the BQ. It also suggests additional adjustments where the NDP also takes from the Liberals and Greens. Thus, the adjustments are: NDP +6.5, LIB -2, GRN -2, BQ -2.5 (NDP +9.5, LIB -5, GRN -2, BQ -2.5 after 10/13-15 Léger update). The BQ remains well ahead, however.

Québec, 10?
This poll deviates significantly from the projection, which had Duclos falling behind the BQ challenger due to the BQ surge. However, the poll suggests that Duclos is holding his vote. Adjustments: NDP -4, LIB +7, GRN -1, BQ -2.

Vancouver Granville, 10/15
This poll has almost exactly the same gap between Wilson-Raybould and the Liberal challenger as the projection. However, both are higher than expected, as is the Tory candidate. Unfortunately, the NDP and Green numbers were not published, so I split the negative change for the NDP and Greens proportionally to their vote shares. The adjustments (which are in lieu of the Metro Vancouver adjustment) become: CON -6, NDP -15, LIB -8, GRN -3, Wilson Raybould +32.

Laurier--Sainte-Marie, 10/16
This poll shows Liberal star candidate Guilbeault slightly behind the Bloc, as the model expected. However, both frontrunners are doing better than expected, at the expense of the NDP and Greens. Adjustments: NDP -3.5, LIB +2.5, GRN -2, BQ +3. (This is in addition to the baseline adjustments for Duceppe's absence and Guilbeault's presence added earlier and to the Montreal adjustments.)

Saturday, September 28, 2019

Comparing 2019 Seat Projections

In August, I wrote a post about the methodology of various poll-based projections you'll find around the web. This post takes a look at what these models have been showing, and how to explain the differences between them. I will only review projections that provide both seat counts and vote shares; those showing only the former are excluded from the analysis.

I have been keeping track of this graph for over a month:
Quito Maggi's (President and CEO of Mainstreet Research) projection was posted on Twitter on Sept. 27; the national vote shares were stated as CON 36, LIB 34, but the population-weighted regional breakdown is consistent with a tied national vote. Forum's projection is based on a Sept. 19-21 poll. All others are aggregator projections posted on Sept. 27 or 28. TCTC = Too Close to Call; CEW no adj. = Canadian Election Watch without turnout adjustment.

The first thing to note is that all these projections agree: the Tories are tied or better in terms of the popular vote, but the Liberals lead in terms of seats.

Beyond that, there are differences in both: (i) the seat projections, even for models with nearly identical vote share projections, and (ii) the vote share projections themselves. I will address these separately.

Seat Projection Given Vote Share
To compare the seat projections for the two main parties, link the two red dots on the graph (corresponding to my projections with and without turnout adjustment), and extend that line out. Models on this line give similar results as mine conditional on the popular vote, while models above are friendlier to the Liberals, and those below are friendlier to the Tories.

Clearly, 338Canada and the CBC Poll Tracker give very similar results to my model, controlling for the vote share. This has quite consistently been the case since August, with the CBC Poll Tracker bouncing around just a bit because it gives the number of seats projected ahead while 338Canada and I give the sum of seat win probabilities. Given that these are by far the post popular seat models, my personal opinion is that Canadians are being well served. This line suggests that the Tories need to win by about 3% to even the seat count.

At this moment, Too Close to Call is below the line, though it had been above by roughly the same amount just before "blackface," and roughly on the line before that. Therefore, I would include it in the same group of models as 338Canada, CBC Poll Tracker and mine.

Lean Tossup has consistently been well above the line. This is due to at least two, and possibly three factors:
- Restrictive poll inclusion policy
- Use of riding polls
- (Possibly) Use of demographics
The use of riding polls likely causes Lean Tossup to put a very high weight on Mainstreet results, since almost all riding polls are conducted by Mainstreet (and there are a lot of them: around 40 so far); this is compounded by a restrictive poll inclusion policy. It is therefore unsurprising that Lean Tossup's projection is near Quito Maggi's. Because Mainstreet is especially favourable to the Liberals in crucial Ontario, this increases Liberal vote efficiency and pushes those projections up the graph.

Calculated Politics has shown no consistency: it has been alternately slightly below the CBC-338-CEW line a couple of weeks ago to almost as far above the line as Lean Tossup just a few days ago. I have not investigated why this is the case.

Finally, Forum Research is well below the line 338-CBC-CEW line. This is a head-scratcher as the regional distribution of support in the poll on which this projection is based is very good for the Liberals. Something "interesting" might be going on with Forum's seat model.

Vote Share Projection
Note: For this section, ignore pollsters' projections (since they use only their own data).

Because poll aggregators mostly use the same data, the vote share projections (before any turnout adjustment) should be very similar. And that's what we broadly see, with the Tory lead ranging from 0.2% to 1.4%.

Close followers of this blog will have noticed, however, that my polling average - even without the net C+1 turnout adjustment - often leans more Conservative than other websites', as it does now. This is due to the interaction of the two following factors:
1. My vote share model assumes that each pollster has an unknown house effect. As a result, it tries to stabilize the weights placed on different pollsters: those with recent polls will still have higher weight, but not by nearly as much as without the stabilization.
2. Nanos and Mainstreet, the two pollsters with daily tracking, tend to exhibit a Liberal lean.

As a result, when polls from firms other than Nanos than Mainstreet are a bit older, they carry higher weight in my average than in others' averages; when all pollsters have come out with recent data, this gap should in theory disappear. And that's exactly what we saw right after blackface: other projections converged to mine after DART, Ipsos and Angus Reid released new numbers (along with almost every pollster active on the national vote intention scene), as evidenced by the thread below:

This is where I will shamelessly advertise my projection trends for the popular vote, which I believe have two meaningful advantages over others you might see:
(Note: I'm specifically referring to the up/down trends. I'm NOT saying that the levels of my popular vote estimates are the most accurate - the turnout adjustment is merely an educated guess that could be wrong this year. And I'm NOT talking about seat projections at all.)

1. The trends are "real" because they attenuate variations due to the mix of pollsters that happen to have recently conducted a poll. Other aggregators do not stabilize the mix of pollsters in their averages (or do so to a much lesser extent than I do), while pollsters' own trends use much smaller samples and are more affected by statistical noise.

2. Stabilizing pollster mix allows me to more aggressively weight recent polls without generating undue volatility (this is done by assigning negative weight on the recent pollsters' older polls). The "blackface" episode illustrated this starkly: my polling average moved swiftly on Sept. 21 and then stayed stable while the bulk of the post-"blackface" polling data came out, while others required more time (2-3 days) to eventually move as much as mine. And yet, the trends my model produces are quite stable when there is no major news while other projections show, for example, Liberal drops every time Angus Reid releases a poll.

Now that I've whet your appetite, keep an eye out for updated projection trends, probably coming tomorrow!

Monday, September 23, 2019

Polling-Related Adjustments 2019, Round 3

This post reviews polls of smaller areas than the six standard polling regions (BC, AB, SK/MB, ON, QC, Atlantic), and polls providing breakdowns of smaller areas. Resulting adjustments to the model are indicated in bold. You can view earlier rounds of polling-related adjustments here (round 1) and here (round 2).

Update Sept. 23: EKOS MB/SK results added. No adjustment yet.

Update Sept. 24: Insights West polls of BC. Adjustments added.

Update Sept. 25: Léger's QC breakdown. Adjustments updated.

Update Sept. 25: Angus Reid's ON breakdown. Adjustments updated.

Update Sept. 26: Mainstreet's Rimouski-Neigette--Témiscouata--Les Basques poll. Adjustments added.

Update Sept. 26: Nanos' ON breakdown. Adjustments updated.

Update Sept. 27: Mainstreet's Laurier--Sainte-Marie poll. Baseline adjustments updated.

Update Sept. 28: Mainstreet's GTA numbers and Forum's Toronto poll. Adjustments updated.

Update Oct. 1: Probe's MB poll and EKOS' MB/SK breakdown. Adjustments added. Also added: Mainstreet's Beauport--Limoilou poll, which did not result in an adjustment, and a Mainstreet Jonquière poll that I had missed, which did result in an adjustment.

Update Oct. 2: Mainstreet's Terrebonne poll. Adjustments added.

Update Oct. 3: Mainstreet's Beloeil--Chambly poll. Adjustments added.

Update Oct. 4: Mainstreet's Berthier--Maskinongé poll. Adjustments added.

Update Oct. 6: Mainstreet's Longueuil--Saint-Hubert poll. Adjustments added.



I. Regional Polls

Québec
Léger's 9/20-24 poll
This poll shows the Conservatives doing better in Quebec City, which shrinks their negative adjustment there; instead, the negative adjustment in the Montreal area grows. Changes from the previous round are in bold:
Quebec City CMA: CON -7, NDP -0.5, LIB +2.5 [BQ adjustment removed]
Montreal CMA: CON -2 (-0.5 in far suburbs), NDP +1.5 (except far suburbs), LIB +2 (Island of Montreal), +1.5 (near suburbs), +1 (far suburbs), GRN +0.5 (Island of Montreal only), BQ -1 (-0.5 in far suburbs)
Rest of Quebec North: CON +3.5, NDP -1.5, LIB -2.5, BQ +1
Rest of Quebec South: CON +4, NDP -1, LIB -3 (-2 in Eastern Townships), GRN -0.5, BQ +1
(Salaberry--Suroît is mostly outside of Montreal CMA but shares some characteristics with it. Since the Montreal CMA and Rest of QC S adjustments go in opposite directions, I have left this riding unadjusted. Moreover, due to the large difference between Quebec City and Rest of QC North adjustments, I am computing the adjustment in Beauport--Côte-de-Beaupré--Île-d'Orléans--Charlevoix and Portneuf--Jacques-Cartier according to their rough population distribution: 55% and 58% respectively in Quebec City CMA, 45% and 42% outside.)

Ontario
Campaign Research's 9/18-19 poll
The main changes in the regional adjustments are as follows:
- I have separated York/Simcoe/Durham and Halton/Peel as Campaign Research concurs with earlier Corbett breakdowns that show the latter shifting more strongly away from Liberals than the former.
- The Liberals did well relative to what one would expect based on their provincial number in Hamilton/Niagara and Southwestern ON.
- The Tories did well relative to what one would expect based on their provincial number in Ottawa and Northern ON.
The updated adjustments are:
York/Simcoe/Durham: CON -1, NDP +2.5, LIB -0.5, GRN -1
Halton/Peel: CON +0.5, NDP +2, LIB -1.5, GRN -1
Hamilton/Niagara: CON -1.5, LIB +1.5
Southwest: NDP -1.5, LIB +1, GRN +0.5
East outside Ottawa: CON -2.5, NDP +0.5, GRN +2
City of Ottawa: CON +1.5, NDP +2, LIB -3, GRN -0.5
North: NDP -1.5, GRN +1.5
I have not changed the adjustment for the 7 central Toronto ridings (CON +2, NDP -5, LIB +2.5, GRN +0.5).
These adjustments, in effect from the 9/20 evening projection, are still fairly cautious - very roughly half the size suggested by the polls - to account for the possibility that some of the apparent effects might be due to random variation.

Angus Reid's 9/16-18 poll
Although conducted before the Campaign Research poll, this survey was published after it. The Liberals got strong numbers in the 905, the NDP in Hamilton/Niagara, and the Conservatives in Eastern and Northern ON. The updated adjustments, in effect from the 9/25 night projection, are (changes from the above in bold):
7 central Toronto ridings: NDP -4, LIB +3, GRN +1
York/Simcoe/Durham: CON -1, NDP +2.5, LIB -0.5, GRN -1 (CON -1.5, NDP +2.5, GRN -1 in Toronto CMA)
Halton/Peel: CON -0.5, NDP +2, LIB -0.5, GRN -1
Hamilton/Niagara: CON -1.5, NDP +0.5, LIB +1.5, GRN -0.5
Southwest: CON +0.25, NDP -2, LIB +0.75, GRN +1
East outside Ottawa: CON -1.5, NDP +1, LIB -1, GRN +1.5
City of Ottawa: CON +2, NDP +1.5, LIB -3.5
North: CON +4.5, NDP -3.5, LIB -0.5, GRN -0.5
Again, these remain cautious since nothing is very consistent across pollsters. For the purposes of retroactive computations when producing trends, these adjustments supersede those above, and are deemed to have been made as of the Campaign Research poll.

Nanos' 9/11-24 ON breakdown
These numbers caused a minor change in some adjustments (others remain as above):
York/Simcoe/Durham: CON -1, NDP +2, LIB 0, GRN -1 (CON -1.5, NDP +2, LIB +0.5, GRN -1 in Toronto CMA)
Southwest: CON +0.25, NDP -1.75, LIB +0.5, GRN +1
Again, for simplicity, for the purposes of retroactive computations when producing trends, these adjustments are deemed to have been made at the same time as those above and supersede them.

Mainstreet's 9/23-26 GTA breakdown
These numbers are favourable for the Liberals in the GTA overall, particularly in Peel. This is the opposite of summer Corbett numbers, which suggested that they're doing better in York/Durham. Therefore, I have decided to make the adjustments in those areas very similar. Mainstreet also shows great numbers for the Greens in the Simcoe region, but given that the subsample for that area is likely well under 100 respondents, the adjustment is limited. The changed adjustments are below (remainder as above), including balancing adjustments elsewhere in ON:
Halton/Peel and Durham outside Toronto CMA: CON -1, NDP +2, LIB 0, GRN -1
York and Durham inside Toronto CMA: CON -1.5, NDP +2.5, LIB 0, GRN -1
Simcoe: CON -2, NDP +1.5, LIB -0.5, GRN +1
Southwest: CON +0.5, NDP -1.75, LIB +0.5, GRN +0.75
North: CON +5, NDP -3.5, LIB -0.5, GRN -1

Forum's 9/25-26 Toronto poll
The Forum poll's results are very similar to the summer Forum poll of Toronto. The Central Toronto adjustment is maintained, and no further adjustment is made.

Manitoba/Saskatchewan
EKOS' 9/18-22 poll
Probe's 9/17-26 MB poll
EKOS' 9/26-29 poll
MB/SK breakdowns from national polls are tiny, and few pollsters provide them. Still, they usually suggest that the Tories are gaining more in SK than MB, and this one is no exception. I am close to making an adjustment. With the addition of the latest EKOS and Probe polls, I'm ready to make the following adjustments: CON -1.5, NDP +1.5 in Winnipeg, CON +1, NDP -1 in SK.

The Probe poll also suggests that the Liberals are not doing as well as expected in MB. However, combining the breakdowns from 7 EKOS polls and 2 Campaign Research polls conducted since July shows no signs that the Liberals are underperforming in MB relative to SK. I will keep an eye on this situation...

British Columbia
Insights West's 9/6-10 and 9/19-23 polls
Note: These polls do not factor into the BC provincial average because decided+leaning numbers are not available, and the distribution of undecided voters isn't close to uniform geographically or demographically. 
The regional breakdowns from these polls suggest that the Tories are rising more than expected in the rest of BC, mainly at the expense of the NDP, while the Greens are rising less than expected in Vancouver Island, with the Liberals holding up better there. For all four parties, countervailing effects were observed in Metro Vancouver. For now, I've made some cautious adjustments that are 20-50% of the observed effects:
Metro Vancouver: CON -1.5, NDP +1.5, LIB -0.5, GRN +0.5
Vancouver Island: LIB +1.5, GRN -1.5
Rest of BC: CON +2.5, NDP -2.5
The Metro Vancouver adjustment does not apply to Vancouver Granville since it has already been adjusted following riding polls. No adjustment applies to West Vancouver--Sunshine Coast--Sea to Sky Country, which is partly in Metro Vancouver, and partly in the "rest of BC."


II. Riding Polls (by Mainstreet unless otherwise noted)

Note: A riding poll will result in a model adjustment ONLY IF it shows a substantial deviation from regional swing and/or it is in a riding with unusual factors. Most riding polls will therefore be ignored: they generally did not help much in 2015.

Debate Commission Polls by EKOS
Charleswood--St. James--Assiniboia--Headingley, 8/26-9/8
Nipissing--Timiskaming, 8/26-9/8
Etobicoke North, 8/26-9/9
Pickering--Uxbridge, 8/26-9/9
As written in the 9/17 projection update: "For now, I will not be making any adjustment based on the debate commission's polls because, while 15-20% (certain and likely) are strong results for the PPC in those four ridings (Etobicoke North, Nipissing--Timiskaming, Pickering--Uxbridge and Charleswood--St. James--Assiniboia--Headingley), that still puts them at least 10% away from actually winning a seat. This does mean my PPC expected seat count (which is just Beauce) is probably a few tenths too low. I may reverse this decision if the PPC takes off in the coming weeks."

Lac-Saint-Jean, 9/10
This poll caused me to take another look at the baseline adjustment for Lac-Saint-Jean, which resulted in a revision. I elected not to make a further adjustment even though the Bloc's poll result is much lower than expected: the PQ did relatively well in the region in the 2018 provincial election.

Bécancour--Nicolet--Saurel, 9/12
The Liberals are a bit closer to the BQ than expected, but not enough to warrant an adjustment.

Portneuf--Jacques-Cartier, 9/13
The results closely matched the model's projection.

Jonquière, 9/14
This poll's results were very close to the projection for the CONs, LIBs and GRNs, but the NDP was a bit higher and the BQ lower than expected. Adjustment: NDP +2.5, BQ -2.5.

Ottawa Centre, 9/15
As one might have expected, even though the Paul Dewar personal effect wasn't easily visible in past election results (which resulted in only a modest baseline adjustment), the NDP appears to be struggling badly in this riding. Some of it might be a Catherine McKenna effect for the Liberals, though the Tories are also higher in this poll than expected. This leads to a riding-level adjustment of CON +5, NDP -10, LIB +5. This adjustment is included in projections starting 9/23.

Shefford, 9/? (published 9/23)
Like Mainstreet's earlier Sherbrooke poll, this one shows the Liberals higher and the Tories lower than expected. Adjustment: CON -4, LIB +4.

Compton--Stanstead, 9/18
Once again, the Liberals are doing better than expected in the Eastern Townships. Here, they may be benefiting from a well-known Bloc ex-MP not running again. Adjustment: LIB +5, BQ -5.

Rimouski-Neigette--Témiscouata--Les Basques, 9/23
The model saw a three-way race so tight that the leader had less than 25% support. The poll is a bit higher then the model for the Bloc, lower for the NDP, and bang on for the other parties. Adjustments: NDP -3, BQ +3.

Laurier--Sainte-Marie, 9/24
See post on baseline adjustments.

Beauport--Limoilou, 9/?
This is very close to where the model had the race. No adjustment.

Terrebonne, 9/25
The Bloc is a few points higher than expected, with the Liberals, Tories and NDP all marginally lower. This is a marginal case for whether an adjustment is necessary. Adjustments: CON -1, NDP -1, LIB -1, BQ +3.

Berthier--Maskinongé, 9/26
The NDP is a dozen points higher than expected, mostly at the expense of the Greens and Tories. As usual, the adjustment based on a single poll is about half of the gap between the projection and the poll, which makes this race essentially a dead heat. Adjustments: CON -2, NDP +6, GRN -3, BQ -1.

Beloeil--Chambly, 9/29
In contrast to Mainstreet's early September poll, which shows the Liberal candidate ahead, this latest poll shows the Bloc leader with a sizable lead. This is not surprising: campaigns matter, and Blanchet has been effective so far. Adjustments: CON -2.5, LIB -1.5, BQ +4.

Longueuil--Saint-Hubert, 9/29
This poll's results are similar to the projection, with the NDP a few points lower and the Liberals a few points higher. I have decided to make small adjustments even though I would usually ignore deviations this small: this is the riding where Pierre Nantel, the NDP MP, defected to the Greens, so it makes sense that some NDP voters may defect as well. Adjustments: NDP -2, LIB +2.

Saturday, August 31, 2019

Trends 2019: First Instalment

Update Sept. 1: The trends now reflect the EKOS poll released Sept. 1, which has the same field dates as the Léger poll released Aug. 31.

Below are the projection trends since the first projection issued in early August. The plots show how the projection would have evolved with the current model, had the polls been released in the order in which they were conducted. This means that the seat counts are recalculated when an older poll is published after a newer one, or when I tweak the methodology. The result is not quite the same as the retroactive best guess at what the situation was at the time (since I don't use the subsequent data to "backcast" how things were), but it's closer than just plotting projections as they're issued, as most other sites do.

Details for how these trends were generated are given at the end of the post.


The trends show the following evolution in late July and August:

- The CONs lost their seat lead in late July, and were remarkably flat around 145 seats and 36% support during most of August. The latest EKOS ON numbers and Léger national polls, however, ended this period of stability. It will be interesting to see whether this sticks, like the drop in late July.

- The LIBs have generally been in the 33-34% range and in the low-to-mid 150s in terms of seats. The Dion report had no discernible effect. The latest EKOS ON numbers and Léger polls pushed them above 34% and to nearly 160 seats for the first time. Again, it will be interesting to see if this rise is confirmed or is just a blip.

- The NDP has been flat around 20 seats and 13% support. But don't let the flat trend fool you: there is wide disagreement among pollsters regarding where the NDP is. Update: Also, although the monthly trend is flat, it will be interesting to see if the drop in the past two weeks continues.

- The BQ has quietly made some gains, passing the critical threshold of 12 seats. However, whether it would, in fact, win 12 or more seats remains essentially a coin flip. Many BQ races, both projected wins and losses, are very tight, so the uncertainty is very large relative to the seat count.

- The GRNs have been quietly fading in terms of vote share, for example falling to fourth place in BC. Remember that in 2015, the NDP was riding high during the summer thanks in part to Rachel Notley's win in AB, only to be sorely disappointed in the fall. Does the same fate await the Greens after encouraging results in recent provincial elections? Or do they manage to leverage Elizabeth May's popularity and eat into the Liberal/NDP vote, thereby earning the balance of power (or causing a Conservative majority)?

Going forward, I plan to update trends every week or two.

Here are some methodological details for these trends:
- The dates correspond to the midpoint of the most recent poll in the projection. Polls with midpoint dates within a day or two may be grouped. For example, there are Abacus and DART polls with a midpoint date of Aug. 16.5, and Léger and Ipsos polls with a midpoint date of Aug. 17.5. All of them are first included at the Aug. 17 point.
- Methodological updates (e.g. change in turnout adjustment) and adjustments to ridings identified as special cases lead to recalculations (even if those adjustments informed by subsequent polls, as long as those polls likely mainly reflect things baked in before the first projection). Poll-based adjustments to other ridings or to sub-regions do not lead to recalculations, as they may reflect actual evolution of the situation.
- Regional, sub-regional and riding-level polls are included in the numbers at the same time as the nearest national poll (except, as mentioned above, for certain polls in special-case ridings). For example, the Corbett ON poll with a midpoint date of August 12 begins to be included at the August 11 point, as the nearest subsequent national poll has a midpoint date of August 16.5.

Polling-Related Adjustments 2019, Round 2

This post reviews polls of smaller areas than the six standard polling regions (BC, AB, SK/MB, ON, QC, Atlantic), and polls providing breakdowns of smaller areas. Resulting adjustments to the model are indicated in bold. You can view the initial round of polling-related adjustments here.

Update Sept. 5: Justason's Vancouver Granville and Vancouver polls added These polls were sponsored by the Wilson-Raybould campaign, and have therefore been removed.

Update Sept. 8: Abacus' ON breakdown added.

Update Sept. 10: MQO's summer polls added, methodology for Atlantic adjustments slightly revised.

Update Sept. 11: Forum's QC poll and 4 Mainstreet riding polls in QC added.

Update Sept. 12: QC breakdown from Léger's 9/6-9 national poll added.

Update Sept. 18: Added comment about regional adjustment applied to Portneuf--Jacques-Cartier.

I. Regional Polls

Atlantic Canada
MQO Summer 2019 polls (7/25-31 NL7/31-8/6 PEI8/6-14 NB, 8/20-27 NS)
Narrative's 7/31-8/22 poll
These polls largely confirm the initial round of adjustments. The biggest tweak is an increase for the CONs in PEI, which is useful for them as PEI is currently unusually competitive. The updated adjustments are (note: may be re-updated when the MQO NS numbers come out):
NL: CON +9.5, NDP -1.5, LIB -2.5, GRN -5.5
NS: CON -3, NDP +3, LIB -1.5, GRN +1.5
NB: CON -3.5, NDP -2, LIB +4.5, GRN +1
PE: CON +4, NDP -3, LIB -5, GRN +4
The final set of numbers from MQO shows a widening LIB lead in NS, to a size similar to what Narrative shows. This caused a slight change in NS adjustments. At the same time, I have reviewed the adjustments methodology to put more weights on recent polls and better account for differences in the size of electorate between ridings - this caused changes favouring the CONs in NL and hurting the LIBs in PE:
NL: CON +11, NDP -2.5, LIB -3.5, GRN -5
NS: CON -3.5, NDP +3, LIB -1, GRN +1.5
PE: CON +4, NDP -1.5, LIB -7, GRN +4.5

Québec
Forum's 8/26-29 poll
Léger's 8/27-29 poll
These polls large confirm the first round of adjustments: the CONs are gaining disproportionately outside the Quebec City and Montreal CMAs, and are likely not gaining at all in Quebec City. As the first round was cautious, I have significantly increased the magnitude of these adjustments, which are now:
Quebec City CMA: CON -7 -9, NDP +0.5, LIB +3 (1.5 was typo), GRN -1, BQ +0.5
Montreal CMA: CON -1 (excluding far suburbs), NDP +0.5 (excluding far suburbs), LIB +1, GRN +0.5 (Island of Montreal only), BQ -0.5
Rest of Quebec North: CON +3 (3.5 was typo), NDP -0.5 -1, LIB -2 (-2.5 was typo), BQ +0.5
Rest of Quebec South: CON +3.5 (3 was typo) +4, NDP -0.5, LIB -2.5 (-2 was typo), GRN -0.5, BQ +0.5
(Salaberry--Suroît is mostly outside of Montreal CMA but shares some characteristics with it. Since the Montreal CMA and Rest of QC S adjustments go in opposite directions, I have left this riding unadjusted. Moreover, due to the large difference between Quebec City and Rest of QC North adjustments, I am computing the adjustment in Beauport--Côte-de-Beaupré--Île-d'Orléans--Charlevoix and Portneuf--Jacques-Cartier according to their rough population distribution: 55% and 58% respectively in Quebec City CMA, 45% and 42% outside.)
This can help the Tories make gains outside the Quebec City area, but the two Liberal seats in Quebec City are now unlikely to flip. In fact, the projection for Québec is now within 2 points for all parties of the riding poll published by Mainstreet in July. I had refrained from making an adjustment based on the riding poll because I through the regional adjustment might end up doing the job, and that's exactly what happened.

Léger's 9/6-9 poll
Further tweaks to the adjustment in bold:
Quebec City CMA: CON -10, NDP +0.5, LIB +3.5, BQ +0.5
Montreal CMA: CON -1 (excluding far suburbs), NDP +1.5 (Island of Montreal), +1 (near suburbs), LIB +1 (Island of Montreal), +0.5 (near suburbs), GRN +0.5 (Island of Montreal only), BQ -0.5
Rest of Quebec North: CON +3.5, NDP -1.5, LIB -1.5, BQ +0.5
Rest of Quebec South: CON +4, NDP -1, LIB -2, GRN -0.5, BQ +0.5

Ontario
Corbett Communications' 8/11-13 poll
Update Sept. 8: Abacus' 8/23-29 ON breakdown
Nothing out of the ordinary here - no resulting sub-provincial adjustment. There is no huge deviation from expectations based on provincial averages. However, now that we have two pollsters providing a breakdown, I am comfortable making adjustments based on moderate deviations where there is some agreement, namely that the NDP does better than expected in the Toronto suburbs (but, per Corbett's finer breakdown, not in Hamilton-Niagara) and Eastern ON outside Ottawa, but worse than expected in the North and Southwest:
Toronto CMA outside 416: CON -0.5, NDP +2, LIB -0.5, GRN -1
Southwest: CON +1.5, NDP -2, GRN +0.5
North: NDP -1.5, GRN +1.5
East outside Ottawa: CON -3, NDP +3, LIB -0.5, GRN +0.5
I have also made a minor change to the adjustment for the 7 central Toronto ridings to CON +2, NDP -5, LIB +2.5, GRN +0.5 (previously +2/-5/+3/0).
All these adjustments are fairly cautious - very roughly half the size suggested by the polls - to account for the possibility that some of the apparent effect might be due to random variation. Because they are broadly consistent with the Corbett poll, for the purposes of retroactive computations to produce trends, these adjustments will be deemed to have been made in response to that poll.

Manitoba/Saskatchewan
Campaign Research's 8/9-13 poll
EKOS' 8/20-22 poll
Update Sept. 1: EKOS' 8/27-29 poll
Both All of these suggest that the NDP is falling a lot more in SK than in MB, and that, conversely, the CONs and GRNs* are rising much more in SK than in MB. However, due to the very small sample sizes (there were part of national polls) and the ongoing provincial election in MB, I am not making any adjustments for now.
*GRNs was a typo - the numbers didn't show that, even before the update.

Vancouver
Justason Market Intelligence's 9/3 poll
This poll is broadly in line with the current projection for the City of Vancouver (unlike the April poll by Justason, which had some very strange numbers and a very small sample). The Tories are a bit lower than expected, and the GRNs a bit higher. Justason overestimated the BC Greens in the last provincial election, so I'm going to hold off on any adjustments.


II. Riding Polls (by Mainstreet unless otherwise noted)

Note: A riding poll will result in a model adjustment ONLY IF it shows a substantial deviation from regional swing and/or it is in a riding with unusual factors. Most riding polls will therefore be ignored: they generally did not help much in 2015.

Victoria, 8/9-10
This poll did not come as a huge surprise to the model because it takes into account that, in 2015, the Green vote was inflated and the Liberal vote was depressed due to the Liberal candidate dropping out (but too late to be removed from the ballot). In fact, there are several ways to make the adjustment, and I picked one of the relatively cautious ones; the poll suggests that my caution was unwarranted. Therefore, rather than making this a poll-based adjustment, I amended the baseline adjustment (as previously noted in the model post) by CON +1.3 (thus cancelling the CON adjustment), NDP -2.8 (to -6.5), LIB +6.5 (to +22.8), GRN -5 (to -16.3). This shifts all numbers toward (but not quite all the way to) the poll.

Windsor West, 8/21
Because this poll essentially guides the Sandra Pupatello adjustment rather than provides information about a differential evolution of the riding per se, it leads to a baseline adjustment. Details were provided in the model post.

Vancouver Granville, Mainstreet 8/27-28 and Justason 8/28-30
The Mainstreet poll isn't very different from the May Vancouver Granville poll by Mainstreet, if you compare the party figures from the May poll (which are the ones I used) to the candidate figures in this one (which are more relevant now). Similarly, Justason continues to see a moderate lead for Wilson-Raybould, like in its April poll. The adjustment is amended from CON -10, NDP -8, LIB -10, GRN -2 to CON -11, NDP -8, LIB -9 -9.5, GRN -2 -1.5 (update due to contemporaneous Léger and EKOS polls subsequently published) CON -13, NDP -8, LIB -10.5, GRN -1.

Beloeil--Chambly, 9/3
This is almost exactly as the model expects!

Trois-Rivières, 9/3
LIBs and BQ a bit higher than the model expected, and other parties a bit lower, but not enough to warrant an adjustment.

Sherbrooke, 9/3
LIB much higher than expected. A cautious adjustment for now: CON -4, NDP -2, LIB +6.

Louis-Hébert, 9/3
Almost exactly as the model expects for LIB, GRN, NDP. CON a bit lower and BQ a bit higher than expected, but not enough to warrant an adjustment.

Tuesday, August 27, 2019

A Critique of 2019 Projection Models

Update Sept. 16: Too Close to Call is now active, Lean Tossup adjusted its calibration for uncertainty, and Calculated Politics has provided me with some methodological information. (Further update: 338Canada has added more details on its methodology page.) For readability, instead of crossing out the old text as I usually do, I have simply deleted it. New text below is in italics.

Beyond providing my own seat projections, a purpose of this blog is to help readers become better informed consumers of seat projection models, and to propose improvements for other modelers. For example, in 2015, this post regarding uncertainty pointed out that confidence intervals given by some websites, including fairly well-known ones, were way too narrow. It was widely shared (Andrew Coyne retweeted it), and at least one other modeler (Bryan, who runs Too Close to Call) responded to it favourably. The results of the election vindicated the post - and then some: if anything, the intervals given in the post itself were still a tad narrow.

This post discusses the strengths and weaknesses of models currently active (as well as Too Close to Call, which I believe will be active soon). You can find links to all of these sites in the blog's right-hand column.

Overall Assessment
If you need *one* go-to website, I strongly recommend 338Canada due to its treasure trove of information, accurate depiction of uncertainty, and ease of navigation. The methodological description is now also much more detailed - other than remaining vagueness on how demographic factors are included (which is understandable from an intellectual property perspective), the rest of the model is clearly described.

I would suggest this site, Canadian Election Watch, as your second source. As explained below, I believe my projections are now based on the most solid polling averages. I also provide a slightly different perspective by making a (prudent) turnout adjustment based on past elections. My methodology is described in detail, so if you see a result you don't like, you can figure out how it came about. Finally, I occasionally provide commentary, such as this post, that goes beyond describing the numbers and their implications, and helps you better understand how they're generated.

The CBC Poll Tracker and Too Close to Call are tried and tested websites. Worth a visit, as always. LISPOP also has a long track record, though it is more basic than the above websites.

Lean Tossup has a vague methodological description, though I have received helpful additional information about the model from Evan Scrimshaw, the managing editor for the site. They do things somewhat differently (as detailed below), which means that their results often look like outliers, but also that they provide a useful different perspective - so go visit their site! They have fixed their calibration of aggregate uncertainty, which I complained about in an earlier version of this post, so I have removed the warning about their probability estimates. (However, the probabilities given for individual ridings still imply too much confidence, in my opinion.) The articles on the site are also worth a read: sometimes brilliant, sometimes unreasonable, but never dull.

Calculated Politics is a very sleek website, but has no published methodology for now. This review is based on the information that I received via Twitter - pretty basic (so I can't really judge the model's quality), but enough so say that the projections are done seriously. Unfortunately, the 90% confidence intervals given for national seat totals and vote shares are too narrow, so those should be ignored for now (or considered, say, 65% confidence intervals). A fix may be forthcoming, however. I will move them from "Other" to "Main" once the methodology is provided on their webpage.

As far as I'm concerned, other currently active seat projectors have not earned any credibility because they do not describe their methodology at all (as explained in this post, this is why they aren't listed under "Main Projection Sites"), do not model uncertainty*, and have little track record. There are links to them on the right-hand side of the page under "Other Projection Blogs/Sites" for convenience, but rely on them at your own risk.

*Except for Visualized Politics, whose given probabilities are currently unreasonable given where their projection is - if you visit their site, stay away from the probabilities.

Transparence of Methodology
Winners: CBC Poll Tracker, 338Canada, Canadian Election Watch
Honourable Mention: Too Close to Call

The CBC Poll Tracker, 338Canada and this blog are the only sites that describe in some detail how polls are averaged. These sites and Too Close to Call also provide detail about how polls are converted seat projections. Additionally, I fully detail every riding-level adjustment made, although I recognize that the information given by the other sites mentioned above (list of factors taken into account, without listing affected ridings) is adequate.

LISPOP lists the polls considered, but does not explain how they are combined (or show any vote share estimates). It also states that it uses regional uniform swing without incumbency effects. However, something more must be going on for the Greens to be projected to get a 6th seat in BC...

In my view, Lean Tossup has the most room to improve regarding transparence (other than Calculated Politics, of course, who is working on a methodology page). They describe which variables are considered by their model, which is good. However, the poll weighting method is a bit of a black box (though the information provided below by Evan Scrimshaw should shed some light).

Presentation (and Transparence) of Results
Winner: 338Canada
Honourable Mention: Calculated Politics, Too Close to Call, CBC Poll Tracker

There really isn't much to be said here other than the fact that P.J. Fournier's site is a gem: information about model results is very detailed and easy to find, and the page is visually appealing.

Calculated Politics' website is also excellent. In this case, the extensive presentation of results makes up somewhat for the opaque methodology: for example, you might now know how the polling weights are derived, but you can see what they are.

Too Close to Call's seat calculator is a very nice feature that gives readers the ability to make their own hypothetical scenarios. For this, TCTC deserves an honourable mention.

The CBC Poll Tracker's website has a link to historical polling trends, which is interesting. It does not provide riding by riding information, which is understandable given that such information is often misused, which the CBC has some responsibility to avoid putting out.

I improved the transparence of results on this blog a couple of weeks ago by adding a table of regional polling averages at the upper left. It's a simple feature that I wish more sites had - Too Close to Call does, but elsewhere, you have to click through to each region's page (or, for the CBC Poll Tracker, toggle to each region's chart) to access that information. (338Canada and LISPOP have a regional table for seats, but not polling averages.)

Poll Averaging
Winner: Canadian Election Watch

This is an area in which I've put a lot of effort for this year, and I'm pretty confident that my poll averages are now the most reliable. (Note: I'm not talking about the turnout adjustment, where any defensible guess is basically just as good.) By reliable, I mean that it does not overly react to any single poll or pollster, and yet remains sufficiently responsive. I have separate sets of poll weights for each region, reflecting the fact that one needs to weight older polls more heavily in smaller regions to get a decent sample size. The weights I use depend not only on a poll's own characteristics (recency, sample size), but also on the characteristics of other polls. All this is derived from a statistical framework to extract information optimally (in the sense of minimizing the variance of the estimate's error). You can read the details here, here and here.

338Canada's poll averaging method uses the square root of the sample size (like my old method), which ensures that no excessive weight is put on a single poll (as opposed to a single pollster in my current method); time discounting uses a power function. The CBC Poll Tracker discounts polls using an exponential function, and applies a penalty to outliers. Too Close to Call uses a rudimentary time discounting scheme, and applies a penalty to a pollster's older polls. All these schemes are sensible (except for the outlier penalty by the CBC Poll Tracker, which I believe to be statistically unsound), but they are not optimized based on a statistical model like my scheme. It is therefore virtually impossible to answer the question "Under what assumptions on the evolution of voting intentions and the generation of polling errors is this weighting scheme optimal?"

Too Close to Call will also enhance its averages with riding polls (see below).

Lean Tossup doesn't describe its method, and its polling average often deviates noticeably from other websites'. From information provided by Evan Scrimshaw, this appears to be due to two factors: (i) a more restrictive poll inclusion policy (no IRG, DART or, if I remember correctly, Ipsos polls), and (ii) extrapolation from riding polls. The most obvious deviations so far appear due to the former, though I do feel that the weighting of riding polls is a bit too high - at least currently, given the small number of riding polls. As the campaign progresses and riding polls accumulate, however, extrapolation from them could become a significant asset - Too Close to Call will start extrapolations at some point - so keep an eye on them!

338Canada, the CBC Poll Tracker and Calculated Politics also use pollster ratings. Without knowing how they are derived, it is difficult to judge how much this helps (or even whether it is counterproductive).

Model Skeleton
Winners: Canadian Election Watch, Too Close to Call

What I mean by "model skeleton" is how the seat model converts polling averages to vote shares in each riding, before adjusting for riding specific factors like incumbency, star candidates, demographics, etc.

There are two main basic approaches to this: uniform swing, where all ridings change by the same amount (e.g. if a party goes from 20% to 30% within a region, it increases by 10 points in each riding), and proportional swing, where all ridings change by the same proportion (e.g. if a party goes from 20% to 30% within a region, its vote share increases by half in each riding). With proportional swing, an adjustment is required to bring each riding's total back to 100%. Neither approach is clearly superior. LISPOP, Too Close to Call and I use uniform swing; 338Canada, the CBC Poll Tracker and Calculated Politics use proportional swing; Lean Tossup does not specify its method. (Note: all models apply swings at the regional level; using only the national swing just does not make sense for Canada due to large regional disparities.)

I listed Too Close to Call and myself as "winners" because we make enhancements to uniform swing. Too Close to Call introduces sub-regional coefficients in recognition of the fact that some areas within a region have been historically more volatile than others. I adjust uniform swing in recognition of the fact that swings tend to be smaller for parties with very low or very high vote shares (as described here).

The CBC Poll Tracker tries to enhance proportional swing by using each of the last three elections as baseline, and averaging the results. While this helps avoid cases where a skewed baseline overly impacts a result, it may increase the error in areas experiencing meaningful demographic change. Indeed, if the projections based on 2008, 2011 and 2015 baselines move in a direction due to continuing demographic change, using the average of these is worse than just using the 2015 baseline.

338Canada gives "probabilistic floors and ceilings" for regions and districts based on electoral history. This sounds sensible, but it's hard to judge the pertinence of this without more details.

Use of Demographics
Winners: 338Canada
Honourable Mention: Lean Tossup

Two models use demographic characteristics: 338Canada and Lean Tossup. As stated above, neither explains in detail how this is done, but at least 338Canada gives an inkling, and can point to specific examples where this has helped in the past (e.g. QS winning Sherbrooke in the 2018 QC election). Lean Tossup does say that the indicator it uses is education.

Riding-Specific Adjustments
Winners: CBC Poll Tracker
Honourable Mention: Calculated Politics, 338Canada

The CBC Poll Tracker seems to account for the largest set of potential riding-specific factors (e.g. incumbency, star candidates, ministers, etc.). 338 Canada and Calculated Politics also seem to make many adjustments; Calculated Politics additionally takes social media sentiment into account. I also make some riding-specific adjustments, but not to the same extent (about 10% of ridings); Too Close to Call appears to be in the same boat. LISPOP does not seem to make these adjustments (except when a minor party/independent is expected to have a strong showing in a district, as is evident from its current projection with seats for Bernier and Wilson-Raybould), while it is unclear to what extent Lean Tossup factors these in.

Treatment of Uncertainty
Winner: 338Canada

To me, this is *the* major strength of 338Canada: it takes uncertainty very seriously, comes out with reasonably calibrated results, and presents them in a helpful way.

The CBC Poll Tracker now also has reasonable confidence ranges and probability estimates, though it shows less information than 338Canada.

As mentioned at the start of the post, Lean Tossup has recalibrated its aggregate uncertainty, and the resulting probabilities are now much more reasonable than what they had before. (The current high probability of a Liberal majority is commensurate with the high Liberal projection.) However, I do not believe that enough uncertainty is taken into account for the individual seats' win probabilities.

I provide confidence ranges from time to time (here or on Twitter), and distinguish between uncertainty for an election taking place as of the last poll or now (which, as far as I know, is what all other websites provide) and uncertainty for the actual election (which is MUCH MUCH larger).

Calculated Politics provides confidence ranges as a regular feature, but as mentioned above, they seem miscalibrated and should be ignored or re-interpreted for now.

I look forward to what Too Close to Call puts out this cycle (the first projection did not come with ranges). LISPOP does not provide numerical evaluations of uncertainty.

Monday, August 26, 2019

Methodology Update: Weighting of Regional Numbers

The last projection update, which showed a whopping 7 seats change hands in Atlantic Canada, got me thinking: does it make sense to have this many changes based on just 63 poll respondents? The polling average dropped from a ~10% LIB lead in Atlantic Canada to under 3%.

It quickly became apparent that the problem is that I was using the national weights for regional breakdowns. National weights are derived using a statistical model that trades off the need for sample size, recency and pollster diversity. For regional breakdowns, sample sizes are much smaller, which means that ideal weighting would need to work harder for sample size, and therefore sacrifice recency. Thus, older polls should be weighted more heavily for regional breakdowns. As a result, going forward, regional breakdowns should be less volatile - though the national volatility will remain the same.

(Small) Update Aug. 26: Separate set of weights for the BQ. Also I'm now adjusting for imbalanced national polls (polls that oversample in some regions and undersample in others): their effective sample size for the national numbers is smaller.

Update Sept. 25: Standalone regional polls are now weighted differently from the regional breakdowns from national polls. Details underlined at the end of this post.

I'll get to the details later in this post, but for now, here is the projection with the new methodology:

Projection as of the latest national poll (midpoint: August 21)
LIB - 153.6 153.2 (33.7%)
CON - 146.3 (36.4 36.3%)
NDP - 20.4 20.5 (12.9%)
BQ - 12.9 13.3 (4.3%)
GRN - 3.7 (9.5%)
IND - 0.5
PPC - 0.5
If you're new to my 2019 projections, view key interpretive information here.

As you can see, the totals are little changed. The Bloc loses 1.5-2 1-1.5 seats, while the LIBs and CONs each gain 0.5-1 around 0.5 seat. However, many switches in the last projection no longer happen:
- All 7 seats that switched in the Atlantic stay LIB.
- 8 9 of the 10 seats that switched in ON stay CON; only Vaughan--Woodbridge and Cambridge still switches to the LIBs.
- In MB, Winnipeg South stays LIB.

Additionally:
- LIBs regain Laurentides--Labelle from the BQ.
- NDP regains Edmonton Strathcona from the CONs.
- GRNs regain Victoria from the LIBs.

Now the details of the methodology change. How to deal with regional numbers is tricky: it depends on the correlation between how different regions move. Consider these extreme cases:

1. Regions move in lockstep: their difference with the national vote is fixed. In this case, the national average should be calculated with national weights. Regional averages should be the sum of the national average and each region's difference from the country. The latter should be estimated without discounting polls based on age, as the nation-region gap does not evolve.

2. Regions move completely independently. In this case, regional averages should be calculated with region-specific weights, and the national average should be derived as a weighted average of regional averages. These region-specific weights would reflect two opposite considerations:
(i) smaller regional samples mean that one should weight older polls more (as explained earlier), and
(ii) in order for independently evolving regions to generate a certain level of national volatility, regional volatility would have to be much larger, which means that one should weight older polls less.
Consideration (i) wins out for smaller regions, and consideration (ii) wins out for larger ones. On average, the amount of discounting should be similar to what national weights would imply.

Reality is, of course, somewhere between these extreme cases. In both situations, the amount of discounting in optimal national weights remains suitable. Therefore, I do not make any change to how I derive national weights. Additionally, higher weight should be given to older polls for small regions (and also for large regions unless reality is very close to case #2).

Given this, I derive separate weights for each region using a procedure that is a blend of what would be called for in cases #1 and #2. The idea is for the regional weights to help estimate the difference between each party's regional and national support, rather than the regional support directly.

1. Regional weights are derived using regional sample sizes and a formula similar to that used for national weights, with the following modifications:
- The sample variance takes into account the fact that we're now thinking about the difference between regional and national vote (except, of course, for standalone regional polls).
- The time variability parameter is set assuming that the difference between the region and the rest of the country is half as volatile (so ~70.7% of the standard deviation) as the national support level, except in QC, where the two variances are the same. This is consistent with the observation that regional deviations from national movements tend to be smaller than the national movements themselves, except in QC, where they appear similar. An adjustment is made for the fact that the national average incorporates the regional movement (this matters mainly for ON).
- Update: A separate set of weights is computed for the BQ, with a time variability parameter that includes both the national and provincial variability that other parties have.

2. These weights are first applied to the difference between regional and national numbers in national polls with regional breakdowns. The weighted averages are added to the national averages (which also include national polls without regional breakdowns) to produce preliminary regional polling averages. These preliminary averages are adjusted upward or downward to match the national polling averages. This last step is necessary because regional weights no longer match national weights, and intuitively, it makes sense because recent movement in the rest of the country carries some information on recent movement in a given region, as they're correlated. [Of course, this paragraph does not apply to the BQ.]

3. Finally, standalone regional polls are incorporated using the regional weights to obtain the final (pre-turnout adjustment) regional polling averages. An adjustment is made to account for the fact that standalone polls need to be discounted more quickly, since, in addition of being affected by the region shifting relative to the country, they are also affected by national shifts. This adjustment takes the form of using a smaller sample size than the actual one for standalone polls, with the difference growing as time passes. The national polling averages are then obtained as a population-weighted averages of the regional polling averages.

Wednesday, August 21, 2019

Model Update: NDP Turnout Adjustment

I will update the projection for the new Léger poll soon, but first, just a quick note to let you know that I've decided to adjust the NDP vote share downward by 1%, with increases to the LIB and CON shares by 0.5%. The reason is that there has been high pollster disagreement on the NDP vote share among pollsters all summer: some consistently have them around 10-12%, while others consistently have them around 16-18%. In recent provincial elections, the NDP underperformed the polls in ON, AB and NS. They hit the polls in BC and SK, but in both cases, the pollsters were in agreement. They slightly outperformed the polls in MB (2016), but that was likely due to the Greens only running in about half of the ridings, meaning that some Green voters had to vote for someone else. Therefore, if things stay this way, it appears quite likely that the NDP would underperform relative to the polls again.

A knock-on effect of this is that I've changed the Burnaby South adjustment by adding 1 point to Jagmeet Singh's bonus (now +6%): if polls have been overestimating the NDP, then his by-election result was even better relative to contemporaneous provincial polling. I've also reviewed where the bonus is coming from: I crudely had it all come from the Liberals, but given what looks like a tight race, I've decided to take a closer look. Now 3.5 points are from the Liberals, 1.5 from the Tories and 1 from the Greens. (This is very uncertain, though, as the by-election had no Green candidate and a star PPC candidate.)

Tuesday, August 13, 2019

Estimates for Expected Number of Seats

Update Aug. 15: I have refined things (see underlined parts below), but this is still an approximate method.

As you can see, the projected numbers of seats, which are now provided in the right-hand column, now have one digit after the decimal point, and no longer match the numbers of seats projected ahead in the left-hand column. This is because I have decided to provide approximate expected numbers of seats, which should be less subject to "artificial" factors such as a party being projected barely ahead in a disproportionate number of seats. This change should make variations in the projection less puzzling: you won't see a party suddenly gain, say, 12 seats when it goes up by a point, but only 2 seats when it goes up by another point.

How do I estimate expected seat counts, given that as I've said before, I don't want to get into doing simulations? Based on my estimates about polling and seat model inaccuracy, I've determined that the standard error in the gap between the top two parties is about 9-10%, for an election taking place around the time of the last poll. Then I simply look at how far apart the top two parties are, and assign them probabilities of winning the seat based on the normal distribution. For example, if party A is 9-10% (1 standard deviation) ahead of party B, then party A would be given an 84% chance of winning, while party B would be given a 16% chance of winning.

More specifically, I first calculate an (usually too low) estimate for the third party's chance of winning by multiplying the probability that it gets more votes than the first party with the probability that it gets more votes than the second party. (This is usually too low because the two events are usually positively correlated.) Then I apportion the remaining probability of winning between the top two parties proportionally to their probability of finishing ahead of the other.

This is not an ideal method because it ignores underestimates third and ignores fourth parties. For most seats, this is not a problem, as only one or two parties have a significant chance of winning. However, if a party is involved in disproportionately many three- or four-way races as the party ranked third or fourth, that party will be slightly underestimated.

External Links

As you can see if you consult this blog using a computer, I have increased the width of the blog and added a second column to the right-hand side, which contains all external links. There were too many things in the left column, which impaired navigation.

I have categorized the pollsters into "main national," "main regional," and "other." The national/regional distinction is self-explanatory. The main/other distinction is based on a subjective assessment of a pollster's length of track record and frequency of voting intention polling.

I have also categorized my "competitors" into "main" and "other." Those in the "main" category must satisfy all three of the following criteria:
- be based on averaging most recent available polling (e.g. not just a specific firm's polls),
- have been active after the 2015 General Election, and
- provide an easy-to-find and (at least) basic description of the methodology used.
Please let me know if you find an active Canadian projection website that I've missed, or if an inactive one starts up again and should be upgraded.

As you can see by clicking on the 2019 Methodology label (and About this Blog label for earlier years), I make a significant effort to explain how my projection works. I believe that, of all the seat projections available online, I currently provide the most precise description of methodology and idiosyncratic adjustments. (It helps that my methodology is relatively simple, as I do not make use of demographic characteristics.) I don't hold other sites to the same standard. However, some do not describe their methodology at all, and are therefore relegated to the "Other" category, along with inactive projection sites (which will be removed if they remain inactive after the campaign starts).

I'll add that the inclusion of a projection site in the "main" category does NOT imply endorsement of its methodology - although most in that category have a pretty solid one. I may comment on the quality of other projections in the future, but that is not the purpose of this post. If you're curious about track record in 2011 and 2015, posts comparing performances can be found under the Final Projection label.

Sunday, August 4, 2019

Important Information for Interpreting 2019 Projections

If you're new to this blog, welcome! This post provides information that's useful to keep in mind for interpreting the forthcoming projections.
Update Aug. 11: Change in the common pollster variance used to derive confidence intervals. New value underlined.
Update Aug. 13: Major change in how I am presenting projections. Changes underlined. I have also added the first paragraph containing information about inputs into the model.
Update Aug. 21: Change to turnout adjustment. Changes underlined.
Update Aug. 26: Separate polling weights are now derived for each region. Link to relevant post added.
Update Sept. 13: Belatedly added a missing link to Round 2 of polling-related adjustments.
Update Oct. 11: Belatedly added missing links to Rounds 3 and 4 of polling-related adjustments.

My model is relatively parsimonious. It uses the following information:
- Results of the last General Election and by-elections since then
- Results of earlier elections, but ONLY for "special cases" (see part II of this post) and to calibrate model parameters (e.g. turnout adjustment (as discussed below), uncertainty)
- Polling data
In particular, the model does NOT use the following information:
- Election results before the last General Election, except for special cases and calibration
- Incumbency effect, except when a star MP leaves, which is treated as a "special case" (incumbency effect tends to be insignificant for low-profile politicians, unlike in the U.S.)
- Demographic data
- Data about online activity (e.g. search data, social media followers, etc.)
Despite using a limited set of data, I have a good track record relative to others making seat projections: see the 2011 and 2015 comparisons. I have also enhanced the model in several ways for the 2019 election (see the links below), so I hope to do well again!

The projections are made on vote shares after the following turnout adjustments:
CON: +1.5 pp
NDP: -1 pp
LIB: +0.5 pp
GRN: -1 pp
This may explain why my projection is more favourable to the Conservatives than other projections. The rule of thumb in this election appears to be, very roughly, 1 point nationwide = 10 seats (CLARIFICATION: this is for the gap between the two main parties).

The turnout adjustments are based on how election results compared with the final polls in recent federal general elections. The Conservatives have consistently outperformed the polls: by about 1 point in 2015 (they did worse seat-wise because the Liberals also outperformed, and did so very efficiently), and by several points in 2008 and 2011. The Liberals roughly matched the final polls in 2008 and 2011, and outperformed them by 1-2 points in 2015. The Greens have consistently underperformed by 1 point or more. The NDP has usually somewhat underperformed as well, but since their support is currently much lower than usual, the appropriate adjustment may also be lower (and thus almost zero). although the pattern is not as clear as for the Greens. Therefore, I took at look at recent provincial elections, and the only cases where the NDP did not underperform are when pollsters were in high agreement (BC, SK) or, in the case of MB, when the Greens weren't running a full slate of candidates (presumably causing some Green voters to vote NDP once they realized their preferred party isn't on the ballot). As neither of these is currently the case, I have decided to add a small adjustment for the NDP. As you can see, I am erring on the cautious side when making these adjustments, since the past doesn't always repeat itself. I reserve the right to tinker with these as the campaign progresses based on a subjective appreciation of various indicators of voter enthusiasm, and will let you know if I do.

In the interest of transparency (and geekiness), here are the posts describing the methodology for these seat projections. Many of these features are new for 2019!
Poll inclusion criteria
How national polling weights are derived (see this post for an illustration)
How regional polling weights are derived
General modification to uniform swing and riding-level adjustments to the 2015 baseline
Polling-related adjustments: Round 1, Round 2, Round 3, Round 4

The seat numbers on the left are the number of ridings where each party is projected ahead, which is different from while those on the right are rough estimates of each party's expected number of seats. For example, if party A has a 60% chance of winning two ridings, while party B has a 99% chance of winning another riding, the projection table on the left will show 2 seats for A and 1 seat for B, even though the expected number of seats while the numbers on the right would be 1.21 for A and 1.79 for B. Nationally, the gap between these numbers should usually (but NOT always) be small relative to the totals, as each party typically has its share of narrow wins. However, the provincial breakdown in the left column of the blog should be treated with caution.

The shortcut I take to estimate the expected number of seats will lead to a slight underestimation of parties that are disproportionately often competitive despite being third or fourth. My simple method is explained here:
Estimates for expected number of seats

Confidence intervals, provided from time to time, are crudely estimated rather than based on simulations. This is merely to save myself some work - ideally, they should be based on simulations. I differentiate between intervals for a hypothetical election happening at the time of the latest poll (specifically, the midpoint) and those for the actual election. Ranges for the latter are wider because public opinion may shift. All intervals are speculative; for large parties, I round them to the nearest 5 to draw attention to their very rough nature.

The assumptions behind the confidence intervals are the same as those behind poll weighting. In addition, I assume a variance of 0.0002 0.0006 (i.e. a standard deviation of about 1.4% 2.45%) on the common component of pollster error. I won't go into the specifics of the (definitely not rigorous) method in which I estimate the confidence intervals, but on the eve of the election, the "actual election" confidence intervals should be consistent with the magnitudes given in this 2015 post (somewhat wider for the Liberals and Conservatives, and narrower for the NDP, due to the changed political landscape); they'll likely be pretty similar to the ones given by 338Canada, whose calibration seems solid.

Some other projection websites also provide confidence intervals, often using simulations, which is the way it should ideally be done. However, simulations can still be junk if they're miscalibrated. Other sites aren't always clear about the timing of the hypothetical election for which confidence intervals are given. If they're based on how accurate the last polls before an election have historically been, the confidence intervals would be for a hypothetical election taking place just after the latest poll. They should therefore be wider than the confidence intervals I give for a hypothetical election taking place during the latest poll, and narrower than the ones I give for the actual election (except just before the election, when they should be similar to the latter). If another projection site gives confidence intervals for an election today/tomorrow narrower than those that I give for an election as of the last poll, then the other site is probably not taking the uncertainty seriously enough.