Who am I really voting for? Unwrapping the positions of political parties within their EU family

Turns out belonging to a family might not mean much after all

Carlos Ahumada
DataSeries
7 min readAug 18, 2019

--

Picture yourself during the last political campaign in your country. Politicians were spending a lot of time and resources to catch your attention, hoping to get your vote. A couple of weeks before the elections, their faces and party colours had already invaded every street lamp and even your Facebook feed. But you are still hesitating. Should I go left? Should I go right? Wait. A citizen party? Another candidate claiming not to belong to the traditional political class? Oh no. Are these two really fighting AGAIN in prime time?

Left, Right, Greens, Christian Democrats, Liberals, Conservatives, Socialists, Up, Down, Red, Blue, Rock, Pop, Single, Married. What do these labels mean? Do they represent homogenous positions? Is it the same Green here than the Green there?

The European Case

Taking Europe as a study case, this article explores how similar or different parties that belong to the same political families are in their positions regarding immigration, economic policy, and their attitude towards the European Union. Finally, it looks at how these positions relate to electoral outcomes.

To do so, I am going to use the 2017 Chapel Hill Expert FLASH Survey (CHES) built by researchers from The University of North Carolina. This survey estimates party positions on European integration, ideology and policy issues for national parties in a variety of European countries through experts surveys. Take a look a the survey data here!

Boxplots

Probably my favourite visualisation tool to do exploratory analyses is the construction of boxplots. Boxplots are very powerful to understand how homogenous or not are the groups in our dataset. Plus they can look really nice using ggplot! So without further ado, hands on.

Attitude towards the EU by political family

###Data cleaning and preparation#remove null columns
eu <- eu [ ,colSums(is.na(eu))<nrow(eu)]
#remove NA's
eu <- eu [complete.cases(eu), ]
###Creating Boxplots#function to identify outliers
is_outlier <- function(x) {
return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
}
#plotting EU Positions - Political Party Family
eu %>%
group_by(family) %>%
mutate(outlier=ifelse(is_outlier(position),party,as.numeric(NA))) %>%
ggplot(aes(x=family, position, fill = family)) +
geom_boxplot(outlier.colour = NA) +
ggtitle('Positions towards the EU by political family') +
xlab('Political Family') +
ylab('EU position') +
geom_text (data=. %>% filter(!is.na(outlier)), aes(label=party)) +
theme(panel.grid.major = element_line(size = .5, color = "grey"),
axis.text.x = element_text(angle=45, hjust=1),
axis.title = element_text(size = rel(.8)),
axis.text = element_text(size = rel(.9)))

On average, liberal, socialists, agrarian/center, green and regionalist parties have a strong and positive position towards the EU. You can see this by looking at the boxes that appear highest on the Y axis (EU position) and their average line that crosses them. However, among this group of pro-EU parties, green parties seem to have larger differences among them on their support levels, shown by the larger size of the box. On the other side, radical Traditional/Authoritarian/Nationalist (TAN) parties, radical left and confessional parties tend to be more anti-EU.

Now take a look at the outliers (i.e. the letters showing outside the boxes in the plot). There are two liberal parties (PDR — Partido Democrático Republicano (Portugal), SaS — Sloboda a Solidarita (Slovakia)), two regionalist parties (DUP — Democratic Unionist Party (UK), LN — Lega Nord(Italy)) and one socialist party (Lab- Labour Party (UK)). It’s interesting to notice that they are considerably more anti-EU in comparison to their respective political family’s parties.

Immigration policy by political family

#plotting Immigration Policy - Political Party Family
eu %>%
group_by(family) %>%
mutate(outlier=ifelse(is_outlier(immigrate_policy),party,as.numeric(NA))) %>%
ggplot(aes(x=family, immigrate_policy, fill = family)) +
geom_boxplot(outlier.colour = NA) +
ggtitle('Positions towards Immigration Policy by political family') +
xlab('Political Family') +
ylab('Immigration Policy Position') +
geom_text (data=. %>% filter(!is.na(outlier)), aes(label=party)) +
theme(panel.grid.major = element_line(size = .5, color = "grey"),
axis.text.x = element_text(angle=45, hjust=1),
axis.title = element_text(size = rel(.8)),
axis.text = element_text(size = rel(.9)))

