free_speech_data <- final_data |>
filter(condition %in% c(1, 4, 7, 10))
#support for candidate
free_speech_data |>
ggplot(aes(x = support_election)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
free_speech_data |>
ggplot(aes(x = support_election_lumped)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
#recognition of antidemocratic behavior
free_speech_data |>
ggplot(aes(x = threaten_country)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
free_speech_data |>
ggplot(aes(x = threaten_country_lumped)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
#Opinion on bill
free_speech_data |>
ggplot(aes(x = opinion_bill)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
free_speech_data |>
ggplot(aes(x = opinion_bill_lumped)) +
geom_bar() +
facet_wrap(~politician_gender + politician_party)
speech_difference_in_means <- free_speech_data |>
group_by(politician_party, politician_gender) |>
summarize(mean_support_for_politician = mean(support_election, na.rm = TRUE),
sd_support_for_politician = sd(support_election, na.rm = TRUE),
mean_antidemocratic_recognition = mean(threaten_country, na.rm = TRUE),
sd_antidemocratic_recognition = sd(threaten_country, na.rm = TRUE),
mean_support_for_bill = mean(opinion_bill, na.rm = TRUE),
sd_support_for_bill = sd(opinion_bill, na.rm = TRUE),
n = n(),
.groups = "drop") |>
print()
# A tibble: 4 × 9
politician_party politician_gender mean_support_for_politician
<fct> <fct> <dbl>
1 Democrat Male Politician 4.10
2 Democrat Female Politician 3.80
3 Republican Male Politician 3.94
4 Republican Female Politician 3.86
# ℹ 6 more variables: sd_support_for_politician <dbl>,
# mean_antidemocratic_recognition <dbl>, sd_antidemocratic_recognition <dbl>,
# mean_support_for_bill <dbl>, sd_support_for_bill <dbl>, n <int>
Hypothesis 2: this effect will be more pronounced among outparty voters than inparty voters
H2a: Overall effects
#simple model
speech_h2 <- lm(support_election ~ politician_gender * inparty_outparty, data = free_speech_data)
summary(speech_h2)
Call:
lm(formula = support_election ~ politician_gender * inparty_outparty,
data = free_speech_data)
Residuals:
Min 1Q Median 3Q Max
-4.0081 -1.2000 0.1017 0.9919 3.8000
Coefficients:
Estimate Std. Error
(Intercept) 3.36170 0.11945
politician_genderFemale Politician -0.16170 0.16637
inparty_outpartyInparty 1.64636 0.18947
politician_genderFemale Politician:inparty_outpartyInparty 0.05194 0.26841
t value Pr(>|t|)
(Intercept) 28.143 <2e-16 ***
politician_genderFemale Politician -0.972 0.331
inparty_outpartyInparty 8.689 <2e-16 ***
politician_genderFemale Politician:inparty_outpartyInparty 0.194 0.847
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.638 on 626 degrees of freedom
Multiple R-squared: 0.2008, Adjusted R-squared: 0.197
F-statistic: 52.44 on 3 and 626 DF, p-value: < 2.2e-16
plot_model(speech_h2, terms = c("inparty_outparty", "politician_gender"),
type= "pred")
#include covariates
speech_h2_covariates<- lm(support_election ~ politician_gender * inparty_outparty + survey_partyid + respondent_gender, data = free_speech_data)
summary(speech_h2_covariates)
Call:
lm(formula = support_election ~ politician_gender * inparty_outparty +
survey_partyid + respondent_gender, data = free_speech_data)
Residuals:
Min 1Q Median 3Q Max
-4.3379 -1.2183 0.2198 1.0158 4.2397
Coefficients:
Estimate Std. Error
(Intercept) 3.73715 0.19775
politician_genderFemale Politician -0.13961 0.16503
inparty_outpartyInparty 1.64614 0.18780
survey_partyid -0.11960 0.03600
respondent_genderFemale Respondent 0.19384 0.12948
politician_genderFemale Politician:inparty_outpartyInparty 0.05522 0.26604
t value Pr(>|t|)
(Intercept) 18.899 < 2e-16 ***
politician_genderFemale Politician -0.846 0.397901
inparty_outpartyInparty 8.765 < 2e-16 ***
survey_partyid -3.322 0.000946 ***
respondent_genderFemale Respondent 1.497 0.134886
politician_genderFemale Politician:inparty_outpartyInparty 0.208 0.835649
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.623 on 624 degrees of freedom
Multiple R-squared: 0.2175, Adjusted R-squared: 0.2112
F-statistic: 34.68 on 5 and 624 DF, p-value: < 2.2e-16
plot_model(speech_h2_covariates, terms = c("inparty_outparty", "politician_gender"),
type= "pred")
#compare this to next chunk - is it needed?
H2b: Split to look at just Democratic candidates, then just Republican
#################repeated for just democratic candidate ###############
dem_politician_speech_data <- free_speech_data |>
filter(politician_party == "Democrat")
speech_h2a <- lm(support_election ~ politician_gender * inparty_outparty, data = dem_politician_speech_data)
summary(speech_h2a)
Call:
lm(formula = support_election ~ politician_gender * inparty_outparty,
data = dem_politician_speech_data)
Residuals:
Min 1Q Median 3Q Max
-3.8437 -1.3299 0.4333 1.2255 3.6701
Coefficients:
Estimate Std. Error
(Intercept) 3.5667 0.1769
politician_genderFemale Politician -0.2368 0.2456
inparty_outpartyInparty 1.2771 0.2744
politician_genderFemale Politician:inparty_outpartyInparty -0.0660 0.3879
t value Pr(>|t|)
(Intercept) 20.166 < 2e-16 ***
politician_genderFemale Politician -0.964 0.336
inparty_outpartyInparty 4.655 4.83e-06 ***
politician_genderFemale Politician:inparty_outpartyInparty -0.170 0.865
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.678 on 308 degrees of freedom
Multiple R-squared: 0.1242, Adjusted R-squared: 0.1156
F-statistic: 14.56 on 3 and 308 DF, p-value: 6.853e-09
plot_model(speech_h2a, terms = c("inparty_outparty", "politician_gender"),
type= "pred")
#####################just republican candidate ##################
rep_politician_speech_data <- free_speech_data |>
filter(politician_party == "Republican")
speech_h2b <- lm(support_election ~ politician_gender * inparty_outparty, data = rep_politician_speech_data)
summary(speech_h2b)
Call:
lm(formula = support_election ~ politician_gender * inparty_outparty,
data = rep_politician_speech_data)
Residuals:
Min 1Q Median 3Q Max
-4.2807 -1.1833 -0.0777 0.9223 3.9223
Coefficients:
Estimate Std. Error
(Intercept) 3.1735 0.1594
politician_genderFemale Politician -0.0958 0.2227
inparty_outpartyInparty 2.0099 0.2587
politician_genderFemale Politician:inparty_outpartyInparty 0.1932 0.3671
t value Pr(>|t|)
(Intercept) 19.908 < 2e-16 ***
politician_genderFemale Politician -0.430 0.667
inparty_outpartyInparty 7.770 1.13e-13 ***
politician_genderFemale Politician:inparty_outpartyInparty 0.526 0.599
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.578 on 314 degrees of freedom
Multiple R-squared: 0.2961, Adjusted R-squared: 0.2893
F-statistic: 44.02 on 3 and 314 DF, p-value: < 2.2e-16
plot_model(speech_h2b, terms = c("inparty_outparty", "politician_gender"),
type= "pred")
For dem candidates, female politician does worse for both outparty and inparty voters (which is really weird - why inparty?)
expected effect for republican candidates