Key points: (i) Overall effect, (ii) Cross country generalization, not limited to Fox

1. import data sets

DESCRIPTIVE STATS

1. demographics

a. sample size

table(!is.na(d1$participant))
## 
## TRUE 
## 4836
table(!is.na(d1$participant[d1$country_factor == "US"]))
## 
## TRUE 
## 3316
table(!is.na(d1$participant[d1$country_factor == "UK"]))
## 
## TRUE 
## 1520

b. age

describe(d1$age)
describe(d1$age[d1$country_factor == "US"])
describe(d1$age[d1$country_factor == "UK"])

c. gender

(t <- table(d1$gender_factor))
## 
## custom female   male 
##     16   2480   2053
round(prop.table(t), 3)
## 
## custom female   male 
##  0.004  0.545  0.451
(t <- table(d1$gender_factor[d1$country_factor == "US"]))
## 
## custom female   male 
##      6   1564   1477
round(prop.table(t), 3)
## 
## custom female   male 
##  0.002  0.513  0.485
(t <- table(d1$gender_factor[d1$country_factor == "UK"]))
## 
## custom female   male 
##     10    916    576
round(prop.table(t), 3)
## 
## custom female   male 
##  0.007  0.610  0.383

d. party identity

(t <- table(d1$party_factor))
## 
##    Democrat Independent  Republican 
##        2268         916        1470
round(prop.table(t), 3)
## 
##    Democrat Independent  Republican 
##       0.487       0.197       0.316
(t <- table(d1$party_factor[d1$country_factor == "US"]))
## 
##    Democrat Independent  Republican 
##        1402         627        1118
round(prop.table(t), 3)
## 
##    Democrat Independent  Republican 
##       0.446       0.199       0.355
(t <- table(d1$party_factor[d1$country_factor == "UK"]))
## 
##    Democrat Independent  Republican 
##         866         289         352
round(prop.table(t), 3)
## 
##    Democrat Independent  Republican 
##       0.575       0.192       0.234

e. education

describe(d1$education) 
describe(d1$education[d1$country_factor == "US"]) 
describe(d1$education[d1$country_factor == "UK"]) 

2. variables of interest

a. media exposure

Not included here, media exposure asks participants to “Consider each of the media sources below. In general, how much do you get news about Covid-19 from each source?” on a scale from 1 (Not at all) to 3 (Somewhat) to 5 (A great deal).

b. analytical media index

The first step to creating the analytical media index is multiplying individual analytic thinking scores for each media outlet by participant rated exposure to that outlet, Then taking the proportion of each of these products (i.e., dividing by the 12 possible US outlets to be exposed to, or 8 outlets for the UK)

foxAnalyticalIndex = (foxNewsExposure x foxAnalyticalScore) (foxAnalyticalIndex + cnnAnalyticalIndex + msnbcAnalyticalIndex + …) / 12 total outlets

describe(d1$index_ANexp)
describe(d1$index_ANexp[d1$country_factor == "US"])
describe(d1$index_ANexp[d1$country_factor == "UK"])

c. symbolic ideology

symbolic ideology is an average of three items. They ask “How liberal/conservative…” (1) in general, (2) on social issues, and (3) on economic issues. Participants answered on a scale from -3 (Very liberal) to 0 (Moderate) to +3 (Very conservative).

print("US")
## [1] "US"
psych::alpha (data.frame(
  d1$symbolic_beliefs_1[d1$country_factor == "US"], 
  d1$symbolic_beliefs_2[d1$country_factor == "US"], 
  d1$symbolic_beliefs_3[d1$country_factor == "US"]), cumulative = F, na.rm = T, delete = T) #alpha = .94 
