Data in Politics — the Towns Fund and the Pork Barrel (Part 1)
Tags: Statistics, UK Politics, Government, Data Science, Data Journalism

Looking for political corruption with data science.

photoeverywhere, Creative Commons License.

In 2019, the UK’s Conservative government announced a new fund, the Towns Fund, to invest £3.6 billion in 100 towns as part of their plan to ‘level up’ the regions outside of the more prosperous big cities.

The plan was widely criticised in the media for the choice of towns to allocate the funding to. Why were towns like Knowsley overlooked in favour of less deprived areas like Milton Keynes? The list did not appear to line up with the poorest areas of England and to add controversy many of the poorest areas voted for the Labour party, leading to accusations of political bias — pork-barrel politics— on the part of the Conservatives.

A later inquiry by the Public Accounts Committee came to the same conclusion. This was based on interviews with ministers, but can we draw our own conclusions with a more data-driven approach? In this post, we will use some statistical approaches to show how (un)fair the process appears to be. In the next post, we will use machine learning to gain a deeper understanding of how the funding allocations may have been made.

The Towns Fund

The fund itself was announced by Prime Minister Boris Johnson and Housing Secretary Robert Jenrick in July 2019. £3.6 billion would be allocated to deprived towns in England (funding for Scotland, Wales and NI is managed seperately) by the Ministry of Housing, Communities and Local Government (MHCLG).

The final list of towns is shown below:

Places chosen for the 2019 Towns Fund — © Open Parliament License.

Show me the data

It’s hard to tell from this list what, if any, political biases there are. To do that, we need to convert out list of towns into a list of parliamentary constituencies. This isn’t massively straightforward because a) there isn’t always a 1:1 mapping between towns and constituencies, and b) “towns” aren’t an administrative division in the UK, meaning most data that the government publishes can’t be easily linked to a town. Fortunately, the original government press release contains the towns list along with the name of the Local Authority District (LAD) that it is located in.

Defining our data points

Unfortunately LADs aren’t that useful to us, because the political biases we want to test for are defined at a higher level: the parliamentary constituency. The Office of National Statistics (ONS) publishes lots of fantastic datasets online, such as this one that allows us to find out which constituency each LAD belongs to. Some of the larger towns may contain several LADs, some of which may be in different constituencies: for instance, Norwich (one of the towns in our list) is split into two constituencies, Norwich North and Norwich South:

Norwich city is split between Norwich North (6) and Norwich South (7).

Some LADs cover large rural areas, of which our town is only one small part. A lookup based on LADs would give us many constituencies, most of which are nowhere near our town. This problem is particularly apparent in Cornwall, a large rural county that contains a single LAD — unsurprisingly called Cornwall.

Cambourne and Redruth constituency in the county (and LAD) of Cornwall.

For towns like this, we can often find a clue by looking for the town name (or a variant of it) in the names of the constituencies contained in the LAD. It’s all a little bit messy, but achievable. With a little code we can resolve our list of towns into a list of constituencies.

Building up the picture

Now we have our constituencies, let’s get some useful data for them. We want to know if politics influenced the choices of town, so first of all let’s find out which parties each town voted for and how big the victory margin was. As before, this information is all freely available.

Next we want to look at how the decisions were supposed to be made. This is harder, because not all of the data has been published or is easy to figure out (this lack of transparency was one of the major criticisms made by the inquiry). All is not lost though. The National Audit Office (NAO) released a report in July 2020 which described the process. Seven factors were chosen:

Most of these factors haven’t been publicly, or quantitatively, defined so we can’t do anything with them. Deprivation though, which was advertised most prominently by the government, is well defined and data is available for it. In fact, data is available for seven kinds of deprivation in the UK (income, skills, health, access to housing and services, employment, crime and living environment). There is even a single metric that combines all of these called the Index of Multiple Deprivation (IMD). It’s all available to download at the local authority level, which we can easily aggregate to the constituency level. We will take the average deprivation metrics for each constituency, although you could take the maximum instead (the same conclusions end up being drawn either way).

One final criterion was defined for the funding allocation. Government officials at MHCLG did some research to find out which regions of England most needed the money, and came up with a recommended regional distribution. More on that later.

