[SOLVED] Gov1372 -Data Exploration -Symbolic Politics - Assignment 7

30.00 $

Programming resource
Digital learning resource
Category:
Practical programming resource
Suitable for guided study and reference
Tutor guidance available when needed

Description

5/5 - (1 vote)

In this Data Exploration assignment we will explore Reny and Newman’s (2021) finding that opinions towards the police and about the level of discrimination faced by Black Americans were impacted by the spread of protests in the wake of the killing of George Floyd. You will recreate, present, and assess those claims as well as creating your own regression models to test which attitudes change and when.

If you have a question about any part of this assignment, please ask! Note that the actionable part of each question is bolded.

Opinion Mobilization: The George Floyd Protests

Data Details:

  • File Name: RN_2001_data.RData
  • Source: These data are from Reny and Newman (2021).

Variable Name                                                     Variable Description

race_ethnicity                                                    Race or ethnicity. Levels labelled in data: 1-White, 2-Black or AfAm, 3-American Indian or Alaskan Native, 4 through 14- Asian

or Pacific Islander (details in labels), and 15-Some other race

hispanic                                                                       Of Hispanic, Latino, or Spanish origin. Levels labelled in data:

1-Not Hispanic, 2-15 Hispanic of various origins

day_running                                                            Day relative to onset of George Floyd protests (day 0)

age                                                                         Respondent’s age

female                                                                      Binary indicator variable: 1 if respondent female, 0 otherwise

college                                                                      Binary indicator variable: 1 if respondent attended college, 0

otherwise

household_income                                                Household pre-tax income ranging from 1 (less than $15,000) to 24

(more than $250,000). Details for other levels in labels.

pid7                                                                           Party identification on a seven point scale with strong, weak, lean:

1-Strong Democrat to 7-Strong Republican with 4-Independent.

ideo5                                                                         Ideological self placement: 1-Very liberal, 2-Liberal, 3-Moderate,

4-Conservative, 5-Very Conservative

vote_clinton                                                            Indicator variable for whether the respondent said they voted for

Clinton in the 2016 presidential election

group_favorability_the_police                        Favorability towards the police: 1-Very favorable, 2-Somewhat favorable, 3-Somewhat unfavorable, 4-Very unfavorable

discrimination_blacks                                        Perceptions of the level of discrimination in US faced by Blacks: 1-None at all, 2-A little, 3-A moderate amount, 4-A lot, 5-A great deal

Variable Name Variable Description
day The date the respondent took the survey
group_fav_white_black The difference in respondents favorability towards Blacks subtracted from their favorability towards whites (each on four point scale). Ranges from -3 to 3.
racial_attitudes_generations Agreement with the statement that generations of slavery and discrimination have made it difficult for Blacks to work their way out of the lower class: 1-Strongly Agree to 5-Strongly Disagree
interest Degree to which respondent claims to follow politics: 1-Most of the time, 2-Some of the time, 3-Only now and then, 4-Hardly at all
group_favorability_jews Favorability towards Jews: 1-Very favorable, 2-Somewhat favorable, 3-Somewhat unfavorable, 4-Very unfavorable
group_favorability_whites Favorability towards whites: 1-Very favorable, 2-Somewhat favorable, 3-Somewhat unfavorable, 4-Very unfavorable
group_favorability_evangelicals Favorability towards evangelicals: 1-Very favorable, 2-Somewhat favorable, 3-Somewhat unfavorable, 4-Very unfavorable
group_favorability_socialists Favorability towards socialists: 1-Very favorable, 2-Somewhat favorable, 3-Somewhat unfavorable, 4-Very unfavorable
protest Indicator variable if survey respondent lived in area that would at any point have a BLM protest in the wake of the killing of George Floyd
n_protests Number of eventual BLM protests in area where resident lived
# load the data containing the tibble protest_df load(‘RN_2001_data.RData’)

#Note that the data is saved in the form of a tibble, a special table using the dplyr package that has g

head(protest_df$race_ethnicity)

## <labelled<double>[6]>: What is your race? Provided by LUCID.

## [1] 6 1 1 2 1 1

##

## Labels:

## value                                                                             label

##            1              White ##               2              Black, or African American ##           3              American Indian or Alaska Native

##            4              Asian (Asian Indian) ##       5 Asian (Chinese) ##               6              Asian (Filipino) ## 7              Asian (Japanese) ##            8              Asian (Korean)

