Courtpacking

Free Speech Data

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 1: support for a politician increases under female candidates, regardless of party

#simple model

speech_h1 <- lm(support_election ~ politician_gender * politician_party, data = free_speech_data)

summary(speech_h1)

Call:
lm(formula = support_election ~ politician_gender * politician_party, 
    data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0974 -1.7975  0.0633  1.2025  3.2025 

Coefficients:
                                                              Estimate
(Intercept)                                                     4.0974
politician_genderFemale Politician                             -0.2999
politician_partyRepublican                                     -0.1607
politician_genderFemale Politician:politician_partyRepublican   0.2257
                                                              Std. Error
(Intercept)                                                       0.1474
politician_genderFemale Politician                                0.2071
politician_partyRepublican                                        0.2071
politician_genderFemale Politician:politician_partyRepublican     0.2915
                                                              t value Pr(>|t|)
(Intercept)                                                    27.805   <2e-16
politician_genderFemale Politician                             -1.448    0.148
politician_partyRepublican                                     -0.776    0.438
politician_genderFemale Politician:politician_partyRepublican   0.774    0.439
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                               
politician_partyRepublican                                       
politician_genderFemale Politician:politician_partyRepublican    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.829 on 626 degrees of freedom
Multiple R-squared:  0.003707,  Adjusted R-squared:  -0.001068 
F-statistic: 0.7764 on 3 and 626 DF,  p-value: 0.5074
plot_model(speech_h1, terms = c("politician_party", "politician_gender"),
           type= "pred")

#include covariates

speech_h1_covariates <- lm(support_election ~ politician_gender * politician_party + survey_partyid + respondent_gender, data = free_speech_data)

summary(speech_h1_covariates)

Call:
lm(formula = support_election ~ politician_gender * politician_party + 
    survey_partyid + respondent_gender, data = free_speech_data)

Residuals:
   Min     1Q Median     3Q    Max 
-3.540 -1.601  0.086  1.389  3.627 

Coefficients:
                                                              Estimate
(Intercept)                                                    4.47560
politician_genderFemale Politician                            -0.26900
politician_partyRepublican                                    -0.15997
survey_partyid                                                -0.11905
respondent_genderFemale Respondent                             0.18358
politician_genderFemale Politician:politician_partyRepublican  0.20956
                                                              Std. Error
(Intercept)                                                      0.23600
politician_genderFemale Politician                               0.20658
politician_partyRepublican                                       0.20652
survey_partyid                                                   0.04032
respondent_genderFemale Respondent                               0.14548
politician_genderFemale Politician:politician_partyRepublican    0.29059
                                                              t value Pr(>|t|)
(Intercept)                                                    18.965  < 2e-16
politician_genderFemale Politician                             -1.302  0.19333
politician_partyRepublican                                     -0.775  0.43889
survey_partyid                                                 -2.953  0.00327
respondent_genderFemale Respondent                              1.262  0.20747
politician_genderFemale Politician:politician_partyRepublican   0.721  0.47109
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                               
politician_partyRepublican                                       
survey_partyid                                                ** 
respondent_genderFemale Respondent                               
politician_genderFemale Politician:politician_partyRepublican    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.817 on 624 degrees of freedom
Multiple R-squared:  0.01991,   Adjusted R-squared:  0.01205 
F-statistic: 2.535 on 5 and 624 DF,  p-value: 0.02769
plot_model(speech_h1_covariates, terms = c("politician_party", "politician_gender"),
           type= "pred")

nothing is statistically significant

can comment on the direction

interesting: this is the one condition where dem women do worse. Follows the trend of republican women for all three

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

Comparing the effects of party

#Just inparty/outparty

speech_party1 <- lm(support_election ~ politician_gender + inparty_outparty, data = free_speech_data)

summary(speech_party1)

Call:
lm(formula = support_election ~ politician_gender + inparty_outparty, 
    data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.0237 -1.2097  0.1181  0.9763  3.7903 

Coefficients:
                                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)                          3.3514     0.1069  31.355   <2e-16 ***
politician_genderFemale Politician  -0.1417     0.1305  -1.087    0.278    
inparty_outpartyInparty              1.6722     0.1341  12.470   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.637 on 627 degrees of freedom
Multiple R-squared:  0.2008,    Adjusted R-squared:  0.1982 
F-statistic: 78.77 on 2 and 627 DF,  p-value: < 2.2e-16
#Just survey_partyid


speech_party2 <- lm(support_election ~ politician_gender + survey_partyid, data = free_speech_data)

summary(speech_party2)

Call:
lm(formula = support_election ~ politician_gender + survey_partyid, 
    data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3688 -1.6476  0.0708  1.3791  3.5104 

Coefficients:
                                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)                         4.48681    0.19078  23.519  < 2e-16 ***
politician_genderFemale Politician -0.17135    0.14478  -1.183  0.23707    
survey_partyid                     -0.11798    0.04027  -2.929  0.00352 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.816 on 627 degrees of freedom
Multiple R-squared:  0.01606,   Adjusted R-squared:  0.01292 
F-statistic: 5.115 on 2 and 627 DF,  p-value: 0.006257
#both

speech_party3 <- lm(support_election ~ politician_gender + inparty_outparty * survey_partyid, data = free_speech_data)

summary(speech_party3)

Call:
lm(formula = support_election ~ politician_gender + inparty_outparty * 
    survey_partyid, data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.2675 -1.2675  0.2229  1.0113  4.1282 

Coefficients:
                                        Estimate Std. Error t value Pr(>|t|)
(Intercept)                             3.817192   0.232738  16.401  < 2e-16
politician_genderFemale Politician     -0.127120   0.129613  -0.981    0.327
inparty_outpartyInparty                 1.694157   0.320990   5.278  1.8e-07
survey_partyid                         -0.116898   0.051666  -2.263    0.024
inparty_outpartyInparty:survey_partyid -0.005043   0.072067  -0.070    0.944
                                          
(Intercept)                            ***
politician_genderFemale Politician        
inparty_outpartyInparty                ***
survey_partyid                         *  
inparty_outpartyInparty:survey_partyid    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.625 on 625 degrees of freedom
Multiple R-squared:  0.2146,    Adjusted R-squared:  0.2096 
F-statistic:  42.7 on 4 and 625 DF,  p-value: < 2.2e-16
vif_speech <- vif(speech_party3, type = "predictor")
GVIFs computed for predictors
print(vif_speech)
                      GVIF Df GVIF^(1/(2*Df))   Interacts With
politician_gender 1.002007  1        1.001003             --  
inparty_outparty  1.002007  3        1.000334   survey_partyid
survey_partyid    1.002007  3        1.000334 inparty_outparty
                                  Other Predictors
politician_gender inparty_outparty, survey_partyid
inparty_outparty                 politician_gender
survey_partyid                   politician_gender

Hypothesis 3: These above effects will be more pronounced among female voters

#simple model

speech_h3 <- lm(support_election ~ politician_gender * respondent_gender, data = free_speech_data)

summary(speech_h3)

Call:
lm(formula = support_election ~ politician_gender * respondent_gender, 
    data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0915 -1.7212  0.0676  1.2788  3.2788 

Coefficients:
                                                                      Estimate
(Intercept)                                                            3.93243
politician_genderFemale Politician                                    -0.21122
respondent_genderFemale Respondent                                     0.15903
politician_genderFemale Politician:respondent_genderFemale Respondent  0.06747
                                                                      Std. Error
(Intercept)                                                              0.15018
politician_genderFemale Politician                                       0.20685
respondent_genderFemale Respondent                                       0.20715
politician_genderFemale Politician:respondent_genderFemale Respondent    0.29148
                                                                      t value
(Intercept)                                                            26.184
politician_genderFemale Politician                                     -1.021
respondent_genderFemale Respondent                                      0.768
politician_genderFemale Politician:respondent_genderFemale Respondent   0.231
                                                                      Pr(>|t|)
(Intercept)                                                             <2e-16
politician_genderFemale Politician                                       0.308
respondent_genderFemale Respondent                                       0.443
politician_genderFemale Politician:respondent_genderFemale Respondent    0.817
                                                                         
(Intercept)                                                           ***
politician_genderFemale Politician                                       
respondent_genderFemale Respondent                                       
politician_genderFemale Politician:respondent_genderFemale Respondent    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.827 on 626 degrees of freedom
Multiple R-squared:  0.005463,  Adjusted R-squared:  0.000697 
F-statistic: 1.146 on 3 and 626 DF,  p-value: 0.3297
plot_model(speech_h3, terms = c("respondent_gender", "politician_gender"),
           type= "pred")

#include covariates


speech_h3_covariates <- lm(support_election ~ politician_gender * respondent_gender + politician_party + survey_partyid, data = free_speech_data)

summary(speech_h3_covariates)

Call:
lm(formula = support_election ~ politician_gender * respondent_gender + 
    politician_party + survey_partyid, data = free_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4740 -1.5883  0.0961  1.3551  3.6487 

Coefficients:
                                                                      Estimate
(Intercept)                                                            4.43455
politician_genderFemale Politician                                    -0.19717
respondent_genderFemale Respondent                                     0.15788
politician_partyRepublican                                            -0.05668
survey_partyid                                                        -0.11849
politician_genderFemale Politician:respondent_genderFemale Respondent  0.06802
                                                                      Std. Error
(Intercept)                                                              0.23562
politician_genderFemale Politician                                       0.20624
respondent_genderFemale Respondent                                       0.20674
politician_partyRepublican                                               0.14546
survey_partyid                                                           0.04033
politician_genderFemale Politician:respondent_genderFemale Respondent    0.29095
                                                                      t value
(Intercept)                                                            18.821
politician_genderFemale Politician                                     -0.956
respondent_genderFemale Respondent                                      0.764
politician_partyRepublican                                             -0.390
survey_partyid                                                         -2.938
politician_genderFemale Politician:respondent_genderFemale Respondent   0.234
                                                                      Pr(>|t|)
(Intercept)                                                            < 2e-16
politician_genderFemale Politician                                     0.33944
respondent_genderFemale Respondent                                     0.44535
politician_partyRepublican                                             0.69694
survey_partyid                                                         0.00342
politician_genderFemale Politician:respondent_genderFemale Respondent  0.81523
                                                                         
(Intercept)                                                           ***
politician_genderFemale Politician                                       
respondent_genderFemale Respondent                                       
politician_partyRepublican                                               
survey_partyid                                                        ** 
politician_genderFemale Politician:respondent_genderFemale Respondent    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.817 on 624 degrees of freedom
Multiple R-squared:  0.01917,   Adjusted R-squared:  0.01132 
F-statistic:  2.44 on 5 and 624 DF,  p-value: 0.03331
plot_model(speech_h3_covariates, terms = c("respondent_gender", "politician_gender"),
           type= "pred")

Women and men both rate female politicians lower.

Filter by Candidate Gender

male_speech_data <- free_speech_data |> 
  filter(politician_gender == "Male Politician")

lm_male_speech <- lm(support_election ~ politician_party * respondent_gender, data = male_speech_data)

summary(lm_male_speech)

Call:
lm(formula = support_election ~ politician_party * respondent_gender, 
    data = male_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3000 -1.0238  0.1622  1.1875  3.1875 

Coefficients:
                                                              Estimate
(Intercept)                                                     3.8125
politician_partyRepublican                                      0.2113
respondent_genderFemale Respondent                              0.4875
politician_partyRepublican:respondent_genderFemale Respondent  -0.6735
                                                              Std. Error
(Intercept)                                                       0.2180
politician_partyRepublican                                        0.2893
respondent_genderFemale Respondent                                0.2851
politician_partyRepublican:respondent_genderFemale Respondent     0.3983
                                                              t value Pr(>|t|)
(Intercept)                                                    17.490   <2e-16
politician_partyRepublican                                      0.730   0.4658
respondent_genderFemale Respondent                              1.710   0.0883
politician_partyRepublican:respondent_genderFemale Respondent  -1.691   0.0918
                                                                 
(Intercept)                                                   ***
politician_partyRepublican                                       
respondent_genderFemale Respondent                            .  
politician_partyRepublican:respondent_genderFemale Respondent .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.744 on 308 degrees of freedom
Multiple R-squared:  0.01292,   Adjusted R-squared:  0.003309 
F-statistic: 1.344 on 3 and 308 DF,  p-value: 0.2601
plot_model(lm_male_speech, terms = c("respondent_gender", "politician_party"),
           type= "pred")

female_speech_data <- free_speech_data |> 
  filter(politician_gender == "Female Politician")

lm_female_speech <- lm(support_election ~ politician_party * respondent_gender, data = female_speech_data)

summary(lm_female_speech)

Call:
lm(formula = support_election ~ politician_party * respondent_gender, 
    data = female_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0864 -1.7917  0.1977  1.3671  3.3671 

Coefficients:
                                                              Estimate
(Intercept)                                                    3.80233
politician_partyRepublican                                    -0.16941
respondent_genderFemale Respondent                            -0.01066
politician_partyRepublican:respondent_genderFemale Respondent  0.46417
                                                              Std. Error
(Intercept)                                                      0.20531
politician_partyRepublican                                       0.29671
respondent_genderFemale Respondent                               0.30414
politician_partyRepublican:respondent_genderFemale Respondent    0.42795
                                                              t value Pr(>|t|)
(Intercept)                                                    18.520   <2e-16
politician_partyRepublican                                     -0.571    0.568
respondent_genderFemale Respondent                             -0.035    0.972
politician_partyRepublican:respondent_genderFemale Respondent   1.085    0.279
                                                                 
(Intercept)                                                   ***
politician_partyRepublican                                       
respondent_genderFemale Respondent                               
politician_partyRepublican:respondent_genderFemale Respondent    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.904 on 314 degrees of freedom
Multiple R-squared:  0.007469,  Adjusted R-squared:  -0.002013 
F-statistic: 0.7877 on 3 and 314 DF,  p-value: 0.5015
plot_model(lm_female_speech, terms = c("respondent_gender", "politician_party"),
           type= "pred")

#standardize so can compare side by side?

Filtering by respondent party: Democrats

dem_speech_data <- free_speech_data |> 
  filter(survey_partyid == c(5,6,7))

lm_dem_speech <- lm(support_election ~ politician_gender * politician_party, data = dem_speech_data)

summary(lm_dem_speech)

Call:
lm(formula = support_election ~ politician_gender * politician_party, 
    data = dem_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8947 -1.4091  0.1053  1.1053  4.5909 

Coefficients:
                                                              Estimate
(Intercept)                                                     4.8947
politician_genderFemale Politician                             -0.2281
politician_partyRepublican                                     -1.9900
politician_genderFemale Politician:politician_partyRepublican  -0.2676
                                                              Std. Error
(Intercept)                                                       0.3807
politician_genderFemale Politician                                0.5255
politician_partyRepublican                                        0.5255
politician_genderFemale Politician:politician_partyRepublican     0.7297
                                                              t value Pr(>|t|)
(Intercept)                                                    12.856  < 2e-16
politician_genderFemale Politician                             -0.434 0.665446
politician_partyRepublican                                     -3.787 0.000296
politician_genderFemale Politician:politician_partyRepublican  -0.367 0.714802
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                               
politician_partyRepublican                                    ***
politician_genderFemale Politician:politician_partyRepublican    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.66 on 79 degrees of freedom
Multiple R-squared:  0.3075,    Adjusted R-squared:  0.2812 
F-statistic:  11.7 on 3 and 79 DF,  p-value: 2.023e-06
plot_model(lm_dem_speech, terms = c("politician_party", "politician_gender"),
           type= "pred")

#with covariates


lm_dem_speech2 <- lm(support_election ~ politician_gender * politician_party + respondent_gender, data = dem_speech_data)

summary(lm_dem_speech2)

Call:
lm(formula = support_election ~ politician_gender * politician_party + 
    respondent_gender, data = dem_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8926 -1.4066  0.1037  1.1074  4.5897 

Coefficients:
                                                               Estimate
(Intercept)                                                    4.892622
politician_genderFemale Politician                            -0.226999
politician_partyRepublican                                    -1.989774
respondent_genderFemale Respondent                             0.003653
politician_genderFemale Politician:politician_partyRepublican -0.269249
                                                              Std. Error
(Intercept)                                                     0.442961
politician_genderFemale Politician                              0.540671
politician_partyRepublican                                      0.529245
respondent_genderFemale Respondent                              0.383895
politician_genderFemale Politician:politician_partyRepublican   0.754515
                                                              t value Pr(>|t|)
(Intercept)                                                    11.045  < 2e-16
politician_genderFemale Politician                             -0.420 0.675751
politician_partyRepublican                                     -3.760 0.000327
respondent_genderFemale Respondent                              0.010 0.992431
politician_genderFemale Politician:politician_partyRepublican  -0.357 0.722167
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                               
politician_partyRepublican                                    ***
respondent_genderFemale Respondent                               
politician_genderFemale Politician:politician_partyRepublican    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.67 on 78 degrees of freedom
Multiple R-squared:  0.3075,    Adjusted R-squared:  0.272 
F-statistic:  8.66 on 4 and 78 DF,  p-value: 7.748e-06
plot_model(lm_dem_speech2, terms = c("politician_party", "politician_gender"),
           type= "pred")

#need to reconcile partyid from survey, prolific

Filtering by respondent party: Republicans

rep_speech_data <- free_speech_data |> 
  filter(survey_partyid == c(1,2,3))


lm_rep_speech <- lm(support_election ~ politician_gender * politician_party, data = rep_speech_data)

summary(lm_rep_speech)

Call:
lm(formula = support_election ~ politician_gender * politician_party, 
    data = rep_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9286 -1.3636 -0.3636  1.0714  3.0714 

Coefficients:
                                                              Estimate
(Intercept)                                                     3.9286
politician_genderFemale Politician                             -1.4286
politician_partyRepublican                                      1.4351
politician_genderFemale Politician:politician_partyRepublican   1.4562
                                                              Std. Error
(Intercept)                                                       0.3773
politician_genderFemale Politician                                0.5166
politician_partyRepublican                                        0.4826
politician_genderFemale Politician:politician_partyRepublican     0.6664
                                                              t value Pr(>|t|)
(Intercept)                                                    10.412 6.13e-16
politician_genderFemale Politician                             -2.765  0.00724
politician_partyRepublican                                      2.973  0.00402
politician_genderFemale Politician:politician_partyRepublican   2.185  0.03218
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                            ** 
politician_partyRepublican                                    ** 
politician_genderFemale Politician:politician_partyRepublican *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.412 on 71 degrees of freedom
Multiple R-squared:  0.4219,    Adjusted R-squared:  0.3974 
F-statistic: 17.27 on 3 and 71 DF,  p-value: 1.603e-08
plot_model(lm_rep_speech, terms = c("politician_party", "politician_gender"),
           type= "pred")

#include covariates


lm_rep_speech2 <- lm(support_election ~ politician_gender * politician_party + respondent_gender, data = rep_speech_data)

summary(lm_rep_speech2)

Call:
lm(formula = support_election ~ politician_gender * politician_party + 
    respondent_gender, data = rep_speech_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9487 -1.3402 -0.3668  1.0513  3.0982 

Coefficients:
                                                              Estimate
(Intercept)                                                    3.90176
politician_genderFemale Politician                            -1.42522
politician_partyRepublican                                     1.43842
respondent_genderFemale Respondent                             0.04691
politician_genderFemale Politician:politician_partyRepublican  1.45187
                                                              Std. Error
(Intercept)                                                      0.42390
politician_genderFemale Politician                               0.52077
politician_partyRepublican                                       0.48657
respondent_genderFemale Respondent                               0.32902
politician_genderFemale Politician:politician_partyRepublican    0.67179
                                                              t value Pr(>|t|)
(Intercept)                                                     9.204 1.12e-13
politician_genderFemale Politician                             -2.737  0.00786
politician_partyRepublican                                      2.956  0.00424
respondent_genderFemale Respondent                              0.143  0.88702
politician_genderFemale Politician:politician_partyRepublican   2.161  0.03410
                                                                 
(Intercept)                                                   ***
politician_genderFemale Politician                            ** 
politician_partyRepublican                                    ** 
respondent_genderFemale Respondent                               
politician_genderFemale Politician:politician_partyRepublican *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.422 on 70 degrees of freedom
Multiple R-squared:  0.422, Adjusted R-squared:  0.389 
F-statistic: 12.78 on 4 and 70 DF,  p-value: 7.321e-08
plot_model(lm_rep_speech2, terms = c("politician_party", "politician_gender"),
           type= "pred")

#need to reconcile partyid from survey, prolific