Presidential Approval ratings

Introduction

The Data: I will first use a polling data set that contains variables collected by different pollsters from February 2020 until September 2020, to answer the question whether voters approved or disapproved of the president’s handling of the pandemic. The data set is a compilation of 1000+ surveys and it contains 14 variables. However, for this study, I will only be using the following variables:

  • start_date, the first day of data collection for each poll
  • end_date, the last day of data collection for each poll
  • pollster, the name of the entity/medium through which survey was conducted
  • sponsor, the name of the entity that aided or executed data polling
  • sample_size, the number of subjects that responded to each polling survey
  • party, the name of the political party
  • approve, the percentage of people who approve of Pres. Trump handling of the Pandemic
  • disapprove, the percentage of people who disapprove of Pres. Trump handling of the Pandemic
  • poll_month, the month of the year in which sample was collected

I will use some those variables to ask the following questions:

  • Was the way Pres. Trump handled the pandemic enough to bring Republicans against trump?
  • When was Pres. Trump’s job disapproved the most by the Republican party? When does it get better?
  • When was the time the difference between democrat and republican was the biggest? Deduce what caused partisan segregation.

Exploratory Analysis

To answer the first and second questions, on whether the handling of the covid19 outbreak is enough to bring the Republican party against Pres.Trump, I will calculate the mean disapproval rate for each month as well as net approval for each month.

library(pander)
library(knitr)
trump_R <- trump_df %>% filter(party == "R") %>% filter(!is.na(party))
trump_RPlot <- trump_R %>% 
  mutate(n_approves = sample_size * approve / 100,
    n_disapproves = sample_size * disapprove / 100) %>%
  group_by(poll_month) %>%
  summarise(total_approves = sum(n_approves),
    total_disapproves = sum(n_disapproves),
    total_nu = sum(sample_size)) %>%
  mutate(percent_approvals = total_approves / total_nu,
    percent_disapprovals = total_disapproves / total_nu) %>%
  select(poll_month, percent_disapprovals)

kable(trump_RPlot, digits = 3, caption = " Pres. Trump's Disapproval rating for the Republican Party",
  col.names = c("Poll Month", "Disapproval rating"))
Pres. Trump’s Disapproval rating for the Republican Party
Poll Month Disapproval rating
Feb 0.084
Mar NA
Apr NA
May NA
Jun 0.160
Jul NA
Aug 0.140
Sep 0.118

As the table shows, there are missing values that prevent the data from being complete and helpful to analyze the trend of disapproval rating by month. Therefore, I am going to calculate the net_approval rating for the Republican party, to be able to deduce how the Republicans reacted in regards to the way President handled the Coronavirus Outbreak. The smallest net approval I find will be the value that represents the amount of disapproves Pres. Trump received.

library(pander)
library(knitr)
library(ggthemes)
library(ggrepel)
approval_net <- trump_R %>% mutate(net_approval= approve- disapprove)%>% select(net_approval, disapprove, start_date) %>% arrange(net_approval)%>%
  print(width = Inf)

kable(approval_net, digits = 3, caption = " Pres. Trump's Net Approval for the Republican Party",
  col.names = c("Disapproval rating","Poll Month", "Disapprove perc."))
approval_point <- approval_net %>% filter(net_approval ==35)
ggplot(data = approval_net, aes(x= start_date, y= net_approval )) + geom_point(color= "green3", alpha= 0.2) + geom_smooth() + 
  labs(title = "Pres. Trump's Net Approval Rating for Republicans",
    x = "Date (Month)",
    y = "Net_approval", 
    colour = "Net Approval") +
  scale_colour_brewer(palette = "GnBu") + theme_economist()+ 
   geom_label_repel(data = approval_point, aes(label = net_approval)) 

As the table and the graph show, the worst net approval rating and hence the highest disapproval rating Pres. Trump received was August 17th 2020 , which perhaps was a result of his remarks on Minnesota police brutality incidents. However, answering the first question, a net_approval of 35 is not bad enough to consider a large loss for Pres. Trump, especially because it was just one poll, and for the most part, his net_approvals are high and steady for most polls(bigger than 50).

Going more in depth for the second question, there is a different way I can analyze the maximum and minimum disapprove per month to decipher the worst month for the President’s job approval, by using the ‘dplr’ package, finding the maximum and minimum disapproval rate for the Republican Party.

library(knitr)
library(pander)
trump_R2 <- trump_R %>% filter(!is.na(disapprove)) %>% group_by(poll_month) %>% summarise(maxdisapprove= max(disapprove), mindisapprove= min(disapprove))

kable(trump_R2, digits = 1, caption = " Pres. Trump's Highest and Lowest Disapproves for the Republican Party",
  col.names = c("Poll_month","Highest Disaproval", "Lowest Disapproval"))
Pres. Trump’s Highest and Lowest Disapproves for the Republican Party
Poll_month Highest Disaproval Lowest Disapproval
Feb 18.0 4
Mar 24.0 2
Apr 22.0 7
May 22.4 7
Jun 25.0 8
Jul 31.0 13
Aug 31.0 8
Sep 21.0 11

As the table above shows, the Pres. Trump is disliked the most by Republicans in July and August, which gets better in September, when he has a disapprove percentage of 21.

Lastly, to answer the third question , I will be comparing the disapproval rate between democrats and republicans by having a graph focused in the disapproval rating by republicans and democrats.

library(ggthemes)
library(ggrepel)
trump_RD <- trump_df %>% filter(party == "D" | party == "R")

ggplot(data = trump_RD, aes(x= start_date, y=disapprove, colour = party)) +
  geom_line() + 
  geom_smooth()+
  labs(title = "Pres. Trump's Disapproval Rating",
    subtitle = "Democratic vs Republican Party",
    caption = "Data Retrieved from multiple sources, February 2020- September 2020",
    x = "Poll Months",
    y = "Disapproval",
    colour = "Political Party") +
  scale_colour_brewer(palette = "GnBu") +
   theme_economist()

Looking at the Graph above, the huge difference between the Republican and Democrat perception of the Pres. job tells us something. In addition, it is also important to mention how the disapproval started rising by mid-february for both parties, which indicates that there was a soaring dissatisfaction about the President’s handling of the pandemic, as well as other factors that may have impacted people’s views of the president, including the racial injustices, and several other incidents that may have happen throughout the whole year.

Conclusion

In conclusion, the data clearly shows that despite the poor intervention of Pres. Trump when it came to the pandemic, despite his attempts to undermine the virus and all the untrustworthy comments he made about the outbreak, Republicans stood steady when it came to their support for Pres. Donald Trump.

There were indeed rough moments for the president, as a considerable number of republicans disapproved his work in July and August. But it soon got better in November when his disapproval rating dropped to 21. Thirdly, the difference between democrat and republican opinion about Pres. Trump continued to be huge, which his is a proof of the massive partisan segregation or polarization that exists in the United States, increasing. Nevertheless, this time, they were similar in the increasing trajectory of the disapproval rating. It is clear that some Republicans and Democrats at some point were both increasingly disapproving Donald Trump since the beginning of the pandemic.

In the next exploration analysis, it would be interesting to observe the disapproval rating when it came to Pres. Trump specifically addressing racial injustice. I would also be interested in understand the reasons why both disapproval ratings on the last plot for instance, are going down.