##            9              Asian (Vietnamese) ##       10 Asian (Other) ##  11 Pacific Islander (Native Hawaiian) ##           12           Pacific Islander (Guamanian) ##       13 Pacific Islander (Samoan) ##             14           Pacific Islander (Other)

##             15                                                 Some other race

##            777         Not asked in this wave head(protest_df$household_income)

## <labelled<double>[6]>: What is your current annual household income before taxes? Provided by L…

## [1] 21 8 7 1 NA 1

##

## Labels:

## value                                                  label

## 1 Less than $14,999 ## 2 $15,000 to $19,999 ## 3 $20,000 to $24,999 ## 4 $25,000 to $29,999 ## 5 $30,000 to $34,999 ## 6 $35,000 to $39,999 ## 7 $40,000 to $44,999 ## 8 $45,000 to $49,999 ## 9 $50,000 to $54,999 ## 10 $55,000 to $59,999 ## 11 $60,000 to $64,999 ## 12 $65,000 to $69,999 ## 13 $70,000 to $74,999 ## 14 $75,000 to $79,999 ## 15 $80,000 to $84,999 ## 16 $85,000 to $89,999 ## 17 $90,000 to $94,999 ## 18 $95,000 to $99,999 ## 19 $100,000 to $124,999 ## 20 $125,000 to $149,999 ## 21 $150,000 to $174,999 ## 22 $175,000 to $199,999 ## 23 $200,000 to $249,999 ## 24 $250,000 and above

##                777 Not asked in this wave

Question 1

As usual it is important to first examine the structure of the data. What are the two main outcome variables of interest to Reny and Newman? How were they measured and how are they coded in the data? What was the treatment? Take a look at the data and determine which are the two outcome variables of interest. Observe the scale of each.

glimpse(protest_df)

## Rows: 378,507 ## Columns: 22

## $ race_ethnicity              <dbl+lbl> 6, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1… ## $ hispanic     <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… ## $ day_running         <dbl> -315, -315, -315, -315, -315, -315,… ## $ age     <dbl> 37, 45, 24, 26, 60, 55, 46, 37, 60,…

## $ female <dbl> 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1,… ## $ college <dbl> 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1,… ## $ household_income <dbl+lbl> 21, 8, 7, 1, NA, 1, 19, 20,… ## $ pid7 <dbl+lbl> 2, 1, 1, 3, 7, 2, 7, NA,…

## $ ideo5 <dbl+lbl> 4, 2, 2, 3, 5, 2, 5, 3, 5, 1, 4…
## $ vote_clinton <dbl> 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,…
## $ group_favorability_the_police <dbl+lbl> 2, 2, 2, 4, 1, 3, 1, 2, 2, 3, 1…
## $ discrimination_blacks <dbl> 3, 1, 5, 5, 1, 5, 2, 4, 3, 5, 3, 3,…
## $ day <date> 2019-07-18, 2019-07-18, 2019-07-18…
## $ group_fav_white_black <dbl> 0, 3, -1, -2, 2, 0, 0, -2, 0, -2, 1…
## $ racial_attitudes_generations <dbl+lbl> 4, 5, 2, 1, 5, 2, 5, 3, 2, 1, 5…
## $ interest <dbl+lbl> 2, 1, 2, 2, 1, 2, 1, 4, 3, 2, 1…
## $ group_favorability_jews <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ group_favorability_whites                                                                   <dbl> 3, 4, 3, 2, 4, 2, 3, 1, 2, 2, 4, 3,…

## $ group_favorability_evangelicals <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,… ## $ group_favorability_socialists             <dbl> 2, 1, 3, NA, 4, 3, 4, 3, NA, 1, 4, … ## $ protest    <dbl> 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,… ## $ n_protests              <dbl> 7, 0, 2, 4, 2, 4, 0, 7, 1, 7, 3, 6,…

 

##Question 2

###Part a R has a special ‘date’ class for storing and manipulating dates as seen below. Date variables can conveniently be logically compared and arithmetically manipulated. Using the day variable find out how many days the dataset spans. First check using the code below that the day variable is of the class

‘date’. Next subtract the latest day in the sample from the first day to calculate the timespan covered by the dataset. Hint: functions like max() and min() work for date variables too!

class(protest_df$day)

## [1] “Date”

days <- pull((protest_df %>% summarize(max(day))) – (protest_df %>% summarize(min(day)))) days

## Time difference of 419 days

###Part b On what date is the treatment said to have occurred? Find the date for which the day_running variable is 0. Then modify the code below to add a variable to each row for whether or not the observation was before or after treatment.

