knitr::opts_chunk$set(message = FALSE, warning = FALSE)

PREP

Data & Libraries

library(psych)
library(tidyverse)
library(lme4)
library(lmerTest)
library(sjPlot)
library(GGally)
library(lmtest)
library(sandwich)
library(patchwork)
library(knitr)

d <- read.csv("election-study-allwaves_numeric.csv", na.strings = c("-98","-99","98","99","", NA))

Wave Timing

Wave 1: October 30, 2024 - November 6, 2024

Wave 2: November 6, 2024 - November 7, 2024

Wave 3: December 8, 2024 - December 10, 2024

Wave 4: July 15, 2025 - August 8, 2025

By-Wave N and Political Composition

kable(table(d$wave.plot), col.names = c("Wave","N"))
Wave N
Wave 1 1686
Wave 2 1231
Wave 3 1208
Wave 4 1018
kable(table(d$presVote, d$wave.plot))
Wave 1 Wave 2 Wave 3 Wave 4
Harris 717 532 518 422
Trump 780 586 583 472
Other 163 100 95 105
kable(table(d$party_factor, d$wave.plot))
Wave 1 Wave 2 Wave 3 Wave 4
Democrat 684 459 462 403
Independent 168 188 170 149
Republican 742 529 514 443

Variable Details

PO: policy opinions
1 - EV subsidies
2 - Require utilities draw more from clean energy
3 - Beef tax
4 - Clean energy subsidies to businesses
5 - Locate & deport illegal immigrants
6 - Use E-Verify system (anti-illegal immigrant policy)
7 - Make asylum laws more generous
8 - Establish sanctuary cities

PA: personal actions
1 - Buy EV
2 - Install solar panels
3 - Eat less beef
4 - Invest in clean energy stocks
5 - Move to a "lower illegal immigrant" city
6 - Boycott businesses that employ illegal immigrants
7 - Volunteer for migrant housing org
8 - Avoid buying from businesses with financial ties to federal immigration enforcement agencies

CD: Charitable donations
1 - Nature Conservancy
2 - Sierra Club
3 - ACC (conservative pro-environment org)
4 - Red Cross
5 - United We Dream (pro-immigrant org)
6 - Global Refuge (religious pro-immigrant org)
7 - Border Patrol Foundation

Importance variables
- ImmigrationImport: How important is immigration to you as an issue?
- BorderImport: How important is border security to you as an issue?
- EnvironmentImport: How important is protecting the environment to you as an issue?
- ClimateImport: How important is climate change to you as an issue?

Change variables
- IllegalImmigrationChange: Should the United States government be doing more, less, or about the same amount to reduce the number of migrants entering the country illegally?
- MigrantsChange: Should the United States government be doing more, less, or about the same amount to help undocumented immigrants thrive and gain pathways to citizenship?
- EnvironmentChange: Should the United States government be doing more, less, or about the same amount to protect the environment?
- ClimateChange: Should the United States government be doing more, less, or about the same amount to address climate change?

Process Varibles
- Filibuster: In the U.S. Senate, the filibuster can prevent bills from passing unless they can get 60 votes out of 100. This means that some bills cannot pass, despite being supported by a majority of Senators (51 or more). Do you oppose or support the filibuster?
- DividedGovt: Divided government means that the President comes from one party, while the other party controls either the House, the Senate, or both. Divided government tends to make it harder to pass policies. Is divided government a good thing or a bad thing, in your opinion?
- PoliticalEase: How easy do you think it is for the President of the United States to pass his or her agenda?
- StaffReview: Sometimes Presidential and/or Congressional policies are slowed down by budget analyses and regulatory reviews that administrative staff members conduct. 
Is it a good thing or a bad thing that administrative reviews can slow down policy implementation, in your opinion?

Election Variables
- PresSatisfied: If you belong to a political party, how satisfied or unsatisfied are you with your party’s choice of nominee for President of the United States in the 2024 election?

Variable construction

## Creating factor measure of party with leaners combined
d$party_factor <- NA
d$party_factor[d$party == 2 | d$partyClose == 1] <- "Democrat"
d$party_factor[d$party == 1 | d$partyClose == 2] <- "Republican"
d$party_factor[d$partyClose == 3] <- "Independent"


## Ideology
d$ideo_factor <- NA
d$ideo_factor[d$Ideology == 2 | d$Ideology == 1] <- "Liberal"
d$ideo_factor[d$Ideology == -2 | d$Ideology == -1] <- "Conservative"
d$ideo_factor[d$Ideology == 0] <- "Moderate"

d$ideo_factor <- factor(d$ideo_factor, levels = c("Liberal", "Moderate", "Conservative"))

d$presVote <- recode_factor(d$PresPreference, 
                            `1` = "Harris",
                            `2` = "Trump",
                            `3` = "Other")

For immigration attitudes, we should:

  • Combine:
    • PO_5 & PO_6 (deportation policies)
    • PO_7 and PO_8 (asylum policies)
    • PA_5 and PA_6 (anti-immigration actions)
    • Importance measures (border & immigration importance)
  • assess PA_7 (volunteer for migrant housing org) and PA_8 (avoid ICE-supporting businesses) separately
  • assess change variables separately
d$PO_illegalimm <- rowMeans(d[,c("PO_5", "PO_6")], na.rm = T)
d$PO_asylum <- rowMeans(d[,c("PO_7", "PO_8")], na.rm = T)
d$PA_illegalimm <- rowMeans(d[,c("PA_5", "PA_6")], na.rm = T)
d$immImport <- rowMeans(d[,c("ImmigrationImport", "BorderImport")], na.rm = T)

For environmental attitudes, we should:

  • Combine:
    • PO_1, PO_2 & PO_4 (environmental policies)
    • PO_3 and PA_3 (beef attitudes)
    • PA_1, PA_2 and PA_4 (pro-enviro actions)
    • Government views (environmental change & environmental importance)
d$ClimateChange.z <- scale(d$ClimateChange)
d$EnvironmentChange.z <- scale(d$EnvironmentChange)
d$ClimateImport.z <- scale(d$ClimateImport)
d$EnvironmentImport.z <- scale(d$EnvironmentImport)

d$govt_enviro <- rowMeans(d[,c("ClimateChange.z", "EnvironmentChange.z", "ClimateImport.z", "EnvironmentImport.z")], na.rm = T)

psych::alpha(d[,c("ClimateChange.z", "EnvironmentChange.z", "ClimateImport.z", "EnvironmentImport.z")])
## 
## Reliability analysis   
## Call: psych::alpha(x = d[, c("ClimateChange.z", "EnvironmentChange.z", 
##     "ClimateImport.z", "EnvironmentImport.z")])
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase    mean   sd median_r
##       0.89      0.89    0.88      0.66 7.8 0.0027 0.00014 0.86     0.66
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.88  0.89  0.89
## Duhachek  0.88  0.89  0.89
## 
##  Reliability if an item is dropped:
##                     raw_alpha std.alpha G6(smc) average_r S/N alpha se  var.r
## ClimateChange.z          0.84      0.84    0.78      0.63 5.2   0.0039 0.0026
## EnvironmentChange.z      0.85      0.85    0.81      0.65 5.6   0.0037 0.0111
## ClimateImport.z          0.84      0.84    0.80      0.63 5.2   0.0040 0.0187
## EnvironmentImport.z      0.89      0.89    0.85      0.72 7.8   0.0028 0.0057
##                     med.r
## ClimateChange.z      0.64
## EnvironmentChange.z  0.68
## ClimateImport.z      0.58
## EnvironmentImport.z  0.73
## 
##  Item statistics 
##                        n raw.r std.r r.cor r.drop     mean sd
## ClimateChange.z     5133  0.88  0.88  0.86   0.79  2.2e-16  1
## EnvironmentChange.z 5133  0.87  0.87  0.83   0.77  5.7e-16  1
## ClimateImport.z     5134  0.89  0.89  0.84   0.79 -2.5e-17  1
## EnvironmentImport.z 5131  0.81  0.81  0.71   0.66  2.3e-16  1
d$PO_enviro <-  rowMeans(d[,c("PO_1", "PO_2", "PO_4")], na.rm = T)

psych::alpha(d[,c("PO_1", "PO_2", "PO_4")])
## 
## Reliability analysis   
## Call: psych::alpha(x = d[, c("PO_1", "PO_2", "PO_4")])
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase mean  sd median_r
##       0.79      0.79    0.72      0.56 3.8 0.0051 0.39 1.5     0.57
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.78  0.79   0.8
## Duhachek  0.78  0.79   0.8
## 
##  Reliability if an item is dropped:
##      raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## PO_1      0.75      0.75    0.60      0.60 3.0   0.0071    NA  0.60
## PO_2      0.72      0.72    0.57      0.57 2.6   0.0077    NA  0.57
## PO_4      0.68      0.68    0.51      0.51 2.1   0.0090    NA  0.51
## 
##  Item statistics 
##         n raw.r std.r r.cor r.drop  mean  sd
## PO_1 5139  0.83  0.82  0.68   0.60 0.025 1.8
## PO_2 5136  0.84  0.84  0.71   0.62 0.413 1.8
## PO_4 5135  0.85  0.86  0.75   0.67 0.731 1.7
## 
## Non missing response frequency for each item
##        -3   -2   -1    0    1    2    3 miss
## PO_1 0.15 0.09 0.08 0.29 0.16 0.13 0.11    0
## PO_2 0.10 0.06 0.07 0.29 0.19 0.16 0.13    0
## PO_4 0.07 0.04 0.06 0.26 0.21 0.20 0.16    0
d$PA_enviro <-  rowMeans(d[,c("PA_1", "PA_2", "PA_4")], na.rm = T)

psych::alpha(d[,c("PA_1", "PA_2", "PA_4")])
## 
## Reliability analysis   
## Call: psych::alpha(x = d[, c("PA_1", "PA_2", "PA_4")])
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase  mean  sd median_r
##       0.75      0.75    0.67       0.5 3.1 0.0061 -0.14 1.7     0.51
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.74  0.75  0.76
## Duhachek  0.74  0.75  0.76
## 
##  Reliability if an item is dropped:
##      raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## PA_1      0.68      0.68    0.52      0.52 2.2   0.0089    NA  0.52
## PA_2      0.65      0.65    0.49      0.49 1.9   0.0098    NA  0.49
## PA_4      0.67      0.67    0.51      0.51 2.1   0.0092    NA  0.51
## 
##  Item statistics 
##         n raw.r std.r r.cor r.drop  mean  sd
## PA_1 4753  0.83  0.81  0.66   0.56 -0.56 2.1
## PA_2 4605  0.84  0.83  0.69   0.59 -0.19 2.1
## PA_4 4712  0.81  0.82  0.67   0.57  0.21 1.9
## 
## Non missing response frequency for each item
##        -3   -2   -1    0    1    2    3 miss
## PA_1 0.33 0.09 0.08 0.17 0.11 0.12 0.11 0.08
## PA_2 0.25 0.08 0.08 0.18 0.14 0.14 0.13 0.10
## PA_4 0.16 0.06 0.07 0.25 0.15 0.17 0.13 0.08
d$Beef_att <- rowMeans(d[, c("PO_3","PA_3")], na.rm = T) 

Analysis prep

d$pDem_Rep <- NA
d$pDem_Rep[d$party_factor == "Democrat"] <- -1/2
d$pDem_Rep[d$party_factor == "Independent"] <- 0
d$pDem_Rep[d$party_factor == "Republican"] <- 1/2

d$pInd_Party <- NA
d$pInd_Party[d$party_factor == "Democrat"] <- 1/3
d$pInd_Party[d$party_factor == "Independent"] <- -2/3
d$pInd_Party[d$party_factor == "Republican"] <- 1/3

# Wave
## contrast
d$lin.wave <- NA
d$lin.wave[d$wave == 1] <- -1/2
d$lin.wave[d$wave == 2] <- -1/4
d$lin.wave[d$wave == 3] <- 1/4
d$lin.wave[d$wave == 4] <- 1/2
  
d$quad.wave <- NA
d$quad.wave[d$wave == 1] <- 1/4
d$quad.wave[d$wave == 2] <- -1/4
d$quad.wave[d$wave == 3] <- -1/4
d$quad.wave[d$wave == 4] <- 1/4

d$cub.wave <- NA
d$cub.wave[d$wave == 1] <- -1/4
d$cub.wave[d$wave == 2] <- 1/2
d$cub.wave[d$wave == 3] <- -1/2
d$cub.wave[d$wave == 4] <- 1/4

## wave 4
d$wave4_1 <- NA
d$wave4_1[d$wave == 1] <- 1
d$wave4_1[d$wave == 2] <- 0
d$wave4_1[d$wave == 3] <- 0
d$wave4_1[d$wave == 4] <- 0
  
d$wave4_2 <- NA
d$wave4_2[d$wave == 1] <- 0
d$wave4_2[d$wave == 2] <- 1
d$wave4_2[d$wave == 3] <- 0
d$wave4_2[d$wave == 4] <- 0

d$wave4_3 <- NA
d$wave4_3[d$wave == 1] <- 0
d$wave4_3[d$wave == 2] <- 0
d$wave4_3[d$wave == 3] <- 1
d$wave4_3[d$wave == 4] <- 0

# spec. contrasts
d$wave.helm.123_4 <- NA
d$wave.helm.123_4[d$wave == 1] <- -1/4
d$wave.helm.123_4[d$wave == 2] <- -1/4
d$wave.helm.123_4[d$wave == 3] <- -1/4
d$wave.helm.123_4[d$wave == 4] <- 3/4

d$wave.helm.12_3 <- NA
d$wave.helm.12_3[d$wave == 1] <- -1/3
d$wave.helm.12_3[d$wave == 2] <- -1/3
d$wave.helm.12_3[d$wave == 3] <- 2/3
d$wave.helm.12_3[d$wave == 4] <- 0

d$wave.helm.1_2 <- NA
d$wave.helm.1_2[d$wave == 1] <- -1/2
d$wave.helm.1_2[d$wave == 2] <- 1/2
d$wave.helm.1_2[d$wave == 3] <- 0
d$wave.helm.1_2[d$wave == 4] <- 0


d$wave.helm2.3_4 <- NA
d$wave.helm2.3_4[d$wave == 1] <- -1/4
d$wave.helm2.3_4[d$wave == 2] <- -1/4
d$wave.helm2.3_4[d$wave == 3] <- -1/4
d$wave.helm2.3_4[d$wave == 4] <- 3/4

d$wave.helm2.2_34 <- NA
d$wave.helm2.2_34[d$wave == 1] <- -1/3
d$wave.helm2.2_34[d$wave == 2] <- -1/3
d$wave.helm2.2_34[d$wave == 3] <- 2/3
d$wave.helm2.2_34[d$wave == 4] <- 0

d$wave.helm2.1_234 <- NA
d$wave.helm2.1_234[d$wave == 1] <- -1/2
d$wave.helm2.1_234[d$wave == 2] <- 1/2
d$wave.helm2.1_234[d$wave == 3] <- 0
d$wave.helm2.1_234[d$wave == 4] <- 0

d$wave.helm2.3_4 <- NA
d$wave.helm2.3_4[d$wave == 1] <- 0
d$wave.helm2.3_4[d$wave == 2] <- 0
d$wave.helm2.3_4[d$wave == 3] <- -1/2
d$wave.helm2.3_4[d$wave == 4] <- 1/2

d$wave.helm2.2_34 <- NA
d$wave.helm2.2_34[d$wave == 1] <- 0
d$wave.helm2.2_34[d$wave == 2] <- -2/3
d$wave.helm2.2_34[d$wave == 3] <- 1/3
d$wave.helm2.2_34[d$wave == 4] <- 1/3

d$wave.helm2.1_234 <- NA
d$wave.helm2.1_234[d$wave == 1] <- -3/4
d$wave.helm2.1_234[d$wave == 2] <- 1/4
d$wave.helm2.1_234[d$wave == 3] <- 1/4
d$wave.helm2.1_234[d$wave == 4] <- 1/4

# presvote

## contrast codes
d$pHar_Tru <- NA
d$pHar_Tru[d$presVote == "Harris"] <- -1/2
d$pHar_Tru[d$presVote == "Other"] <- 0
d$pHar_Tru[d$presVote == "Trump"] <- 1/2

d$pOth_Party <- NA
d$pOth_Party[d$presVote == "Harris"] <- 1/3
d$pOth_Party[d$presVote == "Other"] <- -2/3
d$pOth_Party[d$presVote == "Trump"] <- 1/3

## dummy codes
d$pHar_Tru.d <- NA
d$pHar_Tru.d[d$presVote == "Harris"] <- 0
d$pHar_Tru.d[d$presVote == "Other"] <- 0
d$pHar_Tru.d[d$presVote == "Trump"] <- 1

d$pHar_Oth.d <- NA
d$pHar_Oth.d[d$presVote == "Harris"] <- 0
d$pHar_Oth.d[d$presVote == "Other"] <- 1
d$pHar_Oth.d[d$presVote == "Trump"] <- 0


d$pTru_Har.d <- NA
d$pTru_Har.d[d$presVote == "Harris"] <- 1
d$pTru_Har.d[d$presVote == "Other"] <- 0
d$pTru_Har.d[d$presVote == "Trump"] <- 0

d$pTru_Oth.d <- NA
d$pTru_Oth.d[d$presVote == "Harris"] <- 0
d$pTru_Oth.d[d$presVote == "Other"] <- 1
d$pTru_Oth.d[d$presVote == "Trump"] <- 0


d$pOth_Tru.d <- NA
d$pOth_Tru.d[d$presVote == "Harris"] <- 0
d$pOth_Tru.d[d$presVote == "Other"] <- 0
d$pOth_Tru.d[d$presVote == "Trump"] <- 1

d$pOth_Har.d <- NA
d$pOth_Har.d[d$presVote == "Harris"] <- 1
d$pOth_Har.d[d$presVote == "Other"] <- 0
d$pOth_Har.d[d$presVote == "Trump"] <- 0
d$wave.plot <- recode_factor(d$wave, `1` = "Wave 1",
                             `2` = "Wave 2",
                             `3` = "Wave 3",
                             `4` = "Wave 4")


d$PolEase_bins <- NA
d$PolEase_bins[d$PoliticalEase < (mean(d$PoliticalEase,na.rm = T) - sd(d$PoliticalEase, na.rm = T))] <- "Low Ease"
d$PolEase_bins[d$PoliticalEase >= (mean(d$PoliticalEase,na.rm = T) - sd(d$PoliticalEase, na.rm = T)) & d$PoliticalEase <= (mean(d$PoliticalEase,na.rm = T) + sd(d$PoliticalEase, na.rm = T))] <- "Average Ease"
d$PolEase_bins[d$PoliticalEase > (mean(d$PoliticalEase,na.rm = T) + sd(d$PoliticalEase, na.rm = T))] <- "High Ease"

d$PolEase_bins <- factor(d$PolEase_bins, levels = c("Low Ease","Average Ease","High Ease"))




ranked_electimp <- rank(d$ElectionImpCountry, ties.method = "random", na.last = "keep")

d$ElectImp_bins <- cut(
  ranked_electimp, 
  breaks = quantile(ranked_electimp, probs = seq(0, 1, by = 1/3), na.rm = TRUE), 
  include.lowest = TRUE, 
  labels = c("Low Election Imp.", "Med. Election Imp.", "High Election Imp.")
)

ranked_fil <- rank( d$Filibuster, ties.method = "random", na.last = "keep")

d$Fil_bins <- cut(
  ranked_fil, 
  breaks = quantile(ranked_fil, probs = seq(0, 1, by = 1/3), na.rm = TRUE), 
  include.lowest = TRUE, 
  labels = c("Low Filibuster Support", "Med. Filibuster Support", "High Filibuster Support")
)

ANALYSES: GENERAL PATTERNS

Government & Process opinions

Political ease

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PoliticalEase,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1,1)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Political Ease") +
  facet_grid(~wave.plot)