Putting all of the above data together gives us a nice table of funded towns with their constituencies, election results and deprivation statistics. Here’s a preview of the final table:

If you’d like to see the full table, you can find it at https://gist.github.com/tasmn/8e130f41ca951c6829bce8f19c27b037. If you spot any mistakes assigning towns to constituencies, please leave a comment.

We end up with 111 different constituencies, and for each one we have the region, party, victory margin and scores for the following deprivation measures: income (INC), employment (EMP), education, skills and training (EST), health and disability (HDD), crime (CRI), barriers to housing and services (BHS), living environment (LIV) and the index of multiple deprivation (IMD) which is a weighted combination of all the previous scores.

Expectation vs. reality

Now we have some data, let’s take a look at it in more detail. Most comments in the media were focused on how many of the towns were in Conservative (CON) voting areas, and how few were Labour (LAB), however after the 2019 general election, CON won a large majority in parliament. So should we expect most towns to be CON purely because of that? We can check this easily with a simple Pearson’s chi-squared test.

A chi-squared test allows us to compare two sets of categorical data to see how likely it is that any differences arose by chance. To start with, let’s just assume that the 111 constituencies were chosen completely at random. This means the proportions allocated to each party should roughly reflect the proportion of seats each party won nationally, which forms our null hypothesis. We can then compare these expected values to the numbers we actually observed.

For all of our experiments we will use a confidence level of 95%, or alpha = 0.05. This means that there if we reject the null hypothesis, there’s a 1 in 20 chance that we do so erroneously.

We can already see the numbers are different, but that’s to be expected. We know that the towns were’t just chosen randomly, they were chosen based on several different criteria. Let’s see if this difference is statistically significant though. The chi-squared test is performed as follows:

So for each category, we simply take the residuals between the observed and expected distributions, relative to the expected value, and sum them up across all categories. For the test to be valid we must ignore the LIB values as they are too small (it won’t make much difference anyway). As a rule of thumb, chi-squared goodness-of-fit tests should be done on tables where all the values are at least 5.

The chi-squared statistic can then be converted into a p-value by using a lookup table, or the scipy.stats.chi2.sf() function in Python. A p-value is the probability that we would see a difference at least as large as the one observed, assuming the null hypothesis is true. If the p-value is smaller than our chosen alpha (0.05) then we must reject our hypothesis and accept the alternate hypothesis, which is simply that the two sets of numbers are not distributed in the same way.

Note that we are making another assumption here: that decisions are being made at the constituency level, not the town level. This isn’t quite true, but we argue that constituencies are a reasonable proxy, they allow us to easily define metrics and they are mutually exclusive with respect to political parties which is required for chi-squared tests to work. This just means that a constituency can be CON, or LAB, but not both. This is not always true for towns.

For the above data, we get a p-value of 0.003, meaning we must reject the assumption that the constituencies were chosen completely randomly. However, that doesn’t tell the whole story. As the saying goes, a picture paints a thousand words…

Even taking into account that the Conservatives have more seats, they are still over-represented in the observed allocations! Furthermore, our chi-squared test shows that this difference is statistically significant. This is doubly surprising as Conservative seats are on average more affluent than Labour ones. Let’s dig into this further by repeating our experiment for different expected distributions:

1. Recommended regional distribution

The NAO report tells us that MHCLG officials suggested that the locations be distributed across the regions of England in a certain way. Here’s what they came up with:

Let’s repeat our chi-squared test, this time assuming that the constituencies were chosen to match this recommended distribution as closely as possible:

Again, the government fails the test. The East of England in particular(a Conservative stronghold) is very over-represented. In fact the p-value this time is so incredibly low, that if we were to tell a machine to randomly choose constituencies every second based on the desired regional percentages, we’d only expect to see something as far off as this result once every 22.8 years.

While it’s a little concerning that the government failed to follow its own recommendations, we can forgive them as this was just a guideline, it’s a complex criterion that’s difficult to meet and besides, it’s not as important as the other metrics such as deprivation levels. So let’s look at that next.

2. Deprivation

Most of the metrics used to prioritise locations are not available — one of the criticisms made by the inquiry — so we can only investigate two of them here: income deprivation (INC) and health and disability deprivation (HDD). While other deprivation metrics are available, we won’t focus on them now as they weren’t used by the government.