No surprise here. Conservative and radical TAN parties are the ones that score higher in their position supporting tougher restrictions for immigration, and greens and radical left parties, are more pro-immigration. Both clusters seem pretty homogenous in their views. But again, some outliers appear. In the case of the radical left, the Komunistická strana Čech a Moravy of Czech Republic is classified as a radical left party, but has a strong position against immigration. A similar situation is happening with sociálna demokraci from Slovakia, a socialist party with a strong position against immigration.

Attitude towards the EU and votes

#subsetting dataframe for parties that obtained above 10% of votes
eu_vote <- eu [eu$vote >=10, ]
p <- ggplot(data = eu_vote, aes(x = lrgen, y = position, color = vote)) + geom_point(aes(size = vote)) + geom_text_repel(aes(label = party))p + facet_wrap(~country)

Each plot maps the political parties with more than 10% of total votes within each country in the sample. On the Y-axis of these plots we can find the attitude towards the EU. The higher the value, the more pro-EU. On the X-axis we find economic ideology. The higher the value, the more right in economic terms a party is. The size and colours of the dots indicate the most recent electoral outcomes in each country. The bigger and lighter the dot, the more votes it obtained. For example, it can be seen that Poland’s citizens are divided between pro-EU and anti-EU attitudes, with a higher voting share for pro-EU and right parties. In Italy, the vote was divided between three parties that clustered in a not-so-radical left right position, but that differed substantially on their opinion towards the EU.

Immigration policy and votes

#New plot immigration policyp <- ggplot(data = eu_vote, aes(x = lrgen, y = position, color = vote)) + geom_point(aes(size = vote)) + geom_text_repel(aes(label = party))p + facet_wrap(~country)

In the UK the two parties with more votes were at opposite sides from the left right scale, and also different positions regarding immigration. The left party had a less restrictive position, while the right party had a stronger one. Germany is similar to the UK. In the case of Slovakia, people supported economic left parties more while at the same time being more in favour of strengthening the restrictions for migrants. In Portugal, voters seemed to be less radical in terms of left and right positions as well as having a common positive attitude towards migration.

Conclusion: don’t be too quick at clustering political parties

To answer our initial question, political families are big (and sometimes necessary) simplifications of the political landscape. Parties that may, at a European level, belong to the same party family may actually differ in their national variations. For so, to take informed decisions on who are we really voting for, we need to take a deeper look at local dynamics. Things like geographic location (think about southern European countries’ stronger exposure to immigration across the Mediterranean Sea), budgetary situation or cultural differences shape concepts and ideologies.

Why is this important? This insight is important to take into account when one is clustering parties according to their ideological position. It’s a tricky issue that might not be completely reflective of the reality. For example, when a political party is labelled as liberal, green or conservative and crafts the messages to their audiences and potential voters based on this label, they might find out that the person they aim to talk to doesn’t exist. Our political preferences are not limited to one or two topics that were used to label parties to a certain family. So be careful and keep in mind that a label does not necessarily group a homogeneous audience.

What’s next?

The insights from this survey data are not over! In the next article we are going to learn how to use Machine Learning unsupervised methods to classify parties according to their overall positions. Stay tuned!

Bibliography

Polk, Jonathan, Jan Rovny, Ryan Bakker, Erica Edwards, Liesbet Hooghe, Seth Jolly, Jelle Koedam, Filip Kostelka, Gary Marks, Gijs Schumacher, Marco Steenbergen, Milada Vachudova and Marko Zilovic. 2017. “Explaining the salience of anti-elitism and reducing political corruption for political parties in Europe with the 2014 Chapel Hill Expert Survey data,” Research & Politics (January-March): 1–9.

--

--

Carlos Ahumada
DataSeries

Political Data Scientist @cosmonautsandkings l #NLP #Data Science for Communications and Politics |Berlin-based