tab_model(lm(PoliticalEase ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Political Ease
Predictors Estimates CI Statistic p
(Intercept) -0.02 -0.08 – 0.04 -0.73 0.468
pHar Tru -0.05 -0.14 – 0.05 -0.94 0.349
pOth Party 0.10 -0.06 – 0.26 1.20 0.232
lin wave 0.59 0.44 – 0.74 7.72 <0.001
quad wave 0.12 -0.12 – 0.36 0.97 0.330
cub wave 0.46 0.30 – 0.61 5.63 <0.001
pHar Tru × lin wave -0.98 -1.23 – -0.74 -7.82 <0.001
pHar Tru × quad wave -0.51 -0.90 – -0.12 -2.58 0.010
pHar Tru × cub wave -0.50 -0.75 – -0.26 -4.01 <0.001
pOth Party × lin wave -0.15 -0.55 – 0.24 -0.76 0.447
pOth Party × quad wave -0.35 -1.00 – 0.30 -1.06 0.287
pOth Party × cub wave -0.16 -0.58 – 0.27 -0.71 0.475
Observations 5068
R2 / R2 adjusted 0.040 / 0.038

Filibuster

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = Filibuster,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1,1)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Support for Filibuster") +
  facet_grid(~wave.plot)

tab_model(lm(Filibuster ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Filibuster
Predictors Estimates CI Statistic p
(Intercept) 0.01 -0.05 – 0.07 0.30 0.762
pHar Tru 0.32 0.22 – 0.42 6.51 <0.001
pOth Party 0.27 0.10 – 0.43 3.23 0.001
lin wave 0.26 0.11 – 0.41 3.47 0.001
quad wave -0.04 -0.28 – 0.20 -0.30 0.761
cub wave 0.26 0.10 – 0.42 3.25 0.001
pHar Tru × lin wave -0.62 -0.87 – -0.38 -4.99 <0.001
pHar Tru × quad wave -0.40 -0.79 – -0.02 -2.04 0.042
pHar Tru × cub wave -0.33 -0.58 – -0.08 -2.63 0.008
pOth Party × lin wave 0.03 -0.36 – 0.42 0.15 0.883
pOth Party × quad wave 0.04 -0.60 – 0.69 0.12 0.901
pOth Party × cub wave -0.10 -0.52 – 0.33 -0.44 0.658
Observations 5070
R2 / R2 adjusted 0.027 / 0.025

Effects

  • More support for filibuster among Trump supporters than Harris supporters
  • Support for filibuster grows over time, collapsing across vote choice
  • Rate of increase in filibuster greater for Harris supporters than Trump supporters, from wave 1 to wave 4

Moderator: Political ease

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = PoliticalEase,
           y = Filibuster,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Political Ease") +
  ylab("Support for Filibuster") +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  facet_grid(~wave.plot)

tab_model(lm(Filibuster ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * PoliticalEase.c, data = d), show.stat = T)
  Filibuster
Predictors Estimates CI Statistic p
(Intercept) 0.01 -0.05 – 0.08 0.48 0.631
pHar Tru 0.29 0.19 – 0.38 5.78 <0.001
pOth Party 0.27 0.11 – 0.43 3.33 0.001
lin wave 0.16 0.01 – 0.32 2.14 0.032
quad wave -0.01 -0.26 – 0.23 -0.11 0.912
cub wave 0.18 0.03 – 0.34 2.31 0.021
PoliticalEase c 0.21 0.17 – 0.25 10.60 <0.001
pHar Tru × lin wave -0.44 -0.69 – -0.20 -3.50 <0.001
pHar Tru × quad wave -0.47 -0.86 – -0.09 -2.41 0.016
pHar Tru × cub wave -0.24 -0.48 – 0.00 -1.95 0.052
pOth Party × lin wave 0.04 -0.36 – 0.43 0.18 0.860
pOth Party × quad wave 0.19 -0.45 – 0.84 0.59 0.555
pOth Party × cub wave -0.10 -0.52 – 0.32 -0.47 0.637
pHar Tru × PoliticalEase
c
-0.01 -0.06 – 0.05 -0.27 0.790
pOth Party ×
PoliticalEase c
0.03 -0.08 – 0.13 0.52 0.605
lin wave × PoliticalEase
c
-0.03 -0.12 – 0.07 -0.53 0.594
quad wave × PoliticalEase
c
-0.04 -0.20 – 0.11 -0.58 0.565
cub wave × PoliticalEase
c
0.07 -0.03 – 0.17 1.43 0.154
(pHar Tru × lin wave) ×
PoliticalEase c
0.35 0.20 – 0.49 4.80 <0.001
(pHar Tru × quad wave) ×
PoliticalEase c
0.14 -0.08 – 0.37 1.23 0.219
(pHar Tru × cub wave) ×
PoliticalEase c
0.26 0.12 – 0.41 3.60 <0.001
(pOth Party × lin wave) ×
PoliticalEase c
0.03 -0.22 – 0.28 0.21 0.835
(pOth Party × quad wave)
× PoliticalEase c
0.22 -0.20 – 0.63 1.02 0.306
(pOth Party × cub wave) ×
PoliticalEase c
-0.18 -0.46 – 0.10 -1.28 0.202
Observations 5067
R2 / R2 adjusted 0.080 / 0.076

Effects

  • Vote choice x Wave interaction moderated by perception of political ease (b = 0.35, p < .001)
    • Relationship between perception of political ease and support for filibuster is positive for both Trump and Harris supporters
    • Relationship becomes steeper (i.e., more strongly positive) for Trump supporters from wave 1 to wave 4 (b = 0.16, p = .001)
    • Relationship becomes less steep (i.e., attenuates slightly) for Harris supporters from wave 1 to wave 4 (b = -0.19, p < .001)

Illegal immigration: Perception of government’s approach

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = IllegalImmChange,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Should the Gov't do more or less 
about illegal immigration?") +
  facet_grid(~wave.plot)

tab_model(lm(IllegalImmChange ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 1.12 1.06 – 1.17 38.51 <0.001
pHar Tru 1.26 1.17 – 1.35 27.11 <0.001
pOth Party 0.49 0.34 – 0.65 6.40 <0.001
lin wave -0.52 -0.66 – -0.38 -7.27 <0.001
quad wave -0.62 -0.85 – -0.39 -5.36 <0.001
cub wave -0.28 -0.43 – -0.13 -3.68 <0.001
pHar Tru × lin wave 0.01 -0.22 – 0.24 0.12 0.902
pHar Tru × quad wave 0.61 0.25 – 0.98 3.31 0.001
pHar Tru × cub wave 0.14 -0.09 – 0.37 1.18 0.239
pOth Party × lin wave 0.01 -0.36 – 0.37 0.03 0.976
pOth Party × quad wave 0.16 -0.45 – 0.76 0.51 0.612
pOth Party × cub wave -0.06 -0.46 – 0.34 -0.29 0.771
Observations 5068
R2 / R2 adjusted 0.160 / 0.158

Effects

  • Trump supporters higher than Harris supporters (b = 1.26, p < .001)
  • Support decreases over time, collapsing across vote choice (b = -0.52, p < .001)
  • No wave 1 to wave 4 interaction by vote choice (p = .90), indicating that, from wave 1 to wave 4, both Harris and Trump supporters decreased by about the same degree in illegal immigration perception
  • Interaction with quadratic wave, meaning that waves 2 and 3 had differing support than 1 and 4 on average between Harris and Trump supporters (b = 0.61, p = .001)

Moderators

  • No moderation by perceptions of political ease
  • No moderation by support for filibuster

Personal Actions

Avoid ICE-affiliated businesses

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PA_8,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1,1)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Avoid ICE-affiliated Businesses") +
  facet_grid(~wave.plot)

tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.31 -0.38 – -0.24 -8.21 <0.001
pHar Tru -0.41 -0.52 – -0.29 -6.90 <0.001
pOth Party 0.05 -0.15 – 0.24 0.47 0.639
lin wave 0.05 -0.13 – 0.23 0.53 0.597
quad wave 0.05 -0.25 – 0.34 0.30 0.764
cub wave 0.26 0.06 – 0.45 2.62 0.009
pHar Tru × lin wave -0.86 -1.15 – -0.57 -5.74 <0.001
pHar Tru × quad wave -0.57 -1.04 – -0.11 -2.42 0.016
pHar Tru × cub wave -0.07 -0.36 – 0.23 -0.44 0.660
pOth Party × lin wave 0.34 -0.14 – 0.83 1.40 0.162
pOth Party × quad wave 0.34 -0.45 – 1.13 0.85 0.397
pOth Party × cub wave 0.16 -0.36 – 0.68 0.61 0.539
Observations 4695
R2 / R2 adjusted 0.020 / 0.017
tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2), data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.31 -0.38 – -0.24 -8.21 <0.001
pHar Tru -0.41 -0.52 – -0.29 -6.90 <0.001
pOth Party 0.05 -0.15 – 0.24 0.47 0.639
wave helm 123 4 0.13 -0.04 – 0.31 1.47 0.140
wave helm 12 3 -0.14 -0.33 – 0.04 -1.49 0.136
wave helm 1 2 0.18 -0.01 – 0.38 1.83 0.067
pHar Tru × wave helm 123
4
-0.79 -1.07 – -0.50 -5.32 <0.001
pHar Tru × wave helm 12 3 -0.35 -0.63 – -0.07 -2.48 0.013
pHar Tru × wave helm 1 2 0.02 -0.28 – 0.33 0.14 0.887
pOth Party × wave helm
123 4
0.40 -0.07 – 0.87 1.66 0.097
pOth Party × wave helm 12
3
0.03 -0.47 – 0.53 0.11 0.911
pOth Party × wave helm 1
2
0.04 -0.49 – 0.56 0.14 0.890
Observations 4695
R2 / R2 adjusted 0.020 / 0.017

Effects

  • Trump supporters less willing to avoid ICE-supporting businesses than harris supporters (b = -0.41, p < .001)
  • Vote choice x Wave interaction (b = -0.86, p < .001); Harris supporters become more supportive over time

Moderator: Illegal Immigration Change opinion

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = IllegalImmChange,
           y = PA_8,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Should the US be doing less or more about illegal immigration?") +
  ylab("Avoid ICE-affiliated Businesses") +
  facet_grid(~wave.plot)

tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * illImmchg.c, data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.33 -0.41 – -0.25 -8.03 <0.001
pHar Tru -0.30 -0.43 – -0.17 -4.64 <0.001
pOth Party 0.12 -0.10 – 0.33 1.06 0.288
lin wave 0.01 -0.19 – 0.21 0.13 0.897
quad wave -0.01 -0.33 – 0.30 -0.09 0.928
cub wave 0.25 0.04 – 0.45 2.38 0.017
illImmchg c -0.11 -0.16 – -0.06 -4.65 <0.001
pHar Tru × lin wave -0.76 -1.08 – -0.43 -4.59 <0.001
pHar Tru × quad wave -0.46 -0.97 – 0.04 -1.79 0.074
pHar Tru × cub wave -0.06 -0.37 – 0.26 -0.34 0.731
pOth Party × lin wave 0.34 -0.20 – 0.87 1.24 0.214
pOth Party × quad wave 0.30 -0.56 – 1.15 0.68 0.495
pOth Party × cub wave 0.12 -0.43 – 0.66 0.42 0.674
pHar Tru × illImmchg c -0.06 -0.13 – 0.02 -1.45 0.148
pOth Party × illImmchg c 0.06 -0.06 – 0.18 0.96 0.335
lin wave × illImmchg c -0.04 -0.16 – 0.07 -0.75 0.453
quad wave × illImmchg c -0.02 -0.20 – 0.17 -0.18 0.859
cub wave × illImmchg c -0.00 -0.13 – 0.12 -0.07 0.948
(pHar Tru × lin wave) ×
illImmchg c
-0.09 -0.28 – 0.10 -0.92 0.355
(pHar Tru × quad wave) ×
illImmchg c
-0.03 -0.33 – 0.28 -0.16 0.870
(pHar Tru × cub wave) ×
illImmchg c
-0.05 -0.25 – 0.14 -0.54 0.586
(pOth Party × lin wave) ×
illImmchg c
-0.17 -0.47 – 0.12 -1.14 0.254
(pOth Party × quad wave)
× illImmchg c
-0.25 -0.74 – 0.25 -0.98 0.328
(pOth Party × cub wave) ×
illImmchg c
-0.04 -0.36 – 0.29 -0.22 0.822
Observations 4690
R2 / R2 adjusted 0.027 / 0.022

Effects

  • oddly, Vote choice x Wave interaction is not moderated by views on govt’s approach to illegal immigration (p = .36); Harris supporters become more supportive over time regardless of views on illegal immigration crackdown

Moderator: Trump perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Trump,
           y = PA_8,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,5,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Trump") +
  ylab("Avoid ICE-affiliated Businesses") +
  facet_grid(~wave.plot)

tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Trump.c, data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.24 -0.34 – -0.14 -4.79 <0.001
pHar Tru -0.70 -0.88 – -0.53 -7.90 <0.001
pOth Party 0.05 -0.21 – 0.30 0.35 0.726
lin wave 0.13 -0.11 – 0.38 1.07 0.283
quad wave -0.12 -0.52 – 0.27 -0.61 0.544
cub wave 0.15 -0.11 – 0.40 1.13 0.261
Trump c 0.11 0.04 – 0.18 2.93 0.003
pHar Tru × lin wave -0.58 -1.02 – -0.14 -2.59 0.010
pHar Tru × quad wave -0.00 -0.70 – 0.70 -0.00 1.000
pHar Tru × cub wave 0.02 -0.42 – 0.47 0.11 0.916
pOth Party × lin wave -0.04 -0.67 – 0.59 -0.11 0.909
pOth Party × quad wave 1.14 0.12 – 2.17 2.19 0.028
pOth Party × cub wave 0.14 -0.53 – 0.80 0.40 0.688
pHar Tru × Trump c -0.12 -0.23 – -0.01 -2.14 0.032
pOth Party × Trump c 0.05 -0.15 – 0.24 0.46 0.649
lin wave × Trump c 0.05 -0.13 – 0.23 0.53 0.598
quad wave × Trump c -0.42 -0.72 – -0.13 -2.83 0.005
cub wave × Trump c -0.06 -0.25 – 0.14 -0.56 0.573
(pHar Tru × lin wave) ×
Trump c
0.07 -0.21 – 0.34 0.47 0.640
(pHar Tru × quad wave) ×
Trump c
-0.10 -0.54 – 0.34 -0.45 0.652
(pHar Tru × cub wave) ×
Trump c
0.18 -0.11 – 0.46 1.23 0.220
(pOth Party × lin wave) ×
Trump c
-0.49 -0.96 – -0.01 -2.00 0.045
(pOth Party × quad wave)
× Trump c
0.55 -0.24 – 1.35 1.37 0.171
(pOth Party × cub wave) ×
Trump c
0.10 -0.43 – 0.62 0.36 0.722
Observations 4635
R2 / R2 adjusted 0.028 / 0.023

Effects

  • Perception of Trump positively predicts boycotting ICE businesses (b = 0.11, p = .003)
  • No moderation over time, but vote choice x Trump perception interaction was observed (b = -0.12, p = .032)

Moderator: Musk perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk,
           y = PA_8,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,5,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Musk") +
  ylab("Avoid ICE-affiliated Businesses") +
  facet_grid(~wave.plot)

tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Musk.c, data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.29 -0.38 – -0.20 -6.54 <0.001
pHar Tru -0.47 -0.61 – -0.32 -6.27 <0.001
pOth Party 0.03 -0.20 – 0.26 0.25 0.806
lin wave 0.02 -0.20 – 0.24 0.18 0.859
quad wave -0.14 -0.49 – 0.21 -0.77 0.443
cub wave 0.20 -0.03 – 0.43 1.72 0.085
Musk c 0.02 -0.05 – 0.09 0.62 0.535
pHar Tru × lin wave -0.84 -1.21 – -0.47 -4.50 <0.001
pHar Tru × quad wave -0.39 -0.98 – 0.19 -1.31 0.189
pHar Tru × cub wave -0.06 -0.44 – 0.31 -0.32 0.748
pOth Party × lin wave 0.05 -0.51 – 0.62 0.18 0.859
pOth Party × quad wave 0.38 -0.54 – 1.29 0.80 0.423
pOth Party × cub wave -0.03 -0.62 – 0.57 -0.09 0.928
pHar Tru × Musk c -0.01 -0.11 – 0.10 -0.11 0.915
pOth Party × Musk c 0.05 -0.14 – 0.24 0.49 0.627
lin wave × Musk c 0.06 -0.11 – 0.23 0.67 0.503
quad wave × Musk c -0.23 -0.51 – 0.05 -1.60 0.110
cub wave × Musk c 0.08 -0.11 – 0.26 0.81 0.419
(pHar Tru × lin wave) ×
Musk c
0.33 0.05 – 0.60 2.36 0.018
(pHar Tru × quad wave) ×
Musk c
0.48 0.05 – 0.91 2.19 0.029
(pHar Tru × cub wave) ×
Musk c
0.33 0.06 – 0.60 2.36 0.018
(pOth Party × lin wave) ×
Musk c
-0.14 -0.61 – 0.33 -0.59 0.553
(pOth Party × quad wave)
× Musk c
0.32 -0.45 – 1.08 0.82 0.413
(pOth Party × cub wave) ×
Musk c
-0.12 -0.62 – 0.38 -0.45 0.651
Observations 4506
R2 / R2 adjusted 0.025 / 0.020

Effects

????

  • Perception of does not predict avoiding ICE-affiliated businesses (p = .53)
  • Does moderate the vote choice x wave interaction (b = 0.33, p = .018); also interacts with quadratic & cubic wave, indicating generally unstable relationships over time
  • Relationship between Musk perceptions and anti-ICE businesses becomes more negative over time for Harris supporters and more positive over time for Trump supporters
    • Harris supporters at wave 1: Marginal positive relationship b/w Musk perceptions and anti-ICE businesses (b = 0.16, p = .067)
    • Harris supporters at wave 4: Marginal negative relationship b/w Musk perceptions and anti-ICE businesses (b = -0.16, p = .056)
    • Trump supporters at wave 1: No relationship b/w Musk perceptions and anti-ICE businesses (b = -0.13, p = .14)
    • Trump supporters at wave 4: Positive relationship b/w Musk perceptions and anti-ICE businesses (b = 0.20, p = .018)

Eat less beef

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PA_3,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Willingness to eat less beef") +
  facet_grid(~wave.plot)

tab_model(lm(PA_3 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  PA 3
Predictors Estimates CI Statistic p
(Intercept) -0.55 -0.63 – -0.47 -13.98 <0.001
pHar Tru -0.70 -0.82 – -0.58 -11.15 <0.001
pOth Party -0.02 -0.23 – 0.18 -0.21 0.833
lin wave 0.22 0.03 – 0.41 2.26 0.024
quad wave 0.31 -0.00 – 0.62 1.96 0.051
cub wave 0.26 0.06 – 0.46 2.50 0.013
pHar Tru × lin wave 0.44 0.13 – 0.75 2.75 0.006
pHar Tru × quad wave -0.21 -0.70 – 0.28 -0.83 0.404
pHar Tru × cub wave 0.13 -0.18 – 0.44 0.82 0.411
pOth Party × lin wave 0.26 -0.24 – 0.76 1.02 0.307
pOth Party × quad wave -0.33 -1.15 – 0.50 -0.77 0.440
pOth Party × cub wave -0.09 -0.63 – 0.45 -0.32 0.753
Observations 4566
R2 / R2 adjusted 0.038 / 0.036

Moderator: Environmental Importance

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = environmentalImp,
           y = PA_3,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,5,1)) +
  coord_cartesian(ylim = c(-2.5,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Environmental Importance") +
  ylab("Willingness to eat less beef") +
  facet_grid(~wave.plot)

tab_model(lm(PA_8 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * environmentalImp.c, data = d), show.stat = T)
  PA 8
Predictors Estimates CI Statistic p
(Intercept) -0.26 -0.34 – -0.19 -6.80 <0.001
pHar Tru -0.17 -0.29 – -0.05 -2.77 0.006
pOth Party 0.04 -0.16 – 0.24 0.40 0.688
lin wave 0.11 -0.07 – 0.29 1.17 0.241
quad wave 0.03 -0.27 – 0.33 0.17 0.864
cub wave 0.30 0.10 – 0.49 2.97 0.003
environmentalImp c 0.28 0.22 – 0.35 8.95 <0.001
pHar Tru × lin wave -0.70 -1.00 – -0.39 -4.48 <0.001
pHar Tru × quad wave -0.55 -1.03 – -0.07 -2.23 0.026
pHar Tru × cub wave -0.05 -0.35 – 0.26 -0.31 0.755
pOth Party × lin wave 0.30 -0.18 – 0.79 1.22 0.221
pOth Party × quad wave 0.42 -0.38 – 1.22 1.03 0.304
pOth Party × cub wave 0.18 -0.35 – 0.70 0.66 0.512
pHar Tru ×
environmentalImp c
0.28 0.18 – 0.39 5.29 <0.001
pOth Party ×
environmentalImp c
0.10 -0.06 – 0.26 1.19 0.235
lin wave ×
environmentalImp c
0.17 0.01 – 0.32 2.10 0.035
quad wave ×
environmentalImp c
-0.02 -0.26 – 0.23 -0.12 0.902
cub wave ×
environmentalImp c
0.09 -0.07 – 0.24 1.06 0.291
(pHar Tru × lin wave) ×
environmentalImp c
0.13 -0.13 – 0.40 0.97 0.331
(pHar Tru × quad wave) ×
environmentalImp c
-0.20 -0.62 – 0.22 -0.92 0.356
(pHar Tru × cub wave) ×
environmentalImp c
0.28 0.01 – 0.54 2.07 0.039
(pOth Party × lin wave) ×
environmentalImp c
0.05 -0.36 – 0.45 0.22 0.826
(pOth Party × quad wave)
× environmentalImp c
-0.04 -0.69 – 0.61 -0.12 0.906
(pOth Party × cub wave) ×
environmentalImp c
0.03 -0.39 – 0.45 0.14 0.890
Observations 4693
R2 / R2 adjusted 0.066 / 0.061

Election Views

Satisfied w/ Presidential Nominee

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PresSatisfied,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Satisfaction with party's presidential nominee") +
  facet_grid(~wave.plot)

tab_model(lm(PresSatisfied ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Pres Satisfied
Predictors Estimates CI Statistic p
(Intercept) 0.43 0.35 – 0.50 11.31 <0.001
pHar Tru 1.14 1.03 – 1.25 20.12 <0.001
pOth Party 1.97 1.77 – 2.17 19.18 <0.001
lin wave -0.22 -0.40 – -0.03 -2.33 0.020
quad wave -0.23 -0.53 – 0.07 -1.52 0.128
cub wave -0.02 -0.22 – 0.17 -0.23 0.819
pHar Tru × lin wave 1.25 0.98 – 1.53 8.82 <0.001
pHar Tru × quad wave -1.02 -1.47 – -0.58 -4.52 <0.001
pHar Tru × cub wave 0.61 0.33 – 0.89 4.25 <0.001
pOth Party × lin wave -0.21 -0.69 – 0.28 -0.83 0.405
pOth Party × quad wave 0.27 -0.53 – 1.08 0.67 0.503
pOth Party × cub wave -0.55 -1.08 – -0.02 -2.02 0.043
Observations 4586
R2 / R2 adjusted 0.166 / 0.164

Effects

  • Trump supporters more satisfied with party’s nominee than Harris voters collapsing across wave
  • Satisfaction with nominee decreases from wave 1 to wave 4, collapsing across vote choice
  • Satisfaction decreased more for Harris voters than for Trump voters (b = 1.25, p < .001)

Moderator: Illegal Immigration change

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = IllegalImmChange,
           y = PresSatisfied,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(-3,3,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Should the US be doing less or more about illegal immigration?") +
  ylab("Satisfaction with party's presidential nominee") +
  facet_grid(~wave.plot)

tab_model(lm(PresSatisfied ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * illImmchg.c, data = d), show.stat = T)
  Pres Satisfied
Predictors Estimates CI Statistic p
(Intercept) 0.39 0.31 – 0.47 9.76 <0.001
pHar Tru 1.01 0.89 – 1.13 16.69 <0.001
pOth Party 1.83 1.62 – 2.05 16.97 <0.001
lin wave -0.14 -0.34 – 0.06 -1.39 0.163
quad wave -0.20 -0.51 – 0.12 -1.24 0.216
cub wave 0.03 -0.17 – 0.23 0.32 0.752
illImmchg c 0.09 0.05 – 0.14 4.02 <0.001
pHar Tru × lin wave 1.42 1.11 – 1.72 9.14 <0.001
pHar Tru × quad wave -1.03 -1.50 – -0.55 -4.23 <0.001
pHar Tru × cub wave 0.56 0.26 – 0.86 3.70 <0.001
pOth Party × lin wave -0.24 -0.77 – 0.29 -0.90 0.370
pOth Party × quad wave 0.24 -0.61 – 1.08 0.55 0.585
pOth Party × cub wave -0.68 -1.22 – -0.13 -2.44 0.015
pHar Tru × illImmchg c 0.31 0.24 – 0.38 8.68 <0.001
pOth Party × illImmchg c 0.05 -0.07 – 0.17 0.81 0.418
lin wave × illImmchg c 0.00 -0.11 – 0.11 0.06 0.952
quad wave × illImmchg c 0.08 -0.11 – 0.26 0.83 0.406
cub wave × illImmchg c 0.18 0.06 – 0.30 2.96 0.003
(pHar Tru × lin wave) ×
illImmchg c
0.07 -0.11 – 0.24 0.73 0.468
(pHar Tru × quad wave) ×
illImmchg c
0.05 -0.23 – 0.33 0.34 0.733
(pHar Tru × cub wave) ×
illImmchg c
0.04 -0.14 – 0.22 0.45 0.649
(pOth Party × lin wave) ×
illImmchg c
-0.01 -0.30 – 0.28 -0.08 0.937
(pOth Party × quad wave)
× illImmchg c
0.11 -0.38 – 0.60 0.43 0.665
(pOth Party × cub wave) ×
illImmchg c
-0.18 -0.51 – 0.15 -1.08 0.278
Observations 4582
R2 / R2 adjusted 0.188 / 0.183

Effects

  • Difference between Harris & Trump supporters in nominee satisfaction moderated by illegal immigration view
    • Trump supporters had consistent positive association between satisfaction with party nominee and doing more about illegal immigration; effect was strongly positive collapsing across waves (b = .27, p < .001)
    • Harris supporters had slight negative and then eventual non-association between illegal immigration view and satisfaction with party nominee; effect of illegal immigration change was marginally negative for Harris supporters, collapsing across wave (p = .07)

Moderator: Environmental Importance

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = environmentalImp,
           y = PresSatisfied,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,5,1)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Environmental Importance") +
  ylab("Satisfaction with party's presidential nominee") +
  facet_grid(~wave.plot)

tab_model(lm(PresSatisfied ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * environmentalImp.c, data = d), show.stat = T)
  Pres Satisfied
Predictors Estimates CI Statistic p
(Intercept) 0.39 0.32 – 0.47 10.14 <0.001
pHar Tru 1.24 1.12 – 1.35 20.73 <0.001
pOth Party 1.92 1.72 – 2.13 18.54 <0.001
lin wave -0.18 -0.36 – 0.00 -1.91 0.056
quad wave -0.15 -0.46 – 0.15 -1.00 0.316
cub wave -0.03 -0.22 – 0.17 -0.26 0.798
environmentalImp c 0.03 -0.03 – 0.09 0.92 0.360
pHar Tru × lin wave 1.13 0.84 – 1.42 7.55 <0.001
pHar Tru × quad wave -1.22 -1.68 – -0.75 -5.10 <0.001
pHar Tru × cub wave 0.63 0.33 – 0.93 4.16 <0.001
pOth Party × lin wave -0.09 -0.58 – 0.40 -0.36 0.720
pOth Party × quad wave 0.32 -0.49 – 1.13 0.77 0.439
pOth Party × cub wave -0.54 -1.08 – -0.01 -1.98 0.047
pHar Tru ×
environmentalImp c
-0.26 -0.36 – -0.15 -4.95 <0.001
pOth Party ×
environmentalImp c
0.24 0.07 – 0.41 2.72 0.006
lin wave ×
environmentalImp c
-0.09 -0.25 – 0.07 -1.13 0.257
quad wave ×
environmentalImp c
-0.21 -0.47 – 0.04 -1.63 0.104
cub wave ×
environmentalImp c
0.08 -0.09 – 0.24 0.93 0.351
(pHar Tru × lin wave) ×
environmentalImp c
0.34 0.09 – 0.60 2.63 0.009
(pHar Tru × quad wave) ×
environmentalImp c
0.41 0.01 – 0.82 2.00 0.046
(pHar Tru × cub wave) ×
environmentalImp c
-0.07 -0.33 – 0.18 -0.57 0.572
(pOth Party × lin wave) ×
environmentalImp c
-0.23 -0.65 – 0.19 -1.08 0.282
(pOth Party × quad wave)
× environmentalImp c
-0.15 -0.84 – 0.53 -0.44 0.660
(pOth Party × cub wave) ×
environmentalImp c
-0.10 -0.54 – 0.35 -0.44 0.662
Observations 4584
R2 / R2 adjusted 0.177 / 0.173

Effects

  • Environmental importance on its own did not predict satisfaction with party’s nominee choice.

Moderation

  • Environmental importance moderated the vote choice x wave interaction
    • Environmental importance was decreasingly predictive of nominee satisfaction for Harris supporters (b = -0.34, p = .001)
    • positively predicted satisfaction with nominee in wave 1 for Harris voters (b = .48, p < .001), but not in wave 4 (p = .75)
    • Trump voters were unaffected by environmental importance collapsing across wave (p = .54)

Moderator: Party Identity

knitr::kable(table(d$presVote, d$party_factor))
Democrat Independent Republican
Harris 1732 234 152
Trump 162 219 1976
Other 91 216 65
d$presVote.plot <- recode_factor(d$presVote, "Harris" = "Harris Voters", "Trump" = "Trump Voters")

ggplot(d[!is.na(d$presVote) & !is.na(d$party_factor) & d$presVote != "Other" & d$party_factor != "Independent",],
       aes(x = factor(party_factor),
           y = PresSatisfied,
           fill = factor(party_factor))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  scale_fill_manual("Party Identity", values = c("dodgerblue","red3")) +
  xlab("Vote Choice") +
  ylab("Satisfaction with own party's 
presidential nominee") +
  facet_grid(presVote.plot~wave.plot)

tab_model(lm(PresSatisfied ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * (pDem_Rep + pInd_Party), data = d), show.stat = T)
  Pres Satisfied
Predictors Estimates CI Statistic p
(Intercept) -0.01 -0.10 – 0.09 -0.14 0.890
pHar Tru 1.18 0.99 – 1.37 12.30 <0.001
pOth Party 1.36 1.11 – 1.60 10.86 <0.001
lin wave -0.13 -0.36 – 0.11 -1.05 0.295
quad wave -0.07 -0.46 – 0.32 -0.35 0.723
cub wave 0.25 -0.01 – 0.51 1.89 0.059
pDem Rep 0.16 -0.09 – 0.41 1.29 0.198
pInd Party 0.26 0.06 – 0.46 2.57 0.010
pHar Tru × lin wave 0.93 0.46 – 1.41 3.88 <0.001
pHar Tru × quad wave -1.30 -2.05 – -0.55 -3.39 0.001
pHar Tru × cub wave 0.56 0.09 – 1.04 2.31 0.021
pOth Party × lin wave 0.05 -0.53 – 0.64 0.17 0.863
pOth Party × quad wave 0.59 -0.39 – 1.57 1.19 0.235
pOth Party × cub wave -0.79 -1.44 – -0.14 -2.37 0.018
pHar Tru × pDem Rep 2.85 2.42 – 3.27 13.15 <0.001
pHar Tru × pInd Party -0.23 -0.66 – 0.19 -1.07 0.284
pOth Party × pDem Rep -0.57 -1.22 – 0.09 -1.70 0.089
pOth Party × pInd Party 0.61 0.14 – 1.08 2.55 0.011
lin wave × pDem Rep 0.41 -0.18 – 1.00 1.36 0.173
lin wave × pInd Party 0.43 -0.07 – 0.92 1.70 0.090
quad wave × pDem Rep -0.55 -1.55 – 0.45 -1.09 0.277
quad wave × pInd Party 0.04 -0.76 – 0.83 0.09 0.926
cub wave × pDem Rep -0.18 -0.85 – 0.49 -0.54 0.589
cub wave × pInd Party 0.35 -0.16 – 0.86 1.35 0.176
(pHar Tru × lin wave) ×
pDem Rep
-1.92 -2.95 – -0.89 -3.65 <0.001
(pHar Tru × lin wave) ×
pInd Party
-0.77 -1.87 – 0.33 -1.37 0.170
(pHar Tru × quad wave) ×
pDem Rep
-1.86 -3.55 – -0.16 -2.14 0.032
(pHar Tru × quad wave) ×
pInd Party
1.29 -0.43 – 3.00 1.47 0.141
(pHar Tru × cub wave) ×
pDem Rep
-1.17 -2.28 – -0.05 -2.05 0.040
(pHar Tru × cub wave) ×
pInd Party
1.35 0.29 – 2.42 2.49 0.013
(pOth Party × lin wave) ×
pDem Rep
0.77 -0.77 – 2.31 0.98 0.327
(pOth Party × lin wave) ×
pInd Party
1.06 -0.08 – 2.20 1.82 0.069
(pOth Party × quad wave)
× pDem Rep
1.54 -1.07 – 4.16 1.16 0.248
(pOth Party × quad wave)
× pInd Party
1.04 -0.83 – 2.91 1.09 0.275
(pOth Party × cub wave) ×
pDem Rep
-0.64 -2.41 – 1.12 -0.72 0.473
(pOth Party × cub wave) ×
pInd Party
-0.32 -1.54 – 0.91 -0.51 0.611
Observations 4425
R2 / R2 adjusted 0.222 / 0.216

Effects

  • Interaction between party identity & vote choice (b = 2.85, p < .001)
  • Party identity x Vote choice moderated by wave (b = -1.92, p < .001)
ggplot(d[!is.na(d$presVote) & !is.na(d$party_factor) & d$presVote != "Other" & d$party_factor != "Independent",]) +
  geom_smooth(method = "lm",
              aes(x = Ideology,
                  y = PresSatisfied,
                  color = party_factor,
                  fill = party_factor),
              fullrange = T) +
  theme_bw() +
  coord_cartesian(ylim = c(-5,4)) +
  scale_y_continuous(breaks = seq(-3,3,1)) +
  scale_fill_manual("Party Identity", values = c("dodgerblue","red3")) +
  scale_color_manual("Party Identity", values = c("dodgerblue","red3")) +
  xlab("Ideology") +
  ylab("Satisfaction with own party's 
presidential nominee") +
  facet_grid(presVote.plot~wave.plot)

tab_model(lm(PresSatisfied ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * (pDem_Rep + pInd_Party) * Ideology, data = d), show.stat = T)
  Pres Satisfied
Predictors Estimates CI Statistic p
(Intercept) -0.11 -0.22 – -0.00 -2.04 0.041
pHar Tru 1.24 1.05 – 1.43 12.79 <0.001
pOth Party 1.36 1.09 – 1.64 9.73 <0.001
lin wave -0.07 -0.32 – 0.19 -0.51 0.610
quad wave -0.10 -0.53 – 0.32 -0.48 0.633
cub wave 0.20 -0.09 – 0.48 1.37 0.171
pDem Rep -0.04 -0.32 – 0.24 -0.26 0.795
pInd Party 0.13 -0.08 – 0.34 1.20 0.230
Ideology 0.01 -0.12 – 0.13 0.12 0.904
pHar Tru × lin wave 1.06 0.58 – 1.54 4.33 <0.001
pHar Tru × quad wave -1.26 -2.02 – -0.50 -3.24 0.001
pHar Tru × cub wave 0.75 0.26 – 1.23 3.03 0.002
pOth Party × lin wave -0.11 -0.76 – 0.53 -0.35 0.729
pOth Party × quad wave 0.31 -0.79 – 1.40 0.55 0.586
pOth Party × cub wave -0.63 -1.37 – 0.10 -1.68 0.093
pHar Tru × pDem Rep 2.54 2.10 – 2.97 11.45 <0.001
pHar Tru × pInd Party -0.23 -0.66 – 0.20 -1.06 0.288
pOth Party × pDem Rep -0.24 -1.00 – 0.51 -0.63 0.527
pOth Party × pInd Party 0.60 0.10 – 1.10 2.34 0.020
lin wave × pDem Rep 0.56 -0.10 – 1.22 1.66 0.097
lin wave × pInd Party 0.43 -0.09 – 0.94 1.63 0.104
quad wave × pDem Rep -0.80 -1.92 – 0.32 -1.40 0.162
quad wave × pInd Party 0.12 -0.72 – 0.95 0.28 0.783
cub wave × pDem Rep -0.24 -1.00 – 0.51 -0.63 0.527
cub wave × pInd Party 0.21 -0.33 – 0.75 0.76 0.450
pHar Tru × Ideology -0.48 -0.71 – -0.25 -4.03 <0.001
pOth Party × Ideology 0.33 0.02 – 0.65 2.08 0.038
lin wave × Ideology 0.35 0.04 – 0.67 2.18 0.029
quad wave × Ideology 0.11 -0.39 – 0.60 0.41 0.679
cub wave × Ideology 0.01 -0.30 – 0.33 0.08 0.938
pDem Rep × Ideology -0.19 -0.49 – 0.12 -1.21 0.228
pInd Party × Ideology -0.32 -0.59 – -0.06 -2.38 0.017
(pHar Tru × lin wave) ×
pDem Rep
-1.33 -2.39 – -0.27 -2.45 0.014
(pHar Tru × lin wave) ×
pInd Party
-0.46 -1.56 – 0.65 -0.81 0.415
(pHar Tru × quad wave) ×
pDem Rep
-1.11 -2.85 – 0.63 -1.25 0.211
(pHar Tru × quad wave) ×
pInd Party
1.08 -0.64 – 2.79 1.23 0.217
(pHar Tru × cub wave) ×
pDem Rep
-0.91 -2.05 – 0.22 -1.58 0.115
(pHar Tru × cub wave) ×
pInd Party
1.63 0.57 – 2.70 3.01 0.003
(pOth Party × lin wave) ×
pDem Rep
0.15 -1.60 – 1.91 0.17 0.863
(pOth Party × lin wave) ×
pInd Party
0.87 -0.35 – 2.09 1.40 0.162
(pOth Party × quad wave)
× pDem Rep
0.61 -2.40 – 3.62 0.40 0.691
(pOth Party × quad wave)
× pInd Party
0.75 -1.26 – 2.77 0.73 0.464
(pOth Party × cub wave) ×
pDem Rep
-0.44 -2.49 – 1.60 -0.43 0.670
(pOth Party × cub wave) ×
pInd Party
-0.08 -1.41 – 1.24 -0.12 0.902
(pHar Tru × lin wave) ×
Ideology
-0.33 -0.92 – 0.25 -1.11 0.267
(pHar Tru × quad wave) ×
Ideology
-0.69 -1.62 – 0.24 -1.45 0.148
(pHar Tru × cub wave) ×
Ideology
-0.05 -0.64 – 0.55 -0.16 0.872
(pOth Party × lin wave) ×
Ideology
0.21 -0.59 – 1.02 0.52 0.606
(pOth Party × quad wave)
× Ideology
0.38 -0.88 – 1.63 0.59 0.555
(pOth Party × cub wave) ×
Ideology
0.17 -0.61 – 0.96 0.44 0.662
(pHar Tru × pDem Rep) ×
Ideology
-0.13 -0.60 – 0.34 -0.54 0.593
(pHar Tru × pInd Party) ×
Ideology
-0.46 -1.03 – 0.10 -1.60 0.109
(pOth Party × pDem Rep) ×
Ideology
0.30 -0.50 – 1.11 0.73 0.463
(pOth Party × pInd Party)
× Ideology
0.54 -0.09 – 1.17 1.69 0.092
(lin wave × pDem Rep) ×
Ideology
0.87 0.11 – 1.63 2.24 0.025
(lin wave × pInd Party) ×
Ideology
0.74 0.05 – 1.42 2.10 0.036
(quad wave × pDem Rep) ×
Ideology
0.74 -0.47 – 1.94 1.20 0.232
(quad wave × pInd Party)
× Ideology
0.34 -0.73 – 1.40 0.62 0.537
(cub wave × pDem Rep) ×
Ideology
-0.09 -0.86 – 0.68 -0.24 0.814
(cub wave × pInd Party) ×
Ideology
0.41 -0.26 – 1.07 1.20 0.230
(pHar Tru × lin wave ×
pDem Rep) × Ideology
-2.22 -3.43 – -1.01 -3.59 <0.001
(pHar Tru × lin wave ×
pInd Party) × Ideology
-0.71 -2.12 – 0.70 -0.99 0.324
(pHar Tru × quad wave ×
pDem Rep) × Ideology
-2.77 -4.66 – -0.88 -2.87 0.004
(pHar Tru × quad wave ×
pInd Party) × Ideology
1.05 -1.22 – 3.32 0.90 0.366
(pHar Tru × cub wave ×
pDem Rep) × Ideology
0.03 -1.15 – 1.21 0.04 0.965
(pHar Tru × cub wave ×
pInd Party) × Ideology
-1.41 -2.87 – 0.06 -1.89 0.059
(pOth Party × lin wave ×
pDem Rep) × Ideology
0.03 -1.99 – 2.05 0.03 0.976
(pOth Party × lin wave ×
pInd Party) × Ideology
-0.42 -2.08 – 1.25 -0.49 0.622
(pOth Party × quad wave ×
pDem Rep) × Ideology
0.55 -2.68 – 3.78 0.33 0.739
(pOth Party × quad wave ×
pInd Party) × Ideology
-1.28 -3.81 – 1.24 -1.00 0.319
(pOth Party × cub wave ×
pDem Rep) × Ideology
1.76 -0.30 – 3.82 1.68 0.094
(pOth Party × cub wave ×
pInd Party) × Ideology
-0.08 -1.61 – 1.45 -0.10 0.921
Observations 4425
R2 / R2 adjusted 0.258 / 0.246

Election Importance (Country)

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = ElectionImpCountry,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Election Importance (Country)") +
  facet_grid(~wave.plot)

tab_model(lm(ElectionImpCountry ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T, show.ci = F)
  Election Imp Country
Predictors Estimates Statistic p
(Intercept) 1.66 61.46 <0.001
pHar Tru 0.13 3.05 0.002
pOth Party 1.24 17.20 <0.001
lin wave -0.20 -2.96 0.003
quad wave 0.10 0.96 0.338
cub wave -0.16 -2.32 0.020
pHar Tru × lin wave 0.31 2.84 0.005
pHar Tru × quad wave -0.37 -2.17 0.030
pHar Tru × cub wave 0.12 1.05 0.293
pOth Party × lin wave -0.29 -1.66 0.096
pOth Party × quad wave -0.46 -1.61 0.108
pOth Party × cub wave -0.11 -0.56 0.577
Observations 5068
R2 / R2 adjusted 0.070 / 0.068

Effects

  • Trump voters thought election more important than Harris voters collapsing across wave (b = 0.13, p = .002)
  • Election importance decreases from wave 1 to wave 4, collapsing across vote choice (b = -0.20, p = .003)
    • Importance decreased more for Harris voters than for Trump voters (b = 0.31, p = .005), such that the effect was significant for Harris voters (b = -0.45, p < .001) but marginal for Trump voters (b = -0.14, p = .066)
tab_model(lm(ElectionImpCountry ~ (pHar_Tru.d + pHar_Oth.d) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T, show.ci = F)
  Election Imp Country
Predictors Estimates Statistic p
(Intercept) 2.01 64.06 <0.001
pHar Tru d 0.13 3.05 0.002
pHar Oth d -1.17 -15.53 <0.001
lin wave -0.45 -5.67 <0.001
quad wave 0.14 1.09 0.275
cub wave -0.26 -3.22 0.001
pHar Tru d × lin wave 0.31 2.84 0.005
pHar Tru d × quad wave -0.37 -2.17 0.030
pHar Tru d × cub wave 0.12 1.05 0.293
pHar Oth d × lin wave 0.45 2.42 0.015
pHar Oth d × quad wave 0.27 0.91 0.363
pHar Oth d × cub wave 0.16 0.83 0.409
Observations 5068
R2 / R2 adjusted 0.070 / 0.068
tab_model(lm(ElectionImpCountry ~ (pTru_Har.d + pTru_Oth.d) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T, show.ci = F)
  Election Imp Country
Predictors Estimates Statistic p
(Intercept) 2.14 71.92 <0.001
pTru Har d -0.13 -3.05 0.002
pTru Oth d -1.30 -17.43 <0.001
lin wave -0.14 -1.84 0.066
quad wave -0.24 -2.00 0.046
cub wave -0.14 -1.87 0.062
pTru Har d × lin wave -0.31 -2.84 0.005
pTru Har d × quad wave 0.37 2.17 0.030
pTru Har d × cub wave -0.12 -1.05 0.293
pTru Oth d × lin wave 0.14 0.75 0.455
pTru Oth d × quad wave 0.65 2.17 0.030
pTru Oth d × cub wave 0.05 0.24 0.807
Observations 5068
R2 / R2 adjusted 0.070 / 0.068

Moderator: EV Subidies

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = PO_enviro,
           y = ElectionImpCountry,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  coord_cartesian(ylim = c(0.5,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,3)) +
  xlab("Support for Pro-Environment Policies") +
  ylab("Election Importance (Country)") +
  facet_grid(~wave.plot)

Effects

  • Trump voters thought election more important than Harris voters collapsing across wave (b = 0.13, p = .002)
  • Election importance decreases from wave 1 to wave 4, collapsing across vote choice (b = -0.20, p = .003)
    • Importance decreased more for Harris voters than for Trump voters (b = 0.31, p = .005), such that the effect was significant for Harris voters (b = -0.45, p < .001) but marginal for Trump voters (b = -0.14, p = .066)

Policy Views

Beef tax

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = factor(presVote),
           y = PO_3,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Policy Support: Beef Tax") +
  facet_grid(~wave.plot)

Moderator: Election importance

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = ElectionImpCountry,
           y = PO_3,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  coord_cartesian(ylim = c(-2,.5)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,3)) +
  xlab("Election Importance (Country)") +
  ylab("Pro-Environment Policies") +
  facet_grid(~wave.plot)

tab_model(lm(PO_3 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * electimpCty.c, data = d), show.stat = T, show.ci = F)
  PO 3
Predictors Estimates Statistic p
(Intercept) -0.92 -23.91 <0.001
pHar Tru -0.51 -9.26 <0.001
pOth Party 0.25 2.36 0.018
lin wave 0.07 0.74 0.457
quad wave -0.13 -0.84 0.402
cub wave 0.13 1.25 0.212
electimpCty c -0.08 -3.89 <0.001
pHar Tru × lin wave 0.46 3.28 0.001
pHar Tru × quad wave -0.36 -1.66 0.097
pHar Tru × cub wave 0.19 1.39 0.164
pOth Party × lin wave 0.25 1.00 0.319
pOth Party × quad wave 0.46 1.09 0.276
pOth Party × cub wave 0.15 0.53 0.593
pHar Tru × electimpCty c -0.16 -4.24 <0.001
pOth Party × electimpCty
c
-0.03 -0.68 0.494
lin wave × electimpCty c -0.02 -0.45 0.653
quad wave × electimpCty c 0.06 0.75 0.456
cub wave × electimpCty c 0.07 1.30 0.195
(pHar Tru × lin wave) ×
electimpCty c
0.10 1.00 0.316
(pHar Tru × quad wave) ×
electimpCty c
0.04 0.24 0.812
(pHar Tru × cub wave) ×
electimpCty c
0.00 0.00 0.996
(pOth Party × lin wave) ×
electimpCty c
0.06 0.51 0.608
(pOth Party × quad wave)
× electimpCty c
0.14 0.68 0.498
(pOth Party × cub wave) ×
electimpCty c
0.09 0.66 0.512
Observations 5066
R2 / R2 adjusted 0.040 / 0.035

Environmental policies

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PO_enviro,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  facet_wrap(~wave.plot)

Moderator: Election importance

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = ElectionImpCountry,
           y = PO_enviro,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,3)) +
  xlab("Election Importance (Country)") +
  ylab("Pro-Environment Policies") +
  facet_wrap(~wave.plot)

tab_model(lm(PO_enviro ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * electimpCty.c, data = d), show.stat = T)
  PO enviro
Predictors Estimates CI Statistic p
(Intercept) 0.36 0.30 – 0.42 12.08 <0.001
pHar Tru -0.89 -0.97 – -0.81 -21.09 <0.001
pOth Party 0.25 0.09 – 0.41 3.08 0.002
lin wave 0.07 -0.07 – 0.21 0.96 0.335
quad wave 0.09 -0.14 – 0.32 0.74 0.457
cub wave -0.00 -0.16 – 0.15 -0.03 0.980
electimpCty c 0.07 0.04 – 0.11 4.79 <0.001
pHar Tru × lin wave 0.07 -0.13 – 0.28 0.70 0.483
pHar Tru × quad wave -0.05 -0.38 – 0.28 -0.33 0.745
pHar Tru × cub wave 0.20 -0.01 – 0.40 1.83 0.067
pOth Party × lin wave 0.06 -0.32 – 0.44 0.32 0.748
pOth Party × quad wave -0.46 -1.10 – 0.18 -1.41 0.159
pOth Party × cub wave 0.31 -0.11 – 0.74 1.44 0.149
pHar Tru × electimpCty c -0.24 -0.30 – -0.18 -8.00 <0.001
pOth Party × electimpCty
c
0.06 -0.02 – 0.14 1.50 0.132
lin wave × electimpCty c -0.02 -0.10 – 0.05 -0.57 0.567
quad wave × electimpCty c 0.05 -0.08 – 0.17 0.74 0.459
cub wave × electimpCty c 0.01 -0.07 – 0.09 0.18 0.860
(pHar Tru × lin wave) ×
electimpCty c
-0.01 -0.15 – 0.14 -0.09 0.925
(pHar Tru × quad wave) ×
electimpCty c
0.08 -0.15 – 0.31 0.66 0.508
(pHar Tru × cub wave) ×
electimpCty c
0.02 -0.13 – 0.17 0.26 0.796
(pOth Party × lin wave) ×
electimpCty c
-0.02 -0.20 – 0.17 -0.17 0.864
(pOth Party × quad wave)
× electimpCty c
-0.24 -0.55 – 0.06 -1.56 0.119
(pOth Party × cub wave) ×
electimpCty c
0.21 0.01 – 0.42 2.08 0.037
Observations 5068
R2 / R2 adjusted 0.114 / 0.110

Moderator: Trump perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Trump,
           y = PO_enviro,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(1,5)) +
  xlab("Perceptions of Trump") +
  ylab("Pro-Environment Policies") +
  facet_wrap(~wave.plot)

tab_model(lm(PO_enviro ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Trump.c, data = d), show.stat = T)
  PO enviro
Predictors Estimates CI Statistic p
(Intercept) 0.32 0.25 – 0.39 9.20 <0.001
pHar Tru -0.78 -0.91 – -0.66 -12.35 <0.001
pOth Party 0.36 0.19 – 0.54 4.03 <0.001
lin wave 0.13 -0.04 – 0.30 1.47 0.141
quad wave -0.03 -0.30 – 0.25 -0.19 0.852
cub wave 0.00 -0.18 – 0.18 0.02 0.982
Trump c -0.07 -0.12 – -0.02 -2.69 0.007
pHar Tru × lin wave 0.13 -0.18 – 0.44 0.80 0.422
pHar Tru × quad wave -0.12 -0.62 – 0.38 -0.48 0.631
pHar Tru × cub wave 0.04 -0.28 – 0.36 0.25 0.801
pOth Party × lin wave -0.06 -0.49 – 0.38 -0.25 0.801
pOth Party × quad wave 0.02 -0.69 – 0.72 0.04 0.964
pOth Party × cub wave -0.09 -0.55 – 0.37 -0.39 0.696
pHar Tru × Trump c 0.01 -0.07 – 0.09 0.18 0.859
pOth Party × Trump c 0.06 -0.08 – 0.20 0.87 0.383
lin wave × Trump c 0.08 -0.04 – 0.21 1.34 0.181
quad wave × Trump c -0.02 -0.22 – 0.19 -0.17 0.868
cub wave × Trump c 0.08 -0.05 – 0.22 1.22 0.224
(pHar Tru × lin wave) ×
Trump c
-0.11 -0.31 – 0.08 -1.12 0.263
(pHar Tru × quad wave) ×
Trump c
-0.07 -0.38 – 0.25 -0.43 0.669
(pHar Tru × cub wave) ×
Trump c
0.21 0.01 – 0.41 2.02 0.043
(pOth Party × lin wave) ×
Trump c
-0.20 -0.52 – 0.13 -1.18 0.238
(pOth Party × quad wave)
× Trump c
0.17 -0.37 – 0.71 0.61 0.543
(pOth Party × cub wave) ×
Trump c
0.00 -0.36 – 0.36 0.01 0.991
Observations 5000
R2 / R2 adjusted 0.097 / 0.093

Person Perceptions

Trump

ggplot(d[!is.na(d$party_factor),],
       aes(x = factor(party_factor),
           y = Trump,
           fill = factor(party_factor))) +
  geom_jitter(aes(color = party_factor),
             alpha = .4, size = .2,
             width = .4, height = .1) +
    stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.2, 
               fun.args = list(mult = 1)) +
  geom_point(aes(color = party_factor),
             stat = "summary",
             fun = "mean",
             position = position_dodge(.9),
             size = 2) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +  
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Party ID", values = c("dodgerblue", "grey42","red3")) +
  scale_color_manual("Party ID", values = c("dodgerblue", "grey42","red3")) +
  xlab("Study Wave") +
  ylab("Trump Perception") +
  facet_grid(~wave.plot)

# d$ideo_factor <- factor(d$ideo_factor, levels = c("Liberal", "Moderate", "Conservative"))

# ggplot(d[!is.na(d$ideo_factor),],
#       aes(x = factor(ideo_factor),
#           y = Trump,
#           fill = factor(ideo_factor))) +
#  geom_bar(stat = "summary",
#           fun = "mean",
#           position = position_dodge(.9)) +
#  stat_summary(fun.data = mean_se, 
#               geom = "errorbar", 
#               position = position_dodge(.9), 
#               width=.1, 
#               fun.args = list(mult = 1)) +
#  theme_bw() +
#  scale_fill_manual("Ideology", values = c("dodgerblue", #"mediumorchid4","red3")) +
#  xlab("Study Wave") +
#  ylab("Trump Perception") +
#  facet_wrap(~wave.plot)

tab_model(lm(Trump ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Trump
Predictors Estimates CI Statistic p
(Intercept) 2.58 2.54 – 2.62 127.20 <0.001
pHar Tru 2.35 2.29 – 2.41 74.24 <0.001
pOth Party 0.71 0.60 – 0.82 13.09 <0.001
lin wave 0.00 -0.09 – 0.10 0.05 0.962
quad wave -0.26 -0.42 – -0.11 -3.26 0.001
cub wave 0.14 0.03 – 0.24 2.59 0.010
pHar Tru × lin wave -0.13 -0.29 – 0.03 -1.63 0.103
pHar Tru × quad wave -0.10 -0.35 – 0.15 -0.76 0.445
pHar Tru × cub wave -0.11 -0.27 – 0.05 -1.36 0.173
pOth Party × lin wave -0.08 -0.33 – 0.18 -0.58 0.560
pOth Party × quad wave 0.01 -0.42 – 0.43 0.03 0.977
pOth Party × cub wave -0.33 -0.61 – -0.05 -2.33 0.020
Observations 5000
R2 / R2 adjusted 0.547 / 0.546

Moderator: Election Importance

p2 <- ggplot(d[!is.na(d$presVote),],
       aes(x = ElectionImpCountry,
           y = Trump,
           fill = factor(presVote))) +
  geom_jitter(aes(color = presVote),
              size = .4, alpha = .3,
              height = .1, width = .5) +
  geom_smooth(method = "lm", aes(color = presVote), se = F) +
  theme_bw() +
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,3)) +
  xlab("Election Importance (Country)") +
  ylab("Perceptions of Trump") +
  facet_grid(.~wave.plot)

tab_model(lm(Trump ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * electimpCty.c, data = d), show.stat = T)
  Trump
Predictors Estimates CI Statistic p
(Intercept) 2.58 2.53 – 2.62 116.45 <0.001
pHar Tru 2.31 2.24 – 2.37 74.24 <0.001
pOth Party 0.67 0.55 – 0.79 10.99 <0.001
lin wave -0.06 -0.16 – 0.04 -1.12 0.262
quad wave -0.31 -0.48 – -0.14 -3.49 <0.001
cub wave 0.11 -0.01 – 0.22 1.85 0.064
electimpCty c 0.04 0.02 – 0.06 3.47 0.001
pHar Tru × lin wave -0.02 -0.17 – 0.14 -0.19 0.848
pHar Tru × quad wave -0.08 -0.32 – 0.16 -0.63 0.527
pHar Tru × cub wave -0.04 -0.19 – 0.12 -0.49 0.627
pOth Party × lin wave 0.03 -0.25 – 0.32 0.23 0.817
pOth Party × quad wave 0.30 -0.18 – 0.77 1.21 0.224
pOth Party × cub wave -0.27 -0.59 – 0.05 -1.68 0.093
pHar Tru × electimpCty c 0.38 0.33 – 0.42 17.20 <0.001
pOth Party × electimpCty
c
0.03 -0.03 – 0.08 0.86 0.390
lin wave × electimpCty c -0.00 -0.06 – 0.05 -0.06 0.948
quad wave × electimpCty c -0.09 -0.18 – 0.01 -1.83 0.067
cub wave × electimpCty c 0.01 -0.05 – 0.07 0.21 0.835
(pHar Tru × lin wave) ×
electimpCty c
0.01 -0.10 – 0.12 0.12 0.903
(pHar Tru × quad wave) ×
electimpCty c
0.15 -0.02 – 0.32 1.72 0.086
(pHar Tru × cub wave) ×
electimpCty c
-0.01 -0.12 – 0.10 -0.22 0.824
(pOth Party × lin wave) ×
electimpCty c
0.19 0.06 – 0.33 2.74 0.006
(pOth Party × quad wave)
× electimpCty c
0.19 -0.04 – 0.42 1.59 0.113
(pOth Party × cub wave) ×
electimpCty c
0.12 -0.03 – 0.27 1.53 0.126
Observations 4996
R2 / R2 adjusted 0.575 / 0.573
p1 <- ggplot(d[!is.na(d$party_factor),],
       aes(x = ElectionImpCountry,
           y = Trump,
           fill = factor(party_factor))) +
  geom_jitter(aes(color = party_factor),
              size = .4, alpha = .3,
              height = .1, width = .5) +
  geom_smooth(method = "lm", aes(color = party_factor), se = F) +
  theme_bw() +
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Partisan ID", values = c("dodgerblue", "grey42", "red3")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  scale_color_manual("Partisan ID", values = c("dodgerblue", "grey42", "red3")) +
  scale_x_continuous(breaks = seq(-3,3)) +
  xlab("Election Importance (Country)") +
  ylab("Perceptions of Trump") +
  facet_grid(.~wave.plot)

p1 / p2

Effects

  • No moderation by time
  • Election importance predicted perceptions of Trump positively for Trump voters and negatively for Harris voters (b = 0.38, p < .001)

Moderator: Harris

p1 <- ggplot(d[!is.na(d$party_factor),],
       aes(x = Harris,
           y = Trump,
           fill = factor(party_factor))) +
  geom_jitter(aes(color = party_factor),
              size = .4, alpha = .3,
              height = .1, width = .5) +
  geom_smooth(method = "lm", aes(color = party_factor), se = F) +
  theme_bw() +
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Partisan ID", values = c("dodgerblue","grey42","red3")) +
  scale_color_manual("Partisan ID", values = c("dodgerblue","grey42","red3")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  xlab("Perceptions of Harris") +
  ylab("Perceptions of Trump") +
  facet_grid(.~wave.plot)

p2 <- ggplot(d[!is.na(d$presVote),],
       aes(x = Harris,
           y = Trump,
           fill = factor(presVote))) +
  geom_jitter(aes(color = presVote),
              size = .4, alpha = .3,
              height = .1, width = .5) +
  geom_smooth(method = "lm", aes(color = presVote), se = F) +
  theme_bw() +
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3","grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3","grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  xlab("Perceptions of Harris") +
  ylab("Perceptions of Trump") +
  facet_grid(.~wave.plot)

tab_model(lm(Trump ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Harris.c, data = d), show.stat = T)
  Trump
Predictors Estimates CI Statistic p
(Intercept) 2.65 2.60 – 2.70 104.98 <0.001
pHar Tru 2.28 2.19 – 2.36 51.54 <0.001
pOth Party 0.50 0.37 – 0.63 7.66 <0.001
lin wave -0.01 -0.13 – 0.11 -0.12 0.902
quad wave -0.32 -0.52 – -0.13 -3.22 0.001
cub wave 0.22 0.09 – 0.35 3.30 0.001
Harris c 0.10 0.06 – 0.14 5.21 <0.001
pHar Tru × lin wave 0.05 -0.17 – 0.26 0.41 0.682
pHar Tru × quad wave -0.02 -0.36 – 0.33 -0.09 0.931
pHar Tru × cub wave -0.06 -0.28 – 0.16 -0.51 0.614
pOth Party × lin wave 0.00 -0.30 – 0.30 0.01 0.995
pOth Party × quad wave -0.03 -0.54 – 0.48 -0.11 0.911
pOth Party × cub wave -0.49 -0.83 – -0.14 -2.77 0.006
pHar Tru × Harris c 0.00 -0.06 – 0.06 0.03 0.978
pOth Party × Harris c -0.40 -0.50 – -0.30 -7.67 <0.001
lin wave × Harris c 0.07 -0.02 – 0.16 1.62 0.105
quad wave × Harris c 0.05 -0.10 – 0.20 0.66 0.511
cub wave × Harris c 0.14 0.04 – 0.24 2.67 0.008
(pHar Tru × lin wave) ×
Harris c
0.04 -0.11 – 0.18 0.50 0.620
(pHar Tru × quad wave) ×
Harris c
-0.07 -0.30 – 0.15 -0.64 0.524
(pHar Tru × cub wave) ×
Harris c
0.05 -0.09 – 0.19 0.67 0.506
(pOth Party × lin wave) ×
Harris c
0.02 -0.22 – 0.26 0.16 0.870
(pOth Party × quad wave)
× Harris c
0.02 -0.40 – 0.43 0.07 0.943
(pOth Party × cub wave) ×
Harris c
-0.35 -0.63 – -0.07 -2.44 0.015
Observations 4928
R2 / R2 adjusted 0.556 / 0.554
p1 / p2

Effects

  • No moderation by time
  • Election importance predicted perceptions of Trump positively for Trump voters and negatively for Harris voters (b = 0.38, p < .001)

Harris

ggplot(d[!is.na(d$party_factor),],
       aes(x = factor(party_factor),
           y = Harris,
           fill = factor(party_factor))) +
  geom_jitter(aes(color = party_factor),
             alpha = .4, size = .2,
             width = .4, height = .1) +
    stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.2, 
               fun.args = list(mult = 1)) +
  geom_point(aes(color = party_factor),
             stat = "summary",
             fun = "mean",
             position = position_dodge(.9),
             size = 2) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +  
  coord_cartesian(ylim = c(1,5)) +
  scale_fill_manual("Party ID", values = c("dodgerblue", "grey42","red3")) +
  scale_color_manual("Party ID", values = c("dodgerblue", "grey42","red3")) +
  xlab("Study Wave") +
  ylab("Harris Perception") +
  facet_grid(~wave.plot)

ggplot(d[!is.na(d$ideo_factor),],
       aes(x = factor(ideo_factor),
           y = Harris,
           fill = factor(ideo_factor))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Ideology", values = c("dodgerblue", "mediumorchid4","red3")) +
  xlab("Study Wave") +
  ylab("Harris Perception") +
  facet_wrap(~wave.plot)

Musk

round(cor(d[,c("Musk_comp","Musk_int","Musk_trust","Musk_like")], use = "pairwise.complete.obs"),2)
##            Musk_comp Musk_int Musk_trust Musk_like
## Musk_comp       1.00     0.80       0.74      0.73
## Musk_int        0.80     1.00       0.62      0.62
## Musk_trust      0.74     0.62       1.00      0.87
## Musk_like       0.73     0.62       0.87      1.00
d$Musk_Warmth <- rowMeans(d[,c("Musk_trust", "Musk_like")],na.rm = T)
d$Musk_Competence <- rowMeans(d[,c("Musk_comp", "Musk_int")],na.rm = T)

cor.test(d$Musk_Warmth, d$Musk_Competence)
## 
##  Pearson's product-moment correlation
## 
## data:  d$Musk_Warmth and d$Musk_Competence
## t = 76.609, df = 4867, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.7263628 0.7518420
## sample estimates:
##      cor 
## 0.739367
ggplot(d[!is.na(d$party_factor),],
       aes(x = factor(party_factor),
           y = Musk,
           fill = factor(party_factor))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Party ID", values = c("dodgerblue", "grey42","red3")) +
  xlab("Study Wave") +
  ylab("Musk Perception") +
  coord_cartesian(ylim = c(0,5)) +
  facet_wrap(~wave.plot)

ggplot(d[!is.na(d$ideo_factor),],
       aes(x = factor(ideo_factor),
           y = Musk,
           fill = factor(ideo_factor))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Ideology", values = c("dodgerblue", "mediumorchid4","red3")) +
  xlab("Study Wave") +
  ylab("Musk Perception") +
  facet_wrap(~wave.plot)

Warmth and Competence Separately

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = factor(presVote),
           y = Musk_Competence,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Musk Perception (Competence)") +
  coord_cartesian(ylim = c(0,5)) +
  facet_grid(~wave.plot)

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = factor(presVote),
           y = Musk_Warmth,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Musk Perception (Warmth)") +
  coord_cartesian(ylim = c(0,5)) +
  facet_grid(~wave.plot)

Used as Moderators: EV

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk_Competence,
           y = PA_1,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Elon Musk (Competence)") +
  ylab("Buy EV") +
  facet_grid(~wave.plot)

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Musk_Competence, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -1.02 -1.26 – -0.79 -8.58 <0.001
pHar Tru -0.49 -0.93 – -0.06 -2.24 0.025
pOth Party 0.29 -0.30 – 0.88 0.95 0.340
lin wave -0.53 -1.11 – 0.04 -1.82 0.070
quad wave -0.82 -1.75 – 0.12 -1.71 0.088
cub wave -0.30 -0.91 – 0.31 -0.96 0.335
Musk Competence 0.15 0.08 – 0.21 4.28 <0.001
pHar Tru × lin wave -0.05 -1.11 – 1.02 -0.08 0.934
pHar Tru × quad wave -0.72 -2.45 – 1.01 -0.82 0.413
pHar Tru × cub wave 0.26 -0.86 – 1.38 0.45 0.653
pOth Party × lin wave -0.77 -2.23 – 0.70 -1.03 0.304
pOth Party × quad wave -0.14 -2.52 – 2.24 -0.12 0.908
pOth Party × cub wave 0.97 -0.58 – 2.51 1.23 0.219
pHar Tru × Musk
Competence
-0.12 -0.23 – -0.01 -2.09 0.037
pOth Party × Musk
Competence
-0.00 -0.18 – 0.17 -0.00 0.996
lin wave × Musk
Competence
0.13 -0.03 – 0.30 1.56 0.119
quad wave × Musk
Competence
0.22 -0.05 – 0.48 1.59 0.111
cub wave × Musk
Competence
0.15 -0.02 – 0.32 1.70 0.088
(pHar Tru × lin wave) ×
Musk Competence
0.07 -0.21 – 0.35 0.49 0.626
(pHar Tru × quad wave) ×
Musk Competence
-0.02 -0.47 – 0.42 -0.10 0.919
(pHar Tru × cub wave) ×
Musk Competence
0.02 -0.26 – 0.31 0.17 0.868
(pOth Party × lin wave) ×
Musk Competence
0.31 -0.13 – 0.75 1.38 0.167
(pOth Party × quad wave)
× Musk Competence
0.03 -0.67 – 0.73 0.09 0.928
(pOth Party × cub wave) ×
Musk Competence
-0.36 -0.81 – 0.09 -1.57 0.117
Observations 4475
R2 / R2 adjusted 0.045 / 0.040
ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk_Warmth,
           y = PA_1,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Elon Musk (Warmth)") +
  ylab("Avoid ICE-affiliated Businesses") +
  facet_grid(~wave.plot)

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Musk_Warmth, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -1.24 -1.43 – -1.05 -12.64 <0.001
pHar Tru -0.94 -1.26 – -0.61 -5.63 <0.001
pOth Party 0.21 -0.29 – 0.71 0.81 0.416
lin wave -0.71 -1.17 – -0.24 -2.99 0.003
quad wave -0.16 -0.93 – 0.61 -0.41 0.683
cub wave -0.57 -1.08 – -0.06 -2.20 0.028
Musk Warmth 0.27 0.19 – 0.34 7.26 <0.001
pHar Tru × lin wave -0.08 -0.88 – 0.72 -0.20 0.843
pHar Tru × quad wave -0.23 -1.53 – 1.08 -0.34 0.735
pHar Tru × cub wave 0.04 -0.81 – 0.89 0.10 0.923
pOth Party × lin wave -0.02 -1.22 – 1.18 -0.04 0.971
pOth Party × quad wave -0.31 -2.32 – 1.70 -0.30 0.764
pOth Party × cub wave 0.98 -0.36 – 2.32 1.44 0.150
pHar Tru × Musk Warmth -0.08 -0.19 – 0.03 -1.39 0.166
pOth Party × Musk Warmth 0.01 -0.18 – 0.20 0.10 0.921
lin wave × Musk Warmth 0.25 0.08 – 0.43 2.84 0.005
quad wave × Musk Warmth 0.08 -0.21 – 0.37 0.55 0.579
cub wave × Musk Warmth 0.28 0.10 – 0.47 2.97 0.003
(pHar Tru × lin wave) ×
Musk Warmth
0.08 -0.19 – 0.35 0.58 0.564
(pHar Tru × quad wave) ×
Musk Warmth
-0.11 -0.54 – 0.33 -0.49 0.626
(pHar Tru × cub wave) ×
Musk Warmth
0.06 -0.21 – 0.34 0.46 0.645
(pOth Party × lin wave) ×
Musk Warmth
0.07 -0.40 – 0.54 0.30 0.765
(pOth Party × quad wave)
× Musk Warmth
0.10 -0.67 – 0.88 0.26 0.792
(pOth Party × cub wave) ×
Musk Warmth
-0.46 -0.98 – 0.05 -1.78 0.076
Observations 4479
R2 / R2 adjusted 0.059 / 0.054

Swift

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = Swift,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Swift Perception") +
  facet_grid(~wave.plot)

ggplot(d[!is.na(d$ideo_factor),],
       aes(x = factor(ideo_factor),
           y = Swift,
           fill = factor(ideo_factor))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  scale_fill_manual("Ideology", values = c("dodgerblue", "mediumorchid4","red3")) +
  xlab("Study Wave") +
  ylab("Swift Perception") +
  facet_wrap(~wave.plot)

ANALYSES: HYPOTHESIS-DRIVEN

Do conservatives moderate over time?

Pro-environment attitudes

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PO_enviro,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Pro-Environment Policies") +
  facet_grid(.~wave.plot)

Moderators: Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$ElectImp_bins),],
       aes(x = Filibuster,
           y = PO_enviro,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Filibuster Support") +
  ylab("Pro-Environment Policies") +
  facet_grid(.~wave.plot)

tab_model(lm(PO_enviro ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Filibuster.c, data = d), show.stat = T)
  PO enviro
Predictors Estimates CI Statistic p
(Intercept) 0.33 0.28 – 0.38 12.34 <0.001
pHar Tru -0.90 -0.99 – -0.82 -21.27 <0.001
pOth Party 0.30 0.16 – 0.44 4.29 <0.001
wave helm 123 4 0.05 -0.07 – 0.18 0.83 0.406
wave helm 12 3 -0.01 -0.14 – 0.12 -0.14 0.892
wave helm 1 2 0.06 -0.08 – 0.20 0.82 0.415
Filibuster c -0.00 -0.04 – 0.03 -0.20 0.839
pHar Tru × wave helm 123
4
0.13 -0.08 – 0.33 1.20 0.229
pHar Tru × wave helm 12 3 -0.08 -0.28 – 0.12 -0.76 0.446
pHar Tru × wave helm 1 2 0.23 0.01 – 0.45 2.04 0.041
pOth Party × wave helm
123 4
-0.08 -0.40 – 0.25 -0.46 0.646
pOth Party × wave helm 12
3
-0.00 -0.36 – 0.35 -0.01 0.988
pOth Party × wave helm 1
2
0.16 -0.21 – 0.54 0.86 0.387
pHar Tru × Filibuster c 0.09 0.04 – 0.14 3.65 <0.001
pOth Party × Filibuster c 0.13 0.03 – 0.22 2.60 0.009
wave helm 123 4 ×
Filibuster c
0.17 0.08 – 0.25 3.90 <0.001
wave helm 12 3 ×
Filibuster c
0.01 -0.07 – 0.10 0.28 0.782
wave helm 1 2 ×
Filibuster c
0.06 -0.03 – 0.16 1.29 0.197
(pHar Tru × wave helm 123
4) × Filibuster c
0.19 0.07 – 0.31 3.08 0.002
(pHar Tru × wave helm 12
3) × Filibuster c
0.00 -0.11 – 0.12 0.07 0.941
(pHar Tru × wave helm 1
2) × Filibuster c
-0.04 -0.18 – 0.09 -0.67 0.501
(pOth Party × wave helm
123 4) × Filibuster c
-0.09 -0.32 – 0.14 -0.75 0.452
(pOth Party × wave helm
12 3) × Filibuster c
0.07 -0.17 – 0.31 0.59 0.554
(pOth Party × wave helm 1
2) × Filibuster c
-0.02 -0.29 – 0.24 -0.17 0.865
Observations 5070
R2 / R2 adjusted 0.104 / 0.100
tab_model(lm(PO_enviro ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  PO enviro
Predictors Estimates CI Statistic p
(Intercept) 0.33 0.28 – 0.38 12.34 <0.001
pHar Tru -0.90 -0.99 – -0.82 -21.27 <0.001
pOth Party 0.30 0.16 – 0.44 4.29 <0.001
lin wave 0.05 -0.08 – 0.18 0.73 0.468
quad wave 0.00 -0.21 – 0.21 0.00 0.997
cub wave 0.06 -0.07 – 0.20 0.90 0.371
Filibuster c -0.00 -0.04 – 0.03 -0.20 0.839
pHar Tru × lin wave 0.10 -0.11 – 0.31 0.89 0.372
pHar Tru × quad wave -0.05 -0.38 – 0.28 -0.30 0.766
pHar Tru × cub wave 0.24 0.03 – 0.45 2.24 0.025
pOth Party × lin wave -0.03 -0.37 – 0.31 -0.17 0.863
pOth Party × quad wave -0.24 -0.79 – 0.32 -0.84 0.400
pOth Party × cub wave 0.07 -0.29 – 0.43 0.38 0.706
pHar Tru × Filibuster c 0.09 0.04 – 0.14 3.65 <0.001
pOth Party × Filibuster c 0.13 0.03 – 0.22 2.60 0.009
lin wave × Filibuster c 0.15 0.07 – 0.24 3.48 0.001
quad wave × Filibuster c 0.10 -0.05 – 0.24 1.33 0.183
cub wave × Filibuster c 0.10 0.01 – 0.19 2.07 0.039
(pHar Tru × lin wave) ×
Filibuster c
0.15 0.02 – 0.27 2.32 0.020
(pHar Tru × quad wave) ×
Filibuster c
0.23 0.04 – 0.43 2.33 0.020
(pHar Tru × cub wave) ×
Filibuster c
0.05 -0.08 – 0.17 0.74 0.458
(pOth Party × lin wave) ×
Filibuster c
-0.03 -0.26 – 0.21 -0.22 0.826
(pOth Party × quad wave)
× Filibuster c
-0.11 -0.50 – 0.27 -0.57 0.568
(pOth Party × cub wave) ×
Filibuster c
-0.10 -0.35 – 0.15 -0.75 0.451
Observations 5070
R2 / R2 adjusted 0.104 / 0.100
## Model analysis
poenv.m1 <- lm(PO_enviro ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d)

coeftest(poenv.m1, vcov = vcovHC(poenv.m1, type = "HC3"))
## 
## t test of coefficients:
## 
##                                      Estimate  Std. Error  t value  Pr(>|t|)
## (Intercept)                        0.32817858  0.02598396  12.6300 < 2.2e-16
## pHar_Tru                          -0.90270398  0.04209211 -21.4459 < 2.2e-16
## pOth_Party                         0.30376860  0.06890345   4.4086 1.062e-05
## lin.wave                           0.04750108  0.06267084   0.7579  0.448519
## quad.wave                          0.00046641  0.10393584   0.0045  0.996420
## cub.wave                           0.06183717  0.06866216   0.9006  0.367844
## Filibuster.c                      -0.00365103  0.02272540  -0.1607  0.872369
## pHar_Tru:lin.wave                  0.09587848  0.10759345   0.8911  0.372908
## pHar_Tru:quad.wave                -0.05050509  0.16836843  -0.3000  0.764214
## pHar_Tru:cub.wave                  0.24033662  0.10536599   2.2810  0.022592
## pOth_Party:lin.wave               -0.02980510  0.16329865  -0.1825  0.855183
## pOth_Party:quad.wave              -0.23855602  0.27561382  -0.8655  0.386781
## pOth_Party:cub.wave                0.06985532  0.18467250   0.3783  0.705249
## pHar_Tru:Filibuster.c              0.09166472  0.02907490   3.1527  0.001627
## pOth_Party:Filibuster.c            0.12788718  0.06335600   2.0185  0.043587
## lin.wave:Filibuster.c              0.15399704  0.05434378   2.8338  0.004619
## quad.wave:Filibuster.c             0.09547583  0.09090161   1.0503  0.293621
## cub.wave:Filibuster.c              0.09625050  0.06047508   1.5916  0.111543
## pHar_Tru:lin.wave:Filibuster.c     0.14780658  0.07397635   1.9980  0.045768
## pHar_Tru:quad.wave:Filibuster.c    0.23411340  0.11629959   2.0130  0.044166
## pHar_Tru:cub.wave:Filibuster.c     0.04705762  0.07312985   0.6435  0.519942
## pOth_Party:lin.wave:Filibuster.c  -0.02651528  0.14991613  -0.1769  0.859620
## pOth_Party:quad.wave:Filibuster.c -0.11256393  0.25342400  -0.4442  0.656937
## pOth_Party:cub.wave:Filibuster.c  -0.09680051  0.17001216  -0.5694  0.569128
##                                      
## (Intercept)                       ***
## pHar_Tru                          ***
## pOth_Party                        ***
## lin.wave                             
## quad.wave                            
## cub.wave                             
## Filibuster.c                         
## pHar_Tru:lin.wave                    
## pHar_Tru:quad.wave                   
## pHar_Tru:cub.wave                 *  
## pOth_Party:lin.wave                  
## pOth_Party:quad.wave                 
## pOth_Party:cub.wave                  
## pHar_Tru:Filibuster.c             ** 
## pOth_Party:Filibuster.c           *  
## lin.wave:Filibuster.c             ** 
## quad.wave:Filibuster.c               
## cub.wave:Filibuster.c                
## pHar_Tru:lin.wave:Filibuster.c    *  
## pHar_Tru:quad.wave:Filibuster.c   *  
## pHar_Tru:cub.wave:Filibuster.c       
## pOth_Party:lin.wave:Filibuster.c     
## pOth_Party:quad.wave:Filibuster.c    
## pOth_Party:cub.wave:Filibuster.c     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Just trump supporters
tab_model(lm(PO_enviro ~ (pTru_Oth.d + pTru_Har.d) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  PO enviro
Predictors Estimates CI Statistic p
(Intercept) -0.02 -0.08 – 0.04 -0.75 0.451
pTru Oth d 0.15 0.00 – 0.29 2.01 0.045
pTru Har d 0.90 0.82 – 0.99 21.27 <0.001
lin wave 0.09 -0.06 – 0.23 1.17 0.244
quad wave -0.10 -0.33 – 0.12 -0.90 0.370
cub wave 0.21 0.06 – 0.35 2.78 0.005
Filibuster c 0.08 0.05 – 0.12 4.98 <0.001
pTru Oth d × lin wave -0.02 -0.37 – 0.33 -0.10 0.920
pTru Oth d × quad wave 0.26 -0.31 – 0.84 0.90 0.370
pTru Oth d × cub wave -0.19 -0.57 – 0.19 -0.99 0.322
pTru Har d × lin wave -0.10 -0.31 – 0.11 -0.89 0.372
pTru Har d × quad wave 0.05 -0.28 – 0.38 0.30 0.766
pTru Har d × cub wave -0.24 -0.45 – -0.03 -2.24 0.025
pTru Oth d × Filibuster c -0.17 -0.27 – -0.07 -3.44 0.001
pTru Har d × Filibuster c -0.09 -0.14 – -0.04 -3.65 <0.001
lin wave × Filibuster c 0.22 0.14 – 0.30 5.12 <0.001
quad wave × Filibuster c 0.18 0.04 – 0.31 2.57 0.010
cub wave × Filibuster c 0.09 0.00 – 0.17 2.02 0.044
(pTru Oth d × lin wave) ×
Filibuster c
-0.05 -0.29 – 0.20 -0.38 0.702
(pTru Oth d × quad wave)
× Filibuster c
-0.00 -0.40 – 0.39 -0.02 0.982
(pTru Oth d × cub wave) ×
Filibuster c
0.07 -0.18 – 0.33 0.56 0.578
(pTru Har d × lin wave) ×
Filibuster c
-0.15 -0.27 – -0.02 -2.32 0.020
(pTru Har d × quad wave)
× Filibuster c
-0.23 -0.43 – -0.04 -2.33 0.020
(pTru Har d × cub wave) ×
Filibuster c
-0.05 -0.17 – 0.08 -0.74 0.458
Observations 5070
R2 / R2 adjusted 0.104 / 0.100

Effects

  • Trump voters less supportive of enviro policy than Harris voters overall (b = -0.90, p < .001)
  • Filibuster support not overall predictive of enviro policy support (p = .84) but interacts with vote preference (Harris vs. Trump; b = 0.09, p < .001) and time (b = 0.15, p = .001)
  • For Trump voters:
    • Enviro policy support positively associated with Filibuster support (b = .08, p < .001)
    • Filibuster - enviro policy support link became stronger over time (b = 0.22, p < .001)

Deportation policy

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PO_illegalimm,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Anti-Immigrant Policy Support") +
  facet_grid(.~wave.plot)

Moderators: Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$ElectImp_bins),],
       aes(x = Filibuster,
           y = PO_illegalimm,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Filibuster Support") +
  ylab("Anti-Immigrant Policy Support") +
  facet_grid(.~wave.plot)

tab_model(lm(PO_illegalimm ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Filibuster.c, data = d), show.stat = T)
  PO illegalimm
Predictors Estimates CI Statistic p
(Intercept) 0.58 0.52 – 0.64 19.15 <0.001
pHar Tru 1.22 1.13 – 1.32 25.33 <0.001
pOth Party 0.41 0.25 – 0.57 5.09 <0.001
wave helm 123 4 -0.20 -0.34 – -0.06 -2.83 0.005
wave helm 12 3 0.05 -0.10 – 0.20 0.65 0.514
wave helm 1 2 0.05 -0.11 – 0.20 0.57 0.570
Filibuster c 0.10 0.06 – 0.14 4.72 <0.001
pHar Tru × wave helm 123
4
0.30 0.06 – 0.53 2.49 0.013
pHar Tru × wave helm 12 3 0.00 -0.23 – 0.23 0.01 0.988
pHar Tru × wave helm 1 2 -0.23 -0.48 – 0.02 -1.78 0.075
pOth Party × wave helm
123 4
0.09 -0.28 – 0.46 0.49 0.627
pOth Party × wave helm 12
3
0.01 -0.39 – 0.41 0.06 0.954
pOth Party × wave helm 1
2
-0.20 -0.62 – 0.23 -0.92 0.359
pHar Tru × Filibuster c -0.02 -0.08 – 0.03 -0.77 0.443
pOth Party × Filibuster c 0.05 -0.06 – 0.16 0.91 0.363
wave helm 123 4 ×
Filibuster c
0.01 -0.09 – 0.10 0.10 0.918
wave helm 12 3 ×
Filibuster c
0.08 -0.02 – 0.18 1.61 0.106
wave helm 1 2 ×
Filibuster c
-0.05 -0.16 – 0.06 -0.91 0.365
(pHar Tru × wave helm 123
4) × Filibuster c
-0.08 -0.22 – 0.06 -1.12 0.263
(pHar Tru × wave helm 12
3) × Filibuster c
-0.04 -0.18 – 0.09 -0.62 0.533
(pHar Tru × wave helm 1
2) × Filibuster c
0.10 -0.05 – 0.25 1.35 0.177
(pOth Party × wave helm
123 4) × Filibuster c
-0.02 -0.28 – 0.24 -0.17 0.863
(pOth Party × wave helm
12 3) × Filibuster c
-0.20 -0.47 – 0.07 -1.46 0.145
(pOth Party × wave helm 1
2) × Filibuster c
0.13 -0.17 – 0.43 0.82 0.414
Observations 5069
R2 / R2 adjusted 0.143 / 0.140
tab_model(lm(PO_illegalimm ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  PO illegalimm
Predictors Estimates CI Statistic p
(Intercept) 0.58 0.52 – 0.64 19.15 <0.001
pHar Tru 1.22 1.13 – 1.32 25.33 <0.001
pOth Party 0.41 0.25 – 0.57 5.09 <0.001
lin wave -0.12 -0.27 – 0.03 -1.61 0.107
quad wave -0.28 -0.52 – -0.04 -2.33 0.020
cub wave -0.09 -0.24 – 0.07 -1.10 0.270
Filibuster c 0.10 0.06 – 0.14 4.72 <0.001
pHar Tru × lin wave 0.19 -0.04 – 0.43 1.60 0.111
pHar Tru × quad wave 0.52 0.15 – 0.90 2.72 0.007
pHar Tru × cub wave -0.02 -0.26 – 0.22 -0.15 0.884
pOth Party × lin wave 0.04 -0.34 – 0.43 0.21 0.833
pOth Party × quad wave 0.28 -0.35 – 0.91 0.87 0.382
pOth Party × cub wave -0.09 -0.50 – 0.32 -0.43 0.669
pHar Tru × Filibuster c -0.02 -0.08 – 0.03 -0.77 0.443
pOth Party × Filibuster c 0.05 -0.06 – 0.16 0.91 0.363
lin wave × Filibuster c 0.05 -0.05 – 0.15 0.96 0.340
quad wave × Filibuster c 0.00 -0.16 – 0.16 0.02 0.988
cub wave × Filibuster c -0.08 -0.19 – 0.02 -1.56 0.120
(pHar Tru × lin wave) ×
Filibuster c
-0.07 -0.21 – 0.07 -0.99 0.322
(pHar Tru × quad wave) ×
Filibuster c
-0.15 -0.38 – 0.07 -1.34 0.180
(pHar Tru × cub wave) ×
Filibuster c
0.06 -0.08 – 0.20 0.81 0.421
(pOth Party × lin wave) ×
Filibuster c
-0.13 -0.40 – 0.14 -0.93 0.351
(pOth Party × quad wave)
× Filibuster c
-0.01 -0.45 – 0.43 -0.06 0.953
(pOth Party × cub wave) ×
Filibuster c
0.20 -0.09 – 0.49 1.38 0.169
Observations 5069
R2 / R2 adjusted 0.143 / 0.140
## Just trump supporters
tab_model(lm(PO_illegalimm ~ (pTru_Oth.d + pTru_Har.d) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  PO illegalimm
Predictors Estimates CI Statistic p
(Intercept) 1.33 1.26 – 1.39 40.12 <0.001
pTru Oth d -1.02 -1.18 – -0.86 -12.21 <0.001
pTru Har d -1.22 -1.32 – -1.13 -25.33 <0.001
lin wave -0.01 -0.17 – 0.15 -0.10 0.916
quad wave 0.07 -0.18 – 0.33 0.56 0.573
cub wave -0.13 -0.29 – 0.04 -1.49 0.135
Filibuster c 0.10 0.06 – 0.14 5.28 <0.001
pTru Oth d × lin wave -0.14 -0.54 – 0.26 -0.68 0.497
pTru Oth d × quad wave -0.54 -1.20 – 0.11 -1.63 0.104
pTru Oth d × cub wave 0.10 -0.33 – 0.53 0.45 0.651
pTru Har d × lin wave -0.19 -0.43 – 0.04 -1.60 0.111
pTru Har d × quad wave -0.52 -0.90 – -0.15 -2.72 0.007
pTru Har d × cub wave 0.02 -0.22 – 0.26 0.15 0.884
pTru Oth d × Filibuster c -0.04 -0.15 – 0.07 -0.69 0.487
pTru Har d × Filibuster c 0.02 -0.03 – 0.08 0.77 0.443
lin wave × Filibuster c -0.03 -0.13 – 0.06 -0.63 0.532
quad wave × Filibuster c -0.08 -0.23 – 0.07 -1.03 0.304
cub wave × Filibuster c 0.01 -0.08 – 0.11 0.28 0.782
(pTru Oth d × lin wave) ×
Filibuster c
0.16 -0.11 – 0.44 1.16 0.246
(pTru Oth d × quad wave)
× Filibuster c
0.09 -0.36 – 0.54 0.39 0.696
(pTru Oth d × cub wave) ×
Filibuster c
-0.23 -0.52 – 0.06 -1.53 0.125
(pTru Har d × lin wave) ×
Filibuster c
0.07 -0.07 – 0.21 0.99 0.322
(pTru Har d × quad wave)
× Filibuster c
0.15 -0.07 – 0.38 1.34 0.180
(pTru Har d × cub wave) ×
Filibuster c
-0.06 -0.20 – 0.08 -0.81 0.421
Observations 5069
R2 / R2 adjusted 0.143 / 0.140

Effects

  • Trump voters less supportive of enviro policy than Harris voters overall (b = -0.90, p < .001)
  • Filibuster support not overall predictive of enviro policy support (p = .84) but interacts with vote preference (Harris vs. Trump; b = 0.09, p < .001) and time (b = 0.15, p = .001)
  • For Trump voters:
    • Enviro policy support positively associated with Filibuster support (b = .08, p < .001)
    • Filibuster - enviro policy support link became stronger over time (b = 0.22, p < .001)

Moderators: Election importance

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$ElectImp_bins) & !is.na(d$Fil_bins),],
       aes(x = ElectionImpCountry,
           y = PO_illegalimm,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Election Importance") +
  ylab("Anti-Immigrant Policy Support") +
  facet_grid(.~wave.plot)

tab_model(lm(PO_illegalimm ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * electimpCty.c, data = d), show.stat = T)
  PO illegalimm
Predictors Estimates CI Statistic p
(Intercept) 0.56 0.50 – 0.63 16.91 <0.001
pHar Tru 1.21 1.11 – 1.30 25.56 <0.001
pOth Party 0.40 0.22 – 0.58 4.36 <0.001
wave helm 123 4 -0.22 -0.37 – -0.07 -2.80 0.005
wave helm 12 3 -0.07 -0.23 – 0.10 -0.81 0.420
wave helm 1 2 0.12 -0.06 – 0.29 1.32 0.187
electimpCty c 0.12 0.09 – 0.16 6.94 <0.001
pHar Tru × wave helm 123
4
0.31 0.08 – 0.54 2.66 0.008
pHar Tru × wave helm 12 3 -0.01 -0.24 – 0.21 -0.13 0.900
pHar Tru × wave helm 1 2 -0.20 -0.44 – 0.05 -1.60 0.110
pOth Party × wave helm
123 4
0.32 -0.10 – 0.73 1.51 0.131
pOth Party × wave helm 12
3
0.32 -0.14 – 0.78 1.36 0.174
pOth Party × wave helm 1
2
-0.28 -0.76 – 0.20 -1.14 0.253
pHar Tru × electimpCty c 0.37 0.30 – 0.43 11.00 <0.001
pOth Party × electimpCty
c
0.17 0.08 – 0.25 3.82 <0.001
wave helm 123 4 ×
electimpCty c
-0.04 -0.12 – 0.04 -0.88 0.381
wave helm 12 3 ×
electimpCty c
-0.05 -0.14 – 0.03 -1.19 0.233
wave helm 1 2 ×
electimpCty c
0.01 -0.08 – 0.10 0.15 0.881
(pHar Tru × wave helm 123
4) × electimpCty c
0.20 0.04 – 0.35 2.48 0.013
(pHar Tru × wave helm 12
3) × electimpCty c
-0.07 -0.23 – 0.10 -0.80 0.424
(pHar Tru × wave helm 1
2) × electimpCty c
-0.25 -0.43 – -0.08 -2.82 0.005
(pOth Party × wave helm
123 4) × electimpCty c
0.21 0.01 – 0.41 2.02 0.044
(pOth Party × wave helm
12 3) × electimpCty c
0.26 0.04 – 0.48 2.29 0.022
(pOth Party × wave helm 1
2) × electimpCty c
-0.05 -0.28 – 0.18 -0.43 0.666
Observations 5067
R2 / R2 adjusted 0.174 / 0.170
## Just trump supporters
tab_model(lm(PO_illegalimm ~ (pTru_Oth.d + pTru_Har.d) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * electimpCty.c, data = d), show.stat = T)
  PO illegalimm
Predictors Estimates CI Statistic p
(Intercept) 1.30 1.24 – 1.36 39.99 <0.001
pTru Oth d -1.00 -1.18 – -0.82 -10.65 <0.001
pTru Har d -1.21 -1.30 – -1.11 -25.56 <0.001
wave helm 123 4 0.04 -0.11 – 0.20 0.54 0.590
wave helm 12 3 0.03 -0.12 – 0.18 0.39 0.697
wave helm 1 2 -0.08 -0.24 – 0.09 -0.88 0.379
electimpCty c 0.36 0.31 – 0.41 14.98 <0.001
pTru Oth d × wave helm
123 4
-0.48 -0.90 – -0.05 -2.17 0.030
pTru Oth d × wave helm 12
3
-0.31 -0.78 – 0.16 -1.29 0.196
pTru Oth d × wave helm 1
2
0.38 -0.11 – 0.87 1.51 0.131
pTru Har d × wave helm
123 4
-0.31 -0.54 – -0.08 -2.66 0.008
pTru Har d × wave helm 12
3
0.01 -0.21 – 0.24 0.13 0.900
pTru Har d × wave helm 1
2
0.20 -0.05 – 0.44 1.60 0.110
pTru Oth d × electimpCty
c
-0.35 -0.44 – -0.26 -7.43 <0.001
pTru Har d × electimpCty
c
-0.37 -0.43 – -0.30 -11.00 <0.001
wave helm 123 4 ×
electimpCty c
0.13 0.02 – 0.25 2.23 0.026
wave helm 12 3 ×
electimpCty c
0.00 -0.12 – 0.12 0.00 0.999
wave helm 1 2 ×
electimpCty c
-0.14 -0.26 – -0.01 -2.17 0.030
(pTru Oth d × wave helm
123 4) × electimpCty c
-0.31 -0.53 – -0.09 -2.74 0.006
(pTru Oth d × wave helm
12 3) × electimpCty c
-0.23 -0.46 – 0.01 -1.87 0.062
(pTru Oth d × wave helm 1
2) × electimpCty c
0.18 -0.07 – 0.42 1.42 0.155
(pTru Har d × wave helm
123 4) × electimpCty c
-0.20 -0.35 – -0.04 -2.48 0.013
(pTru Har d × wave helm
12 3) × electimpCty c
0.07 -0.10 – 0.23 0.80 0.424
(pTru Har d × wave helm 1
2) × electimpCty c
0.25 0.08 – 0.43 2.82 0.005
Observations 5067
R2 / R2 adjusted 0.174 / 0.170

Conclusions

Yes, it looks like conservatives moderate with time across a range of policy opinions and personal actions. In particular, they show a pattern of moderating from wave 1 to wave 2, repolarizing at wave 3, and then moderating again at wave 4.

This holds true for environmental attitudes* broadly, for the policy to help migrants (which attenuates from opposition to neutral, by wave 4), and is modestly true of anti-illegal immigration policy, which slightly loses support at waves 2 and 4 relative to waves 1 and 3.

*for environmental attitudes, policy support and personal actions are highly reliable & thus were combined for analysis

How do policy perceptions change after the election?

Illegal Immigration Policy Change

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = IllegalImmChange,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Should the US be doing less/more 
to reduce illegal migration?") +
  facet_grid(.~wave.plot)

tab_model(lm(IllegalImmChange ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2), data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 1.12 1.06 – 1.17 38.51 <0.001
pHar Tru 1.26 1.17 – 1.35 27.11 <0.001
pOth Party 0.49 0.34 – 0.65 6.40 <0.001
wave helm 123 4 -0.64 -0.78 – -0.51 -9.30 <0.001
wave helm 12 3 0.01 -0.14 – 0.15 0.08 0.937
wave helm 1 2 -0.03 -0.18 – 0.12 -0.35 0.729
pHar Tru × wave helm 123
4
0.26 0.03 – 0.49 2.25 0.024
pHar Tru × wave helm 12 3 -0.23 -0.45 – -0.01 -2.07 0.038
pHar Tru × wave helm 1 2 -0.20 -0.44 – 0.04 -1.64 0.102
pOth Party × wave helm
123 4
0.04 -0.32 – 0.39 0.20 0.842
pOth Party × wave helm 12
3
0.00 -0.38 – 0.38 0.01 0.996
pOth Party × wave helm 1
2
-0.12 -0.53 – 0.28 -0.59 0.558
Observations 5068
R2 / R2 adjusted 0.160 / 0.158
tab_model(lm(IllegalImmChange ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 1.12 1.06 – 1.17 38.51 <0.001
pHar Tru 1.26 1.17 – 1.35 27.11 <0.001
pOth Party 0.49 0.34 – 0.65 6.40 <0.001
lin wave -0.52 -0.66 – -0.38 -7.27 <0.001
quad wave -0.62 -0.85 – -0.39 -5.36 <0.001
cub wave -0.28 -0.43 – -0.13 -3.68 <0.001
pHar Tru × lin wave 0.01 -0.22 – 0.24 0.12 0.902
pHar Tru × quad wave 0.61 0.25 – 0.98 3.31 0.001
pHar Tru × cub wave 0.14 -0.09 – 0.37 1.18 0.239
pOth Party × lin wave 0.01 -0.36 – 0.37 0.03 0.976
pOth Party × quad wave 0.16 -0.45 – 0.76 0.51 0.612
pOth Party × cub wave -0.06 -0.46 – 0.34 -0.29 0.771
Observations 5068
R2 / R2 adjusted 0.160 / 0.158

Moderators: Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Filibuster,
           y = IllegalImmChange,
           fill = factor(presVote))) +
  geom_jitter(alpha = .3, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Filibuster Support") +
  ylab("Should the US be doing less/more 
to reduce illegal migration?") +
  facet_grid(.~wave.plot)

tab_model(lm(IllegalImmChange ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Filibuster.c, data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 1.13 1.07 – 1.19 38.61 <0.001
pHar Tru 1.22 1.13 – 1.31 26.22 <0.001
pOth Party 0.46 0.30 – 0.61 5.86 <0.001
wave helm 123 4 -0.68 -0.82 – -0.55 -9.83 <0.001
wave helm 12 3 0.02 -0.13 – 0.16 0.21 0.832
wave helm 1 2 -0.09 -0.24 – 0.07 -1.10 0.272
Filibuster c 0.10 0.07 – 0.14 5.32 <0.001
pHar Tru × wave helm 123
4
0.35 0.12 – 0.57 2.98 0.003
pHar Tru × wave helm 12 3 -0.24 -0.46 – -0.02 -2.11 0.035
pHar Tru × wave helm 1 2 -0.16 -0.41 – 0.08 -1.32 0.185
pOth Party × wave helm
123 4
0.04 -0.31 – 0.40 0.24 0.811
pOth Party × wave helm 12
3
-0.04 -0.43 – 0.35 -0.21 0.833
pOth Party × wave helm 1
2
-0.05 -0.46 – 0.36 -0.23 0.818
pHar Tru × Filibuster c -0.05 -0.10 – 0.00 -1.80 0.072
pOth Party × Filibuster c -0.00 -0.11 – 0.10 -0.07 0.943
wave helm 123 4 ×
Filibuster c
0.02 -0.07 – 0.12 0.53 0.596
wave helm 12 3 ×
Filibuster c
0.11 0.01 – 0.20 2.18 0.029
wave helm 1 2 ×
Filibuster c
-0.12 -0.23 – -0.02 -2.30 0.022
(pHar Tru × wave helm 123
4) × Filibuster c
-0.00 -0.14 – 0.13 -0.07 0.948
(pHar Tru × wave helm 12
3) × Filibuster c
-0.01 -0.14 – 0.12 -0.22 0.823
(pHar Tru × wave helm 1
2) × Filibuster c
0.07 -0.08 – 0.21 0.92 0.358
(pOth Party × wave helm
123 4) × Filibuster c
-0.08 -0.33 – 0.17 -0.59 0.554
(pOth Party × wave helm
12 3) × Filibuster c
-0.18 -0.44 – 0.09 -1.32 0.187
(pOth Party × wave helm 1
2) × Filibuster c
0.37 0.08 – 0.66 2.52 0.012
Observations 5065
R2 / R2 adjusted 0.172 / 0.168

Effects

  • Trump voters believe more should be done about illegal migration than Harris voters (b = 1.22, p < .001)
    • Vote choice interacts with time point, both wave 4 vs. the average of waves 1 - 3 (b = 0.35, p = .003) and with waves 1 and 2 vs. 3 (b = -0.24, p = .035)
  • Filibuster support positively predictive of support for more action on illegal migration (b = 0.10, p < .001)
    • Interacts with time point, specifically waves 1 and 2 vs. 3 (b = 0.11, p = .029) and waves 1 and 2 (b = -0.12, p = .022)
  • Wave 4 respondents were more moderate on illegal migration policy compared with waves 1 - 3 on average (b = -0.68, p < .001)

Moderators: Adding Trump perception to Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$Fil_bins),],
       aes(x = Trump,
           y = IllegalImmChange,
           fill = factor(presVote))) +
  geom_jitter(alpha = .3, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Trump Perception") +
  ylab("Should the US be doing less/more 
to reduce illegal migration?") +
  facet_grid(Fil_bins~wave.plot)

tab_model(lm(IllegalImmChange ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Trump.c * Filibuster.c, data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 1.13 1.05 – 1.20 28.62 <0.001
pHar Tru 0.79 0.65 – 0.93 10.82 <0.001
pOth Party 0.27 0.07 – 0.46 2.70 0.007
wave helm 123 4 -0.65 -0.83 – -0.48 -7.21 <0.001
wave helm 12 3 0.07 -0.13 – 0.27 0.66 0.508
wave helm 1 2 -0.12 -0.32 – 0.09 -1.11 0.266
Trump c 0.20 0.14 – 0.26 6.77 <0.001
Filibuster c 0.10 0.04 – 0.15 3.53 <0.001
pHar Tru × wave helm 123
4
0.01 -0.34 – 0.36 0.06 0.952
pHar Tru × wave helm 12 3 -0.49 -0.84 – -0.14 -2.76 0.006
pHar Tru × wave helm 1 2 -0.58 -0.96 – -0.20 -2.99 0.003
pOth Party × wave helm
123 4
0.26 -0.18 – 0.70 1.17 0.244
pOth Party × wave helm 12
3
0.05 -0.46 – 0.57 0.20 0.839
pOth Party × wave helm 1
2
0.18 -0.35 – 0.70 0.66 0.510
pHar Tru × Trump c 0.09 0.00 – 0.19 2.05 0.041
pOth Party × Trump c 0.02 -0.14 – 0.17 0.22 0.826
wave helm 123 4 × Trump c 0.05 -0.07 – 0.18 0.80 0.424
wave helm 12 3 × Trump c 0.01 -0.14 – 0.17 0.18 0.857
wave helm 1 2 × Trump c 0.11 -0.04 – 0.27 1.43 0.152
pHar Tru × Filibuster c -0.10 -0.19 – -0.01 -2.28 0.022
pOth Party × Filibuster c 0.11 -0.03 – 0.26 1.52 0.128
wave helm 123 4 ×
Filibuster c
0.02 -0.10 – 0.13 0.26 0.793
wave helm 12 3 ×
Filibuster c
0.08 -0.06 – 0.22 1.07 0.283
wave helm 1 2 ×
Filibuster c
-0.08 -0.24 – 0.08 -0.95 0.344
Trump c × Filibuster c 0.02 -0.02 – 0.06 0.96 0.336
(pHar Tru × wave helm 123
4) × Trump c
-0.10 -0.32 – 0.13 -0.85 0.397
(pHar Tru × wave helm 12
3) × Trump c
-0.13 -0.35 – 0.10 -1.12 0.264
(pHar Tru × wave helm 1
2) × Trump c
-0.05 -0.29 – 0.19 -0.39 0.700
(pOth Party × wave helm
123 4) × Trump c
0.27 -0.05 – 0.59 1.63 0.103
(pOth Party × wave helm
12 3) × Trump c
0.23 -0.19 – 0.64 1.08 0.280
(pOth Party × wave helm 1
2) × Trump c
0.16 -0.26 – 0.58 0.74 0.460
(pHar Tru × wave helm 123
4) × Filibuster c
-0.03 -0.23 – 0.18 -0.28 0.782
(pHar Tru × wave helm 12
3) × Filibuster c
0.06 -0.15 – 0.28 0.60 0.546
(pHar Tru × wave helm 1
2) × Filibuster c
0.15 -0.09 – 0.38 1.23 0.218
(pOth Party × wave helm
123 4) × Filibuster c
-0.20 -0.50 – 0.09 -1.34 0.182
(pOth Party × wave helm
12 3) × Filibuster c
-0.27 -0.65 – 0.11 -1.40 0.162
(pOth Party × wave helm 1
2) × Filibuster c
0.21 -0.23 – 0.64 0.93 0.350
(pHar Tru × Trump c) ×
Filibuster c
-0.09 -0.14 – -0.04 -3.47 0.001
(pOth Party × Trump c) ×
Filibuster c
0.02 -0.08 – 0.13 0.39 0.693
(wave helm 123 4 × Trump
c) × Filibuster c
-0.02 -0.10 – 0.06 -0.46 0.646
(wave helm 12 3 × Trump
c) × Filibuster c
-0.07 -0.17 – 0.03 -1.31 0.189
(wave helm 1 2 × Trump c)
× Filibuster c
0.09 -0.02 – 0.20 1.59 0.111
(pHar Tru × wave helm 123
4 × Trump c) × Filibuster
c
0.07 -0.06 – 0.19 1.04 0.298
(pHar Tru × wave helm 12
3 × Trump c) × Filibuster
c
0.08 -0.05 – 0.21 1.21 0.225
(pHar Tru × wave helm 1 2
× Trump c) × Filibuster c
-0.02 -0.16 – 0.12 -0.28 0.781
(pOth Party × wave helm
123 4 × Trump c) ×
Filibuster c
0.10 -0.12 – 0.32 0.91 0.365
(pOth Party × wave helm
12 3 × Trump c) ×
Filibuster c
0.12 -0.16 – 0.41 0.84 0.398
(pOth Party × wave helm 1
2 × Trump c) × Filibuster
c
-0.32 -0.62 – -0.02 -2.12 0.034
Observations 4994
R2 / R2 adjusted 0.197 / 0.190

Effects

  • Trump voters believe more should be done about illegal migration than Harris voters (b = 0.79, p < .001)
    • Collapsing across time point, Harris supporters still think the government should be doing more to reduce illegal immigration (b = 0.65, 95% CI = [0.59 - 0.72], p < .001)
    • Not significant at wave 4 though (p = .28)
  • Support for reduction in illegal immigration attenuates in wave 4, relative to waves 1 - 3 (b = -0.65, p < .001)
  • Perceptions of Trump (b = 0.20, p < .001) and support for the filibuster (b = 0.10, p < .001) positively predict support for reducing illegal migration
  • Interaction effects:
    • Vote choice interacts with timepoint, both waves 1 and 2 vs. wave 3 (b = -0.49, p = .006) and waves 1 vs. 2 (b = -0.58, p = .003)
    • Vote choice interacts with Trump perception (b = 0.09, p = .041) and filibuster support (b = -0.10, p = .022)
    • Three-way interaction between vote choice, Trump perception, and filibuster support (b = -0.09, p = .001)
tab_model(lm(IllegalImmChange ~ (pHar_Tru.d + pHar_Oth.d) * (lin.wave + quad.wave + cub.wave), data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 0.65 0.59 – 0.72 19.42 <0.001
pHar Tru d 1.26 1.17 – 1.35 27.11 <0.001
pHar Oth d 0.13 -0.02 – 0.29 1.66 0.097
lin wave -0.52 -0.69 – -0.36 -6.15 <0.001
quad wave -0.88 -1.14 – -0.61 -6.52 <0.001
cub wave -0.37 -0.53 – -0.20 -4.30 <0.001
pHar Tru d × lin wave 0.01 -0.22 – 0.24 0.12 0.902
pHar Tru d × quad wave 0.61 0.25 – 0.98 3.31 0.001
pHar Tru d × cub wave 0.14 -0.09 – 0.37 1.18 0.239
pHar Oth d × lin wave 0.00 -0.39 – 0.39 0.01 0.993
pHar Oth d × quad wave 0.15 -0.48 – 0.79 0.47 0.641
pHar Oth d × cub wave 0.13 -0.29 – 0.54 0.60 0.545
Observations 5068
R2 / R2 adjusted 0.160 / 0.158
tab_model(lm(IllegalImmChange ~ (pHar_Tru.d + pHar_Oth.d) * (wave4_1 + wave4_2 + wave4_3), data = d), show.stat = T)
  Illegal Imm Change
Predictors Estimates CI Statistic p
(Intercept) 0.08 -0.07 – 0.23 1.07 0.283
pHar Tru d 1.45 1.25 – 1.66 14.02 <0.001
pHar Oth d 0.20 -0.13 – 0.54 1.22 0.224
wave4 1 0.71 0.52 – 0.89 7.44 <0.001
wave4 2 0.74 0.54 – 0.94 7.33 <0.001
wave4 3 0.84 0.65 – 1.04 8.33 <0.001
pHar Tru d × wave4 1 -0.08 -0.34 – 0.17 -0.64 0.523
pHar Tru d × wave4 2 -0.28 -0.56 – -0.01 -2.04 0.041
pHar Tru d × wave4 3 -0.41 -0.69 – -0.14 -2.97 0.003
pHar Oth d × wave4 1 -0.07 -0.49 – 0.36 -0.30 0.761
pHar Oth d × wave4 2 -0.04 -0.51 – 0.42 -0.19 0.851
pHar Oth d × wave4 3 -0.17 -0.64 – 0.30 -0.71 0.476
Observations 5068
R2 / R2 adjusted 0.160 / 0.158

Migration policy

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = MigrantsChange,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Should the US be doing less/more 
to help migrants?") +
  facet_grid(.~wave.plot)

Moderators: Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$ElectImp_bins),],
       aes(x = Filibuster,
           y = MigrantsChange,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Filibuster Support") +
  ylab("Should the US be doing less/more 
to help migrants?") +
  facet_grid(.~wave.plot)

tab_model(lm(MigrantsChange ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Filibuster.c, data = d), show.stat = T)
  Migrants Change
Predictors Estimates CI Statistic p
(Intercept) 0.28 0.21 – 0.35 7.63 <0.001
pHar Tru -1.40 -1.51 – -1.28 -24.23 <0.001
pOth Party 0.10 -0.09 – 0.29 1.00 0.317
wave helm 123 4 0.25 0.08 – 0.41 2.87 0.004
wave helm 12 3 -0.09 -0.27 – 0.09 -1.02 0.307
wave helm 1 2 -0.07 -0.26 – 0.11 -0.77 0.439
Filibuster c 0.08 0.03 – 0.13 3.38 0.001
pHar Tru × wave helm 123
4
0.07 -0.22 – 0.35 0.46 0.649
pHar Tru × wave helm 12 3 -0.12 -0.39 – 0.16 -0.83 0.404
pHar Tru × wave helm 1 2 0.12 -0.18 – 0.42 0.79 0.430
pOth Party × wave helm
123 4
0.32 -0.12 – 0.76 1.42 0.156
pOth Party × wave helm 12
3
-0.02 -0.50 – 0.46 -0.09 0.925
pOth Party × wave helm 1
2
0.19 -0.31 – 0.70 0.75 0.454
pHar Tru × Filibuster c 0.14 0.07 – 0.20 3.96 <0.001
pOth Party × Filibuster c -0.02 -0.15 – 0.11 -0.33 0.745
wave helm 123 4 ×
Filibuster c
0.15 0.03 – 0.26 2.56 0.010
wave helm 12 3 ×
Filibuster c
-0.03 -0.15 – 0.09 -0.51 0.609
wave helm 1 2 ×
Filibuster c
0.10 -0.03 – 0.23 1.50 0.135
(pHar Tru × wave helm 123
4) × Filibuster c
0.15 -0.02 – 0.31 1.71 0.087
(pHar Tru × wave helm 12
3) × Filibuster c
0.14 -0.02 – 0.30 1.73 0.084
(pHar Tru × wave helm 1
2) × Filibuster c
0.08 -0.10 – 0.26 0.87 0.383
(pOth Party × wave helm
123 4) × Filibuster c
0.11 -0.20 – 0.42 0.68 0.496
(pOth Party × wave helm
12 3) × Filibuster c
0.40 0.08 – 0.73 2.43 0.015
(pOth Party × wave helm 1
2) × Filibuster c
-0.05 -0.41 – 0.31 -0.28 0.780
Observations 5065
R2 / R2 adjusted 0.126 / 0.122
tab_model(lm(MigrantsChange ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  Migrants Change
Predictors Estimates CI Statistic p
(Intercept) 0.28 0.21 – 0.35 7.63 <0.001
pHar Tru -1.40 -1.51 – -1.28 -24.23 <0.001
pOth Party 0.10 -0.09 – 0.29 1.00 0.317
lin wave 0.12 -0.05 – 0.30 1.35 0.176
quad wave 0.38 0.10 – 0.67 2.65 0.008
cub wave 0.12 -0.07 – 0.30 1.23 0.219
Filibuster c 0.08 0.03 – 0.13 3.38 0.001
pHar Tru × lin wave -0.00 -0.29 – 0.29 -0.00 0.997
pHar Tru × quad wave 0.02 -0.43 – 0.47 0.10 0.924
pHar Tru × cub wave 0.18 -0.11 – 0.46 1.20 0.229
pOth Party × lin wave 0.28 -0.18 – 0.74 1.19 0.235
pOth Party × quad wave 0.14 -0.61 – 0.90 0.37 0.713
pOth Party × cub wave 0.26 -0.23 – 0.75 1.03 0.303
pHar Tru × Filibuster c 0.14 0.07 – 0.20 3.96 <0.001
pOth Party × Filibuster c -0.02 -0.15 – 0.11 -0.33 0.745
lin wave × Filibuster c 0.12 0.00 – 0.24 1.97 0.049
quad wave × Filibuster c 0.07 -0.12 – 0.26 0.72 0.474
cub wave × Filibuster c 0.14 0.02 – 0.26 2.21 0.027
(pHar Tru × lin wave) ×
Filibuster c
0.23 0.06 – 0.40 2.62 0.009
(pHar Tru × quad wave) ×
Filibuster c
-0.03 -0.30 – 0.24 -0.21 0.837
(pHar Tru × cub wave) ×
Filibuster c
0.01 -0.16 – 0.18 0.13 0.899
(pOth Party × lin wave) ×
Filibuster c
0.34 0.02 – 0.66 2.09 0.036
(pOth Party × quad wave)
× Filibuster c
-0.11 -0.63 – 0.42 -0.41 0.683
(pOth Party × cub wave) ×
Filibuster c
-0.26 -0.60 – 0.09 -1.46 0.143
Observations 5065
R2 / R2 adjusted 0.126 / 0.122

Effects

  • Trump voters think US gov’t should do less for migrants than Harris voters (b = -1.40, p < .001)
  • Filibuster support positively predicts increase in help for migrants (b = 0.08, p = .001), and interacts with vote choice (b = 0.14, p < .001) and time point (wave 4 vs. waves 1 - 3, b = 0.15, p = .010)

Moderators: adding in Trump perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$Fil_bins),],
       aes(x = Trump,
           y = MigrantsChange,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Trump Perception") +
  ylab("Should the US be doing less/more 
to help migrants?") +
  facet_grid(Fil_bins~wave.plot)

tab_model(lm(MigrantsChange ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Trump.c * Filibuster.c, data = d), show.stat = T)
  Migrants Change
Predictors Estimates CI Statistic p
(Intercept) 0.19 0.10 – 0.29 3.94 <0.001
pHar Tru -0.99 -1.16 – -0.81 -10.88 <0.001
pOth Party 0.10 -0.14 – 0.34 0.81 0.420
wave helm 123 4 0.14 -0.08 – 0.36 1.23 0.219
wave helm 12 3 -0.02 -0.27 – 0.23 -0.17 0.862
wave helm 1 2 0.08 -0.17 – 0.34 0.64 0.524
Trump c -0.12 -0.19 – -0.05 -3.36 0.001
Filibuster c 0.13 0.06 – 0.20 3.72 <0.001
pHar Tru × wave helm 123
4
-0.11 -0.54 – 0.33 -0.48 0.628
pHar Tru × wave helm 12 3 -0.03 -0.47 – 0.40 -0.15 0.878
pHar Tru × wave helm 1 2 -0.19 -0.67 – 0.28 -0.80 0.421
pOth Party × wave helm
123 4
0.21 -0.33 – 0.75 0.76 0.450
pOth Party × wave helm 12
3
0.07 -0.57 – 0.71 0.23 0.821
pOth Party × wave helm 1
2
0.13 -0.53 – 0.79 0.39 0.698
pHar Tru × Trump c 0.06 -0.05 – 0.18 1.12 0.262
pOth Party × Trump c -0.09 -0.28 – 0.10 -0.94 0.350
wave helm 123 4 × Trump c -0.02 -0.17 – 0.14 -0.19 0.849
wave helm 12 3 × Trump c 0.00 -0.19 – 0.19 0.04 0.967
wave helm 1 2 × Trump c 0.11 -0.09 – 0.30 1.10 0.273
pHar Tru × Filibuster c -0.22 -0.33 – -0.12 -4.10 <0.001
pOth Party × Filibuster c -0.10 -0.28 – 0.09 -1.03 0.303
wave helm 123 4 ×
Filibuster c
0.04 -0.10 – 0.19 0.57 0.567
wave helm 12 3 ×
Filibuster c
0.04 -0.14 – 0.21 0.42 0.677
wave helm 1 2 ×
Filibuster c
-0.01 -0.21 – 0.18 -0.14 0.891
Trump c × Filibuster c 0.12 0.07 – 0.17 4.93 <0.001
(pHar Tru × wave helm 123
4) × Trump c
0.30 0.03 – 0.58 2.14 0.033
(pHar Tru × wave helm 12
3) × Trump c
-0.12 -0.39 – 0.16 -0.84 0.403
(pHar Tru × wave helm 1
2) × Trump c
-0.12 -0.42 – 0.18 -0.78 0.436
(pOth Party × wave helm
123 4) × Trump c
0.19 -0.21 – 0.59 0.93 0.351
(pOth Party × wave helm
12 3) × Trump c
-0.12 -0.63 – 0.40 -0.44 0.660
(pOth Party × wave helm 1
2) × Trump c
-0.06 -0.58 – 0.46 -0.23 0.817
(pHar Tru × wave helm 123
4) × Filibuster c
0.16 -0.10 – 0.41 1.21 0.225
(pHar Tru × wave helm 12
3) × Filibuster c
0.33 0.07 – 0.60 2.50 0.013
(pHar Tru × wave helm 1
2) × Filibuster c
0.23 -0.06 – 0.52 1.53 0.125
(pOth Party × wave helm
123 4) × Filibuster c
0.12 -0.25 – 0.49 0.64 0.519
(pOth Party × wave helm
12 3) × Filibuster c
0.25 -0.22 – 0.73 1.05 0.295
(pOth Party × wave helm 1
2) × Filibuster c
-0.00 -0.54 – 0.54 -0.00 1.000
(pHar Tru × Trump c) ×
Filibuster c
-0.04 -0.10 – 0.03 -1.09 0.275
(pOth Party × Trump c) ×
Filibuster c
0.06 -0.07 – 0.19 0.91 0.364
(wave helm 123 4 × Trump
c) × Filibuster c
-0.04 -0.14 – 0.06 -0.72 0.473
(wave helm 12 3 × Trump
c) × Filibuster c
0.03 -0.09 – 0.16 0.54 0.592
(wave helm 1 2 × Trump c)
× Filibuster c
-0.10 -0.24 – 0.03 -1.48 0.139
(pHar Tru × wave helm 123
4 × Trump c) × Filibuster
c
0.15 -0.00 – 0.30 1.94 0.053
(pHar Tru × wave helm 12
3 × Trump c) × Filibuster
c
-0.02 -0.18 – 0.14 -0.28 0.778
(pHar Tru × wave helm 1 2
× Trump c) × Filibuster c
0.11 -0.07 – 0.28 1.21 0.227
(pOth Party × wave helm
123 4 × Trump c) ×
Filibuster c
0.08 -0.19 – 0.35 0.55 0.584
(pOth Party × wave helm
12 3 × Trump c) ×
Filibuster c
-0.30 -0.66 – 0.06 -1.65 0.099
(pOth Party × wave helm 1
2 × Trump c) × Filibuster
c
0.14 -0.23 – 0.52 0.75 0.452
Observations 4994
R2 / R2 adjusted 0.147 / 0.139

Effects

  • Trump supporters want gov’t to do less for migrants than Harris supporters overall (b = -0.99, p < .001)
  • Trump perception negatively predicts “migrants change” (b = -0.12, p = .001)
  • Filibuster support positively predicts “migrants change” (b = 0.13, p < .001); also interacts with vote choice (b = -0.22, p < .001)
  • Trump perception and Filibuster support interact (b = 0.12, p < .001)
  • Three-way interaction of vote choice, time point (waves 1 and 2 vs. wave 3) and filibuster support (b = 0.33, p = .013)

Environmental policy

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = environmentalChg,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
#  coord_cartesian(ylim = c(-3,3)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Should the US gov't do less/more about
climate change & the environment?") +
  facet_grid(.~wave.plot)

Moderators: Filibuster support

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$ElectImp_bins),],
       aes(x = Filibuster,
           y = environmentalChg,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Filibuster Support") +
  ylab("Should the US gov't do less/more about
climate change & the environment?") +
  facet_grid(.~wave.plot)

tab_model(lm(environmentalChg ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Filibuster.c, data = d), show.stat = T)
  environmental Chg
Predictors Estimates CI Statistic p
(Intercept) 1.17 1.11 – 1.22 41.64 <0.001
pHar Tru -1.29 -1.37 – -1.20 -28.80 <0.001
pOth Party 0.08 -0.07 – 0.23 1.07 0.285
wave helm 123 4 -0.07 -0.20 – 0.06 -1.02 0.306
wave helm 12 3 -0.15 -0.29 – -0.01 -2.17 0.030
wave helm 1 2 -0.13 -0.28 – 0.02 -1.73 0.085
Filibuster c -0.04 -0.08 – -0.00 -2.10 0.036
pHar Tru × wave helm 123
4
0.04 -0.18 – 0.26 0.34 0.734
pHar Tru × wave helm 12 3 -0.15 -0.36 – 0.06 -1.39 0.165
pHar Tru × wave helm 1 2 0.19 -0.04 – 0.42 1.61 0.107
pOth Party × wave helm
123 4
0.06 -0.28 – 0.40 0.34 0.736
pOth Party × wave helm 12
3
0.29 -0.08 – 0.67 1.56 0.119
pOth Party × wave helm 1
2
0.39 -0.00 – 0.78 1.95 0.051
pHar Tru × Filibuster c 0.09 0.04 – 0.14 3.36 0.001
pOth Party × Filibuster c 0.14 0.04 – 0.24 2.66 0.008
wave helm 123 4 ×
Filibuster c
0.16 0.07 – 0.25 3.57 <0.001
wave helm 12 3 ×
Filibuster c
-0.03 -0.12 – 0.06 -0.69 0.489
wave helm 1 2 ×
Filibuster c
0.04 -0.06 – 0.14 0.73 0.464
(pHar Tru × wave helm 123
4) × Filibuster c
0.12 -0.01 – 0.25 1.79 0.074
(pHar Tru × wave helm 12
3) × Filibuster c
0.15 0.02 – 0.27 2.30 0.021
(pHar Tru × wave helm 1
2) × Filibuster c
0.03 -0.11 – 0.16 0.36 0.716
(pOth Party × wave helm
123 4) × Filibuster c
0.06 -0.18 – 0.30 0.51 0.612
(pOth Party × wave helm
12 3) × Filibuster c
0.34 0.09 – 0.59 2.68 0.007
(pOth Party × wave helm 1
2) × Filibuster c
-0.02 -0.30 – 0.26 -0.13 0.896
Observations 5068
R2 / R2 adjusted 0.165 / 0.162
tab_model(lm(environmentalChg ~ (pHar_Tru + pOth_Party) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  environmental Chg
Predictors Estimates CI Statistic p
(Intercept) 1.17 1.11 – 1.22 41.64 <0.001
pHar Tru -1.29 -1.37 – -1.20 -28.80 <0.001
pOth Party 0.08 -0.07 – 0.23 1.07 0.285
lin wave -0.18 -0.32 – -0.05 -2.64 0.008
quad wave 0.16 -0.06 – 0.38 1.45 0.146
cub wave -0.00 -0.15 – 0.14 -0.05 0.964
Filibuster c -0.04 -0.08 – -0.00 -2.10 0.036
pHar Tru × lin wave -0.03 -0.25 – 0.19 -0.27 0.784
pHar Tru × quad wave -0.05 -0.40 – 0.30 -0.30 0.766
pHar Tru × cub wave 0.23 0.01 – 0.45 2.02 0.043
pOth Party × lin wave 0.32 -0.03 – 0.68 1.77 0.077
pOth Party × quad wave -0.53 -1.11 – 0.06 -1.77 0.077
pOth Party × cub wave 0.06 -0.32 – 0.44 0.31 0.753
pHar Tru × Filibuster c 0.09 0.04 – 0.14 3.36 0.001
pOth Party × Filibuster c 0.14 0.04 – 0.24 2.66 0.008
lin wave × Filibuster c 0.11 0.02 – 0.21 2.46 0.014
quad wave × Filibuster c 0.14 -0.00 – 0.29 1.91 0.056
cub wave × Filibuster c 0.11 0.01 – 0.20 2.21 0.027
(pHar Tru × lin wave) ×
Filibuster c
0.20 0.07 – 0.33 2.93 0.003
(pHar Tru × quad wave) ×
Filibuster c
-0.01 -0.21 – 0.20 -0.05 0.958
(pHar Tru × cub wave) ×
Filibuster c
-0.04 -0.17 – 0.10 -0.53 0.598
(pOth Party × lin wave) ×
Filibuster c
0.28 0.03 – 0.52 2.17 0.030
(pOth Party × quad wave)
× Filibuster c
-0.15 -0.55 – 0.26 -0.72 0.473
(pOth Party × cub wave) ×
Filibuster c
-0.22 -0.48 – 0.05 -1.60 0.110
Observations 5068
R2 / R2 adjusted 0.165 / 0.162

Effects

  • Trump voters think US gov’t should do less about climate change than Harris voters (b = -1.29, p < .001)
  • Filibuster support interacts with time point, particularly wave 4 vs. waves 1 - 3 (b = 0.16, p < .001)

Moderators: adding in Trump perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other" & !is.na(d$Fil_bins),],
       aes(x = Trump,
           y = environmentalChg,
           fill = factor(presVote))) +
  geom_jitter(alpha = .4, size = .5, aes(color = presVote)) +
  geom_smooth(method = "lm", aes(color = presVote), fullrange = T, se = F) +
  theme_bw() +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  scale_x_continuous(breaks = seq(-3,5)) +
  scale_y_continuous(breaks = seq(-3,5)) +
  xlab("Trump Perception") +
  ylab("Should the US gov't do less/more about
climate change & the environment?") +
  facet_grid(Fil_bins~wave.plot)

d$wave <- as.factor(d$wave)

tab_model(lm(environmentalChg ~ (pHar_Tru + pOth_Party) * (wave.helm.123_4 + wave.helm.12_3 + wave.helm.1_2) * Trump.c * Filibuster.c, data = d), show.stat = T)
  environmental Chg
Predictors Estimates CI Statistic p
(Intercept) 1.02 0.95 – 1.09 27.12 <0.001
pHar Tru -0.73 -0.87 – -0.60 -10.53 <0.001
pOth Party 0.01 -0.18 – 0.19 0.07 0.943
wave helm 123 4 -0.12 -0.29 – 0.05 -1.35 0.178
wave helm 12 3 -0.01 -0.20 – 0.18 -0.09 0.931
wave helm 1 2 -0.00 -0.20 – 0.19 -0.05 0.963
Trump c -0.20 -0.25 – -0.14 -7.14 <0.001
Filibuster c 0.02 -0.03 – 0.07 0.81 0.416
pHar Tru × wave helm 123
4
0.13 -0.20 – 0.46 0.76 0.448
pHar Tru × wave helm 12 3 -0.04 -0.37 – 0.29 -0.24 0.809
pHar Tru × wave helm 1 2 -0.21 -0.58 – 0.15 -1.15 0.252
pOth Party × wave helm
123 4
0.03 -0.39 – 0.45 0.14 0.890
pOth Party × wave helm 12
3
0.27 -0.23 – 0.76 1.06 0.291
pOth Party × wave helm 1
2
0.27 -0.23 – 0.78 1.07 0.287
pHar Tru × Trump c 0.24 0.15 – 0.33 5.46 <0.001
pOth Party × Trump c -0.07 -0.22 – 0.08 -0.93 0.354
wave helm 123 4 × Trump c -0.06 -0.18 – 0.06 -1.05 0.295
wave helm 12 3 × Trump c 0.07 -0.08 – 0.22 0.95 0.342
wave helm 1 2 × Trump c 0.10 -0.05 – 0.25 1.30 0.194
pHar Tru × Filibuster c -0.17 -0.25 – -0.09 -4.03 <0.001
pOth Party × Filibuster c 0.16 0.02 – 0.30 2.25 0.024
wave helm 123 4 ×
Filibuster c
0.13 0.02 – 0.24 2.30 0.022
wave helm 12 3 ×
Filibuster c
-0.00 -0.14 – 0.13 -0.02 0.982
wave helm 1 2 ×
Filibuster c
-0.01 -0.16 – 0.15 -0.07 0.941
Trump c × Filibuster c 0.08 0.04 – 0.11 4.11 <0.001
(pHar Tru × wave helm 123
4) × Trump c
0.10 -0.11 – 0.32 0.94 0.349
(pHar Tru × wave helm 12
3) × Trump c
-0.19 -0.40 – 0.02 -1.74 0.081
(pHar Tru × wave helm 1
2) × Trump c
-0.01 -0.24 – 0.22 -0.10 0.919
(pOth Party × wave helm
123 4) × Trump c
0.02 -0.29 – 0.32 0.10 0.923
(pOth Party × wave helm
12 3) × Trump c
-0.36 -0.76 – 0.03 -1.80 0.072
(pOth Party × wave helm 1
2) × Trump c
0.05 -0.35 – 0.45 0.26 0.791
(pHar Tru × wave helm 123
4) × Filibuster c
0.14 -0.05 – 0.34 1.43 0.153
(pHar Tru × wave helm 12
3) × Filibuster c
0.30 0.10 – 0.50 2.93 0.003
(pHar Tru × wave helm 1
2) × Filibuster c
0.24 0.01 – 0.46 2.08 0.037
(pOth Party × wave helm
123 4) × Filibuster c
0.00 -0.28 – 0.29 0.02 0.983
(pOth Party × wave helm
12 3) × Filibuster c
0.30 -0.07 – 0.66 1.60 0.110
(pOth Party × wave helm 1
2) × Filibuster c
-0.19 -0.60 – 0.23 -0.88 0.380
(pHar Tru × Trump c) ×
Filibuster c
-0.08 -0.13 – -0.03 -3.30 0.001
(pOth Party × Trump c) ×
Filibuster c
0.05 -0.05 – 0.15 0.92 0.360
(wave helm 123 4 × Trump
c) × Filibuster c
0.03 -0.05 – 0.10 0.70 0.485
(wave helm 12 3 × Trump
c) × Filibuster c
0.01 -0.09 – 0.11 0.24 0.810
(wave helm 1 2 × Trump c)
× Filibuster c
-0.05 -0.15 – 0.06 -0.88 0.379
(pHar Tru × wave helm 123
4 × Trump c) × Filibuster
c
0.07 -0.05 – 0.18 1.09 0.276
(pHar Tru × wave helm 12
3 × Trump c) × Filibuster
c
-0.02 -0.14 – 0.11 -0.25 0.802
(pHar Tru × wave helm 1 2
× Trump c) × Filibuster c
0.11 -0.02 – 0.24 1.65 0.100
(pOth Party × wave helm
123 4 × Trump c) ×
Filibuster c
-0.09 -0.29 – 0.12 -0.81 0.419
(pOth Party × wave helm
12 3 × Trump c) ×
Filibuster c
-0.17 -0.44 – 0.10 -1.22 0.224
(pOth Party × wave helm 1
2 × Trump c) × Filibuster
c
-0.08 -0.37 – 0.20 -0.56 0.573
Observations 4996
R2 / R2 adjusted 0.198 / 0.190
pm1 <- lm(environmentalChg ~ presVote * wave * Trump * Filibuster, data = d)


library(interactions)

interact_plot(
  model = pm1,
  pred = Filibuster, 
  modx = Trump,           
  mod2 = presVote,
  interval = TRUE,      
  x.label = "Filibuster Support",
  y.label = "Support for Environmental Change"
) 

Effects

  • Trump supporters think gov’t should do less about environmental issues than Harris voters (b = -0.73, p < .001)
  • Collapsing across time point, Trump supporters still think the government should be doing more about environmental issues (b = 0.55, 95% CI = [0.49 - 0.61], p < .001)
tab_model(lm(environmentalChg ~ (pTru_Oth.d + pTru_Har.d) * (lin.wave + quad.wave + cub.wave) * Filibuster.c, data = d), show.stat = T)
  environmental Chg
Predictors Estimates CI Statistic p
(Intercept) 0.55 0.49 – 0.61 17.95 <0.001
pTru Oth d 0.56 0.41 – 0.71 7.27 <0.001
pTru Har d 1.29 1.20 – 1.37 28.80 <0.001
lin wave -0.09 -0.24 – 0.06 -1.17 0.243
quad wave -0.04 -0.28 – 0.20 -0.33 0.745
cub wave 0.13 -0.02 – 0.28 1.69 0.091
Filibuster c 0.05 0.02 – 0.09 2.83 0.005
pTru Oth d × lin wave -0.31 -0.68 – 0.06 -1.62 0.106
pTru Oth d × quad wave 0.55 -0.05 – 1.16 1.79 0.073
pTru Oth d × cub wave -0.18 -0.57 – 0.22 -0.87 0.385
pTru Har d × lin wave 0.03 -0.19 – 0.25 0.27 0.784
pTru Har d × quad wave 0.05 -0.30 – 0.40 0.30 0.766
pTru Har d × cub wave -0.23 -0.45 – -0.01 -2.02 0.043
pTru Oth d × Filibuster c -0.18 -0.29 – -0.08 -3.42 0.001
pTru Har d × Filibuster c -0.09 -0.14 – -0.04 -3.36 0.001
lin wave × Filibuster c 0.30 0.22 – 0.39 6.76 <0.001
quad wave × Filibuster c 0.09 -0.05 – 0.23 1.28 0.199
cub wave × Filibuster c 0.02 -0.07 – 0.11 0.41 0.681
(pTru Oth d × lin wave) ×
Filibuster c
-0.37 -0.63 – -0.12 -2.86 0.004
(pTru Oth d × quad wave)
× Filibuster c
0.15 -0.27 – 0.57 0.71 0.476
(pTru Oth d × cub wave) ×
Filibuster c
0.23 -0.04 – 0.50 1.68 0.092
(pTru Har d × lin wave) ×
Filibuster c
-0.20 -0.33 – -0.07 -2.93 0.003
(pTru Har d × quad wave)
× Filibuster c
0.01 -0.20 – 0.21 0.05 0.958
(pTru Har d × cub wave) ×
Filibuster c
0.04 -0.10 – 0.17 0.53 0.598
Observations 5068
R2 / R2 adjusted 0.165 / 0.162

Conclusions

After Trump wins the election and particularly after he takes office, all voters attenuate toward neutral/the status quo on government’s action to curb illegal immigration. However, Harris voters are never at neutral, indicating that there is baseline support for the government doing more to curb illegal immigration among all respondents in our sample, regardless of vote choice. This pattern is similar for the government helping migrants, but with Harris voters moving further toward “much more”, and Trump voters attenuating toward neutral/status quo.

Views of governmental action on environmental issues are less patterned; Harris and Trump voters are slightly further apart at waves 1 and 3 and slightly closer together at waves 2 and 4, with a main effect of Harris voters higher than Trump voters. However, just like Harris voters with illegal immigration, Trump voters are never at neutral, indicating that there is baseline support for the government doing more to protect the environment among all respondents in our sample, regardless of vote choice.

EV attitudes & views on Elon Musk

EV purchase intentions

ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PA_1,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1.5, 0)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Intention to Purchase an EV") +
  facet_grid(~wave.plot)

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4), data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -0.60 -0.68 – -0.52 -14.53 <0.001
pHar Tru -0.68 -0.81 – -0.55 -10.29 <0.001
pOth Party 0.29 0.08 – 0.51 2.66 0.008
wave helm 1 2 0.12 -0.09 – 0.34 1.12 0.264
wave helm 12 3 -0.06 -0.26 – 0.14 -0.58 0.560
wave helm 123 4 -0.02 -0.21 – 0.17 -0.21 0.837
pHar Tru × wave helm 1 2 0.58 0.24 – 0.92 3.35 0.001
pHar Tru × wave helm 12 3 0.23 -0.08 – 0.54 1.45 0.147
pHar Tru × wave helm 123
4
0.29 -0.03 – 0.62 1.77 0.077
pOth Party × wave helm 1
2
0.11 -0.46 – 0.68 0.37 0.709
pOth Party × wave helm 12
3
0.16 -0.38 – 0.70 0.58 0.562
pOth Party × wave helm
123 4
0.20 -0.31 – 0.71 0.77 0.443
Observations 4690
R2 / R2 adjusted 0.032 / 0.030

Effects

  • Trump supporters less willing to purchase an EV businesses than harris supporters (b = -0.68, p < .001)
  • Vote choice x Wave interaction (b = 0.58, p = .001) for wave 1 vs. wave 2

Moderator: Musk perceptions

ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk,
           y = PA_1,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Elon Musk") +
  ylab("Intention to Purchase an EV") +
  facet_grid(~wave.plot)

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4) * Musk.c, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -0.52 -0.61 – -0.42 -10.72 <0.001
pHar Tru -1.09 -1.25 – -0.92 -13.09 <0.001
pOth Party 0.26 0.02 – 0.51 2.09 0.037
wave helm 1 2 0.13 -0.12 – 0.38 1.05 0.293
wave helm 12 3 -0.17 -0.41 – 0.07 -1.37 0.170
wave helm 123 4 0.04 -0.18 – 0.27 0.36 0.717
Musk c 0.24 0.17 – 0.32 6.32 <0.001
pHar Tru × wave helm 1 2 0.58 0.14 – 1.01 2.60 0.009
pHar Tru × wave helm 12 3 0.07 -0.33 – 0.48 0.35 0.725
pHar Tru × wave helm 123
4
-0.06 -0.45 – 0.33 -0.28 0.779
pOth Party × wave helm 1
2
-0.16 -0.81 – 0.48 -0.50 0.619
pOth Party × wave helm 12
3
0.36 -0.28 – 0.99 1.10 0.270
pOth Party × wave helm
123 4
0.06 -0.53 – 0.64 0.19 0.847
pHar Tru × Musk c -0.09 -0.21 – 0.03 -1.55 0.122
pOth Party × Musk c 0.03 -0.17 – 0.24 0.32 0.749
wave helm 1 2 × Musk c 0.18 -0.02 – 0.38 1.81 0.070
wave helm 12 3 × Musk c -0.07 -0.27 – 0.13 -0.67 0.503
wave helm 123 4 × Musk c 0.29 0.11 – 0.47 3.22 0.001
(pHar Tru × wave helm 1
2) × Musk c
0.12 -0.19 – 0.44 0.76 0.449
(pHar Tru × wave helm 12
3) × Musk c
0.05 -0.25 – 0.34 0.31 0.756
(pHar Tru × wave helm 123
4) × Musk c
0.07 -0.23 – 0.36 0.45 0.654
(pOth Party × wave helm 1
2) × Musk c
-0.40 -0.92 – 0.13 -1.49 0.137
(pOth Party × wave helm
12 3) × Musk c
0.45 -0.09 – 0.98 1.63 0.104
(pOth Party × wave helm
123 4) × Musk c
0.05 -0.43 – 0.52 0.19 0.850
Observations 4496
R2 / R2 adjusted 0.054 / 0.049

Effects

  • Perceptions of Elon Musk positively predict EV intention (b = .24, p < .001)
  • Musk perceptions most strongly associated with EV intentions in wave 4 (wave 4 vs. average of other waves; b = 0.29, p = .001); does not interact with vote choice
    • For Harris supporters, Musk perception is stronger in wave 4 than in waves 1 (b = -0.29, p = .017) and 2 (b = -0.30, p = .016), while comparison to wave 3 is marginal (b = -0.24, p = .060)
    • For Trump supporters, Musk perception is stronger in wave 4 than in all other waves (wave 1: b = -0.43, p < .001; wave 2: b = -0.32, p = .013; wave 3: b = -0.27, p = .041); wave 3 also borderline significant, given number of comparisons
tab_model(lm(PA_1 ~ (pHar_Tru.d + pHar_Oth.d) * (wave4_1 + wave4_2 + wave4_3) * Musk.c, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) 0.18 -0.08 – 0.44 1.35 0.178
pHar Tru d -1.13 -1.47 – -0.78 -6.42 <0.001
pHar Oth d -0.87 -1.42 – -0.32 -3.11 0.002
wave4 1 0.04 -0.30 – 0.39 0.25 0.799
wave4 2 -0.16 -0.50 – 0.18 -0.95 0.343
wave4 3 -0.15 -0.50 – 0.20 -0.82 0.414
Musk c 0.51 0.33 – 0.69 5.47 <0.001
pHar Tru d × wave4 1 -0.26 -0.71 – 0.20 -1.11 0.269
pHar Tru d × wave4 2 0.32 -0.15 – 0.79 1.33 0.182
pHar Tru d × wave4 3 0.10 -0.38 – 0.59 0.42 0.673
pHar Oth d × wave4 1 -0.03 -0.74 – 0.68 -0.09 0.925
pHar Oth d × wave4 2 0.42 -0.33 – 1.17 1.09 0.275
pHar Oth d × wave4 3 -0.13 -0.91 – 0.66 -0.32 0.752
pHar Tru d × Musk c -0.04 -0.30 – 0.21 -0.34 0.737
pHar Oth d × Musk c -0.09 -0.52 – 0.34 -0.41 0.683
wave4 1 × Musk c -0.29 -0.52 – -0.05 -2.40 0.017
wave4 2 × Musk c -0.30 -0.54 – -0.06 -2.42 0.016
wave4 3 × Musk c -0.24 -0.48 – 0.01 -1.88 0.060
(pHar Tru d × wave4 1) ×
Musk c
-0.14 -0.48 – 0.19 -0.84 0.400
(pHar Tru d × wave4 2) ×
Musk c
-0.02 -0.37 – 0.33 -0.12 0.907
(pHar Tru d × wave4 3) ×
Musk c
-0.04 -0.39 – 0.32 -0.19 0.846
(pHar Oth d × wave4 1) ×
Musk c
-0.08 -0.64 – 0.49 -0.26 0.793
(pHar Oth d × wave4 2) ×
Musk c
0.38 -0.20 – 0.97 1.27 0.202
(pHar Oth d × wave4 3) ×
Musk c
-0.27 -0.91 – 0.38 -0.82 0.413
Observations 4496
R2 / R2 adjusted 0.054 / 0.049
tab_model(lm(PA_1 ~ (pTru_Har.d + pTru_Oth.d) * (wave4_1 + wave4_2 + wave4_3) * Musk.c, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -0.95 -1.17 – -0.72 -8.28 <0.001
pTru Har d 1.13 0.78 – 1.47 6.42 <0.001
pTru Oth d 0.26 -0.27 – 0.79 0.95 0.341
wave4 1 -0.21 -0.51 – 0.09 -1.39 0.165
wave4 2 0.16 -0.17 – 0.48 0.94 0.348
wave4 3 -0.04 -0.38 – 0.29 -0.25 0.805
Musk c 0.46 0.28 – 0.65 4.94 <0.001
pTru Har d × wave4 1 0.26 -0.20 – 0.71 1.11 0.269
pTru Har d × wave4 2 -0.32 -0.79 – 0.15 -1.33 0.182
pTru Har d × wave4 3 -0.10 -0.59 – 0.38 -0.42 0.673
pTru Oth d × wave4 1 0.22 -0.47 – 0.91 0.63 0.529
pTru Oth d × wave4 2 0.10 -0.65 – 0.84 0.26 0.796
pTru Oth d × wave4 3 -0.23 -1.01 – 0.55 -0.58 0.561
pTru Har d × Musk c 0.04 -0.21 – 0.30 0.34 0.737
pTru Oth d × Musk c -0.04 -0.47 – 0.38 -0.21 0.838
wave4 1 × Musk c -0.43 -0.67 – -0.19 -3.57 <0.001
wave4 2 × Musk c -0.32 -0.57 – -0.07 -2.48 0.013
wave4 3 × Musk c -0.27 -0.53 – -0.01 -2.05 0.041
(pTru Har d × wave4 1) ×
Musk c
0.14 -0.19 – 0.48 0.84 0.400
(pTru Har d × wave4 2) ×
Musk c
0.02 -0.33 – 0.37 0.12 0.907
(pTru Har d × wave4 3) ×
Musk c
0.04 -0.32 – 0.39 0.19 0.846
(pTru Oth d × wave4 1) ×
Musk c
0.07 -0.50 – 0.63 0.24 0.813
(pTru Oth d × wave4 2) ×
Musk c
0.40 -0.19 – 0.99 1.34 0.182
(pTru Oth d × wave4 3) ×
Musk c
-0.23 -0.88 – 0.42 -0.70 0.481
Observations 4496
R2 / R2 adjusted 0.054 / 0.049

Comparison with EV Subsidy support

ev.p1 <- ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PA_1,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1.5, 0)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("Intention to Purchase an EV") +
  facet_grid(~wave.plot)

ev.p2 <- ggplot(d[!is.na(d$presVote),],
       aes(x = factor(presVote),
           y = PA_1,
           fill = factor(presVote))) +
  geom_bar(stat = "summary",
           fun = "mean",
           position = position_dodge(.9)) +
  stat_summary(fun.data = mean_se, 
               geom = "errorbar", 
               position = position_dodge(.9), 
               width=.1, 
               fun.args = list(mult = 1)) +
  theme_bw() +
  theme(axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  coord_cartesian(ylim = c(-1.5, 0)) +
  scale_fill_manual("Presidential Vote", values = c("dodgerblue","red3", "grey42")) +
  xlab("Study Wave") +
  ylab("EV Subsidy Policy Support") +
  facet_grid(~wave.plot)

ev.p1/ev.p2

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4), data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -0.60 -0.68 – -0.52 -14.53 <0.001
pHar Tru -0.68 -0.81 – -0.55 -10.29 <0.001
pOth Party 0.29 0.08 – 0.51 2.66 0.008
wave helm 1 2 0.12 -0.09 – 0.34 1.12 0.264
wave helm 12 3 -0.06 -0.26 – 0.14 -0.58 0.560
wave helm 123 4 -0.02 -0.21 – 0.17 -0.21 0.837
pHar Tru × wave helm 1 2 0.58 0.24 – 0.92 3.35 0.001
pHar Tru × wave helm 12 3 0.23 -0.08 – 0.54 1.45 0.147
pHar Tru × wave helm 123
4
0.29 -0.03 – 0.62 1.77 0.077
pOth Party × wave helm 1
2
0.11 -0.46 – 0.68 0.37 0.709
pOth Party × wave helm 12
3
0.16 -0.38 – 0.70 0.58 0.562
pOth Party × wave helm
123 4
0.20 -0.31 – 0.71 0.77 0.443
Observations 4690
R2 / R2 adjusted 0.032 / 0.030
tab_model(lm(PO_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4), data = d), show.stat = T)
  PO 1
Predictors Estimates CI Statistic p
(Intercept) -0.02 -0.08 – 0.05 -0.46 0.644
pHar Tru -1.00 -1.10 – -0.90 -18.83 <0.001
pOth Party 0.29 0.12 – 0.47 3.31 0.001
wave helm 1 2 0.09 -0.08 – 0.26 1.03 0.305
wave helm 12 3 0.02 -0.14 – 0.18 0.26 0.795
wave helm 123 4 -0.00 -0.16 – 0.15 -0.04 0.967
pHar Tru × wave helm 1 2 0.39 0.12 – 0.67 2.79 0.005
pHar Tru × wave helm 12 3 0.04 -0.21 – 0.29 0.32 0.747
pHar Tru × wave helm 123
4
0.37 0.11 – 0.63 2.82 0.005
pOth Party × wave helm 1
2
0.18 -0.28 – 0.65 0.78 0.433
pOth Party × wave helm 12
3
-0.05 -0.49 – 0.39 -0.23 0.818
pOth Party × wave helm
123 4
0.09 -0.32 – 0.50 0.42 0.673
Observations 5071
R2 / R2 adjusted 0.078 / 0.076

Effects

EV Subsidy Support

  • Trump supporters less supportive of EV subsidies than Harris supporters (b = -1.00, p < .001)
  • Vote choice x Wave interaction for wave 1 vs. wave 2 (b = 0.39, p = .005) and wave 4 vs. waves 1 - 3 (b = 0.37, p = .005)

Musk moderation comparison

evm.p1 <- ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk,
           y = PA_1,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Elon Musk") +
  ylab("Intention to Purchase an EV") +
  facet_grid(~wave.plot)

evm.p2 <- ggplot(d[!is.na(d$presVote) & d$presVote != "Other",],
       aes(x = Musk,
           y = PO_1,
           fill = factor(presVote))) +
  geom_smooth(method = "lm", aes(color = presVote)) +
  theme_bw() +
  scale_fill_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  scale_color_manual("Vote Choice", values = c("dodgerblue","red3", "grey42")) +
  xlab("Perceptions of Elon Musk") +
  ylab("EV Subsidy Policy Support") +
  facet_grid(~wave.plot)

evm.p1/evm.p2

tab_model(lm(PA_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4) * Musk.c, data = d), show.stat = T)
  PA 1
Predictors Estimates CI Statistic p
(Intercept) -0.52 -0.61 – -0.42 -10.72 <0.001
pHar Tru -1.09 -1.25 – -0.92 -13.09 <0.001
pOth Party 0.26 0.02 – 0.51 2.09 0.037
wave helm 1 2 0.13 -0.12 – 0.38 1.05 0.293
wave helm 12 3 -0.17 -0.41 – 0.07 -1.37 0.170
wave helm 123 4 0.04 -0.18 – 0.27 0.36 0.717
Musk c 0.24 0.17 – 0.32 6.32 <0.001
pHar Tru × wave helm 1 2 0.58 0.14 – 1.01 2.60 0.009
pHar Tru × wave helm 12 3 0.07 -0.33 – 0.48 0.35 0.725
pHar Tru × wave helm 123
4
-0.06 -0.45 – 0.33 -0.28 0.779
pOth Party × wave helm 1
2
-0.16 -0.81 – 0.48 -0.50 0.619
pOth Party × wave helm 12
3
0.36 -0.28 – 0.99 1.10 0.270
pOth Party × wave helm
123 4
0.06 -0.53 – 0.64 0.19 0.847
pHar Tru × Musk c -0.09 -0.21 – 0.03 -1.55 0.122
pOth Party × Musk c 0.03 -0.17 – 0.24 0.32 0.749
wave helm 1 2 × Musk c 0.18 -0.02 – 0.38 1.81 0.070
wave helm 12 3 × Musk c -0.07 -0.27 – 0.13 -0.67 0.503
wave helm 123 4 × Musk c 0.29 0.11 – 0.47 3.22 0.001
(pHar Tru × wave helm 1
2) × Musk c
0.12 -0.19 – 0.44 0.76 0.449
(pHar Tru × wave helm 12
3) × Musk c
0.05 -0.25 – 0.34 0.31 0.756
(pHar Tru × wave helm 123
4) × Musk c
0.07 -0.23 – 0.36 0.45 0.654
(pOth Party × wave helm 1
2) × Musk c
-0.40 -0.92 – 0.13 -1.49 0.137
(pOth Party × wave helm
12 3) × Musk c
0.45 -0.09 – 0.98 1.63 0.104
(pOth Party × wave helm
123 4) × Musk c
0.05 -0.43 – 0.52 0.19 0.850
Observations 4496
R2 / R2 adjusted 0.054 / 0.049
tab_model(lm(PO_1 ~ (pHar_Tru + pOth_Party) * (wave.helm.1_2 + wave.helm.12_3 + wave.helm.123_4) * Musk.c, data = d), show.stat = T)
  PO 1
Predictors Estimates CI Statistic p
(Intercept) -0.00 -0.08 – 0.08 -0.06 0.951
pHar Tru -1.13 -1.27 – -1.00 -16.80 <0.001
pOth Party 0.24 0.04 – 0.45 2.35 0.019
wave helm 1 2 0.06 -0.15 – 0.26 0.55 0.579
wave helm 12 3 0.12 -0.08 – 0.32 1.19 0.234
wave helm 123 4 -0.05 -0.24 – 0.13 -0.56 0.576
Musk c 0.05 -0.01 – 0.12 1.72 0.085
pHar Tru × wave helm 1 2 0.42 0.06 – 0.77 2.32 0.021
pHar Tru × wave helm 12 3 0.17 -0.16 – 0.50 1.03 0.303
pHar Tru × wave helm 123
4
0.28 -0.04 – 0.59 1.72 0.085
pOth Party × wave helm 1
2
0.01 -0.53 – 0.54 0.02 0.981
pOth Party × wave helm 12
3
0.00 -0.52 – 0.53 0.02 0.987
pOth Party × wave helm
123 4
0.01 -0.47 – 0.49 0.04 0.966
pHar Tru × Musk c 0.05 -0.05 – 0.14 0.97 0.334
pOth Party × Musk c 0.06 -0.11 – 0.23 0.70 0.484
wave helm 1 2 × Musk c 0.01 -0.15 – 0.17 0.12 0.902
wave helm 12 3 × Musk c -0.02 -0.19 – 0.14 -0.27 0.789
wave helm 123 4 × Musk c 0.10 -0.04 – 0.25 1.40 0.161
(pHar Tru × wave helm 1
2) × Musk c
0.25 -0.00 – 0.51 1.93 0.054
(pHar Tru × wave helm 12
3) × Musk c
-0.31 -0.55 – -0.07 -2.52 0.012
(pHar Tru × wave helm 123
4) × Musk c
0.23 -0.00 – 0.47 1.95 0.052
(pOth Party × wave helm 1
2) × Musk c
-0.04 -0.47 – 0.39 -0.19 0.851
(pOth Party × wave helm
12 3) × Musk c
-0.12 -0.57 – 0.32 -0.55 0.583
(pOth Party × wave helm
123 4) × Musk c
-0.02 -0.41 – 0.36 -0.11 0.915
Observations 4845
R2 / R2 adjusted 0.085 / 0.081

Effects

EV Subsidy Support

  • Perceptions of Elon Musk do not predict EV subsidy support at zero-order
  • Three way interaction between vote choice, time point (wave 3 vs. waves 1 & 2), and Musk perception (b = -0.31, p = .023)
tab_model(lm(PO_1 ~ (pHar_Tru.d + pHar_Oth.d) * (lin.wave + quad.wave + cub.wave) * Musk.c, data = d), show.stat = T)
  PO 1
Predictors Estimates CI Statistic p
(Intercept) 0.65 0.55 – 0.74 13.46 <0.001
pHar Tru d -1.13 -1.27 – -1.00 -16.80 <0.001
pHar Oth d -0.81 -1.02 – -0.60 -7.42 <0.001
lin wave -0.16 -0.40 – 0.08 -1.27 0.203
quad wave -0.06 -0.44 – 0.31 -0.33 0.744
cub wave -0.19 -0.42 – 0.05 -1.57 0.116
Musk c 0.05 -0.01 – 0.12 1.51 0.130
pHar Tru d × lin wave 0.42 0.09 – 0.75 2.50 0.013
pHar Tru d × quad wave -0.26 -0.78 – 0.27 -0.95 0.344
pHar Tru d × cub wave 0.25 -0.09 – 0.58 1.42 0.155
pHar Oth d × lin wave 0.20 -0.33 – 0.73 0.73 0.464
pHar Oth d × quad wave -0.13 -0.98 – 0.73 -0.30 0.768
pHar Oth d × cub wave 0.12 -0.43 – 0.67 0.42 0.676
pHar Tru d × Musk c 0.05 -0.05 – 0.14 0.97 0.334
pHar Oth d × Musk c -0.04 -0.21 – 0.14 -0.41 0.684
lin wave × Musk c 0.02 -0.15 – 0.19 0.22 0.829
quad wave × Musk c 0.05 -0.21 – 0.31 0.38 0.706
cub wave × Musk c -0.15 -0.31 – 0.02 -1.71 0.087
(pHar Tru d × lin wave) ×
Musk c
0.03 -0.21 – 0.27 0.26 0.797
(pHar Tru d × quad wave)
× Musk c
0.18 -0.20 – 0.57 0.94 0.348
(pHar Tru d × cub wave) ×
Musk c
0.45 0.20 – 0.70 3.56 <0.001
(pHar Oth d × lin wave) ×
Musk c
0.12 -0.30 – 0.55 0.58 0.564
(pHar Oth d × quad wave)
× Musk c
-0.01 -0.70 – 0.68 -0.03 0.976
(pHar Oth d × cub wave) ×
Musk c
0.17 -0.28 – 0.63 0.75 0.452
Observations 4845
R2 / R2 adjusted 0.085 / 0.081
tab_model(lm(PO_1 ~ (pTru_Har.d + pTru_Oth.d) * (lin.wave + quad.wave + cub.wave) * Musk.c, data = d), show.stat = T)
  PO 1
Predictors Estimates CI Statistic p
(Intercept) -0.49 -0.58 – -0.39 -10.28 <0.001
pTru Har d 1.13 1.00 – 1.27 16.80 <0.001
pTru Oth d 0.32 0.11 – 0.54 2.97 0.003
lin wave 0.26 0.04 – 0.49 2.29 0.022
quad wave -0.32 -0.69 – 0.05 -1.67 0.094
cub wave 0.06 -0.19 – 0.30 0.47 0.641
Musk c 0.10 0.03 – 0.17 2.73 0.006
pTru Har d × lin wave -0.42 -0.75 – -0.09 -2.50 0.013
pTru Har d × quad wave 0.26 -0.27 – 0.78 0.95 0.344
pTru Har d × cub wave -0.25 -0.58 – 0.09 -1.42 0.155
pTru Oth d × lin wave -0.22 -0.75 – 0.30 -0.83 0.404
pTru Oth d × quad wave 0.13 -0.73 – 0.98 0.29 0.772
pTru Oth d × cub wave -0.13 -0.68 – 0.43 -0.45 0.652
pTru Har d × Musk c -0.05 -0.14 – 0.05 -0.97 0.334
pTru Oth d × Musk c -0.08 -0.26 – 0.09 -0.94 0.350
lin wave × Musk c 0.05 -0.12 – 0.22 0.56 0.575
quad wave × Musk c 0.24 -0.05 – 0.52 1.63 0.102
cub wave × Musk c 0.30 0.12 – 0.49 3.26 0.001
(pTru Har d × lin wave) ×
Musk c
-0.03 -0.27 – 0.21 -0.26 0.797
(pTru Har d × quad wave)
× Musk c
-0.18 -0.57 – 0.20 -0.94 0.348
(pTru Har d × cub wave) ×
Musk c
-0.45 -0.70 – -0.20 -3.56 <0.001
(pTru Oth d × lin wave) ×
Musk c
0.09 -0.33 – 0.52 0.43 0.670
(pTru Oth d × quad wave)
× Musk c
-0.20 -0.90 – 0.50 -0.55 0.584
(pTru Oth d × cub wave) ×
Musk c
-0.27 -0.73 – 0.19 -1.17 0.242
Observations 4845
R2 / R2 adjusted 0.085 / 0.081

Conclusions

  • Perceptions of Elon Musk positively predict EV purchase intentions but not subsidy support, holding vote choice and time point constant
    • EV subsidy support positively associated with Musk perceptions for Trump voters (b = 0.10, p = .006) but not Harris voters (p = .13), collapsing across time point
  • Purchase intentions most strongly associated with Musk perceptions in wave 4, regardless of vote choice

General Observations

  • For Trump supporters:
    • Both environmental attitudes and anti-immigration attitudes moderate at two inflection points: Waves 1 and 3 are lower/higher than Waves 2 and 4
    • Means that pre-election to immediate post-election, attitudes moderate
    • Then from immediate post-election to one month later, attitudes return to baseline-ish
    • But THEN, attitudes moderate again several months into the Trump presidency
  • For Harris supporters:
    • Overall pattern of holding steady at baseline from waves 1-3, then polarizing at wave 4
    • Support for reducing illegal immigration strong, attenuates at wave 4
    • Pro-immigration policy support is modest but positive for first three waves, increases at wave 4; inverse true for anti-immigration policy
    • More supportive of migration-reduction policies than you might expect, but also supportive of policies that help migrants in line with expectations
  • Overall Patterns
    • Trump perceptions are always associated with Harris perceptions