## 
## Reliability analysis   
## Call: psych::alpha(x = data.frame(d1$symbolic_beliefs_1[d1$country_factor == 
##     "US"], d1$symbolic_beliefs_2[d1$country_factor == "US"], 
##     d1$symbolic_beliefs_3[d1$country_factor == "US"]), cumulative = F, 
##     na.rm = T, delete = T)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase  mean  sd median_r
##       0.94      0.94    0.92      0.85  17 0.0017 0.089 1.6     0.86
## 
##  lower alpha upper     95% confidence boundaries
## 0.94 0.94 0.95 
## 
##  Reliability if an item is dropped:
##                                                  raw_alpha std.alpha G6(smc)
## d1.symbolic_beliefs_1.d1.country_factor.....US..      0.89      0.89    0.80
## d1.symbolic_beliefs_2.d1.country_factor.....US..      0.92      0.92    0.86
## d1.symbolic_beliefs_3.d1.country_factor.....US..      0.94      0.94    0.89
##                                                  average_r S/N alpha se var.r
## d1.symbolic_beliefs_1.d1.country_factor.....US..      0.80   8   0.0039    NA
## d1.symbolic_beliefs_2.d1.country_factor.....US..      0.86  12   0.0027    NA
## d1.symbolic_beliefs_3.d1.country_factor.....US..      0.89  16   0.0020    NA
##                                                  med.r
## d1.symbolic_beliefs_1.d1.country_factor.....US..  0.80
## d1.symbolic_beliefs_2.d1.country_factor.....US..  0.86
## d1.symbolic_beliefs_3.d1.country_factor.....US..  0.89
## 
##  Item statistics 
##                                                     n raw.r std.r r.cor r.drop
## d1.symbolic_beliefs_1.d1.country_factor.....US.. 3162  0.97  0.97  0.95   0.92
## d1.symbolic_beliefs_2.d1.country_factor.....US.. 3163  0.95  0.95  0.91   0.88
## d1.symbolic_beliefs_3.d1.country_factor.....US.. 3163  0.93  0.93  0.88   0.85
##                                                    mean  sd
## d1.symbolic_beliefs_1.d1.country_factor.....US..  0.060 1.7
## d1.symbolic_beliefs_2.d1.country_factor.....US.. -0.067 1.7
## d1.symbolic_beliefs_3.d1.country_factor.....US..  0.272 1.7
## 
## Non missing response frequency for each item
##                                                    -3   -2   -1    0    1    2
## d1.symbolic_beliefs_1.d1.country_factor.....US.. 0.08 0.13 0.09 0.38 0.09 0.13
## d1.symbolic_beliefs_2.d1.country_factor.....US.. 0.10 0.14 0.12 0.33 0.10 0.13
## d1.symbolic_beliefs_3.d1.country_factor.....US.. 0.06 0.11 0.09 0.35 0.13 0.16
##                                                     3 miss
## d1.symbolic_beliefs_1.d1.country_factor.....US.. 0.09 0.05
## d1.symbolic_beliefs_2.d1.country_factor.....US.. 0.09 0.05
## d1.symbolic_beliefs_3.d1.country_factor.....US.. 0.11 0.05
print("UK")
## [1] "UK"
psych::alpha (data.frame(
  d1$symbolic_beliefs_1[d1$country_factor == "UK"], 
  d1$symbolic_beliefs_2[d1$country_factor == "UK"], 
  d1$symbolic_beliefs_3[d1$country_factor == "UK"]), cumulative = F, na.rm = T, delete = T)  
