What drives voting patterns for France’s far right National Front? The city-country divide, inequality, the age gap and immigration are often cited as determining factors for populist votes in the US presidential election and the Brexit vote last year. Although the FN was built on an anti-immigration plateform, an analysis of the 2015 regional election results in the first round of voting does not suggest that immigration was the key to its success at the polls.

Though the FN has had a strong strong anti-immigrant vein since current FN leader FN leader Marine Le Pen’s father Jean-Marie founded the party, she has shifted the focus since she took over its leadership in 2011 towards a more anti-establishment, anti-EU agenda while retaining nationalistic bent. Judging by the results of the 2015 regional elections, immigration is not the most determining factor of the FN vote.

Analysising the FN vote among France’s administrative departments suggests that the level of education among young adults is the most important factor in a range of 13 indicators reflecting each departments’ economic and social well-being.

In addition to the level of education, the indicators also included in this study are the unemployment rate, the poverty rate, the level of urban population, gini income equality coefficients, life expectancy, the ratio of over 65-year-olds to under-25-year-olds, access to health care as a proxy for public services, voter abstention, the percent of foreign-born population and the percent of non-EU immigrants in the foreign-born population. The data are from the Social Security Ministry and the INSEE national statistics agency for the most recent available year before the 2015 regional election, the last nation-wide vote before the upcoming presidential election.

Reg2015regress <- read.csv("~/Election data/Reg2015regress.csv")
r15reg <- as.data.frame(Reg2015regress)
r15reg <- r15reg[-(2:4)]
r15reg <- setNames(r15reg[1:15], c("dept", "unemployment", "poverty", "urbanisation", 
                         "inequality", "underweight_babies", "education", "life_expect", 
                         "age_gap", "immigrant_pop", "nonEU_immigrants", "doctor_density", "specialist_density", "FN_vote", "voter_abstention"))


modglobal <- lm(FN_vote~unemployment + poverty + urbanisation + inequality + underweight_babies + education + life_expect + age_gap + immigrant_pop + nonEU_immigrants + doctor_density + voter_abstention,
data=r15reg)
summary(modglobal)
## 
## Call:
## lm(formula = FN_vote ~ unemployment + poverty + urbanisation + 
##     inequality + underweight_babies + education + life_expect + 
##     age_gap + immigrant_pop + nonEU_immigrants + doctor_density + 
##     voter_abstention, data = r15reg)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.7243 -3.0065  0.0483  2.6145 20.1695 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        73.727227  67.771101   1.088   0.2799    
## unemployment        0.906340   0.657598   1.378   0.1719    
## poverty            -0.547821   0.418229  -1.310   0.1939    
## urbanisation        0.009207   0.057760   0.159   0.8738    
## inequality          0.500403   1.213587   0.412   0.6812    
## underweight_babies -0.739120   0.985023  -0.750   0.4552    
## education           2.214038   0.424169   5.220 1.35e-06 ***
## life_expect        -0.617999   0.788387  -0.784   0.4354    
## age_gap            -0.070458   0.047061  -1.497   0.1382    
## immigrant_pop      -1.038022   0.392967  -2.641   0.0099 ** 
## nonEU_immigrants   -0.018480   0.064613  -0.286   0.7756    
## doctor_density      0.013624   0.011070   1.231   0.2220    
## voter_abstention   -0.373592   0.220497  -1.694   0.0940 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.362 on 81 degrees of freedom
## Multiple R-squared:  0.6249, Adjusted R-squared:  0.5694 
## F-statistic: 11.25 on 12 and 81 DF,  p-value: 7.498e-13
## 
plot(rstudent(modglobal))
abline(h=c(-3,3))
abline(h=0,lty=2)

Grouping all the variables together, only the percentage of voters aged 25-34 without a diploma appear to have a statistically significant relationship to the FN vote. Setting the other variables aside, the education level explains 36 percent of the variance in FN vote levels among France’s departments.