#Change the object to be the date of the protest spread, remember to put it in quotes if you copy/paste!

date <- protest_df %>% filter(day_running == 0) %>% head(1) %>% pull(day)

protest_df_bydate <- protest_df %>% mutate(before = ifelse(day < as.Date(date), 1, 0))

Question 3

###Part a Compare the average for each outcome variable before and after the onset of the protests. Are the differences statistically significant? Calculate the outcome variable means for before and after treatment. Conduct a test as to whether the differences in means are statistically significant. Hint: you can use either the t.test() function or difference_in_means() from the estimatr package

t.test(protest_df$group_favorability_the_police, protest_df$before)

##

## One Sample t-test

##

## data: protest_df$group_favorability_the_police

## t = 1177.7, df = 344699, p-value < 2.2e-16 ## alternative hypothesis: true mean is not equal to 0 ## 95 percent confidence interval: ## 2.038667 2.045464 ## sample estimates:

## mean of x

## 2.042066

 

Question 4

###Part a In order to create figures similar to the panels in Figure 2 in Reny and Newman (2021) we must first manipulate the data to be more usable. If we intend to graph the average of each outcome variable for each day, on what variable should we group the data using group_by? Create a new object that is the data split out by the appropriate group and producing the average for each of the two outcome variables for each day. Also be sure to preserve an indicator for whether the observations are from before or after the spread of the protests.

###Part b Graph the results for the entire sample. Graph the results for the entire sample for both outcome variables by day. Include a vertical line demarcating when the protests started to spread. Does there appear to be a shift in the outcome variables from before to after the protests began to spread?

###Part c It might be useful to more clearly illustrate the differences in the trend lines before and after the protests began. Modify the code below to include a separate line of best fit for before and after the protests began. Does the trend line align with your previous reading of the graph? Remember to add a vertical line demarcating for the onset of treatment.

protest_df %>% group_by(day_running) %>%

summarize(avg_day = mean(group_favorability_the_police, na.rm = TRUE)) %>% mutate(before = ifelse(day_running >= 0, FALSE, TRUE)) %>%

ggplot(aes(x = day_running, y = avg_day, color = before)) + geom_point() + geom_smooth(aes(color = before), method = “lm”) +

labs(title = “Unfavorablility Towards Police by Day”, x = “Day Running (0 = Protest Onset)” y = “Unfavorability Towards Police”) +

geom_vline(aes(xintercept = 0), linetype = “dashed”) + theme(legend.position = “none”, plot.title = element_text(hjust = 0.5, face = “bold”))

,

## ‘summarise()‘ ungrouping output (override with ‘.groups‘ argument)

## ‘geom_smooth()‘ using formula ’y ~ x’

Unfavorablility Towards Police by Day

Question 5

###Part a The attitudes in question are no doubt highly influenced by the respondent’s race and ethnicity. How do the graphs from question 4 differ for white and Black respondents. Subset the data to include only white respondents and recreate the graphs from part c of question 4. Do the same with the data from only Black respondents. How do these differ from each other? Hint: Be careful when subsetting white responses to not also include Hispanic responses.

###Part b As we have learned partisanship heavily influences how people take in and process new information. Split the sample into Democrats, Republicans and independents and use them to produce the same graphs as part a (either all in the same figure or separate). Compare both the level and the trends for each party affiliation. What could this imply about how partisanship affects processing? ##Question 6:

###Part a The graphs in questions 4 and 5 indicate that the effects dissipate as time progresses past the onset of the protests. Explain why that might be the case? What does this indicate about whether or not attitudes towards the police are symbolic or not?

###Part b One way to look at the effect decay is to bin the post-protest data and compare averages. Split

the post-protest data into however many groups you choose and compare the period directly after the protest with the latest period in the data. What are the differences in means for the outcomes?

Question 7

###Part a What are some reasons we might be unconvinced by the comparison of aggregate survey results from a time before and after an event? Do you think they apply here?

###Part b There is often a problem in conducting surveys of non-response bias. That is, the people who answer surveys may differ from the people who do not answer surveys and the differences may vary over time. This is especially damaging to inference when non-response is correlated with the outcomes being measured. For example after a series of damaging headlines supporters of a politician may be less willing to answer phone surveys about that politician. As a result we would potentially observe an exaggeration of the negative effects of the scandal on a politician’s polled approval rating. Test whether this is the case in the Reny and Newman data. Test whether there is balance between the respondents before and after the onset of the protests along two demographic traits that you would expect to correlate with the measured responses to the outcome variables.