Once again we will repeat our chi-squared experiments but using different expected values. This time, we can take the data for all English constituencies and sort them in descending order of most deprived areas, to find out the expected party numbers for the most deprived parts of the country. To allow for other unknown factors, we will look at the breakdown for the 177 most deprived constituencies (1/3 of all seats in England) instead of just the top 111. This goes in the Conservatives favour, so if anything the results below are, ahem, conservative estimates.

We will combine the two deprivation scores as described in the NAO report: 2x income deprivation, 1x health deprivation:

We can see clearly that the government's allocations are wildly different from what would be expected from deprivation-based considerations. While other factors were listed in the NAO report (even if some of them were incredibly vague and subjective — I’m looking at you “Alignment to wider government intervention”) their effect would have to be pretty huge to correct this discrepancy.

There are of course many other measures of deprivation. Fortunately for us, MHCLG have developed a metric to encapsulate them all — the Index of Multiple Deprivation (IMD). IMD encapsulates income, employment, education/skills, health and disability, crime, barriers to housing and services and living environment deprivation. What happens when we use that metric instead to generate our expected distributions?

The discrepancy is even larger; in fact we are close to seeing a complete reversal between the expected numbers and the actual ones. This shows that by ignoring the other forms of deprivation, the government may be seriously neglecting the areas that need most help.

However we cut it, it would appear that having a Conservative MP seriously improves your chances of getting funded. We can conduct a crude experiment to see exactly how much it improves your chances. Crude in the sense of how it works, and also in that it ignores the (qualitative, unpublished) measures we have no data for. Let’s create a simple model for this process. A model where the IMD deprivation score for each constituency c is multiplied by a boosting factor b which depends on the party p that c voted for. In other words:

To keep things simple, we will fix b = 1 for all parties except the Conservatives. Then we just need to find the b for the Conservative party that maximises the p-value in our above chi-squared test:

The test is computationally cheap and the data is small, so we can use a brute force approach for the Maximum Likelihood Estimation.

Sample of pcons table.

So from what we know, it looks like deprivation in a Conservative seat is worth ~1.75x as much as deprivation in a Labour seat. There are a couple of possible explanations for this:

The other factors that the government hasn’t provided data for hugely affect the process. In this case it seems strange that the government focused so much on things like employment, skills and living standards in their announcements. If factors like EU Exit Exposure are having a large effect, this could be politically embarrassing which may explain why the government were reluctant to draw too much attention to it. Other, undeclared factors are playing a role. This is what the media accused the Conservatives of — that they were choosing locations based on their own political goals, at the expense of wider public interest.

We can only know the truth if more data is released on the other factors described in the NAO report.

Conclusion

In this post we looked at the political distribution of the locations chosen for the Towns Fund. We can say with near certainty that the choices were not made based purely on levels of deprivation, and that the choices clearly favour Conservative-held constituencies. Whether or not this was intentional, the government has failed to allocate the funding in a way that would benefit the areas that need it the most. If it was intentional, then as Prof. Chris Hanretty says:

Choosing towns to benefit a particular party goes against the seven principles of public life (the ‘Nolan principles’), and in particular the obligation to “take decisions impartially, fairly and on merit, using the best evidence and without discrimination or bias”. These decisions should therefore be examined both by the Public Accounts Committee and (since the decisions potentially involve a breach of the Ministerial Code, which incorporates the Nolan principles) by the Cabinet Office upon referral by the Prime Minister.

Because the details the government has shared so far lack the necessary detail to allow proper transparency, it is difficult to draw further conclusions from data alone but the report by the Public Accounts Committee, which was based on interviews and subjective assessments, leans towards political bias as the explanation. It looks like the media were right to be suspicious.

We also showed that the government’s choice of metrics failed to fully capture the full range of deprivation experienced in the most hard-hit areas. Issues such as crime, housing, health and disability have not been taken into account by their chosen metrics.

We can only hope that more data is released to enable us to shed more light on what happened, so that history does not repeat itself.

In Part 2, we will use machine learning to gain a deeper understanding and find some possible explanations for the observed discrepancies.