Biden's Approval Rate in 2021-2022
Biden’s Approval Margins
approval_polllist <- read_csv('https://projects.fivethirtyeight.com/biden-approval-data/approval_polllist.csv')
glimpse(approval_polllist)
## Rows: 4,569
## Columns: 22
## $ president <chr> "Joe Biden", "Joe Biden", "Joe Biden", "Joe Biden"…
## $ subgroup <chr> "All polls", "All polls", "All polls", "All polls"…
## $ modeldate <chr> "9/18/2022", "9/18/2022", "9/18/2022", "9/18/2022"…
## $ startdate <chr> "1/19/2021", "1/19/2021", "1/20/2021", "1/20/2021"…
## $ enddate <chr> "1/21/2021", "1/21/2021", "1/21/2021", "1/21/2021"…
## $ pollster <chr> "Morning Consult", "Rasmussen Reports/Pulse Opinio…
## $ grade <chr> "B", "B", "B-", "B", "B", "B+", "B", "B+", "B-", "…
## $ samplesize <dbl> 15000, 1500, 1115, 1993, 15000, 1516, 15000, 941, …
## $ population <chr> "a", "lv", "a", "rv", "a", "a", "a", "rv", "rv", "…
## $ weight <dbl> 0.2594, 0.3382, 1.1014, 0.0930, 0.2333, 1.2454, 0.…
## $ influence <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ approve <dbl> 50.0, 48.0, 55.5, 56.0, 51.0, 45.0, 52.0, 63.0, 58…
## $ disapprove <dbl> 28.0, 45.0, 31.6, 31.0, 28.0, 28.0, 29.0, 37.0, 32…
## $ adjusted_approve <dbl> 49.4, 49.1, 54.6, 55.4, 50.4, 46.0, 51.4, 59.4, 57…
## $ adjusted_disapprove <dbl> 30.9, 40.3, 32.4, 33.9, 30.9, 29.0, 31.9, 38.4, 32…
## $ multiversions <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ tracking <lgl> TRUE, TRUE, NA, NA, TRUE, NA, TRUE, NA, NA, TRUE, …
## $ url <chr> "https://morningconsult.com/form/global-leader-app…
## $ poll_id <dbl> 74272, 74247, 74248, 74246, 74273, 74327, 74274, 7…
## $ question_id <dbl> 139491, 139395, 139404, 139394, 139492, 139570, 13…
## $ createddate <chr> "1/28/2021", "1/22/2021", "1/22/2021", "1/22/2021"…
## $ timestamp <chr> "14:51:31 18 Sep 2022", "14:51:31 18 Sep 2022", "1…
library(lubridate)
approval_polllist <- approval_polllist %>%
mutate(enddate = mdy(enddate),
startdate = mdy(startdate),
modeldate = mdy(modeldate),
week = week(enddate))
Plot
This plot shows the net approval rate of Joe Biden for the 3 subroup of voters, highlighting also the 95% confidence interval.
approval_polllist %>%
mutate(year = year(enddate)) %>%
filter(year == 2022, week<50) %>%
mutate(net_approval_rate = (approve-disapprove)) %>%
group_by(week, subgroup) %>%
summarise(
mean_net_approve = mean(net_approval_rate),
sd = sd(net_approval_rate),
count = n(),
se = sd/sqrt(count),
lower95 = mean_net_approve - qt(0.975,count-1)*se,
upper95 = mean_net_approve + qt(0.975,count-1)*se) %>%
ggplot(aes(x = week, y=mean_net_approve, color = subgroup))+
geom_line()+
facet_wrap(~subgroup, nrow=3)+
geom_ribbon(aes(ymin = lower95, ymax = upper95), alpha=0.2,linetype = "solid", nrow=3)+
theme_bw()+
labs(title = "Biden's Net Approval Ratings in 2022",
subtitle = "Weekly Data, Approve - Disapprove, %",
y= "",
x = ""
)
