DATA & PREP

# Libraries
library(tidyverse)
library(psych)
library(sjPlot)
library(interactions)
library(knitr)

# Data
d <- read.csv("protest_t1.csv", header = T, na.strings = "")

ANALYSES

Negative Polarization

Political Ideology

m.np <- lm(negPartisan ~ ideology_cont + ideology_sq, data = d)
tab_model(m.np, show.stat = T)
  negPartisan
Predictors Estimates CI Statistic p
(Intercept) 28.19 25.07 – 31.31 17.78 <0.001
ideology cont 1.78 0.65 – 2.92 3.09 0.002
ideology sq -2.64 -3.32 – -1.96 -7.65 <0.001
Observations 280
R2 / R2 adjusted 0.220 / 0.214

Summary:

Ideology has a quadratic effect on negative partisanship (b = -2.62, F(1, 283) = 60.68, p < .001). Negative partisanship is higher at the ideological extremes than in the moderate center.

m.np2 <- lm(negPartisan ~ age * ideology_cont, data = d)
tab_model(m.np2, show.stat = T)
  negPartisan
Predictors Estimates CI Statistic p
(Intercept) 30.06 22.46 – 37.66 7.79 <0.001
age -0.27 -0.46 – -0.08 -2.84 0.005
ideology cont 6.38 2.23 – 10.54 3.02 0.003
age × ideology cont -0.09 -0.19 – 0.01 -1.74 0.083
Observations 280
R2 / R2 adjusted 0.092 / 0.082
interact_plot(m.np2, pred = ideology_cont, modx = age, plot.points = F) +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  scale_y_continuous(breaks = seq(0, 80, 10)) +
  coord_cartesian(ylim = c(0, 70)) +
  theme_classic() +
  ylab("Affective Polarization
(Ingroup - Outgroup)") +
  xlab("Ideology
Strong Liberal to Strong Conservative")

Summary:

Age and ideology predict negative partisanship; negative partisanship decreases with age (b = -0.28, F(1,283) = 9.12, p = .003) and increases with conservatism (b = 6.04, F(1,283) = 8.70, p = .003). There is also a marginal interaction with age: the conservatism-negative polarization relationship is marginally stronger for younger people than for older people (b = -0.08, F(1,283) = 2.76, p = .098).

Party ID

ggplot(d[d$party_factor != "Independent",],
       aes(x = party_factor,
           y = negPartisan)) +
  geom_bar(stat = "summary",
           fun = "mean") +
  geom_errorbar(aes(x = factor(party_factor),
                    y = negPartisan),
               stat='summary', width=.1) +
  theme_classic() +
  ylab("Perceptions of Outgroup
(out of 100)") +
  xlab("Partisan Identification")

m.np3 <- lm(negPartisan ~ Dem_Rep, data = d)
tab_model(m.np3, show.stat = T)
  negPartisan
Predictors Estimates CI Statistic p
(Intercept) 19.42 17.11 – 21.74 16.52 <0.001
Dem Rep 9.16 4.53 – 13.78 3.89 <0.001
Observations 280
R2 / R2 adjusted 0.052 / 0.048
ggplot(d[d$party_factor != "Independent",],
       aes(x = age,
           y = negPartisan)) +
  geom_smooth(method = "lm") +
  theme_classic() +
  ylab("Perceptions of Outgroup
(out of 100)") +
  xlab("Age") +
  facet_wrap(~party_factor)

m.np4 <- lm(negPartisan ~ Dem_Rep + age, data = d)
tab_model(m.np4, show.stat = T)
  negPartisan
Predictors Estimates CI Statistic p
(Intercept) 29.93 22.26 – 37.59 7.69 <0.001
Dem Rep 10.53 5.86 – 15.20 4.44 <0.001
age -0.27 -0.46 – -0.08 -2.83 0.005
Observations 280
R2 / R2 adjusted 0.078 / 0.072

Summary:

Partisanship and age predict negative partisanship; Republicans hold higher average negative partisanship than Democrats (b = 10.53, p < .001) when controlling for age; further, across both parties, age negatively predicts negative partisanship (b = -0.27, p = .005).

Affective Polarization

Political Ideology

ggplot(d,
       aes(x = ideology_cont,
           y = affPol)) +
  geom_smooth(method = "loess") +
  theme_classic() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  coord_cartesian(xlim = c(-3,3)) +
  ylab("Affective Polarization
(Ingroup - Outgroup)") +
  xlab("Ideology 
(Strong Liberal to Strong Conservative)")

m.ap <- lm(affPol ~ ideology_cont + ideology_sq, data = d)
summary(m.ap)
## 
## Call:
## lm(formula = affPol ~ ideology_cont + ideology_sq, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -90.596 -18.916   2.964  18.141  61.671 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    32.3286     2.4794  13.039  < 2e-16 ***
## ideology_cont  -0.7683     0.9045  -0.849    0.396    
## ideology_sq     4.7114     0.5399   8.726 2.51e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27.64 on 277 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.2275, Adjusted R-squared:  0.2219 
## F-statistic: 40.78 on 2 and 277 DF,  p-value: 2.99e-16
ggplot(d[d$party_factor != "Independent",],
       aes(x = party_factor,
           y = affPol)) +
  geom_bar(stat = "summary",
           fun = 'mean') +
  theme_classic() +
  coord_cartesian(ylim = c(0,100)) +
  ylab("Affective Polarization
(Ingroup - Outgroup)") +
  xlab("Partisan Identification")

m.ap2 <- lm(affPol ~ Dem_Rep, data = d[d$party_factor != "Independent",])
summary(m.ap2)
## 
## Call:
## lm(formula = affPol ~ Dem_Rep, data = d[d$party_factor != "Independent", 
##     ])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -101.101  -22.993    1.971   23.257   56.899 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   48.029      1.874  25.624  < 2e-16 ***
## Dem_Rep       -9.856      3.749  -2.629  0.00904 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 31.01 on 278 degrees of freedom
## Multiple R-squared:  0.02426,    Adjusted R-squared:  0.02075 
## F-statistic: 6.912 on 1 and 278 DF,  p-value: 0.009039
ggplot(d[d$party_factor != "Independent",],
       aes(x = age,
           y = affPol)) +
  geom_smooth(method = "lm") +
  theme_classic() +
  scale_x_continuous(breaks = seq(20,80,10)) +
  coord_cartesian(ylim = c(0,100), xlim = c(18,80)) +
  ylab("Affective Polarization
(Ingroup - Outgroup)") +
  xlab("Age")

m.ap3 <- lm(affPol ~ age, data = d)
summary(m.ap3)
## 
## Call:
## lm(formula = affPol ~ age, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -103.527  -21.262    3.338   24.260   59.066 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  29.1968     6.0545   4.822 2.34e-06 ***
## age           0.5103     0.1504   3.393 0.000793 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 30.76 on 278 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.03976,    Adjusted R-squared:  0.0363 
## F-statistic: 11.51 on 1 and 278 DF,  p-value: 0.0007928
m.ap4 <- lm(affPol ~ age * ideology_cont + Dem_Rep, data = d)
summary(m.ap4)
## 
## Call:
## lm(formula = affPol ~ age * ideology_cont + Dem_Rep, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -94.341 -21.227   2.821  21.571  68.373 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        23.29265    6.09359   3.822 0.000163 ***
## age                 0.61615    0.15011   4.105 5.34e-05 ***
## ideology_cont      -7.53055    3.56207  -2.114 0.035408 *  
## Dem_Rep           -12.23750    6.20691  -1.972 0.049658 *  
## age:ideology_cont   0.18383    0.07992   2.300 0.022193 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 29.98 on 275 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.09754,    Adjusted R-squared:  0.08442 
## F-statistic: 7.431 on 4 and 275 DF,  p-value: 1.071e-05
interact_plot(m.ap4, pred = ideology_cont, modx = age, plot.points = F, interval = T, int.type = "confidence") +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  scale_y_continuous(breaks = seq(0, 80, 10)) +
  coord_cartesian(ylim = c(20, 80)) +
  theme_classic() +
  ylab("Affective Polarization
(Ingroup - Outgroup)") +
  xlab("Ideology
Strong Liberal to Strong Conservative")

Vote Intentions

ggplot(d,
       aes(x = vote_factor,
           y = ideology_cont,
           fill = vote_factor)) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.8)) +
  theme_classic() +
  scale_fill_manual("Candidate Choice",
                     values = c("navyblue",
                                "dodgerblue",
                                "grey42",
                                "indianred2",
                                "red3")) +
  coord_cartesian(ylim = c(-2,2)) +
  xlab("Candidate Preference") +
  ylab("Ideology 
(Strong Liberal to Strong Conservative)")

ggplot(d,
       aes(x = vote_factor,
           y = VoteIntention,
           fill = vote_factor)) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.8)) +
  theme_classic() +
  scale_fill_manual("Candidate Choice",
                     values = c("navyblue",
                                "dodgerblue",
                                "grey42",
                                "indianred2",
                                "red3")) +
  coord_cartesian(ylim = c(-1.5,3)) +
  theme(axis.text.x = element_blank()) +
  xlab("Candidate Preference") +
  ylab("Intention to Vote") #+

#  facet_wrap(~ideology_factor)

hist(d$votePref)

hist(d$VoteIntention)

m4 <- lm(VoteIntention ~ ideology_cont * (Biden_Trump + Neither_Cand), data = d)
summary(m4)
## 
## Call:
## lm(formula = VoteIntention ~ ideology_cont * (Biden_Trump + Neither_Cand), 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.4216 -0.2243  0.6540  0.8669  2.3793 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  1.3811     0.1435   9.624  < 2e-16 ***
## ideology_cont                0.1316     0.0929   1.417 0.157506    
## Biden_Trump                 -0.6295     0.3263  -1.929 0.054612 .  
## Neither_Cand                 1.1291     0.3248   3.476 0.000582 ***
## ideology_cont:Biden_Trump    0.5807     0.1804   3.218 0.001429 ** 
## ideology_cont:Neither_Cand   0.2024     0.2308   0.877 0.381196    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.66 on 309 degrees of freedom
## Multiple R-squared:  0.1115, Adjusted R-squared:  0.09716 
## F-statistic: 7.758 on 5 and 309 DF,  p-value: 6.822e-07

Partisan stuff

m5 <- lm(partyCont ~ ideology_cont * age * MC_protests, data = d)
summary(m5)
## 
## Call:
## lm(formula = partyCont ~ ideology_cont * age * MC_protests, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9339 -0.6197  0.0237  0.7859  2.7674 
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                    4.751e-01  6.223e-01   0.764  0.44573   
## ideology_cont                  1.139e+00  3.753e-01   3.036  0.00261 **
## age                           -2.456e-02  1.591e-02  -1.544  0.12368   
## MC_protests                   -2.428e-01  1.756e-01  -1.383  0.16778   
## ideology_cont:age              4.820e-03  9.489e-03   0.508  0.61185   
## ideology_cont:MC_protests     -1.022e-01  9.378e-02  -1.090  0.27646   
## age:MC_protests                8.676e-03  4.373e-03   1.984  0.04813 * 
## ideology_cont:age:MC_protests  9.429e-05  2.324e-03   0.041  0.96766   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.086 on 307 degrees of freedom
## Multiple R-squared:  0.7236, Adjusted R-squared:  0.7173 
## F-statistic: 114.8 on 7 and 307 DF,  p-value: < 2.2e-16
m5.2 <- lm(ideology_cont ~ (Dem_Rep + Ind_Party) * age * MC_protests, data = d)
summary(m5.2)
## 
## Call:
## lm(formula = ideology_cont ~ (Dem_Rep + Ind_Party) * age * MC_protests, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6129 -0.6787 -0.0430  0.5940  3.8602 
## 
## Coefficients:
##                             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                0.1467068  0.7028857   0.209   0.8348  
## Dem_Rep                    2.8675510  1.1645504   2.462   0.0144 *
## Ind_Party                  0.2492060  1.8518373   0.135   0.8930  
## age                        0.0127310  0.0181593   0.701   0.4838  
## MC_protests               -0.1679539  0.2150901  -0.781   0.4355  
## Dem_Rep:age               -0.0316990  0.0287349  -1.103   0.2708  
## Ind_Party:age             -0.0071772  0.0484622  -0.148   0.8824  
## Dem_Rep:MC_protests       -0.1896550  0.3327093  -0.570   0.5691  
## Ind_Party:MC_protests      0.1186470  0.5773665   0.205   0.8373  
## age:MC_protests           -0.0007229  0.0054084  -0.134   0.8938  
## Dem_Rep:age:MC_protests    0.0150132  0.0080612   1.862   0.0635 .
## Ind_Party:age:MC_protests -0.0014879  0.0146466  -0.102   0.9191  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.024 on 303 degrees of freedom
## Multiple R-squared:  0.6792, Adjusted R-squared:  0.6675 
## F-statistic: 58.31 on 11 and 303 DF,  p-value: < 2.2e-16
ggplot(d, aes(x = ideology_cont)) +
  geom_histogram(color="black", fill="white") +
  theme_classic() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  facet_wrap(~party_factor)

Protest attitudes

ggplot(d, 
       aes(x = age,
           y = MC_protests)) +
  geom_smooth(method = 'lm') +
  theme_classic() +
  facet_wrap(~party_factor) +
  coord_cartesian(ylim = c(1,5)) +
  scale_x_continuous(breaks = seq(20,80,10)) +
  xlab("Age") +
  ylab("Protests as Moral Issue")

m.mc <- lm(MC_protests ~ age * ideology_cont, data = d)
summary(m.mc)
## 
## Call:
## lm(formula = MC_protests ~ age * ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8998 -0.7819  0.1247  1.0544  2.2500 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        3.029464   0.239037  12.674  < 2e-16 ***
## age                0.007549   0.005934   1.272  0.20426    
## ideology_cont     -0.410842   0.136751  -3.004  0.00288 ** 
## age:ideology_cont  0.006828   0.003289   2.076  0.03870 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.253 on 311 degrees of freedom
## Multiple R-squared:  0.05065,    Adjusted R-squared:  0.04149 
## F-statistic: 5.531 on 3 and 311 DF,  p-value: 0.001036
m.mc1 <- lm(MC_protests ~ age + ideology_cont + demNorms_6.r, data = d)
summary(m.mc1)
## 
## Call:
## lm(formula = MC_protests ~ age + ideology_cont + demNorms_6.r, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8690 -0.8055  0.1500  1.0468  2.5592 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    2.956943   0.236894  12.482  < 2e-16 ***
## age            0.005346   0.005894   0.907 0.365103    
## ideology_cont -0.096544   0.041812  -2.309 0.021598 *  
## demNorms_6.r   0.157578   0.043508   3.622 0.000341 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.235 on 311 degrees of freedom
## Multiple R-squared:  0.07645,    Adjusted R-squared:  0.06754 
## F-statistic: 8.581 on 3 and 311 DF,  p-value: 1.723e-05
m.mc0 <- lm(MC_protests ~ age + ideology_cont, data = d)
summary(m.mc0)
## 
## Call:
## lm(formula = MC_protests ~ age + ideology_cont, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.70075 -0.81073  0.07208  1.03459  2.10395 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    3.044425   0.240192  12.675  < 2e-16 ***
## age            0.007966   0.005962   1.336 0.182448    
## ideology_cont -0.139740   0.040845  -3.421 0.000707 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.259 on 312 degrees of freedom
## Multiple R-squared:  0.03749,    Adjusted R-squared:  0.03132 
## F-statistic: 6.076 on 2 and 312 DF,  p-value: 0.002577
age.low <- mean(d$age, na.rm = T) + sd(d$age, na.rm = T)
age.low <- round(age.low,2)

age.mean <- mean(d$age, na.rm = T)
age.mean <- round(age.mean,2)

age.high <- mean(d$age, na.rm = T) - sd(d$age, na.rm = T)
age.high <- round(age.high,2)


interact_plot(m.mc, pred = ideology_cont, modx = age, plot.points = F) +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  theme_classic() +
  coord_cartesian(ylim = c(2,5)) +
  ylab("Moral Conviction in Protest Stance") +
  xlab("Ideology
Strong Liberal to Strong Conservative")

cor.test((d$MC_protests_1), (d$MC_protests_2))
## 
##  Pearson's product-moment correlation
## 
## data:  (d$MC_protests_1) and (d$MC_protests_2)
## t = 33.15, df = 313, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8550813 0.9045461
## sample estimates:
##       cor 
## 0.8822249
describe(d$acceptable_hamas)
##    vars   n  mean   sd median trimmed mad min max range skew kurtosis   se
## X1    1 315 -2.18 1.31     -3   -2.42   0  -3   3     6 1.45     1.08 0.07
describe(d$acceptable_israel)
##    vars   n  mean   sd median trimmed  mad min max range skew kurtosis   se
## X1    1 315 -1.04 2.08     -2   -1.27 1.48  -3   3     6 0.58    -1.04 0.12

Democratic norms

m7 <- lm(demNorms ~ ideology_cont, data = d)
summary(m7)
## 
## Call:
## lm(formula = demNorms ~ ideology_cont, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.97192 -0.58684  0.00494  0.59273  1.82537 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.17463    0.04483  26.203  < 2e-16 ***
## ideology_cont -0.08978    0.02518  -3.566 0.000419 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7919 on 313 degrees of freedom
## Multiple R-squared:  0.03904,    Adjusted R-squared:  0.03597 
## F-statistic: 12.72 on 1 and 313 DF,  p-value: 0.0004189
m8 <- lm(demNorms ~ ideology_cont * age, data = d)
summary(m8)
## 
## Call:
## lm(formula = demNorms ~ ideology_cont * age, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.80792 -0.54351 -0.01395  0.52872  1.95383 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        0.484733   0.145475   3.332 0.000966 ***
## ideology_cont     -0.243870   0.083225  -2.930 0.003638 ** 
## age                0.017545   0.003611   4.858 1.88e-06 ***
## ideology_cont:age  0.003272   0.002001   1.635 0.103096    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7623 on 311 degrees of freedom
## Multiple R-squared:  0.1154, Adjusted R-squared:  0.1069 
## F-statistic: 13.52 on 3 and 311 DF,  p-value: 2.567e-08
m9 <- lm(demNorms ~ ideology_cont * MC_protests, data = d)
summary(m9)
## 
## Call:
## lm(formula = demNorms ~ ideology_cont * MC_protests, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.12325 -0.57498 -0.03528  0.53543  2.02027 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                0.75325    0.12556   5.999 5.51e-09 ***
## ideology_cont             -0.03263    0.07420  -0.440 0.660400    
## MC_protests                0.12462    0.03494   3.566 0.000419 ***
## ideology_cont:MC_protests -0.01102    0.01867  -0.590 0.555316    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7785 on 311 degrees of freedom
## Multiple R-squared:  0.07731,    Adjusted R-squared:  0.06841 
## F-statistic: 8.686 on 3 and 311 DF,  p-value: 1.498e-05

Support for Protestors

# Agree with Protestors

## ideology
ggplot(d,
       aes(x = ideology_cont,
           y = protestAgree)) +
  geom_smooth(method = "lm") +
  theme_classic() +
  coord_cartesian(ylim = c(-3,3)) +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  scale_y_continuous(breaks = seq(-3,3,1)) +
  xlab("Political Ideology") +
  ylab("Agree with protestors' methods")

describe(d$protestAgree)
##    vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
## X1    1 315 0.14 2.03      0    0.17 2.97  -3   3     6 -0.18    -1.21 0.11
m.pa <- lm(protestAgree ~ ideology_cont, data = d)
summary(m.pa)
## 
## Call:
## lm(formula = protestAgree ~ ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1655 -1.1364  0.1214  1.0632  4.8074 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.02207    0.09241   0.239    0.811    
## ideology_cont -0.68606    0.05190 -13.219   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.633 on 313 degrees of freedom
## Multiple R-squared:  0.3583, Adjusted R-squared:  0.3562 
## F-statistic: 174.7 on 1 and 313 DF,  p-value: < 2.2e-16
m.pa1 <- lm(protestAgree ~ ideology_cont, data = d)
summary(m.pa1)
## 
## Call:
## lm(formula = protestAgree ~ ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1655 -1.1364  0.1214  1.0632  4.8074 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.02207    0.09241   0.239    0.811    
## ideology_cont -0.68606    0.05190 -13.219   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.633 on 313 degrees of freedom
## Multiple R-squared:  0.3583, Adjusted R-squared:  0.3562 
## F-statistic: 174.7 on 1 and 313 DF,  p-value: < 2.2e-16
cor.test(d$protestAgree, d$protestLegit)
## 
##  Pearson's product-moment correlation
## 
## data:  d$protestAgree and d$protestLegit
## t = 22.297, df = 313, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.7366229 0.8226554
## sample estimates:
##      cor 
## 0.783363
m10 <- lm(protestLegit ~ ideology_cont, data = d)
summary(m10)
## 
## Call:
## lm(formula = protestLegit ~ ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.0659 -1.2481  0.2296  1.0474  4.2215 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.65701    0.09478   6.932 2.37e-11 ***
## ideology_cont -0.70446    0.05323 -13.235  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.674 on 313 degrees of freedom
## Multiple R-squared:  0.3588, Adjusted R-squared:  0.3568 
## F-statistic: 175.2 on 1 and 313 DF,  p-value: < 2.2e-16
m9.2 <- lm(protestAgree ~ ideology_cont * MC_protests, data = d)
summary(m9.2)
## 
## Call:
## lm(formula = protestAgree ~ ideology_cont * MC_protests, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2853 -1.1383  0.2193  1.1021  4.7113 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               -0.84893    0.25635  -3.312 0.001037 ** 
## ideology_cont             -0.25470    0.15149  -1.681 0.093722 .  
## MC_protests                0.24894    0.07134   3.489 0.000554 ***
## ideology_cont:MC_protests -0.10709    0.03811  -2.810 0.005266 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.589 on 311 degrees of freedom
## Multiple R-squared:  0.3955, Adjusted R-squared:  0.3897 
## F-statistic: 67.84 on 3 and 311 DF,  p-value: < 2.2e-16
m10.2 <- lm(protestLegit ~ ideology_cont * MC_protests, data = d)
summary(m10.2)
## 
## Call:
## lm(formula = protestLegit ~ ideology_cont * MC_protests, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.1438 -1.2001  0.2199  1.0533  4.2353 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                0.10798    0.26721   0.404   0.6864  
## ideology_cont             -0.36251    0.15791  -2.296   0.0224 *
## MC_protests                0.15498    0.07436   2.084   0.0380 *
## ideology_cont:MC_protests -0.08636    0.03972  -2.174   0.0305 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.657 on 311 degrees of freedom
## Multiple R-squared:  0.3762, Adjusted R-squared:  0.3702 
## F-statistic: 62.51 on 3 and 311 DF,  p-value: < 2.2e-16
m11 <- lm(protestAgree ~ ideology_cont * MC_protests * protestLegit, data = d)
summary(m11)
## 
## Call:
## lm(formula = protestAgree ~ ideology_cont * MC_protests * protestLegit, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7712 -0.5943  0.0682  0.6100  4.8861 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            -0.70856    0.23131  -3.063  0.00238 ** 
## ideology_cont                          -0.34564    0.13989  -2.471  0.01403 *  
## MC_protests                             0.09860    0.07084   1.392  0.16497    
## protestLegit                            0.12206    0.12830   0.951  0.34216    
## ideology_cont:MC_protests               0.04011    0.03949   1.016  0.31049    
## ideology_cont:protestLegit              0.06674    0.05968   1.118  0.26431    
## MC_protests:protestLegit                0.13959    0.03451   4.045 6.63e-05 ***
## ideology_cont:MC_protests:protestLegit -0.01256    0.01523  -0.825  0.40993    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.181 on 307 degrees of freedom
## Multiple R-squared:  0.6705, Adjusted R-squared:  0.663 
## F-statistic: 89.26 on 7 and 307 DF,  p-value: < 2.2e-16
m12 <- lm(protestLegit ~ ideology_cont * MC_protests * protestAgree, data = d)
summary(m12)
## 
## Call:
## lm(formula = protestLegit ~ ideology_cont * MC_protests * protestAgree, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.9269 -0.6620 -0.0507  0.6586  4.8649 
## 
## Coefficients:
##                                         Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                             0.487458   0.240592   2.026  0.04362 * 
## ideology_cont                          -0.268284   0.154236  -1.739  0.08296 . 
## MC_protests                             0.079420   0.071680   1.108  0.26874   
## protestAgree                            0.385549   0.143674   2.684  0.00768 **
## ideology_cont:MC_protests               0.005132   0.041713   0.123  0.90217   
## ideology_cont:protestAgree              0.057086   0.067819   0.842  0.40059   
## MC_protests:protestAgree                0.075173   0.037619   1.998  0.04657 * 
## ideology_cont:MC_protests:protestAgree  0.003747   0.016758   0.224  0.82324   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.236 on 307 degrees of freedom
## Multiple R-squared:  0.6571, Adjusted R-squared:  0.6493 
## F-statistic: 84.04 on 7 and 307 DF,  p-value: < 2.2e-16
d$protestAtt <- rowMeans(d[,c("protestAgree","protestLegit")], na.rm = T)

m13 <- lm(protestAtt ~ ideology_cont * MC_protests * age, data = d)
summary(m13)
## 
## Call:
## lm(formula = protestAtt ~ ideology_cont * MC_protests * age, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7975 -0.8456  0.0797  0.9291  4.0644 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                   -1.279717   0.833803  -1.535  0.12586   
## ideology_cont                 -0.403773   0.502824  -0.803  0.42259   
## MC_protests                    0.699605   0.235262   2.974  0.00318 **
## age                            0.021440   0.021320   1.006  0.31538   
## ideology_cont:MC_protests     -0.003962   0.125654  -0.032  0.97487   
## ideology_cont:age              0.001025   0.012714   0.081  0.93583   
## MC_protests:age               -0.011937   0.005859  -2.037  0.04247 * 
## ideology_cont:MC_protests:age -0.001679   0.003114  -0.539  0.59018   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.455 on 307 degrees of freedom
## Multiple R-squared:  0.4536, Adjusted R-squared:  0.4412 
## F-statistic: 36.41 on 7 and 307 DF,  p-value: < 2.2e-16

Social Media

table(d$socMed_time)
## 
##  1  2  3  4  5  6  7  8 
## 56 84 70 46 26 11 16  6
table(d$socMed_activity)
## 
##         1       1,2     1,2,3   1,2,3,4 1,2,3,4,5   1,2,3,5     1,2,4   1,2,4,5 
##         9         7         9         1         5         3         1         1 
##     1,2,5       1,3   1,3,4,5       1,5         2       2,3       2,4     2,4,5 
##         5         2         1         4        12         6         1         1 
##       2,5         3       3,4         4       4,5         5         6 
##         3         7         1         4         1         5       220
hist(d$socMed_waractivity_1)

m14 <- lm(socMed_waractivity_1 ~ ideology_cont * MC_protests, data = d)
summary(m14)
## 
## Call:
## lm(formula = socMed_waractivity_1 ~ ideology_cont * MC_protests, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -53.999 -24.195  -7.283  29.218  67.128 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                  5.156     10.426   0.495  0.62222   
## ideology_cont                3.864      5.294   0.730  0.46754   
## MC_protests                  7.774      2.780   2.796  0.00639 **
## ideology_cont:MC_protests   -1.438      1.294  -1.111  0.26960   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 31.6 on 85 degrees of freedom
##   (226 observations deleted due to missingness)
## Multiple R-squared:  0.145,  Adjusted R-squared:  0.1149 
## F-statistic: 4.807 on 3 and 85 DF,  p-value: 0.003853

US war role

m15 <- lm(USrole ~ ideology_cont, data = d)
summary(m15)
## 
## Call:
## lm(formula = USrole ~ ideology_cont, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.35922 -0.85028  0.09317  0.83870  2.60210 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    2.85028    0.06869  41.493  < 2e-16 ***
## ideology_cont -0.16964    0.03858  -4.397  1.5e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.214 on 313 degrees of freedom
## Multiple R-squared:  0.05818,    Adjusted R-squared:  0.05517 
## F-statistic: 19.34 on 1 and 313 DF,  p-value: 1.504e-05
m16 <- lm(USrole ~ ideology_cont * age, data = d)
summary(m16)
## 
## Call:
## lm(formula = USrole ~ ideology_cont * age, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.34829 -0.87886  0.03162  0.88418  2.77812 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        2.382770   0.230599  10.333   <2e-16 ***
## ideology_cont     -0.252362   0.131923  -1.913   0.0567 .  
## age                0.011954   0.005724   2.088   0.0376 *  
## ideology_cont:age  0.001670   0.003173   0.526   0.5991    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.208 on 311 degrees of freedom
## Multiple R-squared:  0.07225,    Adjusted R-squared:  0.06331 
## F-statistic: 8.074 on 3 and 311 DF,  p-value: 3.395e-05
ggplot(d,
       aes(x = ideology_cont,
           y = USrole)) +
  geom_smooth(method = "lm") +
  theme_classic() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  coord_cartesian(ylim = c(1,5)) +
  ylab("US's Role in War") +
  xlab("Ideology 
(Strong Liberal to Strong Conservative)")

interact_plot(m16, pred = ideology_cont, modx = age, plot.points = F) +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  theme_classic() +
  coord_cartesian(ylim = c(2,5)) +
  ylab("US's Role in War") +
  xlab("Ideology
Strong Liberal to Strong Conservative")

War perceptions

mean(d$acceptable_hamas, na.rm = T)
## [1] -2.184127
mean(d$acceptable_israel, na.rm = T)
## [1] -1.038095
ggplot(d, aes(x = acceptable_israel)) +
  geom_histogram(color="black", fill="white") +
  theme_classic() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  facet_wrap(~party_factor)

m18 <- lm(acceptable_israel ~ (Dem_Rep + Ind_Party) * age, data = d)
summary(m18)
## 
## Call:
## lm(formula = acceptable_israel ~ (Dem_Rep + Ind_Party) * age, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8540 -1.1134 -0.3267  1.5875  5.2015 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -1.87332    0.42885  -4.368 1.71e-05 ***
## Dem_Rep        0.89650    0.74613   1.202   0.2305    
## Ind_Party     -0.98025    1.11251  -0.881   0.3789    
## age            0.02397    0.01081   2.217   0.0273 *  
## Dem_Rep:age    0.02540    0.01825   1.392   0.1649    
## Ind_Party:age  0.02713    0.02832   0.958   0.3389    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.817 on 309 degrees of freedom
## Multiple R-squared:  0.2466, Adjusted R-squared:  0.2344 
## F-statistic: 20.22 on 5 and 309 DF,  p-value: < 2.2e-16
m18.0 <- lm(acceptable_israel ~ (Dem_Rep + Ind_Party), data = d)
summary(m18.0)
## 
## Call:
## lm(formula = acceptable_israel ~ (Dem_Rep + Ind_Party), data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.1345 -1.0870 -0.1345  1.8655  4.9130 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.9262     0.1281  -7.231 3.71e-12 ***
## Dem_Rep       2.0475     0.2235   9.160  < 2e-16 ***
## Ind_Party     0.1107     0.3319   0.334    0.739    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.849 on 312 degrees of freedom
## Multiple R-squared:  0.212,  Adjusted R-squared:  0.2069 
## F-statistic: 41.96 on 2 and 312 DF,  p-value: < 2.2e-16
m18.d <- lm(acceptable_israel ~ (Dem_R + Dem_I) * age, data = d)
summary(m18.d)
## 
## Call:
## lm(formula = acceptable_israel ~ (Dem_R + Dem_I) * age, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8540 -1.1134 -0.3267  1.5875  5.2015 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.64832    0.46481  -5.698 2.83e-08 ***
## Dem_R        0.89650    0.74613   1.202   0.2305    
## Dem_I        1.42850    1.14653   1.246   0.2137    
## age          0.02031    0.01222   1.663   0.0974 .  
## Dem_R:age    0.02540    0.01825   1.392   0.1649    
## Dem_I:age   -0.01443    0.02947  -0.490   0.6247    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.817 on 309 degrees of freedom
## Multiple R-squared:  0.2466, Adjusted R-squared:  0.2344 
## F-statistic: 20.22 on 5 and 309 DF,  p-value: < 2.2e-16
m18.r <- lm(acceptable_israel ~ (Rep_D + Rep_I) * age, data = d)
summary(m18.r)
## 
## Call:
## lm(formula = acceptable_israel ~ (Rep_D + Rep_I) * age, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8540 -1.1134 -0.3267  1.5875  5.2015 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.75182    0.58367  -3.001 0.002906 ** 
## Rep_D       -0.89650    0.74613  -1.202 0.230468    
## Rep_I        0.53200    1.19965   0.443 0.657742    
## age          0.04572    0.01356   3.372 0.000841 ***
## Rep_D:age   -0.02540    0.01825  -1.392 0.164914    
## Rep_I:age   -0.03983    0.03005  -1.326 0.185911    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.817 on 309 degrees of freedom
## Multiple R-squared:  0.2466, Adjusted R-squared:  0.2344 
## F-statistic: 20.22 on 5 and 309 DF,  p-value: < 2.2e-16
m18.2 <- lm(acceptable_israel ~ (Dem_Rep + Ind_Party) * age * ideology_cont, data = d)
summary(m18.2)
## 
## Call:
## lm(formula = acceptable_israel ~ (Dem_Rep + Ind_Party) * age * 
##     ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.9449 -1.0319 -0.2799  1.0785  5.3940 
## 
## Coefficients:
##                              Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                 -1.883289   0.571141  -3.297  0.00109 **
## Dem_Rep                      0.061564   1.325882   0.046  0.96300   
## Ind_Party                   -1.078094   1.271749  -0.848  0.39726   
## age                          0.018995   0.014616   1.300  0.19471   
## ideology_cont                1.084672   0.615523   1.762  0.07904 . 
## Dem_Rep:age                 -0.006409   0.032816  -0.195  0.84529   
## Ind_Party:age                0.013636   0.033390   0.408  0.68328   
## Dem_Rep:ideology_cont        0.418056   0.736581   0.568  0.57075   
## Ind_Party:ideology_cont     -1.839961   1.732888  -1.062  0.28918   
## age:ideology_cont           -0.008183   0.013463  -0.608  0.54376   
## Dem_Rep:age:ideology_cont    0.002339   0.017573   0.133  0.89420   
## Ind_Party:age:ideology_cont  0.040622   0.037412   1.086  0.27843   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.698 on 303 degrees of freedom
## Multiple R-squared:  0.3545, Adjusted R-squared:  0.3311 
## F-statistic: 15.13 on 11 and 303 DF,  p-value: < 2.2e-16
ggplot(d,
       aes(x = age,
           y = acceptable_israel,
           fill = party_factor)) +
  geom_smooth(method = "loess") +
  theme_classic() +
  ylab("Israel Acceptability") +
  xlab("Age") 

ggplot(d,
       aes(x = age,
           y = acceptable_israel)) +
  geom_smooth(method = "lm") +
  theme_classic() +
  facet_wrap(~party_factor) +
  ylab("Israel Acceptability") +
  xlab("Age") 

ggplot(d,
       aes(x = party_factor,
           y = acceptable_israel)) +
  geom_bar(stat = "summary",
           fun = "mean") +
  theme_classic()

m19 <- lm(acceptable_israel ~ age * ideology_cont, data = d)
summary(m19)
## 
## Call:
## lm(formula = acceptable_israel ~ age * ideology_cont, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.4804 -1.1356 -0.1863  1.1045  5.4037 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -1.909819   0.324728  -5.881 1.05e-08 ***
## age                0.024918   0.008061   3.091  0.00217 ** 
## ideology_cont      0.401207   0.185774   2.160  0.03156 *  
## age:ideology_cont  0.005446   0.004468   1.219  0.22374    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.702 on 311 degrees of freedom
## Multiple R-squared:  0.3348, Adjusted R-squared:  0.3284 
## F-statistic: 52.17 on 3 and 311 DF,  p-value: < 2.2e-16
interact_plot(m19, pred = ideology_cont, modx = age, plot.points = F) +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  theme_classic() +
  ylab("Israel Acceptability") +
  xlab("Ideology
Strong Liberal to Strong Conservative")

ggplot(d,
       aes(x = age,
           y = acceptable_hamas,
           fill = party_factor)) +
  geom_smooth(method = "loess") +
  theme_classic() +
  ylab("Hamas Acceptability") +
  xlab("Age") 

m20 <- lm(acceptable_hamas ~ age, data = d)
summary(m20)
## 
## Call:
## lm(formula = acceptable_hamas ~ age, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.2670 -0.8919 -0.5636  0.2957  5.4833 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.287450   0.237601  -5.419  1.2e-07 ***
## age         -0.023448   0.005922  -3.960  9.3e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.276 on 313 degrees of freedom
## Multiple R-squared:  0.0477, Adjusted R-squared:  0.04466 
## F-statistic: 15.68 on 1 and 313 DF,  p-value: 9.3e-05
m20.1 <- lm(acceptable_hamas ~ age * (Dem_Rep + Ind_Party), data = d)
summary(m20.1)
## 
## Call:
## lm(formula = acceptable_hamas ~ age * (Dem_Rep + Ind_Party), 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3574 -0.8834 -0.4980  0.3951  4.9235 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -1.390077   0.300587  -4.625 5.53e-06 ***
## age           -0.018492   0.007578  -2.440   0.0152 *  
## Dem_Rep       -0.123454   0.522977  -0.236   0.8135    
## Ind_Party      0.106848   0.779772   0.137   0.8911    
## age:Dem_Rep   -0.001845   0.012791  -0.144   0.8854    
## age:Ind_Party -0.014144   0.019853  -0.712   0.4767    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.273 on 309 degrees of freedom
## Multiple R-squared:  0.06407,    Adjusted R-squared:  0.04893 
## F-statistic: 4.231 on 5 and 309 DF,  p-value: 0.0009807