modyngdip <- lm(FN_vote~education, data = r15reg)
summary(modyngdip)
## 
## Call:
## lm(formula = FN_vote ~ education, data = r15reg)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -28.9603  -3.6755  -0.4775   3.8816  22.9161 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.0410     3.5465   1.139    0.257    
## education     1.6894     0.2342   7.215 1.49e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.566 on 92 degrees of freedom
## Multiple R-squared:  0.3614, Adjusted R-squared:  0.3544 
## F-statistic: 52.06 on 1 and 92 DF,  p-value: 1.493e-10
library(ggplot2)
ggplot(r15reg, aes(x=education, y=FN_vote)) +
  geom_point(shape=1) +
  geom_smooth(method=lm) +
  ggtitle("FN vote in French departments and education level")

The Seine Saint Denis department, which has a high level of young adults having a low level of education qualifications but a low FN vote, is a big outlier as is the Vendee with a low level of educated young adults but a high FN vote. However, removing those two departments does nothing to change the statistical relationship between education and the FN voting, suggesting that the relationship is not the result of the extreme cases.

r15adj2 <- r15reg[-c(81, 90),]
modyngdip2 <- lm(FN_vote~education, data = r15adj2)
summary(modyngdip)
## 
## Call:
## lm(formula = FN_vote ~ education, data = r15reg)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -28.9603  -3.6755  -0.4775   3.8816  22.9161 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.0410     3.5465   1.139    0.257    
## education     1.6894     0.2342   7.215 1.49e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.566 on 92 degrees of freedom
## Multiple R-squared:  0.3614, Adjusted R-squared:  0.3544 
## F-statistic: 52.06 on 1 and 92 DF,  p-value: 1.493e-10
ggplot(r15adj2, aes(x=education, y=FN_vote)) +
  geom_point(shape=1) +
  geom_smooth(method=lm) +
  ggtitle("FN vote and education level, removing outlier departments")

Though unemployment and poverty rates do not directly explain the level of FN votes, they do indirectly insofar as they correlate with the level of unqualified education in departments.

cormat <- round(cor(r15reg[,2:15]),2)
library(corrplot)
corrplot(cormat, type = "lower", order = "hclust", 
         tl.col = "black", tl.srt = 45)

Given the FN’s roots as an anti-immigrant party, it’s a fair question as to whether the weak statistical relationship between the FN vote and foreign-born population is the result of some exceptional cases. For example, Seine Saint Denis has the highest percent of foreign born citizens in the nation at 22 percent, well above 5 percent national average, but the FN did poorly in the department, which is traditionally a stronghold for the Left. However, even when such extreme cases are removed, there is still no statistically significant relationship between the FN vote and immigration.

ggplot(r15reg, aes(x=immigrant_pop, y=FN_vote)) +
  geom_point(shape=1) +
  geom_smooth(method=lm) +
  ggtitle("FN vote by department and percent of foreign-born population")

## Adjusting to remove departments with immigrant populations over 10 pct
imm10 <- which(r15reg$immigrant_pop > 10)
r15imm <- r15reg[-imm10, ]

ggplot(r15imm, aes(x=immigrant_pop, y=FN_vote)) +
  geom_point(shape=1) +
  geom_smooth(method=lm) +
  ggtitle("FN vote and immigration, removing departments with a population of over 10 percent foreign-born")

In summary, the succes of the FN in the last nationwide election cannot easily be pinned on one convenient factor other than perhaps the lack of higher education among young adults. There does not appear to be evidence that a divide between town and country voters or young and old voters can explain the success of the FN vote. Nor is there evidence that income inequality, a lack of public health services or high levels voter abstention as reasons to explain the FN vote. Perhaps more striking given the FN’s anti-immigrant stances, the level of foreign born people living in a department also does not explain FN voting patterns.

After US and Brexit elections suggested the populist vote could be explained by such factors, the first round of the French presidential election will offer an opportunity to see whether such trends have taken root in France as well. If the presidential election shows as in 2015, that traditional indicators of economic and social well-being are poor indicators of what is driving the FN vote, it might be a sign that the party is tapping into anti-establisment feelings among voters that are not easily reflected in such data.