I was curious about the EU Referendum Rules triggering a 2nd EU Referendum petition visible at https://petition.parliament.uk/petitions/131215. I started downloading the petition data every 10 mins from 10 am on Sat 25th and later upped the rate to every 2 mins. There is simple analysis presented below and you will be able to do more if you want using the data (see https://github.com/jefferis/EURef2Petition)
# summary data frame
sdf=readRDS("signature_data.rds")
# list of all raw data
pet_data=readRDS('munged_petition_data.rds')
We can get plot the total signatures and get a quick estimate of the number of signatures per minute since I started collecting data.
library(ggplot2)
qplot(time, total, data=sdf, ylim=c(0,NA), geom='line')
mylm=lm(total~time, data=sdf)
summary(mylm)
##
## Call:
## lm(formula = total ~ time, data = sdf)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1685282 -136115 63757 234621 329373
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.394e+09 7.460e+07 -99.12 <2e-16 ***
## time 5.042e+00 5.085e-02 99.17 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 289000 on 2988 degrees of freedom
## Multiple R-squared: 0.767, Adjusted R-squared: 0.7669
## F-statistic: 9834 on 1 and 2988 DF, p-value: < 2.2e-16
We can repeat the plot but only with UK signatures (although British citizens abrorad have the right to sign there is more data available for UK residents)
# the same but UK signatures only by using consituency table
sdf$uksigs=sapply(pet_data, function(x) sum(x$data$attributes$signatures_by_constituency$signature_count))
# ggplot needs data in a *tall* rather than wide format
library(tidyr)
sdftall=gather(sdf[-1],count.type, n, -time)
qplot(time, n, col=count.type, data=sdftall, geom='line',
ylim=c(0,NA), ylab='signatures', xlab=NULL) +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours") +
theme(legend.position = c(0.1, .9))
Note that the 3810617 UK signatures make up 94.2213581% of the total.
You can see a couple of obvious dislocations. The up-tick of about 10,000 non-UK signatures shortly after 3am Sunday obviously looks dubious and is characterised in further detail below.
We can take a look at how the number of signatures per minute has evolved:
with(sdf,
qplot(time[-1],
diff(total)/(as.integer(diff(time))/60),
ylim=c(0,NA),
ylab="Signatures /min",
xlab='Time') +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
+stat_smooth(method = 'loess', span=.03)
)
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).
You can see that there is one outlier of >10,000 signatures per minute, corresponding to the blip in non-UK signatures at 3am on Sunday mentioned earlier. There are futher small blips (~1000-1500) on Monday either side of 12:00 but these turn out to be non-UK signatures so I have ignored them.
Let’s repeat with UK signatures only:
with(sdf,
qplot(time[-1],
diff(uksigs)/(as.integer(diff(time))/60),
ylim=c(0,NA),
ylab="Signatures /min",
xlab='Time') +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
+stat_smooth(method = 'loess', span=.03)
)
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).
So I am pleased to report that UK does actually sleep during the small hours of the morning (though some people seemed to be awake during the early hours of Sunday - see below). Overall this looks a reasonable activity profile and shows that at the peak, UK signatures were coming in at over 2000/min.
petition.parliament.uk releases a break down of data by constituency. We can use this to compare the petition data with constituency information including party, demographics etc. See Acknowledgements for data sources.
by.mps=readRDS('general_election_by.mps.rds')
all.winners <- by.mps %>%
select(Constituency, Votes, Party) %>%
arrange(desc(Votes)) %>%
data.frame()
constituency_names.df <- read.csv("constituency_names.csv", header=TRUE, row.names=1)
all.winners=merge(all.winners, constituency_names.df)
library(readxl)
pop=read_excel("Population-by-age.xlsx", sheet = "Data")
Let’s list some basic info for the top and bottom 20 constituencies. Note that sig_rate is the number of signatures per head of population (all ages):
euref=pet_data[[length(pet_data)]]
sigdf=euref$data$attributes$signatures_by_constituency
sigdf=merge(sigdf, pop, by.x='ons_code', by.y = 'ONSConstID')
sigdf$sig_rate=sigdf$signature_count/sigdf$PopTotalConstNum
sigdf=merge(sigdf, all.winners, by.x='ons_code', by.y = 'id')
sigdf %>%
arrange(desc(sig_rate)) %>%
select(c(ons_code:signature_count, sig_rate, Pop65ConstRate, Party)) %>%
top_n(20, sig_rate) %>%
kable
| ons_code | name | mp | signature_count | sig_rate | Pop65ConstRate | Party |
|---|---|---|---|---|---|---|
| E14000752 | Hornsey and Wood Green | Catherine West MP | 23640 | 0.1826357 | 0.1027287 | Labour |
| E14000763 | Islington North | Rt Hon Jeremy Corbyn MP | 19935 | 0.1824430 | 0.0892035 | Labour |
| E14000602 | Bristol West | Thangam Debbonaire MP | 23188 | 0.1781130 | 0.0763210 | Labour |
| E14000598 | Brighton, Pavilion | Caroline Lucas MP | 19100 | 0.1767847 | 0.1061634 | Green Party |
| E14000549 | Battersea | Jane Ellison MP | 18864 | 0.1700563 | 0.0835136 | Conservative |
| E14000896 | Richmond Park | Zac Goldsmith MP | 20158 | 0.1655878 | 0.1413140 | Conservative |
| E14000727 | Hampstead and Kilburn | Tulip Siddiq MP | 22407 | 0.1641972 | 0.1186393 | Labour |
| E14000764 | Islington South and Finsbury | Emily Thornberry MP | 17976 | 0.1608403 | 0.0883208 | Labour |
| E14000673 | Dulwich and West Norwood | Helen Hayes MP | 18281 | 0.1607064 | 0.0884892 | Labour |
| E14000998 | Tooting | Dr Rosena Allin-Khan MP | 17155 | 0.1595473 | 0.0879254 | Labour |
| E14000768 | Kensington | Victoria Borwick MP | 18010 | 0.1581628 | 0.1305524 | Conservative |
| E14000887 | Putney | Rt Hon Justine Greening MP | 14818 | 0.1581531 | 0.1076803 | Conservative |
| E14000639 | Cities of London and Westminster | Rt Hon Mark Field MP | 18639 | 0.1581426 | 0.1269705 | Conservative |
| E14000629 | Chelsea and Fulham | Rt Hon Greg Hands MP | 16603 | 0.1578052 | 0.1293008 | Conservative |
| E14001040 | Wimbledon | Stephen Hammond MP | 15068 | 0.1552298 | 0.1322564 | Conservative |
| E14000721 | Hackney South and Shoreditch | Meg Hillier MP | 19406 | 0.1530623 | 0.0731238 | Labour |
| E14001008 | Vauxhall | Kate Hoey MP | 18066 | 0.1522848 | 0.0748780 | Labour |
| E14000720 | Hackney North and Stoke Newington | Ms Diane Abbott MP | 20513 | 0.1504272 | 0.0704286 | Labour |
| E14000750 | Holborn and St Pancras | Keir Starmer MP | 21486 | 0.1499979 | 0.1099189 | Labour |
| E14001005 | Twickenham | Dr Tania Mathias MP | 17282 | 0.1475190 | 0.1432425 | Conservative |
sigdf %>%
arrange(desc(sig_rate)) %>%
select(c(ons_code:signature_count, sig_rate, Pop65ConstRate, Party)) %>%
top_n(20, desc(sig_rate)) %>%
kable
| ons_code | name | mp | signature_count | sig_rate | Pop65ConstRate | Party |
|---|---|---|---|---|---|---|
| E14001030 | West Bromwich West | Mr Adrian Bailey MP | 1937 | 0.0207639 | 0.1451649 | Labour |
| E14000716 | Great Grimsby | Melanie Onn MP | 1818 | 0.0205784 | 0.1664837 | Labour |
| E14000891 | Redcar | Anna Turley MP | 1783 | 0.0205427 | 0.2059796 | Labour |
| S14000004 | Angus | Mike Weir MP | 1753 | 0.0202338 | 0.2143888 | Scottish National Party |
| S14000032 | Glasgow North East | Anne McLaughlin MP | 1729 | 0.0201454 | 0.1500944 | Scottish National Party |
| S14000040 | Kilmarnock and Loudoun | Alan Brown MP | 1907 | 0.0198317 | 0.1886043 | Scottish National Party |
| S14000059 | West Dunbartonshire | Martin Docherty-Hughes MP | 1758 | 0.0195921 | 0.1754263 | Scottish National Party |
| S14000035 | Glasgow South West | Chris Stephens MP | 1663 | 0.0193723 | 0.1473487 | Scottish National Party |
| E14000582 | Boston and Skegness | Matt Warman MP | 2006 | 0.0193074 | 0.2290323 | Conservative |
| E14000771 | Kingston upon Hull East | Karl Turner MP | 1774 | 0.0192950 | 0.1653343 | Labour |
| E14000677 | Easington | Grahame Morris MP | 1576 | 0.0190428 | 0.1877334 | Labour |
| E14000669 | Doncaster North | Rt Hon Edward Miliband MP | 1853 | 0.0188191 | 0.1805736 | Labour |
| S14000011 | Coatbridge, Chryston and Bellshill | Philip Boswell MP | 1771 | 0.0183023 | 0.1547786 | Scottish National Party |
| E14000542 | Barnsley East | Michael Dugher MP | 1655 | 0.0177877 | 0.1845618 | Labour |
| S14000047 | Motherwell and Wishaw | Marion Fellows MP | 1517 | 0.0165173 | 0.1650643 | Scottish National Party |
| E14001011 | Walsall North | Mr David Winnick MP | 1555 | 0.0162030 | 0.1643013 | Labour |
| S14000036 | Glenrothes | Peter Grant MP | 1415 | 0.0158914 | 0.1903821 | Scottish National Party |
| S14000003 | Airdrie and Shotts | Neil Gray MP | 1336 | 0.0152148 | 0.1592775 | Scottish National Party |
| S14000007 | Banff and Buchan | Dr Eilidh Whiteford MP | 1378 | 0.0149482 | 0.1921245 | Scottish National Party |
| S14000030 | Glasgow East | Natalie McGarry MP | 1236 | 0.0138658 | 0.1579426 | Scottish National Party |
From which a few interesting points emerge. Most of the top constituencies are in the Bremain hotspots in London/SE with Con or Lab MPs. However interestingly the bottom 20 include 11 SNP constituencies (many of which presumably voted to remain). It looks like the Scots are not involved with this process.
We can look at a summary by Party:
sigdf %>%
group_by(Party) %>%
summarise(`Mean Sig Rate`=mean(sig_rate), `Constituencies`=length(sig_rate)) %>%
arrange(desc(`Mean Sig Rate`)) %>%
kable()
| Party | Mean Sig Rate | Constituencies |
|---|---|---|
| Green Party | 0.1767847 | 1 |
| Liberal Democrat | 0.0682556 | 8 |
| Conservative | 0.0625805 | 331 |
| Social Democratic & Labour Party | 0.0568346 | 3 |
| Plaid Cymru | 0.0568218 | 3 |
| Labour | 0.0561606 | 232 |
| Independent | 0.0504711 | 1 |
| Democratic Unionist Party | 0.0341348 | 8 |
| Scottish National Party | 0.0337721 | 56 |
| Ulster Unionist Party | 0.0317342 | 2 |
| Sinn Fein | 0.0305904 | 4 |
| UKIP | 0.0236869 | 1 |
all of which makes pretty good sense to me (Green and Lib Dem constituencies highest) Cons/Lab similarly. SNP lower than might be expected as noted above.
We can look at a summary by Region:
sigdf %>%
group_by(RegionName) %>%
summarise(`Mean Sig Rate`=mean(sig_rate), `Constituencies`=length(sig_rate)) %>%
arrange(desc(`Mean Sig Rate`)) %>%
kable()
| RegionName | Mean Sig Rate | Constituencies |
|---|---|---|
| London | 0.1011557 | 73 |
| South East | 0.0733696 | 84 |
| South West | 0.0670911 | 55 |
| East of England | 0.0580005 | 58 |
| North West | 0.0505099 | 75 |
| Wales | 0.0486292 | 40 |
| East Midlands | 0.0462598 | 46 |
| Yorkshire and The Humber | 0.0445738 | 54 |
| West Midlands | 0.0427558 | 59 |
| North East | 0.0381505 | 29 |
| Northern Ireland | 0.0377713 | 18 |
| Scotland | 0.0347947 | 59 |
To my view this re-emphasises the fact that Scotland and Northern Ireland, which both voted to remain, are not engaging with this petition. However, it may be that this is not unusual (e.g. maybe they are not interested in petitioning the Westminster legislature in general). This needs to be checked with other petitions.
We can compare the signature rate with some demographic data:
qplot(data=sigdf, sig_rate, Pop65ConstRate, xlim=c(0,NA), ylim=c(0,NA))+
stat_smooth(method = 'lm')
eupet.lm=lm(sig_rate~Pop65ConstRate, data=sigdf)
summary(eupet.lm)
##
## Call:
## lm(formula = sig_rate ~ Pop65ConstRate, data = sigdf)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.04805 -0.02327 -0.00548 0.01581 0.10940
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.094297 0.004733 19.924 < 2e-16 ***
## Pop65ConstRate -0.204997 0.025386 -8.075 3.29e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03 on 648 degrees of freedom
## Multiple R-squared: 0.09143, Adjusted R-squared: 0.09003
## F-statistic: 65.21 on 1 and 648 DF, p-value: 3.292e-15
As expected constituencies with higher levels of over 65s are signing less. Now it is possible that some fraction of this effect is because older people are less likely to engage with the petitions website. Is this true?
The petition [STOP CAMERON spending British taxpayers’ money on Pro-EU Referendum leaflets] (https://petition.parliament.uk/petitions/116762) is on a similar topic but is likely to appeal to out rather than remain voters:
library(jsonlite)
eupamphlet.raw=fromJSON("https://petition.parliament.uk/petitions/116762.json")
eupamphlet.sigdf=eupamphlet.raw$data$attributes$signatures_by_constituency
# merge in constituency level demographic data used earlier
eupamphlet.sigdf=merge(eupamphlet.sigdf, pop, by.x='ons_code', by.y = 'ONSConstID')
# compute
eupamphlet.sigdf = mutate(eupamphlet.sigdf, sig_rate=signature_count/PopTotalConstNum)
We can then compare the proportion of over 65s in each constituency with the rate of signatures:
qplot(data=eupamphlet.sigdf, sig_rate, Pop65ConstRate/`Pop20-64ConstRate`, xlim=c(0,NA), ylim=c(0,NA))+
stat_smooth(method = 'lm')
eupamhlet.lm=lm(sig_rate~I(Pop65ConstRate/`Pop20-64ConstRate`), data=eupamphlet.sigdf)
summary(eupamhlet.lm)
##
## Call:
## lm(formula = sig_rate ~ I(Pop65ConstRate/`Pop20-64ConstRate`),
## data = eupamphlet.sigdf)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0030086 -0.0005074 0.0000482 0.0006286 0.0035698
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.0004234 0.0001318 3.213
## I(Pop65ConstRate/`Pop20-64ConstRate`) 0.0094486 0.0004006 23.584
## Pr(>|t|)
## (Intercept) 0.00138 **
## I(Pop65ConstRate/`Pop20-64ConstRate`) < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0009869 on 648 degrees of freedom
## Multiple R-squared: 0.4619, Adjusted R-squared: 0.4611
## F-statistic: 556.2 on 1 and 648 DF, p-value: < 2.2e-16
Indeed there is a strong positive correlation (R^2=.45) and the effect size is much stronger than the negative correlation for the 2nd EU referendum signature.
Ideally one would try to scrape as many of the petitions as possible to provide a baseline, but for the time being I just took one other large petition that did not strike me as being particularly likely to result in an age divide.
library(jsonlite)
jhunt.raw=fromJSON("https://petition.parliament.uk/petitions/121152.json")
jhunt.sigdf=jhunt.raw$data$attributes$signatures_by_constituency
# merge in constituency level demographic data used earlier
jhunt.sigdf=merge(jhunt.sigdf, pop, by.x='ons_code', by.y = 'ONSConstID')
# compute
jhunt.sigdf = mutate(jhunt.sigdf, sig_rate=signature_count/PopTotalConstNum)
We can then compare the proportion of over 65s in each constituency with the rate of signatures:
qplot(data=jhunt.sigdf, sig_rate, Pop65ConstRate, xlim=c(0,NA), ylim=c(0,NA))+
stat_smooth(method = 'lm')
jhunt.lm=lm(sig_rate~Pop65ConstRate, data=jhunt.sigdf)
summary(jhunt.lm)
##
## Call:
## lm(formula = sig_rate ~ Pop65ConstRate, data = jhunt.sigdf)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0048679 -0.0014296 -0.0002853 0.0009656 0.0149007
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0072419 0.0003709 19.524 < 2e-16 ***
## Pop65ConstRate -0.0121455 0.0019896 -6.105 1.78e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.002351 on 648 degrees of freedom
## Multiple R-squared: 0.05438, Adjusted R-squared: 0.05292
## F-statistic: 37.27 on 1 and 648 DF, p-value: 1.776e-09
Now if you look at linear model summaries, you’ll see that the slope of the negative relationship for the euref petition is almost 15x greater than the Hunt petition. However we need to adjust for the fact that signature rate is much higher for the EU petition. We’ll adjust by the ratio of the mean signature rates for the two petitions.
coef(eupet.lm)/coef(jhunt.lm)*sum(jhunt.sigdf$sig_rate)/sum(sigdf$sig_rate)
## (Intercept) Pop65ConstRate
## 1.147698 1.487690
This gives a factor of 1.5 difference in the age-response slope (EU ref has stronger negative age correlation).
These results support an asymmetry in the petition age profile consistent with the much higher levels of support for leave voters.
All of which suggests to me that there appears to be a real negative relationship between age and proportion of petition signatures on this new referendum petition.
Let’s load up the referendum data from the electoral commission ## Referendum data
# euref <- read.csv("http://www.electoralcommission.org.uk/__data/assets/file/0014/212135/EU-referendum-result-data.csv")
euref <- readRDS('EU-referendum-result-data.rds')
Now the problem is that the referendum was reported not by constituencies but by 382 areas, but maybe we can match up some of these as a starting point.
nrow(euref)
## [1] 382
inboth=intersect(sigdf$ConstituencyName, euref$Area)
length(inboth)
## [1] 151
OK so 151 referendum regions and constituencies have the same name.
Let’s use these matches to look at some relationships:
sigdf2=merge(sigdf, euref, by.x='ConstituencyName', by.y='Area')
qplot(data=sigdf2,Pct_Remain,sig_rate)+geom_smooth(method = 'lm')
Hmm, there are some points that are rather separated from the rest. Just a hunch, but let’s model the different member countries of the UK separately.
qplot(data=sigdf2,Pct_Remain,sig_rate*100, col=Nation,
xlab="Percent Voting Remain", ylab='Percent Signing Petition',
main=paste("Petition vs Referendum Results for",nrow(sigdf2), "UK Constituencies"))+
geom_smooth(method = 'lm')+
theme(legend.position = c(0.1, .8), legend.title=element_blank())
Yup, very large difference between Scotland and England / Wales. We can also look at the terms in the linear model that reflect this:
euref.lm=lm(sig_rate~Pct_Remain+Nation,data=sigdf2)
euref.lm
##
## Call:
## lm(formula = sig_rate ~ Pct_Remain + Nation, data = sigdf2)
##
## Coefficients:
## (Intercept) Pct_Remain NationScotland NationWales
## -0.05988 0.00267 -0.07187 -0.01519
summary(euref.lm)
##
## Call:
## lm(formula = sig_rate ~ Pct_Remain + Nation, data = sigdf2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.033774 -0.005574 -0.000074 0.005666 0.021745
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0598797 0.0044853 -13.35 < 2e-16 ***
## Pct_Remain 0.0026702 0.0001022 26.12 < 2e-16 ***
## NationScotland -0.0718715 0.0034848 -20.62 < 2e-16 ***
## NationWales -0.0151908 0.0037509 -4.05 8.26e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.009663 on 147 degrees of freedom
## Multiple R-squared: 0.8352, Adjusted R-squared: 0.8319
## F-statistic: 248.4 on 3 and 147 DF, p-value: < 2.2e-16
Note that this full model has a very high R^2 >0.8. So, not that surprisingly, it seems that the knowing how people voted in the referendum is a very strong predictor of whether they signed this petition. Residuals in either direction might be evidence of regret (which polls have suggested to 2-3x more common in leave than remain voters). There looks to be a small up-tick in constituencies that were overwhelmingly for leave. However further work is required to match up constituency level data with referendum areas before drawing stronger conclusions.
We can use the signature distributions to predict which constituencies voted to leave/remain in the EU. We need to drop Northern Ireland since we have no constituency level information for that
# Make a model for data where we have matched constits vs regions
# (poorly but apparently with good predictive power)
# Could also use percentage of over 65s as additional predictor
euref.lm2=lm(Pct_Remain~sig_rate+Nation,data=sigdf2)
summary(euref.lm2)
##
## Call:
## lm(formula = Pct_Remain ~ sig_rate + Nation, data = sigdf2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.4839 -2.0692 -0.1633 2.0266 11.3530
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 26.0898 0.7111 36.689 < 2e-16 ***
## sig_rate 308.1248 11.7956 26.122 < 2e-16 ***
## NationScotland 25.4609 1.0229 24.891 < 2e-16 ***
## NationWales 4.9475 1.2799 3.866 0.000166 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.282 on 147 degrees of freedom
## Multiple R-squared: 0.8761, Adjusted R-squared: 0.8736
## F-statistic: 346.5 on 3 and 147 DF, p-value: < 2.2e-16
# make new data set with everything except NI
no.ni=droplevels(subset(sigdf, Nation!="Northern Ireland"))
no.ni$pred_remain=predict(euref.lm2, no.ni)
no.ni$eurpred_binary=ifelse(no.ni$pred_remain>50, "Remain", "Leave")
table(no.ni$Party, no.ni$eurpred_binary) %>% kable
| Leave | Remain | |
|---|---|---|
| Conservative | 254 | 77 |
| Labour | 188 | 44 |
| Scottish National Party | 0 | 56 |
| Liberal Democrat | 3 | 5 |
| Plaid Cymru | 2 | 1 |
| Green Party | 0 | 1 |
| UKIP | 1 | 0 |
no.ni %>%
select(ConstituencyName,mp, eurpred_binary, pred_remain, Party, Nation, ons_code) %>%
kable
| ConstituencyName | mp | eurpred_binary | pred_remain | Party | Nation | ons_code | |
|---|---|---|---|---|---|---|---|
| 1 | Aldershot | Sir Gerald Howarth MP | Leave | 41.12979 | Conservative | England | E14000530 |
| 2 | Aldridge-Brownhills | Wendy Morton MP | Leave | 35.05970 | Conservative | England | E14000531 |
| 3 | Altrincham and Sale West | Mr Graham Brady MP | Remain | 56.43607 | Conservative | England | E14000532 |
| 4 | Amber Valley | Nigel Mills MP | Leave | 35.66530 | Conservative | England | E14000533 |
| 5 | Arundel and South Downs | Rt Hon Nick Herbert MP | Remain | 53.12371 | Conservative | England | E14000534 |
| 6 | Ashfield | Gloria De Piero MP | Leave | 33.20189 | Labour | England | E14000535 |
| 7 | Ashford | Rt Hon Damian Green MP | Leave | 41.97583 | Conservative | England | E14000536 |
| 8 | Ashton-under-Lyne | Angela Rayner MP | Leave | 36.22688 | Labour | England | E14000537 |
| 9 | Aylesbury | Rt Hon David Lidington MP | Leave | 44.95548 | Conservative | England | E14000538 |
| 10 | Banbury | Victoria Prentis MP | Leave | 46.71961 | Conservative | England | E14000539 |
| 11 | Barking | Rt Hon Dame Margaret Hodge MP | Leave | 38.74332 | Labour | England | E14000540 |
| 12 | Barnsley Central | Dan Jarvis MP | Leave | 33.25011 | Labour | England | E14000541 |
| 13 | Barnsley East | Michael Dugher MP | Leave | 31.57059 | Labour | England | E14000542 |
| 14 | Barrow and Furness | John Woodcock MP | Leave | 37.37841 | Labour | England | E14000543 |
| 15 | Basildon and Billericay | Mr John Baron MP | Leave | 37.85162 | Conservative | England | E14000544 |
| 16 | Basingstoke | Rt Hon Maria Miller MP | Leave | 44.60582 | Conservative | England | E14000545 |
| 17 | Bassetlaw | John Mann MP | Leave | 34.49136 | Labour | England | E14000546 |
| 18 | Bath | Ben Howlett MP | Remain | 66.79669 | Conservative | England | E14000547 |
| 19 | Batley and Spen | NA | Leave | 37.56293 | Labour | England | E14000548 |
| 20 | Battersea | Jane Ellison MP | Remain | 78.48832 | Conservative | England | E14000549 |
| 21 | Beaconsfield | Rt Hon Dominic Grieve QC MP | Remain | 53.12072 | Conservative | England | E14000550 |
| 22 | Beckenham | Bob Stewart MP | Remain | 53.73201 | Conservative | England | E14000551 |
| 23 | Bedford | Richard Fuller MP | Leave | 43.46232 | Conservative | England | E14000552 |
| 24 | Bermondsey and Old Southwark | Neil Coyle MP | Remain | 65.30017 | Labour | England | E14000553 |
| 25 | Berwick-upon-Tweed | Mrs Anne-Marie Trevelyan MP | Leave | 39.82992 | Conservative | England | E14000554 |
| 26 | Bethnal Green and Bow | Rushanara Ali MP | Remain | 68.10053 | Labour | England | E14000555 |
| 27 | Beverley and Holderness | Graham Stuart MP | Leave | 39.65634 | Conservative | England | E14000556 |
| 28 | Bexhill and Battle | Huw Merriman MP | Leave | 44.59756 | Conservative | England | E14000557 |
| 29 | Bexleyheath and Crayford | Rt Hon David Evennett MP | Leave | 38.45023 | Conservative | England | E14000558 |
| 30 | Birkenhead | Rt Hon Frank Field MP | Leave | 40.24149 | Labour | England | E14000559 |
| 31 | Birmingham, Edgbaston | Rt Hon Gisela Stuart MP | Leave | 46.08723 | Labour | England | E14000560 |
| 32 | Birmingham, Erdington | Jack Dromey MP | Leave | 35.33647 | Labour | England | E14000561 |
| 33 | Birmingham, Hall Green | Mr Roger Godsiff MP | Leave | 49.79930 | Labour | England | E14000562 |
| 34 | Birmingham, Hodge Hill | Rt Hon Liam Byrne MP | Leave | 36.73856 | Labour | England | E14000563 |
| 35 | Birmingham, Ladywood | Shabana Mahmood MP | Leave | 41.94922 | Labour | England | E14000564 |
| 36 | Birmingham, Northfield | Richard Burden MP | Leave | 37.11388 | Labour | England | E14000565 |
| 37 | Birmingham, Perry Barr | Mr Khalid Mahmood MP | Leave | 38.21451 | Labour | England | E14000566 |
| 38 | Birmingham, Selly Oak | Steve McCabe MP | Leave | 45.28274 | Labour | England | E14000567 |
| 39 | Birmingham, Yardley | Jess Phillips MP | Leave | 36.94961 | Labour | England | E14000568 |
| 40 | Bishop Auckland | Helen Goodman MP | Leave | 35.14629 | Labour | England | E14000569 |
| 41 | Blackburn | Kate Hollern MP | Leave | 40.07895 | Labour | England | E14000570 |
| 42 | Blackley and Broughton | Graham Stringer MP | Leave | 38.62033 | Labour | England | E14000571 |
| 43 | Blackpool North and Cleveleys | Paul Maynard MP | Leave | 34.50704 | Conservative | England | E14000572 |
| 44 | Blackpool South | Gordon Marsden MP | Leave | 33.02344 | Labour | England | E14000573 |
| 45 | Blaydon | Mr David Anderson MP | Leave | 39.71593 | Labour | England | E14000574 |
| 46 | Blyth Valley | Mr Ronnie Campbell MP | Leave | 35.91569 | Labour | England | E14000575 |
| 47 | Bognor Regis and Littlehampton | Nick Gibb MP | Leave | 38.07265 | Conservative | England | E14000576 |
| 48 | Bolsover | Mr Dennis Skinner MP | Leave | 33.47682 | Labour | England | E14000577 |
| 49 | Bolton North East | Mr David Crausby MP | Leave | 38.12152 | Labour | England | E14000578 |
| 50 | Bolton South East | Yasmin Qureshi MP | Leave | 35.91872 | Labour | England | E14000579 |
| 51 | Bolton West | Chris Green MP | Leave | 39.45415 | Conservative | England | E14000580 |
| 52 | Bootle | Peter Dowd MP | Leave | 40.84353 | Labour | England | E14000581 |
| 53 | Boston and Skegness | Matt Warman MP | Leave | 32.03886 | Conservative | England | E14000582 |
| 54 | Bosworth | David Tredinnick MP | Leave | 39.23591 | Conservative | England | E14000583 |
| 55 | Bournemouth East | Mr Tobias Ellwood MP | Leave | 45.90306 | Conservative | England | E14000584 |
| 56 | Bournemouth West | Conor Burns MP | Leave | 44.11753 | Conservative | England | E14000585 |
| 57 | Bracknell | Dr Phillip Lee MP | Leave | 45.49704 | Conservative | England | E14000586 |
| 58 | Bradford East | Imran Hussain MP | Leave | 36.79324 | Labour | England | E14000587 |
| 59 | Bradford South | Judith Cummins MP | Leave | 33.74655 | Labour | England | E14000588 |
| 60 | Bradford West | Naz Shah MP | Leave | 39.23720 | Labour | England | E14000589 |
| 61 | Braintree | James Cleverly MP | Leave | 39.93232 | Conservative | England | E14000590 |
| 62 | Brent Central | Dawn Butler MP | Leave | 49.28702 | Labour | England | E14000591 |
| 63 | Brent North | Barry Gardiner MP | Leave | 44.83922 | Labour | England | E14000592 |
| 64 | Brentford and Isleworth | Ruth Cadbury MP | Remain | 60.04562 | Labour | England | E14000593 |
| 65 | Brentwood and Ongar | Rt Hon Sir Eric Pickles MP | Leave | 43.70215 | Conservative | England | E14000594 |
| 66 | Bridgwater and West Somerset | Mr Ian Liddell-Grainger MP | Leave | 38.57319 | Conservative | England | E14000595 |
| 67 | Brigg and Goole | Andrew Percy MP | Leave | 34.58482 | Conservative | England | E14000596 |
| 68 | Brighton, Kemptown | Simon Kirby MP | Remain | 58.35135 | Conservative | England | E14000597 |
| 69 | Brighton, Pavilion | Caroline Lucas MP | Remain | 80.56153 | Green Party | England | E14000598 |
| 70 | Bristol East | Kerry McCarthy MP | Leave | 48.59807 | Labour | England | E14000599 |
| 71 | Bristol North West | Charlotte Leslie MP | Remain | 55.81347 | Conservative | England | E14000600 |
| 72 | Bristol South | Karin Smyth MP | Remain | 52.49776 | Labour | England | E14000601 |
| 73 | Bristol West | Thangam Debbonaire MP | Remain | 80.97081 | Labour | England | E14000602 |
| 74 | Broadland | Rt Hon Keith Simpson MP | Leave | 43.81521 | Conservative | England | E14000603 |
| 75 | Bromley and Chislehurst | Robert Neill MP | Remain | 51.72656 | Conservative | England | E14000604 |
| 76 | Bromsgrove | Rt Hon Sajid Javid MP | Leave | 42.78921 | Conservative | England | E14000605 |
| 77 | Broxbourne | Mr Charles Walker MP | Leave | 38.97037 | Conservative | England | E14000606 |
| 78 | Broxtowe | Rt Hon Anna Soubry MP | Leave | 46.41295 | Conservative | England | E14000607 |
| 79 | Buckingham | Rt Hon John Bercow MP | Remain | 53.76580 | Conservative | England | E14000608 |
| 80 | Burnley | Julie Cooper MP | Leave | 33.88369 | Labour | England | E14000609 |
| 81 | Burton | Andrew Griffiths MP | Leave | 36.74258 | Conservative | England | E14000610 |
| 82 | Bury North | Mr David Nuttall MP | Leave | 40.68554 | Conservative | England | E14000611 |
| 83 | Bury South | Mr Ivan Lewis MP | Leave | 41.79414 | Labour | England | E14000612 |
| 84 | Bury St Edmunds | Jo Churchill MP | Leave | 43.54106 | Conservative | England | E14000613 |
| 85 | Calder Valley | Craig Whittaker MP | Leave | 44.90666 | Conservative | England | E14000614 |
| 86 | Camberwell and Peckham | Rt Hon Harriet Harman QC MP | Remain | 61.93698 | Labour | England | E14000615 |
| 87 | Camborne and Redruth | George Eustice MP | Leave | 41.55839 | Conservative | England | E14000616 |
| 88 | Cambridge | Daniel Zeichner MP | Remain | 70.94921 | Labour | England | E14000617 |
| 89 | Cannock Chase | Amanda Milling MP | Leave | 33.27786 | Conservative | England | E14000618 |
| 90 | Canterbury | Mr Julian Brazier MP | Remain | 52.62869 | Conservative | England | E14000619 |
| 91 | Carlisle | John Stevenson MP | Leave | 36.26863 | Conservative | England | E14000620 |
| 92 | Carshalton and Wallington | Rt Hon Tom Brake MP | Leave | 45.21675 | Liberal Democrat | England | E14000621 |
| 93 | Castle Point | Rebecca Harris MP | Leave | 34.06781 | Conservative | England | E14000622 |
| 94 | Central Devon | Mel Stride MP | Remain | 51.56268 | Conservative | England | E14000623 |
| 95 | Central Suffolk and North Ipswich | Dr Poulter MP | Leave | 44.97346 | Conservative | England | E14000624 |
| 96 | Charnwood | Edward Argar MP | Leave | 41.71374 | Conservative | England | E14000625 |
| 97 | Chatham and Aylesford | Tracey Crouch MP | Leave | 36.22020 | Conservative | England | E14000626 |
| 98 | Cheadle | Mary Robinson MP | Remain | 53.35801 | Conservative | England | E14000627 |
| 99 | Chelmsford | Rt Hon Sir Simon Burns MP | Leave | 45.14724 | Conservative | England | E14000628 |
| 100 | Chelsea and Fulham | Rt Hon Greg Hands MP | Remain | 74.71346 | Conservative | England | E14000629 |
| 101 | Cheltenham | Alex Chalk MP | Remain | 53.87328 | Conservative | England | E14000630 |
| 102 | Chesham and Amersham | Rt Hon Cheryl Gillan MP | Remain | 58.69515 | Conservative | England | E14000631 |
| 103 | Chesterfield | Toby Perkins MP | Leave | 37.86235 | Labour | England | E14000632 |
| 104 | Chichester | Rt Hon Andrew Tyrie MP | Remain | 50.61031 | Conservative | England | E14000633 |
| 105 | Chingford and Woodford Green | Rt Hon Iain Duncan Smith MP | Leave | 49.62666 | Conservative | England | E14000634 |
| 106 | Chippenham | Michelle Donelan MP | Leave | 49.48050 | Conservative | England | E14000635 |
| 107 | Chipping Barnet | Rt Hon Theresa Villiers MP | Remain | 59.23494 | Conservative | England | E14000636 |
| 108 | Chorley | Rt Hon Lindsay Hoyle MP | Leave | 39.58510 | Labour | England | E14000637 |
| 109 | Christchurch | Mr Christopher Chope MP | Leave | 42.93365 | Conservative | England | E14000638 |
| 110 | Cities of London and Westminster | Rt Hon Mark Field MP | Remain | 74.81742 | Conservative | England | E14000639 |
| 111 | City of Chester | Christian Matheson MP | Remain | 51.37342 | Labour | England | E14000640 |
| 112 | City of Durham | Dr Roberta Blackman-Woods MP | Leave | 45.06139 | Labour | England | E14000641 |
| 113 | Clacton | Mr Douglas Carswell MP | Leave | 33.38830 | UKIP | England | E14000642 |
| 114 | Cleethorpes | Martin Vickers MP | Leave | 33.82607 | Conservative | England | E14000643 |
| 115 | Colchester | Will Quince MP | Leave | 44.90643 | Conservative | England | E14000644 |
| 116 | Colne Valley | Jason McCartney MP | Leave | 43.37428 | Conservative | England | E14000645 |
| 117 | Congleton | Fiona Bruce MP | Leave | 44.69437 | Conservative | England | E14000646 |
| 118 | Copeland | Mr Jamie Reed MP | Leave | 37.12644 | Labour | England | E14000647 |
| 119 | Corby | Tom Pursglove MP | Leave | 39.10811 | Conservative | England | E14000648 |
| 120 | Coventry North East | Colleen Fletcher MP | Leave | 36.87296 | Labour | England | E14000649 |
| 121 | Coventry North West | Mr Geoffrey Robinson MP | Leave | 39.22114 | Labour | England | E14000650 |
| 122 | Coventry South | Mr Jim Cunningham MP | Leave | 42.46165 | Labour | England | E14000651 |
| 123 | Crawley | Henry Smith MP | Leave | 40.53378 | Conservative | England | E14000652 |
| 124 | Crewe and Nantwich | Edward Timpson MP | Leave | 39.31403 | Conservative | England | E14000653 |
| 125 | Croydon Central | Gavin Barwell MP | Leave | 45.30381 | Conservative | England | E14000654 |
| 126 | Croydon North | Mr Steve Reed MP | Leave | 46.25084 | Labour | England | E14000655 |
| 127 | Croydon South | Chris Philp MP | Leave | 49.45388 | Conservative | England | E14000656 |
| 128 | Dagenham and Rainham | Jon Cruddas MP | Leave | 35.86623 | Labour | England | E14000657 |
| 129 | Darlington | Jenny Chapman MP | Leave | 37.75014 | Labour | England | E14000658 |
| 130 | Dartford | Gareth Johnson MP | Leave | 38.32625 | Conservative | England | E14000659 |
| 131 | Daventry | Chris Heaton-Harris MP | Leave | 43.26748 | Conservative | England | E14000660 |
| 132 | Denton and Reddish | Andrew Gwynne MP | Leave | 37.98699 | Labour | England | E14000661 |
| 133 | Derby North | Amanda Solloway MP | Leave | 41.93657 | Conservative | England | E14000662 |
| 134 | Derby South | Rt Hon Margaret Beckett MP | Leave | 36.79744 | Labour | England | E14000663 |
| 135 | Derbyshire Dales | Rt Hon Patrick McLoughlin MP | Leave | 49.13903 | Conservative | England | E14000664 |
| 136 | Devizes | Claire Perry MP | Leave | 44.60652 | Conservative | England | E14000665 |
| 137 | Dewsbury | Paula Sherriff MP | Leave | 39.55193 | Labour | England | E14000666 |
| 138 | Don Valley | Rt Hon Caroline Flint MP | Leave | 33.38878 | Labour | England | E14000667 |
| 139 | Doncaster Central | Rt Hon Dame Rosie Winterton MP | Leave | 33.85762 | Labour | England | E14000668 |
| 140 | Doncaster North | Rt Hon Edward Miliband MP | Leave | 31.88839 | Labour | England | E14000669 |
| 141 | Dover | Charlie Elphicke MP | Leave | 38.46418 | Conservative | England | E14000670 |
| 142 | Dudley North | Ian Austin MP | Leave | 33.30292 | Labour | England | E14000671 |
| 143 | Dudley South | Mike Wood MP | Leave | 33.63889 | Conservative | England | E14000672 |
| 144 | Dulwich and West Norwood | Helen Hayes MP | Remain | 75.60741 | Labour | England | E14000673 |
| 145 | Ealing Central and Acton | Dr Rupa Huq MP | Remain | 69.58669 | Labour | England | E14000674 |
| 146 | Ealing North | Stephen Pound MP | Leave | 47.23275 | Labour | England | E14000675 |
| 147 | Ealing, Southall | Mr Virendra Sharma MP | Leave | 48.76958 | Labour | England | E14000676 |
| 148 | Easington | Grahame Morris MP | Leave | 31.95732 | Labour | England | E14000677 |
| 149 | East Devon | Rt Hon Hugo Swire MP | Leave | 47.85649 | Conservative | England | E14000678 |
| 150 | East Ham | Rt Hon Stephen Timms MP | Leave | 42.77126 | Labour | England | E14000679 |
| 151 | East Hampshire | Damian Hinds MP | Remain | 53.03032 | Conservative | England | E14000680 |
| 152 | East Surrey | Mr Sam Gyimah MP | Leave | 48.62046 | Conservative | England | E14000681 |
| 153 | East Worthing and Shoreham | Tim Loughton MP | Leave | 48.43208 | Conservative | England | E14000682 |
| 154 | East Yorkshire | Rt Hon Sir Greg Knight MP | Leave | 37.29109 | Conservative | England | E14000683 |
| 155 | Eastbourne | Caroline Ansell MP | Leave | 42.67680 | Conservative | England | E14000684 |
| 156 | Eastleigh | Mims Davies MP | Leave | 43.44535 | Conservative | England | E14000685 |
| 157 | Eddisbury | Antoinette Sandbach MP | Leave | 44.61328 | Conservative | England | E14000686 |
| 158 | Edmonton | Kate Osamor MP | Leave | 39.28219 | Labour | England | E14000687 |
| 159 | Ellesmere Port and Neston | Justin Madders MP | Leave | 41.10869 | Labour | England | E14000688 |
| 160 | Elmet and Rothwell | Alec Shelbrooke MP | Leave | 43.00186 | Conservative | England | E14000689 |
| 161 | Eltham | Clive Efford MP | Leave | 48.42405 | Labour | England | E14000690 |
| 162 | Enfield North | Rt Hon Joan Ryan MP | Leave | 43.07643 | Labour | England | E14000691 |
| 163 | Enfield, Southgate | Mr David Burrowes MP | Remain | 57.41108 | Conservative | England | E14000692 |
| 164 | Epping Forest | Mrs Eleanor Laing MP | Leave | 44.64482 | Conservative | England | E14000693 |
| 165 | Epsom and Ewell | Rt Hon Chris Grayling MP | Remain | 52.47004 | Conservative | England | E14000694 |
| 166 | Erewash | Maggie Throup MP | Leave | 37.74201 | Conservative | England | E14000695 |
| 167 | Erith and Thamesmead | Teresa Pearce MP | Leave | 37.56011 | Labour | England | E14000696 |
| 168 | Esher and Walton | Dominic Raab MP | Remain | 60.87542 | Conservative | England | E14000697 |
| 169 | Exeter | Rt Hon Ben Bradshaw MP | Remain | 51.27120 | Labour | England | E14000698 |
| 170 | Fareham | Suella Fernandes MP | Leave | 43.79101 | Conservative | England | E14000699 |
| 171 | Faversham and Mid Kent | Helen Whately MP | Leave | 43.83487 | Conservative | England | E14000700 |
| 172 | Feltham and Heston | Seema Malhotra MP | Leave | 41.02092 | Labour | England | E14000701 |
| 173 | Filton and Bradley Stoke | Jack Lopresti MP | Leave | 47.25278 | Conservative | England | E14000702 |
| 174 | Finchley and Golders Green | Mike Freer MP | Remain | 64.86241 | Conservative | England | E14000703 |
| 175 | Folkestone and Hythe | Damian Collins MP | Leave | 40.56981 | Conservative | England | E14000704 |
| 176 | Forest of Dean | Rt Hon Mark Harper MP | Leave | 42.39782 | Conservative | England | E14000705 |
| 177 | Fylde | Mark Menzies MP | Leave | 40.26822 | Conservative | England | E14000706 |
| 178 | Gainsborough | Sir Edward Leigh MP | Leave | 37.87616 | Conservative | England | E14000707 |
| 179 | Garston and Halewood | Maria Eagle MP | Leave | 44.39496 | Labour | England | E14000708 |
| 180 | Gateshead | Ian Mearns MP | Leave | 38.82249 | Labour | England | E14000709 |
| 181 | Gedling | Vernon Coaker MP | Leave | 43.52277 | Labour | England | E14000710 |
| 182 | Gillingham and Rainham | Rehman Chishti MP | Leave | 36.93960 | Conservative | England | E14000711 |
| 183 | Gloucester | Richard Graham MP | Leave | 39.30213 | Conservative | England | E14000712 |
| 184 | Gosport | Caroline Dinenage MP | Leave | 38.07544 | Conservative | England | E14000713 |
| 185 | Grantham and Stamford | Nick Boles MP | Leave | 40.76685 | Conservative | England | E14000714 |
| 186 | Gravesham | Adam Holloway MP | Leave | 37.58799 | Conservative | England | E14000715 |
| 187 | Great Grimsby | Melanie Onn MP | Leave | 32.43049 | Labour | England | E14000716 |
| 188 | Great Yarmouth | Brandon Lewis MP | Leave | 34.10895 | Conservative | England | E14000717 |
| 189 | Greenwich and Woolwich | Matthew Pennycook MP | Remain | 58.15267 | Labour | England | E14000718 |
| 190 | Guildford | Rt Hon Anne Milton MP | Remain | 57.78919 | Conservative | England | E14000719 |
| 191 | Hackney North and Stoke Newington | Ms Diane Abbott MP | Remain | 72.44011 | Labour | England | E14000720 |
| 192 | Hackney South and Shoreditch | Meg Hillier MP | Remain | 73.25205 | Labour | England | E14000721 |
| 193 | Halesowen and Rowley Regis | James Morris MP | Leave | 35.74607 | Conservative | England | E14000722 |
| 194 | Halifax | Holly Lynch MP | Leave | 36.70200 | Labour | England | E14000723 |
| 195 | Haltemprice and Howden | Rt Hon David Davis MP | Leave | 41.05268 | Conservative | England | E14000724 |
| 196 | Halton | Derek Twigg MP | Leave | 37.03778 | Labour | England | E14000725 |
| 197 | Hammersmith | Andy Slaughter MP | Remain | 71.12920 | Labour | England | E14000726 |
| 198 | Hampstead and Kilburn | Tulip Siddiq MP | Remain | 76.68298 | Labour | England | E14000727 |
| 199 | Harborough | Rt Hon Sir Edward Garnier QC MP | Leave | 45.55373 | Conservative | England | E14000728 |
| 200 | Harlow | Rt Hon Robert Halfon MP | Leave | 36.49475 | Conservative | England | E14000729 |
| 201 | Harrogate and Knaresborough | Andrew Jones MP | Remain | 50.01713 | Conservative | England | E14000730 |
| 202 | Harrow East | Bob Blackman MP | Leave | 46.24983 | Conservative | England | E14000731 |
| 203 | Harrow West | Gareth Thomas MP | Leave | 49.90977 | Labour | England | E14000732 |
| 204 | Hartlepool | Mr Iain Wright MP | Leave | 32.65893 | Labour | England | E14000733 |
| 205 | Harwich and North Essex | Mr Bernard Jenkin MP | Leave | 43.73952 | Conservative | England | E14000734 |
| 206 | Hastings and Rye | Rt Hon Amber Rudd MP | Leave | 44.28555 | Conservative | England | E14000735 |
| 207 | Havant | Mr Alan Mak MP | Leave | 39.19379 | Conservative | England | E14000736 |
| 208 | Hayes and Harlington | John McDonnell MP | Leave | 38.98027 | Labour | England | E14000737 |
| 209 | Hazel Grove | William Wragg MP | Leave | 45.53935 | Conservative | England | E14000738 |
| 210 | Hemel Hempstead | Rt Hon Mike Penning MP | Leave | 44.35010 | Conservative | England | E14000739 |
| 211 | Hemsworth | Jon Trickett MP | Leave | 34.18865 | Labour | England | E14000740 |
| 212 | Hendon | Dr Matthew Offord MP | Leave | 49.84683 | Conservative | England | E14000741 |
| 213 | Henley | John Howell MP | Remain | 59.61446 | Conservative | England | E14000742 |
| 214 | Hereford and South Herefordshire | Jesse Norman MP | Leave | 40.87663 | Conservative | England | E14000743 |
| 215 | Hertford and Stortford | Mr Mark Prisk MP | Remain | 50.89881 | Conservative | England | E14000744 |
| 216 | Hertsmere | Oliver Dowden MP | Leave | 49.03661 | Conservative | England | E14000745 |
| 217 | Hexham | Guy Opperman MP | Leave | 49.40357 | Conservative | England | E14000746 |
| 218 | Heywood and Middleton | Liz McInnes MP | Leave | 36.17471 | Labour | England | E14000747 |
| 219 | High Peak | Andrew Bingham MP | Leave | 47.79516 | Conservative | England | E14000748 |
| 220 | Hitchin and Harpenden | Rt Hon Peter Lilley MP | Remain | 60.26854 | Conservative | England | E14000749 |
| 221 | Holborn and St Pancras | Keir Starmer MP | Remain | 72.30785 | Labour | England | E14000750 |
| 222 | Hornchurch and Upminster | Dame Angela Watkinson MP | Leave | 37.44940 | Conservative | England | E14000751 |
| 223 | Hornsey and Wood Green | Catherine West MP | Remain | 82.36436 | Labour | England | E14000752 |
| 224 | Horsham | Jeremy Quin MP | Leave | 49.99929 | Conservative | England | E14000753 |
| 225 | Houghton and Sunderland South | Bridget Phillipson MP | Leave | 33.75061 | Labour | England | E14000754 |
| 226 | Hove | Peter Kyle MP | Remain | 71.43275 | Labour | England | E14000755 |
| 227 | Huddersfield | Mr Barry Sheerman MP | Leave | 39.50195 | Labour | England | E14000756 |
| 228 | Huntingdon | Mr Jonathan Djanogly MP | Leave | 45.55625 | Conservative | England | E14000757 |
| 229 | Hyndburn | Graham Jones MP | Leave | 34.69247 | Labour | England | E14000758 |
| 230 | Ilford North | Wes Streeting MP | Leave | 47.83360 | Labour | England | E14000759 |
| 231 | Ilford South | Mike Gapes MP | Leave | 45.06857 | Labour | England | E14000760 |
| 232 | Ipswich | Ben Gummer MP | Leave | 41.73901 | Conservative | England | E14000761 |
| 233 | Isle of Wight | Mr Andrew Turner MP | Leave | 40.72905 | Conservative | England | E14000762 |
| 234 | Islington North | Rt Hon Jeremy Corbyn MP | Remain | 82.30499 | Labour | England | E14000763 |
| 235 | Islington South and Finsbury | Emily Thornberry MP | Remain | 75.64867 | Labour | England | E14000764 |
| 236 | Jarrow | Mr Stephen Hepburn MP | Leave | 36.54307 | Labour | England | E14000765 |
| 237 | Keighley | Kris Hopkins MP | Leave | 42.56084 | Conservative | England | E14000766 |
| 238 | Kenilworth and Southam | Rt Hon Jeremy Wright QC MP | Remain | 53.19066 | Conservative | England | E14000767 |
| 239 | Kensington | Victoria Borwick MP | Remain | 74.82366 | Conservative | England | E14000768 |
| 240 | Kettering | Mr Philip Hollobone MP | Leave | 38.78408 | Conservative | England | E14000769 |
| 241 | Kingston and Surbiton | James Berry MP | Remain | 58.16880 | Conservative | England | E14000770 |
| 242 | Kingston upon Hull East | Karl Turner MP | Leave | 32.03503 | Labour | England | E14000771 |
| 243 | Kingston upon Hull North | Diana Johnson MP | Leave | 36.91237 | Labour | England | E14000772 |
| 244 | Kingston upon Hull West and Hessle | Rt Hon Alan Johnson MP | Leave | 34.87771 | Labour | England | E14000773 |
| 245 | Kingswood | Chris Skidmore MP | Leave | 41.44406 | Conservative | England | E14000774 |
| 246 | Knowsley | Rt Hon George Howarth MP | Leave | 37.08703 | Labour | England | E14000775 |
| 247 | Lancaster and Fleetwood | Cat Smith MP | Leave | 44.65901 | Labour | England | E14000776 |
| 248 | Leeds Central | Rt Hon Hilary Benn MP | Leave | 41.02984 | Labour | England | E14000777 |
| 249 | Leeds East | Richard Burgon MP | Leave | 35.84307 | Labour | England | E14000778 |
| 250 | Leeds North East | Fabian Hamilton MP | Remain | 58.78481 | Labour | England | E14000779 |
| 251 | Leeds North West | Greg Mulholland MP | Remain | 53.65381 | Liberal Democrat | England | E14000780 |
| 252 | Leeds West | Rachel Reeves MP | Leave | 42.87869 | Labour | England | E14000781 |
| 253 | Leicester East | Rt Hon Keith Vaz MP | Leave | 39.69203 | Labour | England | E14000782 |
| 254 | Leicester South | Jonathan Ashworth MP | Leave | 45.29788 | Labour | England | E14000783 |
| 255 | Leicester West | Liz Kendall MP | Leave | 38.32368 | Labour | England | E14000784 |
| 256 | Leigh | Rt Hon Andy Burnham MP | Leave | 35.54709 | Labour | England | E14000785 |
| 257 | Lewes | Maria Caulfield MP | Remain | 57.18027 | Conservative | England | E14000786 |
| 258 | Lewisham East | Heidi Alexander MP | Remain | 52.70393 | Labour | England | E14000787 |
| 259 | Lewisham West and Penge | Jim Dowd MP | Remain | 61.51399 | Labour | England | E14000788 |
| 260 | Lewisham, Deptford | Vicky Foxcroft MP | Remain | 67.62037 | Labour | England | E14000789 |
| 261 | Leyton and Wanstead | John Cryer MP | Remain | 57.06588 | Labour | England | E14000790 |
| 262 | Lichfield | Michael Fabricant MP | Leave | 41.44401 | Conservative | England | E14000791 |
| 263 | Lincoln | Karl McCartney MP | Leave | 40.08916 | Conservative | England | E14000792 |
| 264 | Liverpool, Riverside | Mrs Louise Ellman MP | Remain | 51.19776 | Labour | England | E14000793 |
| 265 | Liverpool, Walton | Steve Rotheram MP | Leave | 37.69355 | Labour | England | E14000794 |
| 266 | Liverpool, Wavertree | Luciana Berger MP | Leave | 47.76999 | Labour | England | E14000795 |
| 267 | Liverpool, West Derby | Stephen Twigg MP | Leave | 39.65550 | Labour | England | E14000796 |
| 268 | Loughborough | Rt Hon Nicky Morgan MP | Leave | 44.42266 | Conservative | England | E14000797 |
| 269 | Louth and Horncastle | Victoria Atkins MP | Leave | 35.50503 | Conservative | England | E14000798 |
| 270 | Ludlow | Mr Philip Dunne MP | Leave | 42.95880 | Conservative | England | E14000799 |
| 271 | Luton North | Kelvin Hopkins MP | Leave | 38.21147 | Labour | England | E14000800 |
| 272 | Luton South | Mr Gavin Shuker MP | Leave | 38.19322 | Labour | England | E14000801 |
| 273 | Macclesfield | David Rutley MP | Remain | 50.60686 | Conservative | England | E14000802 |
| 274 | Maidenhead | Rt Hon Theresa May MP | Remain | 56.05528 | Conservative | England | E14000803 |
| 275 | Maidstone and The Weald | Mrs Helen Grant MP | Leave | 43.39109 | Conservative | England | E14000804 |
| 276 | Makerfield | Yvonne Fovargue MP | Leave | 34.18438 | Labour | England | E14000805 |
| 277 | Maldon | Rt Hon John Whittingdale MP | Leave | 40.67821 | Conservative | England | E14000806 |
| 278 | Manchester Central | Lucy Powell MP | Leave | 48.66765 | Labour | England | E14000807 |
| 279 | Manchester, Gorton | Rt Hon Sir Gerald Kaufman MP | Leave | 48.29298 | Labour | England | E14000808 |
| 280 | Manchester, Withington | Jeff Smith MP | Remain | 67.51072 | Labour | England | E14000809 |
| 281 | Mansfield | Sir Alan Meale MP | Leave | 33.32638 | Labour | England | E14000810 |
| 282 | Meon Valley | George Hollingbery MP | Leave | 46.84464 | Conservative | England | E14000811 |
| 283 | Meriden | Rt Hon Caroline Spelman MP | Leave | 41.05852 | Conservative | England | E14000812 |
| 284 | Mid Bedfordshire | Nadine Dorries MP | Leave | 45.33481 | Conservative | England | E14000813 |
| 285 | Mid Derbyshire | Pauline Latham MP | Leave | 44.79197 | Conservative | England | E14000814 |
| 286 | Mid Dorset and North Poole | Michael Tomlinson MP | Leave | 45.30506 | Conservative | England | E14000815 |
| 287 | Mid Norfolk | George Freeman MP | Leave | 40.90647 | Conservative | England | E14000816 |
| 288 | Mid Sussex | Rt Hon Sir Nicholas Soames MP | Remain | 52.44416 | Conservative | England | E14000817 |
| 289 | Mid Worcestershire | Nigel Huddleston MP | Leave | 40.74568 | Conservative | England | E14000818 |
| 290 | Middlesbrough | Andy McDonald MP | Leave | 33.42073 | Labour | England | E14000819 |
| 291 | Middlesbrough South and East Cleveland | Tom Blenkinsop MP | Leave | 34.58445 | Labour | England | E14000820 |
| 292 | Milton Keynes North | Mark Lancaster MP | Leave | 45.96077 | Conservative | England | E14000821 |
| 293 | Milton Keynes South | Iain Stewart MP | Leave | 45.08752 | Conservative | England | E14000822 |
| 294 | Mitcham and Morden | Siobhain McDonagh MP | Leave | 47.48419 | Labour | England | E14000823 |
| 295 | Mole Valley | Sir Paul Beresford MP | Remain | 57.31282 | Conservative | England | E14000824 |
| 296 | Morecambe and Lunesdale | David Morris MP | Leave | 39.38606 | Conservative | England | E14000825 |
| 297 | Morley and Outwood | Andrea Jenkyns MP | Leave | 38.72962 | Conservative | England | E14000826 |
| 298 | New Forest East | Rt Hon Dr Julian Lewis MP | Leave | 42.95158 | Conservative | England | E14000827 |
| 299 | New Forest West | Rt Hon Sir Desmond Swayne MP | Leave | 46.47130 | Conservative | England | E14000828 |
| 300 | Newark | Robert Jenrick MP | Leave | 43.46572 | Conservative | England | E14000829 |
| 301 | Newbury | Richard Benyon MP | Remain | 50.65394 | Conservative | England | E14000830 |
| 302 | Newcastle upon Tyne Central | Chi Onwurah MP | Leave | 43.19130 | Labour | England | E14000831 |
| 303 | Newcastle upon Tyne East | Rt Hon Nicholas Brown MP | Leave | 48.00971 | Labour | England | E14000832 |
| 304 | Newcastle upon Tyne North | Catherine McKinnell MP | Leave | 43.31906 | Labour | England | E14000833 |
| 305 | Newcastle-under-Lyme | Paul Farrelly MP | Leave | 37.57625 | Labour | England | E14000834 |
| 306 | Newton Abbot | Anne Marie Morris MP | Leave | 44.20073 | Conservative | England | E14000835 |
| 307 | Normanton, Pontefract and Castleford | Rt Hon Yvette Cooper MP | Leave | 33.09325 | Labour | England | E14000836 |
| 308 | North Cornwall | Scott Mann MP | Leave | 41.57573 | Conservative | England | E14000837 |
| 309 | North Devon | Peter Heaton-Jones MP | Leave | 42.90807 | Conservative | England | E14000838 |
| 310 | North Dorset | Simon Hoare MP | Leave | 45.65144 | Conservative | England | E14000839 |
| 311 | North Durham | Mr Kevan Jones MP | Leave | 36.44409 | Labour | England | E14000840 |
| 312 | North East Bedfordshire | Rt Hon Alistair Burt MP | Leave | 45.57647 | Conservative | England | E14000841 |
| 313 | North East Cambridgeshire | Stephen Barclay MP | Leave | 35.40199 | Conservative | England | E14000842 |
| 314 | North East Derbyshire | Natascha Engel MP | Leave | 38.18351 | Labour | England | E14000843 |
| 315 | North East Hampshire | Mr Ranil Jayawardena MP | Remain | 52.33861 | Conservative | England | E14000844 |
| 316 | North East Hertfordshire | Sir Oliver Heald QC MP | Leave | 49.60312 | Conservative | England | E14000845 |
| 317 | North East Somerset | Mr Jacob Rees-Mogg MP | Remain | 50.00627 | Conservative | England | E14000846 |
| 318 | North Herefordshire | Bill Wiggin MP | Leave | 44.15071 | Conservative | England | E14000847 |
| 319 | North Norfolk | Rt Hon Norman Lamb MP | Leave | 41.01328 | Liberal Democrat | England | E14000848 |
| 320 | North Shropshire | Rt Hon Owen Paterson MP | Leave | 38.78258 | Conservative | England | E14000849 |
| 321 | North Somerset | Rt Hon Dr Liam Fox MP | Remain | 53.25132 | Conservative | England | E14000850 |
| 322 | North Swindon | Justin Tomlinson MP | Leave | 39.69948 | Conservative | England | E14000851 |
| 323 | North Thanet | Sir Roger Gale MP | Leave | 38.50831 | Conservative | England | E14000852 |
| 324 | North Tyneside | Mary Glindon MP | Leave | 38.28064 | Labour | England | E14000853 |
| 325 | North Warwickshire | Craig Tracey MP | Leave | 34.96377 | Conservative | England | E14000854 |
| 326 | North West Cambridgeshire | Mr Shailesh Vara MP | Leave | 41.25326 | Conservative | England | E14000855 |
| 327 | North West Durham | Pat Glass MP | Leave | 37.38574 | Labour | England | E14000856 |
| 328 | North West Hampshire | Kit Malthouse MP | Leave | 45.90931 | Conservative | England | E14000857 |
| 329 | North West Leicestershire | Andrew Bridgen MP | Leave | 39.64145 | Conservative | England | E14000858 |
| 330 | North West Norfolk | Sir Henry Bellingham MP | Leave | 37.08727 | Conservative | England | E14000859 |
| 331 | North Wiltshire | James Gray MP | Leave | 48.66658 | Conservative | England | E14000860 |
| 332 | Northampton North | Michael Ellis MP | Leave | 38.56707 | Conservative | England | E14000861 |
| 333 | Northampton South | David Mackintosh MP | Leave | 39.22381 | Conservative | England | E14000862 |
| 334 | Norwich North | Chloe Smith MP | Leave | 44.28068 | Conservative | England | E14000863 |
| 335 | Norwich South | Clive Lewis MP | Remain | 56.30241 | Labour | England | E14000864 |
| 336 | Nottingham East | Chris Leslie MP | Leave | 45.79216 | Labour | England | E14000865 |
| 337 | Nottingham North | Mr Graham Allen MP | Leave | 33.96228 | Labour | England | E14000866 |
| 338 | Nottingham South | Lilian Greenwood MP | Leave | 43.68229 | Labour | England | E14000867 |
| 339 | Nuneaton | Mr Marcus Jones MP | Leave | 35.60145 | Conservative | England | E14000868 |
| 340 | Old Bexley and Sidcup | Rt Hon James Brokenshire MP | Leave | 40.87375 | Conservative | England | E14000869 |
| 341 | Oldham East and Saddleworth | Debbie Abrahams MP | Leave | 37.12270 | Labour | England | E14000870 |
| 342 | Oldham West and Royton | Jim McMahon MP | Leave | 37.09486 | Labour | England | E14000871 |
| 343 | Orpington | Joseph Johnson MP | Leave | 45.23700 | Conservative | England | E14000872 |
| 344 | Oxford East | Rt Hon Andrew Smith MP | Remain | 62.42277 | Labour | England | E14000873 |
| 345 | Oxford West and Abingdon | Nicola Blackwood MP | Remain | 68.02344 | Conservative | England | E14000874 |
| 346 | Pendle | Andrew Stephenson MP | Leave | 35.49402 | Conservative | England | E14000875 |
| 347 | Penistone and Stocksbridge | Angela Smith MP | Leave | 38.95717 | Labour | England | E14000876 |
| 348 | Penrith and The Border | Rory Stewart MP | Leave | 42.06850 | Conservative | England | E14000877 |
| 349 | Peterborough | Mr Stewart Jackson MP | Leave | 37.49097 | Conservative | England | E14000878 |
| 350 | Plymouth, Moor View | Johnny Mercer MP | Leave | 34.47799 | Conservative | England | E14000879 |
| 351 | Plymouth, Sutton and Devonport | Oliver Colvile MP | Leave | 43.69736 | Conservative | England | E14000880 |
| 352 | Poole | Mr Robert Syms MP | Leave | 43.96013 | Conservative | England | E14000881 |
| 353 | Poplar and Limehouse | Jim Fitzpatrick MP | Remain | 62.07652 | Labour | England | E14000882 |
| 354 | Portsmouth North | Penny Mordaunt MP | Leave | 37.98739 | Conservative | England | E14000883 |
| 355 | Portsmouth South | Mrs Flick Drummond MP | Leave | 44.65225 | Conservative | England | E14000884 |
| 356 | Preston | Mr Mark Hendrick MP | Leave | 38.46734 | Labour | England | E14000885 |
| 357 | Pudsey | Stuart Andrew MP | Leave | 49.16963 | Conservative | England | E14000886 |
| 358 | Putney | Rt Hon Justine Greening MP | Remain | 74.82067 | Conservative | England | E14000887 |
| 359 | Rayleigh and Wickford | Rt Hon Mark Francois MP | Leave | 36.91114 | Conservative | England | E14000888 |
| 360 | Reading East | Mr Rob Wilson MP | Remain | 55.90215 | Conservative | England | E14000889 |
| 361 | Reading West | Alok Sharma MP | Leave | 46.81698 | Conservative | England | E14000890 |
| 362 | Redcar | Anna Turley MP | Leave | 32.41947 | Labour | England | E14000891 |
| 363 | Redditch | Karen Lumley MP | Leave | 37.87327 | Conservative | England | E14000892 |
| 364 | Reigate | Crispin Blunt MP | Remain | 52.03563 | Conservative | England | E14000893 |
| 365 | Ribble Valley | Mr Nigel Evans MP | Leave | 40.29518 | Conservative | England | E14000894 |
| 366 | Richmond (Yorks) | Rishi Sunak MP | Leave | 40.15314 | Conservative | England | E14000895 |
| 367 | Richmond Park | Zac Goldsmith MP | Remain | 77.11149 | Conservative | England | E14000896 |
| 368 | Rochdale | Simon Danczuk MP | Leave | 36.99654 | Labour | England | E14000897 |
| 369 | Rochester and Strood | Kelly Tolhurst MP | Leave | 38.62477 | Conservative | England | E14000898 |
| 370 | Rochford and Southend East | James Duddridge MP | Leave | 38.47526 | Conservative | England | E14000899 |
| 371 | Romford | Andrew Rosindell MP | Leave | 38.08108 | Conservative | England | E14000900 |
| 372 | Romsey and Southampton North | Caroline Nokes MP | Remain | 51.18540 | Conservative | England | E14000901 |
| 373 | Rossendale and Darwen | Jake Berry MP | Leave | 37.95023 | Conservative | England | E14000902 |
| 374 | Rother Valley | Rt Hon Kevin Barron MP | Leave | 34.79886 | Labour | England | E14000903 |
| 375 | Rotherham | Sarah Champion MP | Leave | 33.20915 | Labour | England | E14000904 |
| 376 | Rugby | Mark Pawsey MP | Leave | 41.26953 | Conservative | England | E14000905 |
| 377 | Ruislip, Northwood and Pinner | Mr Nick Hurd MP | Remain | 53.95217 | Conservative | England | E14000906 |
| 378 | Runnymede and Weybridge | Rt Hon Philip Hammond MP | Remain | 50.48412 | Conservative | England | E14000907 |
| 379 | Rushcliffe | Rt Hon Kenneth Clarke QC MP | Remain | 55.95099 | Conservative | England | E14000908 |
| 380 | Rutland and Melton | Rt Hon Sir Alan Duncan MP | Leave | 45.38761 | Conservative | England | E14000909 |
| 381 | Saffron Walden | Rt Hon Sir Alan Haselhurst MP | Leave | 49.38167 | Conservative | England | E14000910 |
| 382 | Salford and Eccles | Rebecca Long Bailey MP | Leave | 44.12468 | Labour | England | E14000911 |
| 383 | Salisbury | John Glen MP | Leave | 49.42441 | Conservative | England | E14000912 |
| 384 | Scarborough and Whitby | Mr Robert Goodwill MP | Leave | 37.47805 | Conservative | England | E14000913 |
| 385 | Scunthorpe | Nic Dakin MP | Leave | 32.96296 | Labour | England | E14000914 |
| 386 | Sedgefield | Phil Wilson MP | Leave | 35.39503 | Labour | England | E14000915 |
| 387 | Sefton Central | Bill Esterson MP | Leave | 47.54615 | Labour | England | E14000916 |
| 388 | Selby and Ainsty | Nigel Adams MP | Leave | 42.15678 | Conservative | England | E14000917 |
| 389 | Sevenoaks | Rt Hon Michael Fallon MP | Leave | 49.53292 | Conservative | England | E14000918 |
| 390 | Sheffield Central | Paul Blomfield MP | Remain | 51.88405 | Labour | England | E14000919 |
| 391 | Sheffield South East | Mr Clive Betts MP | Leave | 35.46526 | Labour | England | E14000920 |
| 392 | Sheffield, Brightside and Hillsborough | Gill Furniss MP | Leave | 35.77051 | Labour | England | E14000921 |
| 393 | Sheffield, Hallam | Rt Hon Nick Clegg MP | Remain | 61.52083 | Liberal Democrat | England | E14000922 |
| 394 | Sheffield, Heeley | Louise Haigh MP | Leave | 41.69509 | Labour | England | E14000923 |
| 395 | Sherwood | Mark Spencer MP | Leave | 37.28962 | Conservative | England | E14000924 |
| 396 | Shipley | Philip Davies MP | Leave | 45.29088 | Conservative | England | E14000925 |
| 397 | Shrewsbury and Atcham | Daniel Kawczynski MP | Leave | 45.17013 | Conservative | England | E14000926 |
| 398 | Sittingbourne and Sheppey | Gordon Henderson MP | Leave | 35.06897 | Conservative | England | E14000927 |
| 399 | Skipton and Ripon | Julian Smith MP | Leave | 45.84392 | Conservative | England | E14000928 |
| 400 | Sleaford and North Hykeham | Stephen Phillips QC MP | Leave | 39.22434 | Conservative | England | E14000929 |
| 401 | Slough | Rt Hon Fiona Mactaggart MP | Leave | 40.93806 | Labour | England | E14000930 |
| 402 | Solihull | Julian Knight MP | Leave | 44.62474 | Conservative | England | E14000931 |
| 403 | Somerton and Frome | David Warburton MP | Leave | 49.75458 | Conservative | England | E14000932 |
| 404 | South Basildon and East Thurrock | Stephen Metcalfe MP | Leave | 34.10856 | Conservative | England | E14000933 |
| 405 | South Cambridgeshire | Heidi Allen MP | Remain | 62.86468 | Conservative | England | E14000934 |
| 406 | South Derbyshire | Heather Wheeler MP | Leave | 38.80641 | Conservative | England | E14000935 |
| 407 | South Dorset | Richard Drax MP | Leave | 41.64566 | Conservative | England | E14000936 |
| 408 | South East Cambridgeshire | Lucy Frazer MP | Remain | 54.54874 | Conservative | England | E14000937 |
| 409 | South East Cornwall | Mrs Sheryll Murray MP | Leave | 43.04997 | Conservative | England | E14000938 |
| 410 | South Holland and The Deepings | Rt Hon John Hayes MP | Leave | 34.70158 | Conservative | England | E14000939 |
| 411 | South Leicestershire | Alberto Costa MP | Leave | 40.65808 | Conservative | England | E14000940 |
| 412 | South Norfolk | Mr Richard Bacon MP | Leave | 47.56677 | Conservative | England | E14000941 |
| 413 | South Northamptonshire | Andrea Leadsom MP | Leave | 45.71197 | Conservative | England | E14000942 |
| 414 | South Ribble | Seema Kennedy MP | Leave | 39.87840 | Conservative | England | E14000943 |
| 415 | South Shields | Mrs Emma Lewell-Buck MP | Leave | 34.52164 | Labour | England | E14000944 |
| 416 | South Staffordshire | Rt Hon Gavin Williamson MP | Leave | 35.73380 | Conservative | England | E14000945 |
| 417 | South Suffolk | James Cartlidge MP | Leave | 45.55325 | Conservative | England | E14000946 |
| 418 | South Swindon | Robert Buckland MP | Leave | 43.62080 | Conservative | England | E14000947 |
| 419 | South Thanet | Craig Mackinlay MP | Leave | 41.20647 | Conservative | England | E14000948 |
| 420 | South West Bedfordshire | Andrew Selous MP | Leave | 41.19207 | Conservative | England | E14000949 |
| 421 | South West Devon | Mr Gary Streeter MP | Leave | 44.20375 | Conservative | England | E14000950 |
| 422 | South West Hertfordshire | Mr David Gauke MP | Remain | 56.09492 | Conservative | England | E14000951 |
| 423 | South West Norfolk | Rt Hon Elizabeth Truss MP | Leave | 36.21933 | Conservative | England | E14000952 |
| 424 | South West Surrey | Rt Hon Jeremy Hunt MP | Remain | 60.46629 | Conservative | England | E14000953 |
| 425 | South West Wiltshire | Dr Andrew Murrison MP | Leave | 43.60411 | Conservative | England | E14000954 |
| 426 | Southampton, Itchen | Royston Smith MP | Leave | 40.85717 | Conservative | England | E14000955 |
| 427 | Southampton, Test | Dr Alan Whitehead MP | Leave | 44.86518 | Labour | England | E14000956 |
| 428 | Southend West | Sir David Amess MP | Leave | 43.02764 | Conservative | England | E14000957 |
| 429 | Southport | John Pugh MP | Leave | 42.34990 | Liberal Democrat | England | E14000958 |
| 430 | Spelthorne | Kwasi Kwarteng MP | Leave | 43.47059 | Conservative | England | E14000959 |
| 431 | St Albans | Mrs Anne Main MP | Remain | 63.63298 | Conservative | England | E14000960 |
| 432 | St Austell and Newquay | Steve Double MP | Leave | 39.33138 | Conservative | England | E14000961 |
| 433 | St Helens North | Conor McGinn MP | Leave | 36.81243 | Labour | England | E14000962 |
| 434 | St Helens South and Whiston | Marie Rimmer MP | Leave | 37.67113 | Labour | England | E14000963 |
| 435 | St Ives | Derek Thomas MP | Leave | 45.88630 | Conservative | England | E14000964 |
| 436 | Stafford | Jeremy Lefroy MP | Leave | 39.98818 | Conservative | England | E14000965 |
| 437 | Staffordshire Moorlands | Karen Bradley MP | Leave | 37.74536 | Conservative | England | E14000966 |
| 438 | Stalybridge and Hyde | Jonathan Reynolds MP | Leave | 38.61289 | Labour | England | E14000967 |
| 439 | Stevenage | Stephen McPartland MP | Leave | 41.29306 | Conservative | England | E14000968 |
| 440 | Stockport | Ann Coffey MP | Leave | 47.56150 | Labour | England | E14000969 |
| 441 | Stockton North | Alex Cunningham MP | Leave | 33.42528 | Labour | England | E14000970 |
| 442 | Stockton South | James Wharton MP | Leave | 37.28974 | Conservative | England | E14000971 |
| 443 | Stoke-on-Trent Central | Tristram Hunt MP | Leave | 34.55085 | Labour | England | E14000972 |
| 444 | Stoke-on-Trent North | Ruth Smeeth MP | Leave | 32.60729 | Labour | England | E14000973 |
| 445 | Stoke-on-Trent South | Robert Flello MP | Leave | 33.19828 | Labour | England | E14000974 |
| 446 | Stone | Sir William Cash MP | Leave | 40.35936 | Conservative | England | E14000975 |
| 447 | Stourbridge | Margot James MP | Leave | 37.88850 | Conservative | England | E14000976 |
| 448 | Stratford-on-Avon | Nadhim Zahawi MP | Remain | 50.41796 | Conservative | England | E14000977 |
| 449 | Streatham | Mr Chuka Umunna MP | Remain | 70.51386 | Labour | England | E14000978 |
| 450 | Stretford and Urmston | Kate Green MP | Leave | 47.13455 | Labour | England | E14000979 |
| 451 | Stroud | Neil Carmichael MP | Remain | 54.46575 | Conservative | England | E14000980 |
| 452 | Suffolk Coastal | Dr Thérèse Coffey MP | Leave | 47.26441 | Conservative | England | E14000981 |
| 453 | Sunderland Central | Julie Elliott MP | Leave | 36.08864 | Labour | England | E14000982 |
| 454 | Surrey Heath | Rt Hon Michael Gove MP | Leave | 48.53344 | Conservative | England | E14000983 |
| 455 | Sutton and Cheam | Paul Scully MP | Leave | 49.26548 | Conservative | England | E14000984 |
| 456 | Sutton Coldfield | Rt Hon Andrew Mitchell MP | Leave | 45.83412 | Conservative | England | E14000985 |
| 457 | Tamworth | Christopher Pincher MP | Leave | 36.18341 | Conservative | England | E14000986 |
| 458 | Tatton | Rt Hon George Osborne MP | Remain | 52.21657 | Conservative | England | E14000987 |
| 459 | Taunton Deane | Rebecca Pow MP | Leave | 44.62636 | Conservative | England | E14000988 |
| 460 | Telford | Lucy Allan MP | Leave | 35.32091 | Conservative | England | E14000989 |
| 461 | Tewkesbury | Mr Laurence Robertson MP | Leave | 44.86410 | Conservative | England | E14000990 |
| 462 | The Cotswolds | Geoffrey Clifton-Brown MP | Remain | 53.70635 | Conservative | England | E14000991 |
| 463 | The Wrekin | Mark Pritchard MP | Leave | 38.13899 | Conservative | England | E14000992 |
| 464 | Thirsk and Malton | Kevin Hollinrake MP | Leave | 42.17399 | Conservative | England | E14000993 |
| 465 | Thornbury and Yate | Luke Hall MP | Leave | 45.65151 | Conservative | England | E14000994 |
| 466 | Thurrock | Jackie Doyle-Price MP | Leave | 35.40240 | Conservative | England | E14000995 |
| 467 | Tiverton and Honiton | Neil Parish MP | Leave | 43.41720 | Conservative | England | E14000996 |
| 468 | Tonbridge and Malling | Tom Tugendhat MP | Leave | 48.91283 | Conservative | England | E14000997 |
| 469 | Tooting | Dr Rosena Allin-Khan MP | Remain | 75.25024 | Labour | England | E14000998 |
| 470 | Torbay | Kevin Foster MP | Leave | 38.92700 | Conservative | England | E14000999 |
| 471 | Torridge and West Devon | Mr Geoffrey Cox QC MP | Leave | 43.79727 | Conservative | England | E14001000 |
| 472 | Totnes | Dr Sarah Wollaston MP | Remain | 51.34668 | Conservative | England | E14001001 |
| 473 | Tottenham | Rt Hon David Lammy MP | Remain | 53.45226 | Labour | England | E14001002 |
| 474 | Truro and Falmouth | Sarah Newton MP | Remain | 53.36998 | Conservative | England | E14001003 |
| 475 | Tunbridge Wells | Rt Hon Greg Clark MP | Remain | 55.15656 | Conservative | England | E14001004 |
| 476 | Twickenham | Dr Tania Mathias MP | Remain | 71.54404 | Conservative | England | E14001005 |
| 477 | Tynemouth | Rt Hon Alan Campbell MP | Leave | 45.69231 | Labour | England | E14001006 |
| 478 | Uxbridge and South Ruislip | Boris Johnson MP | Leave | 43.66407 | Conservative | England | E14001007 |
| 479 | Vauxhall | Kate Hoey MP | Remain | 73.01249 | Labour | England | E14001008 |
| 480 | Wakefield | Mary Creagh MP | Leave | 36.10926 | Labour | England | E14001009 |
| 481 | Wallasey | Ms Angela Eagle MP | Leave | 41.61866 | Labour | England | E14001010 |
| 482 | Walsall North | Mr David Winnick MP | Leave | 31.08231 | Labour | England | E14001011 |
| 483 | Walsall South | Valerie Vaz MP | Leave | 36.76880 | Labour | England | E14001012 |
| 484 | Walthamstow | Stella Creasy MP | Remain | 56.80097 | Labour | England | E14001013 |
| 485 | Wansbeck | Ian Lavery MP | Leave | 37.04577 | Labour | England | E14001014 |
| 486 | Wantage | Mr Edward Vaizey MP | Remain | 54.69941 | Conservative | England | E14001015 |
| 487 | Warley | Rt Hon John Spellar MP | Leave | 37.29797 | Labour | England | E14001016 |
| 488 | Warrington North | Helen Jones MP | Leave | 39.05665 | Labour | England | E14001017 |
| 489 | Warrington South | David Mowat MP | Leave | 45.22714 | Conservative | England | E14001018 |
| 490 | Warwick and Leamington | Chris White MP | Remain | 56.02619 | Conservative | England | E14001019 |
| 491 | Washington and Sunderland West | Mrs Sharon Hodgson MP | Leave | 34.43310 | Labour | England | E14001020 |
| 492 | Watford | Richard Harrington MP | Leave | 46.86839 | Conservative | England | E14001021 |
| 493 | Waveney | Peter Aldous MP | Leave | 37.21019 | Conservative | England | E14001022 |
| 494 | Wealden | Nusrat Ghani MP | Remain | 50.78828 | Conservative | England | E14001023 |
| 495 | Weaver Vale | Graham Evans MP | Leave | 43.82372 | Conservative | England | E14001024 |
| 496 | Wellingborough | Mr Peter Bone MP | Leave | 37.71701 | Conservative | England | E14001025 |
| 497 | Wells | James Heappey MP | Leave | 45.58974 | Conservative | England | E14001026 |
| 498 | Welwyn Hatfield | Rt Hon Grant Shapps MP | Leave | 45.47294 | Conservative | England | E14001027 |
| 499 | Wentworth and Dearne | Rt Hon John Healey MP | Leave | 32.48911 | Labour | England | E14001028 |
| 500 | West Bromwich East | Tom Watson MP | Leave | 34.14078 | Labour | England | E14001029 |
| 501 | West Bromwich West | Mr Adrian Bailey MP | Leave | 32.48763 | Labour | England | E14001030 |
| 502 | West Dorset | Rt Hon Oliver Letwin MP | Remain | 50.65724 | Conservative | England | E14001031 |
| 503 | West Ham | Lyn Brown MP | Leave | 48.57649 | Labour | England | E14001032 |
| 504 | West Lancashire | Rosie Cooper MP | Leave | 41.39242 | Labour | England | E14001033 |
| 505 | West Suffolk | Rt Hon Matthew Hancock MP | Leave | 38.45347 | Conservative | England | E14001034 |
| 506 | West Worcestershire | Harriett Baldwin MP | Leave | 47.63726 | Conservative | England | E14001035 |
| 507 | Westminster North | Ms Karen Buck MP | Remain | 65.96571 | Labour | England | E14001036 |
| 508 | Westmorland and Lonsdale | Tim Farron MP | Remain | 50.19891 | Liberal Democrat | England | E14001037 |
| 509 | Weston-Super-Mare | John Penrose MP | Leave | 41.20370 | Conservative | England | E14001038 |
| 510 | Wigan | Lisa Nandy MP | Leave | 35.01654 | Labour | England | E14001039 |
| 511 | Wimbledon | Stephen Hammond MP | Remain | 73.91992 | Conservative | England | E14001040 |
| 512 | Winchester | Steve Brine MP | Remain | 61.57504 | Conservative | England | E14001041 |
| 513 | Windsor | Adam Afriyie MP | Remain | 52.17294 | Conservative | England | E14001042 |
| 514 | Wirral South | Alison McGovern MP | Leave | 46.53407 | Labour | England | E14001043 |
| 515 | Wirral West | Margaret Greenwood MP | Leave | 49.27110 | Labour | England | E14001044 |
| 516 | Witham | Rt Hon Priti Patel MP | Leave | 41.32694 | Conservative | England | E14001045 |
| 517 | Witney | Rt Hon David Cameron MP | Remain | 54.79183 | Conservative | England | E14001046 |
| 518 | Woking | Mr Jonathan Lord MP | Remain | 53.93197 | Conservative | England | E14001047 |
| 519 | Wokingham | Rt Hon John Redwood MP | Remain | 55.21289 | Conservative | England | E14001048 |
| 520 | Wolverhampton North East | Emma Reynolds MP | Leave | 32.68297 | Labour | England | E14001049 |
| 521 | Wolverhampton South East | Rt Hon Pat McFadden MP | Leave | 32.49642 | Labour | England | E14001050 |
| 522 | Wolverhampton South West | Rob Marris MP | Leave | 39.75039 | Labour | England | E14001051 |
| 523 | Worcester | Mr Robin Walker MP | Leave | 43.64068 | Conservative | England | E14001052 |
| 524 | Workington | Sue Hayman MP | Leave | 36.35132 | Labour | England | E14001053 |
| 525 | Worsley and Eccles South | Barbara Keeley MP | Leave | 37.95000 | Labour | England | E14001054 |
| 526 | Worthing West | Sir Peter Bottomley MP | Leave | 45.52322 | Conservative | England | E14001055 |
| 527 | Wycombe | Mr Steve Baker MP | Leave | 48.23007 | Conservative | England | E14001056 |
| 528 | Wyre and Preston North | Mr Ben Wallace MP | Leave | 41.77203 | Conservative | England | E14001057 |
| 529 | Wyre Forest | Mark Garnier MP | Leave | 37.71918 | Conservative | England | E14001058 |
| 530 | Wythenshawe and Sale East | Mike Kane MP | Leave | 43.36584 | Labour | England | E14001059 |
| 531 | Yeovil | Marcus Fysh MP | Leave | 39.56649 | Conservative | England | E14001060 |
| 532 | York Central | Rachael Maskell MP | Remain | 52.47939 | Labour | England | E14001061 |
| 533 | York Outer | Julian Sturdy MP | Leave | 49.11066 | Conservative | England | E14001062 |
| 552 | Aberdeen North | Kirsty Blackman MP | Remain | 62.90403 | Scottish National Party | Scotland | S14000001 |
| 553 | Aberdeen South | Callum McCaig MP | Remain | 66.69646 | Scottish National Party | Scotland | S14000002 |
| 554 | Airdrie and Shotts | Neil Gray MP | Remain | 56.23871 | Scottish National Party | Scotland | S14000003 |
| 555 | Angus | Mike Weir MP | Remain | 57.78520 | Scottish National Party | Scotland | S14000004 |
| 556 | Argyll and Bute | Brendan O’Hara MP | Remain | 62.90761 | Scottish National Party | Scotland | S14000005 |
| 557 | Ayr, Carrick and Cumnock | Corri Wilson MP | Remain | 58.22815 | Scottish National Party | Scotland | S14000006 |
| 558 | Banff and Buchan | Dr Eilidh Whiteford MP | Remain | 56.15656 | Scottish National Party | Scotland | S14000007 |
| 559 | Berwickshire, Roxburgh and Selkirk | Calum Kerr MP | Remain | 61.41145 | Scottish National Party | Scotland | S14000008 |
| 560 | Caithness, Sutherland and Easter Ross | Dr Paul Monaghan MP | Remain | 58.40054 | Scottish National Party | Scotland | S14000009 |
| 561 | Central Ayrshire | Dr Philippa Whitford MP | Remain | 58.02589 | Scottish National Party | Scotland | S14000010 |
| 562 | Coatbridge, Chryston and Bellshill | Philip Boswell MP | Remain | 57.19003 | Scottish National Party | Scotland | S14000011 |
| 563 | Cumbernauld, Kilsyth and Kirkintilloch East | Stuart C. McDonald MP | Remain | 58.88644 | Scottish National Party | Scotland | S14000012 |
| 564 | Dumfries and Galloway | Richard Arkless MP | Remain | 59.04182 | Scottish National Party | Scotland | S14000013 |
| 565 | Dumfriesshire, Clydesdale and Tweeddale | Rt Hon David Mundell MP | Remain | 61.66645 | Conservative | Scotland | S14000014 |
| 566 | Dundee East | Stewart Hosie MP | Remain | 60.02623 | Scottish National Party | Scotland | S14000015 |
| 567 | Dundee West | Chris Law MP | Remain | 61.04964 | Scottish National Party | Scotland | S14000016 |
| 568 | Dunfermline and West Fife | Douglas Chapman MP | Remain | 61.38540 | Scottish National Party | Scotland | S14000017 |
| 569 | East Dunbartonshire | John Nicolson MP | Remain | 68.78673 | Scottish National Party | Scotland | S14000018 |
| 570 | East Kilbride, Strathaven and Lesmahagow | Dr Lisa Cameron MP | Remain | 60.11700 | Scottish National Party | Scotland | S14000019 |
| 571 | East Lothian | George Kerevan MP | Remain | 65.44570 | Scottish National Party | Scotland | S14000020 |
| 572 | East Renfrewshire | Kirsten Oswald MP | Remain | 66.34651 | Scottish National Party | Scotland | S14000021 |
| 573 | Edinburgh East | Tommy Sheppard MP | Remain | 73.10335 | Scottish National Party | Scotland | S14000022 |
| 574 | Edinburgh North and Leith | Deidre Brock MP | Remain | 82.55039 | Scottish National Party | Scotland | S14000023 |
| 575 | Edinburgh South | Ian Murray MP | Remain | 81.72832 | Labour | Scotland | S14000024 |
| 576 | Edinburgh South West | Joanna Cherry QC MP | Remain | 72.74860 | Scottish National Party | Scotland | S14000025 |
| 577 | Edinburgh West | Michelle Thomson MP | Remain | 70.93306 | Scottish National Party | Scotland | S14000026 |
| 578 | Na h-Eileanan An Iar | Angus Brendan MacNeil MP | Remain | 58.33504 | Scottish National Party | Scotland | S14000027 |
| 579 | Falkirk | John Mc Nally MP | Remain | 58.51893 | Scottish National Party | Scotland | S14000028 |
| 580 | Glasgow Central | Alison Thewliss MP | Remain | 68.58157 | Scottish National Party | Scotland | S14000029 |
| 581 | Glasgow East | Natalie McGarry MP | Remain | 55.82305 | Scottish National Party | Scotland | S14000030 |
| 582 | Glasgow North | Patrick Grady MP | Remain | 74.74228 | Scottish National Party | Scotland | S14000031 |
| 583 | Glasgow North East | Anne McLaughlin MP | Remain | 57.75795 | Scottish National Party | Scotland | S14000032 |
| 584 | Glasgow North West | Carol Monaghan MP | Remain | 64.53606 | Scottish National Party | Scotland | S14000033 |
| 585 | Glasgow South | Stewart Malcolm McDonald MP | Remain | 66.12639 | Scottish National Party | Scotland | S14000034 |
| 586 | Glasgow South West | Chris Stephens MP | Remain | 57.51975 | Scottish National Party | Scotland | S14000035 |
| 587 | Glenrothes | Peter Grant MP | Remain | 56.44717 | Scottish National Party | Scotland | S14000036 |
| 588 | Gordon | Rt Hon Alex Salmond MP | Remain | 61.91873 | Scottish National Party | Scotland | S14000037 |
| 589 | Inverclyde | Ronnie Cowan MP | Remain | 58.03261 | Scottish National Party | Scotland | S14000038 |
| 590 | Inverness, Nairn, Badenoch and Strathspey | Drew Hendry MP | Remain | 61.37071 | Scottish National Party | Scotland | S14000039 |
| 591 | Kilmarnock and Loudoun | Alan Brown MP | Remain | 57.66129 | Scottish National Party | Scotland | S14000040 |
| 592 | Kirkcaldy and Cowdenbeath | Roger Mullin MP | Remain | 58.97678 | Scottish National Party | Scotland | S14000041 |
| 593 | Lanark and Hamilton East | Angela Crawley MP | Remain | 58.96978 | Scottish National Party | Scotland | S14000042 |
| 594 | Linlithgow and East Falkirk | Martyn Day MP | Remain | 59.92193 | Scottish National Party | Scotland | S14000043 |
| 595 | Livingston | Hannah Bardell MP | Remain | 59.87275 | Scottish National Party | Scotland | S14000044 |
| 596 | Midlothian | Owen Thompson MP | Remain | 61.97635 | Scottish National Party | Scotland | S14000045 |
| 597 | Moray | Rt Hon Angus Robertson MP | Remain | 58.61394 | Scottish National Party | Scotland | S14000046 |
| 598 | Motherwell and Wishaw | Marion Fellows MP | Remain | 56.64004 | Scottish National Party | Scotland | S14000047 |
| 599 | North Ayrshire and Arran | Patricia Gibson MP | Remain | 57.98725 | Scottish National Party | Scotland | S14000048 |
| 600 | North East Fife | Stephen Gethins MP | Remain | 66.89271 | Scottish National Party | Scotland | S14000049 |
| 601 | Ochil and South Perthshire | Ms Tasmina Ahmed-Sheikh MP | Remain | 62.61677 | Scottish National Party | Scotland | S14000050 |
| 602 | Orkney and Shetland | Rt Hon Alistair Carmichael MP | Remain | 61.06525 | Liberal Democrat | Scotland | S14000051 |
| 603 | Paisley and Renfrewshire North | Gavin Newlands MP | Remain | 60.45008 | Scottish National Party | Scotland | S14000052 |
| 604 | Paisley and Renfrewshire South | Mhairi Black MP | Remain | 59.57463 | Scottish National Party | Scotland | S14000053 |
| 605 | Perth and North Perthshire | Pete Wishart MP | Remain | 61.95182 | Scottish National Party | Scotland | S14000054 |
| 606 | Ross, Skye and Lochaber | Ian Blackford MP | Remain | 63.33389 | Scottish National Party | Scotland | S14000055 |
| 607 | Rutherglen and Hamilton West | Margaret Ferrier MP | Remain | 58.59853 | Scottish National Party | Scotland | S14000056 |
| 608 | Stirling | Steven Paterson MP | Remain | 66.62716 | Scottish National Party | Scotland | S14000057 |
| 609 | West Aberdeenshire and Kincardine | Stuart Blair Donaldson MP | Remain | 65.24501 | Scottish National Party | Scotland | S14000058 |
| 610 | West Dunbartonshire | Martin Docherty-Hughes MP | Remain | 57.58746 | Scottish National Party | Scotland | S14000059 |
| 611 | Ynys Mon | Albert Owen MP | Leave | 45.92776 | Labour | Wales | W07000041 |
| 612 | Delyn | Rt Hon David Hanson MP | Leave | 45.51641 | Labour | Wales | W07000042 |
| 613 | Alyn and Deeside | Mark Tami MP | Leave | 44.46600 | Labour | Wales | W07000043 |
| 614 | Wrexham | Ian C. Lucas MP | Leave | 43.64726 | Labour | Wales | W07000044 |
| 615 | Llanelli | Nia Griffith MP | Leave | 41.33506 | Labour | Wales | W07000045 |
| 616 | Gower | Byron Davies MP | Remain | 50.30419 | Conservative | Wales | W07000046 |
| 617 | Swansea West | Geraint Davies MP | Remain | 50.10055 | Labour | Wales | W07000047 |
| 618 | Swansea East | Carolyn Harris MP | Leave | 40.94856 | Labour | Wales | W07000048 |
| 619 | Aberavon | Stephen Kinnock MP | Leave | 40.31131 | Labour | Wales | W07000049 |
| 620 | Cardiff Central | Jo Stevens MP | Remain | 59.21361 | Labour | Wales | W07000050 |
| 621 | Cardiff North | Craig Williams MP | Remain | 58.33832 | Conservative | Wales | W07000051 |
| 622 | Rhondda | Chris Bryant MP | Leave | 39.14954 | Labour | Wales | W07000052 |
| 623 | Torfaen | Nick Thomas-Symonds MP | Leave | 40.57168 | Labour | Wales | W07000053 |
| 624 | Monmouth | David T. C. Davies MP | Remain | 52.50755 | Conservative | Wales | W07000054 |
| 625 | Newport East | Jessica Morden MP | Leave | 42.42585 | Labour | Wales | W07000055 |
| 626 | Newport West | Paul Flynn MP | Leave | 46.92373 | Labour | Wales | W07000056 |
| 627 | Arfon | Hywel Williams MP | Remain | 53.21047 | Plaid Cymru | Wales | W07000057 |
| 628 | Aberconwy | Guto Bebb MP | Leave | 48.19148 | Conservative | Wales | W07000058 |
| 629 | Clwyd West | Rt Hon David Jones MP | Leave | 46.60634 | Conservative | Wales | W07000059 |
| 630 | Vale of Clwyd | Dr James Davies MP | Leave | 42.90806 | Conservative | Wales | W07000060 |
| 631 | Dwyfor Meirionnydd | Liz Saville Roberts MP | Leave | 46.91059 | Plaid Cymru | Wales | W07000061 |
| 632 | Clwyd South | Susan Elan Jones MP | Leave | 42.76190 | Labour | Wales | W07000062 |
| 633 | Montgomeryshire | Glyn Davies MP | Leave | 46.01936 | Conservative | Wales | W07000063 |
| 634 | Ceredigion | Mr Mark Williams MP | Remain | 52.35783 | Liberal Democrat | Wales | W07000064 |
| 635 | Preseli Pembrokeshire | Rt Hon Stephen Crabb MP | Leave | 45.17310 | Conservative | Wales | W07000065 |
| 636 | Carmarthen West and Pembrokeshire South | Simon Hart MP | Leave | 44.18520 | Conservative | Wales | W07000066 |
| 637 | Carmarthen East and Dinefwr | Jonathan Edwards MP | Leave | 45.51539 | Plaid Cymru | Wales | W07000067 |
| 638 | Brecon and Radnorshire | Chris Davies MP | Leave | 48.91088 | Conservative | Wales | W07000068 |
| 639 | Neath | Christina Rees MP | Leave | 42.13602 | Labour | Wales | W07000069 |
| 640 | Cynon Valley | Rt Hon Ann Clwyd MP | Leave | 40.63476 | Labour | Wales | W07000070 |
| 641 | Merthyr Tydfil and Rhymney | Gerald Jones MP | Leave | 39.76750 | Labour | Wales | W07000071 |
| 642 | Blaenau Gwent | Nick Smith MP | Leave | 38.59069 | Labour | Wales | W07000072 |
| 643 | Bridgend | Mrs Madeleine Moon MP | Leave | 45.20336 | Labour | Wales | W07000073 |
| 644 | Ogmore | Chris Elmore MP | Leave | 41.02649 | Labour | Wales | W07000074 |
| 645 | Pontypridd | Owen Smith MP | Leave | 46.34345 | Labour | Wales | W07000075 |
| 646 | Caerphilly | Wayne David MP | Leave | 43.49427 | Labour | Wales | W07000076 |
| 647 | Islwyn | Chris Evans MP | Leave | 40.67607 | Labour | Wales | W07000077 |
| 648 | Vale of Glamorgan | Rt Hon Alun Cairns MP | Leave | 48.37491 | Conservative | Wales | W07000078 |
| 649 | Cardiff West | Kevin Brennan MP | Remain | 57.21191 | Labour | Wales | W07000079 |
| 650 | Cardiff South and Penarth | Stephen Doughty MP | Remain | 52.94807 | Labour | Wales | W07000080 |
I was initially concerned at the linearity of the rate of signature growth during the day (wondering if this might actually be an artefact of the back-end computer systems operating close to capacity), but so far I have only found evidence of limited irregularities in the UK data. Investigation on Sunday (26 June) morning of the activity found two constituencies where something odd has happened. I found these by dividing the data up by constituency and correlating the rate of signature growth by constituency with the national average. One of these was very obvious: the constituency with the most signatures, Cities of London and Westminster, had an implausibly large amount of activity overnight (unless there are a load of traders in Hong Kong …)
Overall this leads me to suggest that at the time of initial writing ~30,000 out of 2787004 UK signatures (~1.1%) might be invalid.
For what it’s worth the petitions team removed these fake signatures at around 2pm on Sunday.
Collect data
all_sigcounts=t(sapply(pet_data,function(x) x$data$attributes$signatures_by_constituency$signature_count))
colnames(all_sigcounts)=pet_data[[1]]$data$attributes$signatures_by_constituency$name
rownames(all_sigcounts)=sdf$time
all_sigcounts=cbind(sdf['time'], all_sigcounts)
Now let’s calculate the correlation of all constituencies vs the UK average and look for discrepancies
library(dplyr)
cor_vs_totaluk=apply(all_sigcounts[,-1], 2, cor, sdf$uksigs)
data.frame(constit=names(cor_vs_totaluk), cor=cor_vs_totaluk) %>%
arrange(cor) %>%
top_n(10, desc(cor)) %>%
kable
| constit | cor |
|---|---|
| Cities of London and Westminster | -0.0361037 |
| Bracknell | 0.7513190 |
| Worsley and Eccles South | 0.8210328 |
| Bradford West | 0.9908169 |
| Na h-Eileanan an Iar | 0.9952896 |
| Rhondda | 0.9954370 |
| Airdrie and Shotts | 0.9956330 |
| West Dunbartonshire | 0.9960348 |
| Ayr, Carrick and Cumnock | 0.9967067 |
| Rutherglen and Hamilton West | 0.9967177 |
A histogram makes these two outliers pretty obvious:
hist(cor_vs_totaluk, col='red', breaks=50)
hist(cor_vs_totaluk, col='red', breaks=50, ylim=c(0,50))
We can plot the data for the 2 dubious constituencies
qplot(time, `Cities of London and Westminster`,data=all_sigcounts)+
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
qplot(time, `Worsley and Eccles South`,data=all_sigcounts) +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
which shows both the suspicious night time activity and its correction.
For comparison here are the 3rd and 9th constituencies (with much higher correlation scores):
qplot(time, `Rhondda`,data=all_sigcounts) +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
qplot(time, `St Ives`,data=all_sigcounts) +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
On Tues, I spotted another attempt to add fake signatures with post-code(s) in Bracknell. This took place late on Monday afternoon/evening.
qplot(time, `Bracknell`,data=all_sigcounts) +
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours")
This may be more obvious if we plot as signatures / minute.
with(all_sigcounts,
qplot(time[-1], diff(`Bracknell`)/diff(as.integer(time)/60), ylim=c(0,NA),
xlab=NULL, ylab='Signatures/minute') + geom_smooth(method='loess', span=.08)+
scale_x_datetime(date_labels="%a %H:%M", date_breaks="12 hours"))
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_smooth).
We can add a prediction of what the data should have looked like by calculating a linear model of Bracknell vs the whole UK before the spike and then applying that to the a smoothed version of the whole UK data.
bdf=mutate(sdf, Bracknell=all_sigcounts$Bracknell)
brack.lm=lm(Bracknell~0+uksigs, data=subset(bdf, time<ISOdatetime(2016,6,27,14,0,0, tz='Europe/London')))
all.smooth=loess(uksigs~as.integer(time), data=sdf, span=0.08)
bdf$Bracknell.pred=all.smooth$fitted*coef(brack.lm)
plot(Bracknell~time,data=bdf, type='l', main='~3400 Fake Signatures in Bracknell (Now Removed)')
lines(Bracknell.pred~time, data=bdf, col='red', lwd=2)
legend(min(bdf$time),max(bdf$Bracknell)*0.9, legend=c('predicted','observed'),
col=c('red','black'), lty=1, bty='n')
And the (pretty precisely) estimated number of fake signatures is:
nfakesigs=with(subset(bdf, time>ISOdatetime(2016,6,28,0,0,0, tz='Europe/London') &
time<ISOdatetime(2016,6,28,20,0,0, tz='Europe/London')),
c(mean=mean(Bracknell-Bracknell.pred), sd=sd(Bracknell-Bracknell.pred)))
nfakesigs
## mean sd
## 3339.067675 3.483332
ie. 3339.067675 (+/- 3.4833316 sd) or 0.0876254 % of the total UK sigs.
On Tue night, the petition.parliament.uk team confirmed that they had found these independently on Mon night and they removed them from the reported data. Apparently my numbers were off by 80; they found 3420. Note to self 2 sf was sufficient, 95 CI would have been good but the small baseline shift at the start of the activity spike was likely the main cause of the 2% discrepancy in the effect size prediction.
There have been other irregularities that are harder for me to spot with these data than the Petitions team, whom I assume have acess to additional information (IP?). This is evident from cases where corrections have been made:
dd=apply(all_sigcounts[,-1],2,diff)
# this is not quite correct because it is sigs_removed + sigs added in prev 2 min
sigs_removed=-apply(dd, 2, min)
plot(table(sigs_removed)[-1], log='x', xlab='Signatures removed', ylab='Frequency')
## Warning in axis(...): "log" is not a graphical parameter
These fake signatures, account for a further 2972 of the UK signatures.
For the record, I am a scientist and I voted remain because in my view that was objectively the best decision for the country and my own profession.
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document.
UK constituency data came from https://github.com/kjhealy/uk-elections and https://www.parliament.uk/mps-lords-and-offices/offices/commons/commonslibrary/statistics-for-uk-constituencies/. EU Referendum data was downloaded from http://www.electoralcommission.org.uk/. Thanks to all three as well as https://petition.parliament.uk/ for making data available.