## 
## Reliability analysis   
## Call: psych::alpha(x = data.frame(d1$symbolic_beliefs_1[d1$country_factor == 
##     "UK"], d1$symbolic_beliefs_2[d1$country_factor == "UK"], 
##     d1$symbolic_beliefs_3[d1$country_factor == "UK"]), cumulative = F, 
##     na.rm = T, delete = T)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase  mean  sd median_r
##       0.92      0.92     0.9      0.79  12 0.0037 -0.61 1.4     0.81
## 
##  lower alpha upper     95% confidence boundaries
## 0.91 0.92 0.93 
## 
##  Reliability if an item is dropped:
##                                                  raw_alpha std.alpha G6(smc)
## d1.symbolic_beliefs_1.d1.country_factor.....UK..      0.83      0.83    0.72
## d1.symbolic_beliefs_2.d1.country_factor.....UK..      0.90      0.90    0.81
## d1.symbolic_beliefs_3.d1.country_factor.....UK..      0.92      0.92    0.85
##                                                  average_r  S/N alpha se var.r
## d1.symbolic_beliefs_1.d1.country_factor.....UK..      0.72  5.0   0.0085    NA
## d1.symbolic_beliefs_2.d1.country_factor.....UK..      0.81  8.7   0.0053    NA
## d1.symbolic_beliefs_3.d1.country_factor.....UK..      0.85 11.6   0.0041    NA
##                                                  med.r
## d1.symbolic_beliefs_1.d1.country_factor.....UK..  0.72
## d1.symbolic_beliefs_2.d1.country_factor.....UK..  0.81
## d1.symbolic_beliefs_3.d1.country_factor.....UK..  0.85
## 
##  Item statistics 
##                                                     n raw.r std.r r.cor r.drop
## d1.symbolic_beliefs_1.d1.country_factor.....UK.. 1509  0.96  0.96  0.94   0.90
## d1.symbolic_beliefs_2.d1.country_factor.....UK.. 1509  0.92  0.92  0.87   0.82
## d1.symbolic_beliefs_3.d1.country_factor.....UK.. 1509  0.91  0.91  0.83   0.79
##                                                   mean  sd
## d1.symbolic_beliefs_1.d1.country_factor.....UK.. -0.64 1.4
## d1.symbolic_beliefs_2.d1.country_factor.....UK.. -0.84 1.5
## d1.symbolic_beliefs_3.d1.country_factor.....UK.. -0.35 1.5
## 
## Non missing response frequency for each item
##                                                    -3   -2   -1    0    1    2
## d1.symbolic_beliefs_1.d1.country_factor.....UK.. 0.09 0.24 0.19 0.27 0.12 0.07
## d1.symbolic_beliefs_2.d1.country_factor.....UK.. 0.13 0.25 0.20 0.24 0.10 0.06
## d1.symbolic_beliefs_3.d1.country_factor.....UK.. 0.07 0.18 0.19 0.29 0.16 0.09
##                                                     3 miss
## d1.symbolic_beliefs_1.d1.country_factor.....UK.. 0.01 0.01
## d1.symbolic_beliefs_2.d1.country_factor.....UK.. 0.01 0.01
## d1.symbolic_beliefs_3.d1.country_factor.....UK.. 0.02 0.01
describe(d1$ideology)
describe(d1$ideology[d1$country_factor == "US"])
describe(d1$ideology[d1$country_factor == "UK"])

d. average trust in experts

trust in experts is an average of 3-items asking about how much participants trust experts, medicine, economics, public health, and science. The trust response scale ranges from -3 (strongly distrust) to 0 (Neither trust nor distrust) to (Strongly trust)

describe(d1$trustExpert)
describe(d1$trustExpert[d1$country_factor == "US"], na.rm = T)
describe(d1$trustExpert[d1$country_factor == "UK"], na.rm = T)

3. LIWC media measures

a. Analytical thinking scales

Media outlet LIWC analytic thinking scores captures the degree to which people use words that suggest formal, logical, and hierarchical thinking patterns. Column two is raw scores, and column three is standardized scores.

i. US

ii. UK

4. outcome measures

Participants were asked “would you get a Covid-19 vaccine?” and answered on a scale from -3 (Definitely would not get it) to 0 (Undecided) to +3 (Definitely would get it).

describe(d1$vaxxAttitudes)
describe(d1$vaxxAttitudes[d1$country_factor == "US"])
describe(d1$vaxxAttitudes[d1$country_factor == "UK"])

5. pairwise correlation table for IVs, DVs, and covariates

i. US

i. UK

6. Analyses for Study 1 US + UK (July-August November)

USvUK (US = -.5, UK = +.5)

a. vaxxAttitudes ~ analticalIndex * ideology + USvUK + age + education