###Part c Racial resentment is often considered a symbolic attitude in strength and consistency. Examine the before and after levels of racial resentment as measured by the question from the racial resentment scale about the impact of generations of slavery and discrimination (racial_attitudes_generations). Graph the

average racial_attitudes_generations (remember the direction of how it is coded!) by day like other outcome variables. Does it behave like the other outcome variables? Does the data support that racial attitudes are symbolic attitudes?

Question 8: Data Science Question

###Part a Run an initial regression examining the relationship between favorability towards the police, party, and treatment. Run a regression examining party and the onset of the protests’ effect on favorability towards the police. Interpret the results

protest_df_edit <- protest_df %>% mutate(treatment_after = ifelse(day_running >= 0, 1, 0))

mod = lm(group_favorability_the_police ~ treatment_after + pid7, data = protest_df_edit) stargazer(mod, type = “text”)

##

## ==================================================

##                                                                 Dependent variable:

##                                                                ——————————

##                                                        group_favorability_the_police

## ————————————————–

## treatment_after                                             0.169***

##                                                                             (0.004)

##

## pid7                                                                 -0.127***

##                                                                             (0.001)

##

## Constant                                                          2.478***

##                                                                             (0.003)

##

## ————————————————–

## Observations                                                   326,797

## R2                                                                         0.088

## Adjusted R2                                                       0.088

## Residual Std. Error                               0.966 (df = 326794)

## F Statistic                                      15,807.950*** (df = 2; 326794)

## ==================================================

## Note:                                                  *p<0.1; **p<0.05; ***p<0.01

 

###Part b The above functional form probably does not accurately model the relationship of all the relevant covariates in the dataset. What functional form would you recommend using and why? What covariates would you add? Is there need for an interaction term? Run a regression of your specification and interpret the results. Justify your choices in modeling.

protest_df_edit2 <- protest_df_edit %>% mutate(is_black = ifelse(race_ethnicity == 2, 1, 0))

mod = lm(group_favorability_the_police ~ treatment_after + ideo5*is_black, data = stargazer(mod, type = “text”)

protest_df_edit2)

##

## ==================================================

##                                                                 Dependent variable:

##                                                                ——————————

##                                                        group_favorability_the_police

## ————————————————–

## treatment_after                                             0.158***

##                                                                             (0.004)

##

## ideo5                                                               -0.248***

##                                                                             (0.002)

##

## is_black 0.213***
## ## (0.015)
## ideo5:is_black 0.150***
## ## (0.005)
## Constant 2.676***
## (0.005)

##

## ————————————————–

## Observations                                                   344,101

## R2                                                                         0.119

## Adjusted R2                                                       0.119

## Residual Std. Error                               0.955 (df = 344096)

## F Statistic                                      11,650.980*** (df = 4; 344096)

## ==================================================

## Note:                                                  *p<0.1; **p<0.05; ***p<0.01

. Using the code below from the

MASS package run an ordinal probit model using the same model as part b. How do the coefficients differ from part b?

library(MASS)

##

## Attaching package: ’MASS’

## The following object is masked from ’package:dplyr’:

##

##              select

select <- dplyr::select

protest_df_edit3 <- protest_df_edit2 %>% mutate(group_favorability_the_police = as.factor(group_favorability_the_police),

treatment_after = as.factor(treatment_after), ideo5 = as.factor(ideo5), is_black = as.factor(is_black))

polr(data = protest_df_edit3, formula = group_favorability_the_police ~ treatment_after + method = “probit”)

ideo5*is_black

## Call:

## polr(formula = group_favorability_the_police ~ treatment_after +

##                            ideo5 * is_black, data = protest_df_edit3, method = “probit”)

##

## Coefficients:

## treatment_after1            ideo52   ideo53   ideo54 ##              0.1690022            -0.2372634            -0.4688086           -0.8843135 ##      ideo55   is_black1 ideo52:is_black1 ideo53:is_black1 ##            -1.1527623           0.3292775            0.1920383            0.3833238

## ideo54:is_black1 ideo55:is_black1

##                    0.5704331                    0.6934550

##

## Intercepts:

##            1|2         2|3         3|4 ## -0.7511156 0.1747168 0.8495425

##

## Residual Deviance: 846165.48

## AIC: 846191.48

## (34406 observations deleted due to missingness)

 

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.