Czech Legislative Election

The Czech 2021 Lower House Elections

Radujte! Yesterday (and the day before) ~5 million women and men went to the polls in the central european nation of Czechia1 to elect their "Chamber Of Deputies" the lower house of the Czech parliament.

I want to note here that I have no relation to Czechia personally, I don't speak Czech nor have I read any Czech history; I have never even visited Czechia2. I just think their mix of electoral systems is very interesting. Although Czechia is not a particularly popular place for foreign observation of domestic politics, I like the regional party list for the lower house and the two-round system for the upper house. I think there also already exists excellent data driven analysis of countries like France.

Politics wise Czechia is a fascinating landscape there are lots of parties to fill many niches from the ruling Populist Centre, Pirate Party that has real political power, there is an anti-immigrant party whose leader is half-asian and grew up in japan, to even a full on communist party. I am not knowledgeable on Czech domestic affairs which keeps from making remarks about the state of politics. Here is a good introduction for english readers for those curious

Note: I originally wanted to publish this the morning of the 9th but as I am visiting family at the moment I ended up needing to help my younger sibling with his homework + doing a bunch of yard work to prepare for winter. Hopefully as I do this more I'll publish these before the election day3

The Chamber of Deputies

The "Chamber of Deputies of the Parliament of the Czech Republic" is the lower house and the primary deciding factor in choosing the Prime Minister of Czechia making it a particularly important and impactful elections nationally. The Chamber of Deputies (CoD) acts as the main source of legislative power as well which gives it the ability to change the course of national policy.

The electoral process to elect the CoD is "Regional party List proportional".

It's "Regional" because the seats are apportioned by the 14 regions4. of Czechia based upon population. Deputies are elected and selected from the regional party list

The 14 Regions

It's "Party List" because voters select the party (or coalition) they wish to support and not individual candidates, deputies are then selected from a party list created by the party.

It's "Proportional" because you gain seats in proportion to the number of votes you get if you're above the 5% electoral threshold5. The apportionment is decided by the Hagenbach-Bischoff quota, This remainder quota tries to protect against "Rich getting Richer" effects by having the leftover seats be given to whomever would maintain the lowest seat per vote share. This was changed in 2021 before Czechia used the D'Hondt or Jefferson method which instead rewards who ever has the largest remainder.

The predictions made

The model I used showed a very divided parliament. With ANO losing grip on power as their minority becomes even deeper. We also see a moderate rise of SPOLU along with Pirates and Mayors. The new "Promise" party turns the last minute rise into real electoral gain as it is posed to have ~5 seats. On the other hand we see a near complete collapse of the Czech left as the social democratic party (CSSD) and Communist party (KSCM) loosing a substantial amount of seats.

Here is the breakdown in the predicted final vote among the 14 regions. Full Region Gallery

Overall we see an expansion of SPOLU across the region showing widespread appeal of the conservative coalition, same with Pirates and Mayors on the other hand is showing the coalition's ability to contest and win in every region. ANO although staying nationally dominant no longer has a divided opposition nor the advantages of the previous electoral system giving them boosts due to the party's modest plurality.

The Czech left on the other hand has completely fallen apart. The Czech Social democrats only 10 years ago being the government and party of natural government now faced with only making the threshold in 3 regions. The communist party as well not collapsing as hard in my predictions but still losing quite a bit of ground not making threshold in 2 regions.

In the final seat distribution we see a consistent and strong presence of three groups ANO, SPOLU and Pirates and Mayors. The hard-right SPD is awarded at least one seat in every region as well, unlike the top 3 main predicted dominant parties
they have a significantly more muted gain overall.

The final seat reflects the very bare victories of the Communists, Social Democrats and the new Promise party, as they gain seats but are shut out in many regions even those who made the threshold.

How I predicted it

I created a really really simple model using python to predict this election, it's a direct application of poll aggregation. I used a proportional swing model of the electorate; the idea being that how a region votes previously when compared to the national results tells us how differences in that result occurs. One example:

Here are the co-efficients for region of the city of Prague I calculated using the 2017 CoD legislative election. I simply take Party Vote Share in Prague divided by Party Vote Share nationally. In ANO's case it's Prague vote share in 2017 was 20.35% well national it was 29.64% which you then divide Prague/National = ~0.7 ratio. Using this information we predict that when ANO gains a point in the national polls they gain roughly 0.7th of a point in prague.6

The program generated these co-efficients for all relevant parties in all 14 regions, then using polling aggregation from mandaty.cz we multiplied the polls by the co-efficients from our proportional swing. With our expected vote found we then apply the apportionment rules calculating the expected seat count.

This model has a lot of flaws7 but the biggest one in my opinion is the fact that no statistical analysis is applied at all. Originally I had wanted to do something like that with doing a min/max and mean finding to then contract a normal distribution to find the expected bounds of the seat counts for each party. This would give a better understanding of the possibility space because polls are not infallible, it's using statistical understanding to account for the unexpected.

I think one finer points to improve the model would be to use the local districts that are found in each region because the granular data that they provide, I have a hypothesis that you could find much finer changes in how the region will turn out.8

I also wish I had spent more time reading and understanding Czech political history, I found that writing this and understanding the model gave me little insight into the election because I didn't understand the regional context. This is ignorance makes it harder to make inferences about what the predicting actually means.

The code I used for the model can be found here on my github if you want to see exactly how I got it to work. Thank you for reading this, it was very fun to scramble this together; I can't wait for the next election I get to study a bit.

Footnotes

1: Otherwise known as the "Czech Republic" but it's shorter to write "Czechia"

2: Although the IDE I use "Pycharm" is made by the Czech company Jetbrains which I love so much I am pro-czech for that reason alone

3: I also missed my chance with my own recent national election which I tell myself I'll publish what I ended up making.

4: These are the names Google Translate give for the 14 regions in english... they are not accurate (but they are funny)

5: If you have a larger coalition the threshold increases, for 2 party coalitions it's 8% and for 3 party coalitions it's 11% and so forth. Originally it was 10% for 2 and 15% for 3 ect. but the electoral reforms changed it to be a bit less punishing to smaller parties.

6: If you find the idea that regions react to national changes in mood proportionally and not uniformly
then uniform swing models are the models for you.

7: 🙀

8: Another very nice addition would that the model published before all the results are basically out