summary(m.s1.a.robust <- lm(vaxxAttitudes ~ index_ANexp.c * ideology.c + USvUK + 
                              age.c + education.c, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ index_ANexp.c * ideology.c + USvUK + 
##     age.c + education.c, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7081 -1.3369  0.3965  1.5363  4.3853 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               1.0251836  0.0315810  32.462  < 2e-16 ***
## index_ANexp.c             0.0051306  0.0004295  11.944  < 2e-16 ***
## ideology.c               -0.2307232  0.0196799 -11.724  < 2e-16 ***
## USvUK                     0.9023665  0.0690258  13.073  < 2e-16 ***
## age.c                     0.0215370  0.0020142  10.693  < 2e-16 ***
## education.c               0.0525331  0.0110634   4.748 2.12e-06 ***
## index_ANexp.c:ideology.c  0.0012543  0.0002619   4.788 1.74e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.952 on 4462 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.1207, Adjusted R-squared:  0.1196 
## F-statistic: 102.1 on 6 and 4462 DF,  p-value: < 2.2e-16
tab_model(m.s1.a.robust,
          show.df = T, 
          show.ci = .95,
          show.se = T,
          show.stat = T,
          string.stat = "t",
          string.se="SE",
          string.est = "Est",
          digits = 3)
  vaxxAttitudes
Predictors Est SE CI t p df
(Intercept) 1.025 0.032 0.963 – 1.087 32.462 <0.001 4462.000
index_ANexp.c 0.005 0.000 0.004 – 0.006 11.944 <0.001 4462.000
ideology.c -0.231 0.020 -0.269 – -0.192 -11.724 <0.001 4462.000
USvUK 0.902 0.069 0.767 – 1.038 13.073 <0.001 4462.000
age.c 0.022 0.002 0.018 – 0.025 10.693 <0.001 4462.000
education.c 0.053 0.011 0.031 – 0.074 4.748 <0.001 4462.000
index_ANexp.c *
ideology.c
0.001 0.000 0.001 – 0.002 4.788 <0.001 4462.000
Observations 4469
R2 / R2 adjusted 0.121 / 0.120

b. vaxxAttitudes ~ analticalIndex * ideology * USvUK + age + education

summary(m.s1.b.robust <- lm(vaxxAttitudes ~ index_ANexp.c * ideology.c * USvUK + 
                              age.c + education.c, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ index_ANexp.c * ideology.c * USvUK + 
##     age.c + education.c, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.3370 -1.3492  0.4032  1.5282  4.4067 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     1.0197428  0.0330645  30.841  < 2e-16 ***
## index_ANexp.c                   0.0047055  0.0004899   9.605  < 2e-16 ***
## ideology.c                     -0.2257272  0.0222675 -10.137  < 2e-16 ***
## USvUK                           0.8962025  0.0700062  12.802  < 2e-16 ***
## age.c                           0.0213948  0.0020185  10.599  < 2e-16 ***
## education.c                     0.0531431  0.0110745   4.799 1.65e-06 ***
## index_ANexp.c:ideology.c        0.0011419  0.0003204   3.564 0.000369 ***
## index_ANexp.c:USvUK            -0.0018075  0.0009783  -1.848 0.064729 .  
## ideology.c:USvUK                0.0064325  0.0439408   0.146 0.883620    
## index_ANexp.c:ideology.c:USvUK -0.0001690  0.0006397  -0.264 0.791593    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.952 on 4459 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.1214, Adjusted R-squared:  0.1197 
## F-statistic: 68.48 on 9 and 4459 DF,  p-value: < 2.2e-16
tab_model(m.s1.a.robust, m.s1.b.robust,
          show.df = T, 
          show.ci = .95,
          show.se = T,
          show.stat = T,
          string.stat = "t",
          string.se="SE",
          string.est = "Est",
          digits = 3)
  vaxxAttitudes vaxxAttitudes
Predictors Est SE CI t p df Est SE CI t p df
(Intercept) 1.025 0.032 0.963 – 1.087 32.462 <0.001 4462.000 1.020 0.033 0.955 – 1.085 30.841 <0.001 4459.000
index_ANexp.c 0.005 0.000 0.004 – 0.006 11.944 <0.001 4462.000 0.005 0.000 0.004 – 0.006 9.605 <0.001 4459.000
ideology.c -0.231 0.020 -0.269 – -0.192 -11.724 <0.001 4462.000 -0.226 0.022 -0.269 – -0.182 -10.137 <0.001 4459.000
USvUK 0.902 0.069 0.767 – 1.038 13.073 <0.001 4462.000 0.896 0.070 0.759 – 1.033 12.802 <0.001 4459.000
age.c 0.022 0.002 0.018 – 0.025 10.693 <0.001 4462.000 0.021 0.002 0.017 – 0.025 10.599 <0.001 4459.000
education.c 0.053 0.011 0.031 – 0.074 4.748 <0.001 4462.000 0.053 0.011 0.031 – 0.075 4.799 <0.001 4459.000
index_ANexp.c *
ideology.c
0.001 0.000 0.001 – 0.002 4.788 <0.001 4462.000 0.001 0.000 0.001 – 0.002 3.564 <0.001 4459.000
index_ANexp.c * USvUK -0.002 0.001 -0.004 – 0.000 -1.848 0.065 4459.000
ideology.c * USvUK 0.006 0.044 -0.080 – 0.093 0.146 0.884 4459.000
(index_ANexp.c
ideology.c)
USvUK
-0.000 0.001 -0.001 – 0.001 -0.264 0.792 4459.000
Observations 4469 4469
R2 / R2 adjusted 0.121 / 0.120 0.121 / 0.120

c. mediation path: analyticalIndex -> trustInExperts -> vaccineAttitudes

- no interaction

summary(m.xy <- lm(vaxxAttitudes ~ index_ANexp.z + 
                         ideology.z + USvUK + age.z + education.z, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ index_ANexp.z + ideology.z + USvUK + 
##     age.z + education.z, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6783 -1.3178  0.3948  1.5544  4.2232 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.01028    0.03150  32.068  < 2e-16 ***
## index_ANexp.z  0.35835    0.02986  11.999  < 2e-16 ***
## ideology.z    -0.35660    0.03066 -11.632  < 2e-16 ***
## USvUK          0.93011    0.06895  13.490  < 2e-16 ***
## age.z          0.33344    0.03230  10.325  < 2e-16 ***
## education.z    0.14015    0.03005   4.663  3.2e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.957 on 4463 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.1162, Adjusted R-squared:  0.1152 
## F-statistic: 117.4 on 5 and 4463 DF,  p-value: < 2.2e-16
summary(m.xm <- lm(trustExpert ~ index_ANexp.z + 
                         ideology.z + USvUK + age.z + education.z, data = d1))
## 
## Call:
## lm(formula = trustExpert ~ index_ANexp.z + ideology.z + USvUK + 
##     age.z + education.z, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6925 -0.6256  0.2825  0.9497  3.0967 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.69460    0.02198  77.107  < 2e-16 ***
## index_ANexp.z  0.19312    0.02083   9.270  < 2e-16 ***
## ideology.z    -0.31151    0.02139 -14.566  < 2e-16 ***
## USvUK          0.58358    0.04810  12.133  < 2e-16 ***
## age.z          0.14460    0.02253   6.418 1.52e-10 ***
## education.z    0.13956    0.02097   6.657 3.14e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.365 on 4463 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.1213, Adjusted R-squared:  0.1203 
## F-statistic: 123.2 on 5 and 4463 DF,  p-value: < 2.2e-16
summary(m.xmy <- lm(vaxxAttitudes ~ trustExpert.z + index_ANexp.z + ideology.z + 
                      USvUK + age.z + education.z, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ trustExpert.z + index_ANexp.z + 
##     ideology.z + USvUK + age.z + education.z, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7735 -1.1918  0.3258  1.3076  5.4251 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    0.93912    0.02938  31.966  < 2e-16 ***
## trustExpert.z  0.78471    0.02939  26.702  < 2e-16 ***
## index_ANexp.z  0.25559    0.02800   9.128  < 2e-16 ***
## ideology.z    -0.19085    0.02914  -6.550 6.42e-11 ***
## USvUK          0.61960    0.06508   9.521  < 2e-16 ***
## age.z          0.25650    0.03013   8.513  < 2e-16 ***
## education.z    0.06589    0.02805   2.349   0.0189 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.817 on 4462 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.238,  Adjusted R-squared:  0.237 
## F-statistic: 232.3 on 6 and 4462 DF,  p-value: < 2.2e-16
tab_model(m.xy, m.xm, m.xmy,
          show.df = T, 
          show.ci = .95,
          show.se = T,
          show.stat = T,
          string.stat = "t",
          string.se="SE",
          string.est = "Est",
          digits = 3)
  vaxxAttitudes trustExpert vaxxAttitudes
Predictors Est SE CI t p df Est SE CI t p df Est SE CI t p df
(Intercept) 1.010 0.032 0.949 – 1.072 32.068 <0.001 4463.000 1.695 0.022 1.652 – 1.738 77.107 <0.001 4463.000 0.939 0.029 0.882 – 0.997 31.966 <0.001 4462.000
index_ANexp.z 0.358 0.030 0.300 – 0.417 11.999 <0.001 4463.000 0.193 0.021 0.152 – 0.234 9.270 <0.001 4463.000 0.256 0.028 0.201 – 0.310 9.128 <0.001 4462.000
ideology.z -0.357 0.031 -0.417 – -0.296 -11.632 <0.001 4463.000 -0.312 0.021 -0.353 – -0.270 -14.566 <0.001 4463.000 -0.191 0.029 -0.248 – -0.134 -6.550 <0.001 4462.000
USvUK 0.930 0.069 0.795 – 1.065 13.490 <0.001 4463.000 0.584 0.048 0.489 – 0.678 12.133 <0.001 4463.000 0.620 0.065 0.492 – 0.747 9.521 <0.001 4462.000
age.z 0.333 0.032 0.270 – 0.397 10.325 <0.001 4463.000 0.145 0.023 0.100 – 0.189 6.418 <0.001 4463.000 0.257 0.030 0.197 – 0.316 8.513 <0.001 4462.000
education.z 0.140 0.030 0.081 – 0.199 4.663 <0.001 4463.000 0.140 0.021 0.098 – 0.181 6.657 <0.001 4463.000 0.066 0.028 0.011 – 0.121 2.349 0.019 4462.000
trustExpert.z 0.785 0.029 0.727 – 0.842 26.702 <0.001 4462.000
Observations 4469 4469 4469
R2 / R2 adjusted 0.116 / 0.115 0.121 / 0.120 0.238 / 0.237

- interaction between moderator and ideology

summary(m.xy <- lm(vaxxAttitudes ~ index_ANexp.c * ideology.c + 
                     USvUK + age.c + education.c, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ index_ANexp.c * ideology.c + USvUK + 
##     age.c + education.c, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7081 -1.3369  0.3965  1.5363  4.3853 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               1.0251836  0.0315810  32.462  < 2e-16 ***
## index_ANexp.c             0.0051306  0.0004295  11.944  < 2e-16 ***
## ideology.c               -0.2307232  0.0196799 -11.724  < 2e-16 ***
## USvUK                     0.9023665  0.0690258  13.073  < 2e-16 ***
## age.c                     0.0215370  0.0020142  10.693  < 2e-16 ***
## education.c               0.0525331  0.0110634   4.748 2.12e-06 ***
## index_ANexp.c:ideology.c  0.0012543  0.0002619   4.788 1.74e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.952 on 4462 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.1207, Adjusted R-squared:  0.1196 
## F-statistic: 102.1 on 6 and 4462 DF,  p-value: < 2.2e-16
summary(m.xm <- lm(trustExpert ~ index_ANexp.c * ideology.c +
                     USvUK + age.c + education.c, data = d1))
## 
## Call:
## lm(formula = trustExpert ~ index_ANexp.c * ideology.c + USvUK + 
##     age.c + education.c, data = d1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.3331 -0.6186  0.2866  0.9480  3.2123 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               1.7052211  0.0220280  77.411  < 2e-16 ***
## index_ANexp.c             0.0027588  0.0002996   9.208  < 2e-16 ***
## ideology.c               -0.2013451  0.0137269 -14.668  < 2e-16 ***
## USvUK                     0.5637911  0.0481461  11.710  < 2e-16 ***
## age.c                     0.0095502  0.0014049   6.798 1.20e-11 ***
## education.c               0.0520792  0.0077169   6.749 1.68e-11 ***
## index_ANexp.c:ideology.c  0.0008944  0.0001827   4.895 1.02e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.361 on 4462 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.126,  Adjusted R-squared:  0.1248 
## F-statistic: 107.2 on 6 and 4462 DF,  p-value: < 2.2e-16
summary(m.xmy <- lm(vaxxAttitudes ~ (trustExpert.c + index_ANexp.c) * ideology.c + 
                      USvUK + age.c + education.c, data = d1))
## 
## Call:
## lm(formula = vaxxAttitudes ~ (trustExpert.c + index_ANexp.c) * 
##     ideology.c + USvUK + age.c + education.c, data = d1)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -5.671 -1.200  0.325  1.302  5.446 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               0.9454010  0.0301096  31.399  < 2e-16 ***
## trustExpert.c             0.5286189  0.0200586  26.354  < 2e-16 ***
## index_ANexp.c             0.0036938  0.0004044   9.135  < 2e-16 ***
## ideology.c               -0.1237554  0.0187824  -6.589 4.95e-11 ***
## USvUK                     0.6054085  0.0651792   9.288  < 2e-16 ***
## age.c                     0.0165169  0.0018831   8.771  < 2e-16 ***
## education.c               0.0247892  0.0103518   2.395  0.01668 *  
## trustExpert.c:ideology.c -0.0071300  0.0116994  -0.609  0.54227    
## index_ANexp.c:ideology.c  0.0008140  0.0002497   3.260  0.00112 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.815 on 4460 degrees of freedom
##   (367 observations deleted due to missingness)
## Multiple R-squared:  0.2398, Adjusted R-squared:  0.2384 
## F-statistic: 175.9 on 8 and 4460 DF,  p-value: < 2.2e-16
tab_model(m.xy, m.xm, m.xmy,
          show.df = T, 
          show.ci = .95,
          show.se = T,
          show.stat = T,
          string.stat = "t",
          string.se="SE",
          string.est = "Est",
          digits = 3)
  vaxxAttitudes trustExpert vaxxAttitudes
Predictors Est SE CI t p df Est SE CI t p df Est SE CI t p df
(Intercept) 1.025 0.032 0.963 – 1.087 32.462 <0.001 4462.000 1.705 0.022 1.662 – 1.748 77.411 <0.001 4462.000 0.945 0.030 0.886 – 1.004 31.399 <0.001 4460.000
index_ANexp.c 0.005 0.000 0.004 – 0.006 11.944 <0.001 4462.000 0.003 0.000 0.002 – 0.003 9.208 <0.001 4462.000 0.004 0.000 0.003 – 0.004 9.135 <0.001 4460.000
ideology.c -0.231 0.020 -0.269 – -0.192 -11.724 <0.001 4462.000 -0.201 0.014 -0.228 – -0.174 -14.668 <0.001 4462.000 -0.124 0.019 -0.161 – -0.087 -6.589 <0.001 4460.000
USvUK 0.902 0.069 0.767 – 1.038 13.073 <0.001 4462.000 0.564 0.048 0.469 – 0.658 11.710 <0.001 4462.000 0.605 0.065 0.478 – 0.733 9.288 <0.001 4460.000
age.c 0.022 0.002 0.018 – 0.025 10.693 <0.001 4462.000 0.010 0.001 0.007 – 0.012 6.798 <0.001 4462.000 0.017 0.002 0.013 – 0.020 8.771 <0.001 4460.000
education.c 0.053 0.011 0.031 – 0.074 4.748 <0.001 4462.000 0.052 0.008 0.037 – 0.067 6.749 <0.001 4462.000 0.025 0.010 0.004 – 0.045 2.395 0.017 4460.000
index_ANexp.c *
ideology.c
0.001 0.000 0.001 – 0.002 4.788 <0.001 4462.000 0.001 0.000 0.001 – 0.001 4.895 <0.001 4462.000 0.001 0.000 0.000 – 0.001 3.260 0.001 4460.000
trustExpert.c 0.529 0.020 0.489 – 0.568 26.354 <0.001 4460.000
trustExpert.c *
ideology.c
-0.007 0.012 -0.030 – 0.016 -0.609 0.542 4460.000
Observations 4469 4469 4469
R2 / R2 adjusted 0.121 / 0.120 0.126 / 0.125 0.240 / 0.238

7. Figures

d.us <- d1[d1$country_factor == "US",]
d.us$ideology.c <- d.us$ideology - mean(d.us$ideology, na.rm = T) 
d.us$index_ANexp.c <- d.us$index_ANexp - mean(d.us$index_ANexp, na.rm = T) 
d.us$age.c <- d.us$age - mean(d.us$age, na.rm = T) 
d.us$education.c <- d.us$education - mean(d.us$education, na.rm = T) 

#run model
m.US <- lm(vaxxAttitudes ~ ideology.c * index_ANexp.c + 
             age.c + education.c, data = d.us)

#create plot
p <- plot_model(m.US, type = "pred", 
                terms = c("index_ANexp.c", "ideology.c [-1.59, 1.59]")) +
  ggtitle("") + 
  ylab("") +
  xlab("") +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank(), 
        axis.line = element_line(colour = "black"),
        legend.position = c(.5, .2), 
        legend.direction = "horizontal", 
        legend.box = "horizontal",
        legend.background = element_rect(fill = "white", color = "white"),
        legend.title = element_blank())

p.US <-  p + scale_color_manual(
      labels = c("Liberal (-1 SD)", "Conservative (+1 SD)"),
      values = c("blue", "red")) +
  scale_fill_manual(values = c("blue", "red")) +
  scale_x_continuous(breaks = c(-100, -50, 0, 50, 100, 150, 200, 240)) + #-87.82    235.66  
  scale_y_continuous(breaks = c(-3, -2, -1, 0, 1, 2, 3), 
                     limits = c(-3, 3),
                     labels = c("Definitely
                                would not", 
                                "Probably
                                would not",
                                "Leaning toward
                                would not",
                                "Undecided",
                                "Leaning toward
                                would",
                                "Probably
                                would",
                                "Definitely
                                would"))
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
p.US

d.uk <- d1[d1$country_factor == "UK",]
d.uk$ideology.c <- d.uk$ideology - mean(d.uk$ideology, na.rm = T) 
d.uk$index_ANexp.c <- d.uk$index_ANexp - mean(d.uk$index_ANexp, na.rm = T) 
d.uk$age.c <- d.uk$age - mean(d.uk$age, na.rm = T) 
d.uk$education.c <- d.uk$education - mean(d.uk$education, na.rm = T) 

#run model
m.UK <- lm(vaxxAttitudes ~ ideology.c * index_ANexp.c + 
             age.c + education.c, data = d1[d1$country_factor == "UK",])

#create plot
p <- plot_model(m.UK, type = "pred", 
                terms = c("index_ANexp.c", "ideology.c [-1.35, 1.35]")) +
  ggtitle("") + 
  ylab("") +
  xlab("") +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank(), 
        axis.line = element_line(colour = "black"),
        legend.position = "none", 
        legend.background = element_rect(fill = "white", color = "white"),
        legend.title = element_blank())

p.UK <-  p + scale_color_manual(labels = NULL, 
                       values = c("blue", "red")) +
  scale_fill_manual(values = c("blue", "red")) +
  scale_x_continuous(breaks = c(-100, -50, 0, 50, 100, 150, 200, 250, 270),
                     limits = c(-90, 270),
) + #-75.14,    284.47
  scale_y_continuous(breaks = c(-3, -2, -1, 0, 1, 2, 3), 
                     limits = c(-3, 3),
                     labels = c("Definitely
                                would not", 
                                "Probably
                                would not",
                                "Leaning toward
                                would not",
                                "Undecided",
                                "Leaning toward
                                would",
                                "Probably
                                would",
                                "Definitely
                                would"))
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
p.UK
## Warning: Removed 4 row(s) containing missing values (geom_path).

p <- ggarrange(p.US, p.UK, 
          labels = c("United States: Willingness to get vaccinated ", 
                     "United Kingdom: Willingness to get vaccinated"),
          ncol = 2, nrow = 1, align = "hv",
          common.legend = T)
## Warning: Removed 4 row(s) containing missing values (geom_path).
p