Political Ideology & Front-line House Democrats

Briefly

A quick look at the voting behavior of the 30 House Democrats that represent congressional districts carried by Trump in 2016. Using Rvoteview. For a more in-depth account of the characteristics of front-line House Democrats in the 116th Congress, see this post.

Front-line House Democrats

I have been going on about the House of Representatives quite a bit lately, especially Democratic members representing Trump districts. These guys were instrumental in Democrats recapturing the House majority in 2018. Over two-thirds of these front-liners are freshman members, and as a group they are super vulnerable heading into November 2020.

I have posted a list of the 30 front-liners as a simple csv, cached as a part of the uspoliticalextras data package. It is available at the link below.

library(tidyverse)
url1 <- 'https://raw.githubusercontent.com/jaytimm/uspoliticalextras/master/clean-data-sets/thirty-one-house-democrats.csv'
fl <- read.csv(url(url1)) 

Ideologies in the 116th

So, using the Rvoteview (!) package, we obtain DW-Nominate scores for all members in the 116th House. This session is still in progress, so these numbers will change depending on when they are accessed.

x116 <- Rvoteview::member_search (chamber = 'House',
congress = 116) %>%

mutate(label = gsub(', .*$', '', bioname), party_code = ifelse(bioname %in% fl$house_rep,
'xx', party_code),
party_name = ifelse(bioname %in% fl$house_rep, 'Frontline Dems', 'Other Dems')) The plot below summarizes voting behaviors as approximated by DW-Nominate scores in two dimensions. Here, our focus is on the first dimension (ie, the x-axis). The 30 front-liners are marked in orange. In the aggregate, then, they vote more moderately than their non-front-line Democrat peers. p <- x116 %>% ggplot(aes(x=nominate.dim1, y=nominate.dim2, label = label )) + annotate("path", x=cos(seq(0,2*pi,length.out=300)), y=sin(seq(0,2*pi,length.out=300)), color='gray', size = .25) + geom_point(aes(color = as.factor(party_code)), size= 2.5, shape= 17) + theme_bw() + ggthemes::scale_color_stata() + theme(legend.position = 'none') + labs(title="DW-Nominate ideology scores for the 116th US House", subtitle = '30 front-line House Democrats in orange') p ## Warning: Removed 2 rows containing missing values (geom_point). Focusing on Democrats Next, we home in a bit on House Democrats. To add some context to the above plot, we calculate quartiles for DW-Nominate scores among Democrats. These are summarized in table below, ranging from progressive to moderate. dems <- x116 %>% filter(party_code %in% c('xx', '100')) qq <- data.frame(x = quantile(dems$nominate.dim1, probs = seq(0, 1, 0.25)),
stringsAsFactors = FALSE)

qq %>% knitr::kable()
x
0% -0.76100
25% -0.44525
50% -0.37800
75% -0.28575
100% -0.06900

We add these quartiles to the plot below, and label front-line House Democrats. Again, front-liners cluster as a group in terms of roll call voting behavior. The most notable exception to this pattern is Lauren Underhood (IL-14). She won her district by five points in 2018, and Trump won the district by 4 points in 2016. It would appear, then, that her voting behavior and the political ideology of her constituents do not especially rhyme. In other words, she represents a Trump district and votes like a progressive.

p1 <- p +
xlim(-1, 0) +
geom_vline(xintercept = qq$x, linetype = 2, color = 'gray') + ggrepel::geom_text_repel( data = filter(x116, bioname %in% fl$house_rep),
nudge_y =  -0.005,
direction = "y",
hjust = 0,
size = 2.5)

p1

The table below summarizes counts of Democrats by front-line status & ideology quartile. So, roughly 3/4 of front-liners vote in the most moderate Democratic quartile in the House. And all but Underwood are in top 50%.

dems1 <- dems %>%
mutate(qt = ntile(nominate.dim1, 4))

dems1 %>%
group_by(party_name, qt) %>%
count() %>%
group_by(party_name) %>%
mutate(per = round(n/sum(n)*100, 1)) %>%
knitr::kable(booktabs = T, format = "html") %>%
kableExtra::kable_styling() %>%
kableExtra::row_spec(3,
background = "#e4eef4")
party_name qt n per
Frontline Dems 1 1 3.3
Frontline Dems 3 6 20.0
Frontline Dems 4 23 76.7
Other Dems 1 58 28.2
Other Dems 2 59 28.6
Other Dems 3 53 25.7
Other Dems 4 36 17.5
Share