I. Quick Summary

Results from Media Trust/Consumption difference/combined measures

Results from media perception difference score

Running the initial model predicting anger from a media difference score (Fox - Other) resulted in: a) No main effect of media difference score (p = .97); and b) A significant two-way interaction between partisanship (Dem vs. Rep) and media difference score (b = 0.58, p < .001).

Interaction was such that effect of Fox - Other was somewhat larger for Republicans (b = 0.34, p < .001) than for Democrats (b = -0.24, p < .001).

Results from media perception combined score

Running the initial model predicting anger from a combined score (Fox + Other) resulted in: a) No main effect of combined media measure (p = .54); and b) No interaction between partisanship (Dem vs. Rep) and media difference score (p = .61).

Results from only Media Consumption difference/combined measures

Results from media exposure difference score

Running the initial model predicting anger from a media difference score (Fox - Other) resulted in: a) No main effect of media difference score (p = .74); and b) A significant two-way interaction between partisanship (Dem vs. Rep) and media difference score (b = 0.46, p < .001).

Interaction was such that effect of Fox - Other was smaller for Democrats (b = -0.19, p = .009) than for Republicans (b = 0.27, p < .001).

Results from media exposure combined score

Running the initial model predicting anger from a combined score (Fox + Other) resulted in: a) Main effect of combined media measure (b = 0.09, p = .009); and b) No interaction between partisanship (Dem vs. Rep) and media difference score (p = .70).

II. Data & Codes

a. Data & libraries

b. Compose variables

c. Codes & indices

II. (1) Questions from Leaf on 2/10/2021

a. Regression estimating anger from partisanship and media exposure

b. Is media exposure associated with anger?

No

c. Do polarized emotions get smaller after accounting for media? (i.e., Is there an interaction between partisanship and media exposure on anger?)

There is an interaction between partisanship (Dem vs. Rep) and media exposure/trust (p < .001) as well as partisanship (Dem vs. Rep) and Fox exposure/trust (p < .001).

d. Graph

i. Anger by media perception and party

ii. Anger by Fox perception and party

(2) Mediation Analyses - Baron & Kenny approach

1. Y ~ X

Yes, p < .001

2. Z ~ X

Yes, p < .001

3. Y ~ Z + X

No different – b = -1.28 in the Y ~ X model, b = -1.23 in the model including the mediator

4. Mediation function!

III. (1) Follow-up questions from 2/12

Leaf’s comments: For media perception and anger, drop the fox*media interaction; we don’t have a great theoretical reason to include it.

The results are otherwise a little tricky to interpret. For OtherMedia, estimated at the average level of Fox (which is below group average for Rs and below group average for Ds), perception makes Ds more angry and Rs less angry. For Fox, the reverse pattern is true. This might reflect that anger increases with exposure to only one type of media sources: Fox and no other source, or every other source and not fox.

See what happens when instead using the difference (Fox - Others) and the sum (Fox + Others) as predictors.

a. Regression predicting anger from partisanship and media measures dropping fox*media interaction

anger2 <- lm(anger ~ (pDem_Rep + pInd_Not) * (foxPerception.c + mediaPerception.c), data = d)
summary(anger2)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * (foxPerception.c + 
##     mediaPerception.c), data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6608 -1.7090 -0.3631  1.4932  5.0886 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.89777    0.07368  39.329  < 2e-16 ***
## pDem_Rep                    0.23044    0.16256   1.418   0.1566    
## pInd_Not                    0.37186    0.17095   2.175   0.0298 *  
## foxPerception.c            -0.01927    0.06774  -0.284   0.7761    
## mediaPerception.c          -0.04469    0.09084  -0.492   0.6229    
## pDem_Rep:foxPerception.c    0.47882    0.10859   4.410 1.13e-05 ***
## pDem_Rep:mediaPerception.c -0.89428    0.17302  -5.169 2.76e-07 ***
## pInd_Not:foxPerception.c    0.12545    0.18147   0.691   0.4895    
## pInd_Not:mediaPerception.c -0.25069    0.22894  -1.095   0.2737    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.021 on 1204 degrees of freedom
##   (29 observations deleted due to missingness)
## Multiple R-squared:  0.05728,    Adjusted R-squared:  0.05101 
## F-statistic: 9.144 on 8 and 1204 DF,  p-value: 2.845e-12

No remarkable changes from fully interactive model (higher-order interactions weren’t significant in first go-around so this checks out).

b. Composing difference score and combined media measures

# difference score
d$diffFoxOther <- d$foxPerception - d$mediaPerception

# combined score
d$addFoxOther <- d$foxPerception + d$mediaPerception

c. Regression w/ difference score

anger.diff <- lm(anger ~ (pDem_Rep + pInd_Not) * diffFoxOther, data = d)
summary(anger.diff)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * diffFoxOther, data = d)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.595 -1.738 -0.374  1.574  4.786 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            2.925713   0.072376  40.424  < 2e-16 ***
## pDem_Rep               0.318881   0.157444   2.025   0.0430 *  
## pInd_Not               0.431508   0.169569   2.545   0.0111 *  
## diffFoxOther          -0.002481   0.062793  -0.040   0.9685    
## pDem_Rep:diffFoxOther  0.583100   0.098547   5.917 4.27e-09 ***
## pInd_Not:diffFoxOther  0.159799   0.169196   0.944   0.3451    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.024 on 1207 degrees of freedom
##   (29 observations deleted due to missingness)
## Multiple R-squared:  0.05182,    Adjusted R-squared:  0.0479 
## F-statistic: 13.19 on 5 and 1207 DF,  p-value: 1.557e-12

d. Regression w/ combined measure

anger.add <- lm(anger ~ (pDem_Rep + pInd_Not) * addFoxOther, data = d)
summary(anger.add)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * addFoxOther, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6023 -1.6643 -0.5311  1.4715  4.3718 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           3.24675    0.21372  15.191   <2e-16 ***
## pDem_Rep              0.21502    0.43940   0.489    0.625    
## pInd_Not              0.84250    0.51841   1.625    0.104    
## addFoxOther          -0.02659    0.04345  -0.612    0.541    
## pDem_Rep:addFoxOther  0.04408    0.08582   0.514    0.608    
## pInd_Not:addFoxOther -0.03162    0.10765  -0.294    0.769    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.055 on 1207 degrees of freedom
##   (29 observations deleted due to missingness)
## Multiple R-squared:  0.02329,    Adjusted R-squared:  0.01924 
## F-statistic: 5.756 on 5 and 1207 DF,  p-value: 2.935e-05

e. Descriptives of media difference score and combined measure

# difference score by party
aggregate(d$diffFoxOther, list(d$party_factor), FUN = mean, na.rm = T)
##       Group.1          x
## 1    Democrat -0.9196957
## 2  Republican  0.9673349
## 3 Independent -0.1943609
# combined score by party
aggregate(d$addFoxOther, list(d$party_factor), FUN = mean, na.rm = T)
##       Group.1        x
## 1    Democrat 4.853506
## 2  Republican 4.944303
## 3 Independent 4.510150

f. Graphs

i. Anger by media difference and party

media.diff.plot <- ggplot(d[!is.na(d$party_factor),], aes(x = diffFoxOther, y = anger)) +
  geom_smooth(method = 'lm', aes(x = diffFoxOther, y = anger, col = party_factor)) +
  facet_wrap(~party_factor)

media.diff.plot + theme_classic() +
  xlab("Difference between Fox and Other Media Trust/Exposure") +
  ylab("Anger") +
  theme(legend.position = c(1000,1000)) +
  coord_cartesian(xlim = c(-4,4),ylim = c(1, 7)) +
  scale_x_continuous(breaks = seq(-4,4,1)) +
  scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) +
  scale_color_manual(values = c("dodgerblue","red3","grey42"))
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 15 rows containing non-finite values (stat_smooth).

ii. Anger by Fox perception and party

media.add.plot <- ggplot(d[!is.na(d$party_factor),], aes(x = addFoxOther, y = anger)) +
  geom_smooth(method = 'lm', aes(x = addFoxOther, y = anger, col = party_factor)) +
  facet_wrap(~party_factor)

media.add.plot + theme_classic() +
  xlab("Combined Fox and Other Media Trust/Exposure") +
  ylab("Anger") +
  theme(legend.position = c(1000,1000)) +
  coord_cartesian(xlim = c(1,10),ylim = c(1, 7)) +
  scale_x_continuous(breaks = seq(1,10,1)) +
  scale_y_continuous(breaks = seq(1,7,1)) +
  scale_color_manual(values = c("dodgerblue","red3","grey42"))
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 15 rows containing non-finite values (stat_smooth).

(2) All analyses from III.1 run with just media consumption

mediaExposure_5 = Fox News mediaExposure = all but Fox News

a. Regression predicting anger from partisanship and media measures

anger3 <- lm(anger ~ (pDem_Rep + pInd_Not) * (mediaExposure_5 + mediaExposure), data = d)
summary(anger3)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * (mediaExposure_5 + 
##     mediaExposure), data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3571 -1.7731 -0.3797  1.5787  4.6790 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               2.68998    0.16036  16.775  < 2e-16 ***
## pDem_Rep                  0.84381    0.34504   2.446 0.014607 *  
## pInd_Not                  0.81274    0.37842   2.148 0.031935 *  
## mediaExposure_5           0.02564    0.06332   0.405 0.685585    
## mediaExposure             0.12214    0.08391   1.456 0.145766    
## pDem_Rep:mediaExposure_5  0.38391    0.10084   3.807 0.000148 ***
## pDem_Rep:mediaExposure   -0.69667    0.15796  -4.411 1.12e-05 ***
## pInd_Not:mediaExposure_5  0.13835    0.16994   0.814 0.415739    
## pInd_Not:mediaExposure   -0.34249    0.21255  -1.611 0.107368    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.027 on 1205 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.05076,    Adjusted R-squared:  0.04446 
## F-statistic: 8.055 on 8 and 1205 DF,  p-value: 1.237e-10

b. Composing difference score and combined media measures

# difference score
d$diffFoxOther.cons <- d$mediaExposure_5 - d$mediaExposure

# combined score
d$addFoxOther.cons <- d$mediaExposure_5 + d$mediaExposure

c. Regression w/ difference score

anger.diff.cons <- lm(anger ~ (pDem_Rep + pInd_Not) * diffFoxOther.cons, data = d)
summary(anger.diff.cons)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * diffFoxOther.cons, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3371 -1.7551 -0.3401  1.6566  4.6183 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.98309    0.06996  42.639  < 2e-16 ***
## pDem_Rep                    0.20175    0.15005   1.345  0.17902    
## pInd_Not                    0.48000    0.16545   2.901  0.00378 ** 
## diffFoxOther.cons          -0.01993    0.06049  -0.330  0.74181    
## pDem_Rep:diffFoxOther.cons  0.46397    0.09478   4.895 1.11e-06 ***
## pInd_Not:diffFoxOther.cons  0.18678    0.16307   1.145  0.25227    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.032 on 1208 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.04418,    Adjusted R-squared:  0.04022 
## F-statistic: 11.17 on 5 and 1208 DF,  p-value: 1.543e-10

d. Regression w/ combined measure

anger.add.cons <- lm(anger ~ (pDem_Rep + pInd_Not) * addFoxOther.cons, data = d)
summary(anger.add.cons)
## 
## Call:
## lm(formula = anger ~ (pDem_Rep + pInd_Not) * addFoxOther.cons, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0941 -1.8479 -0.4305  1.6043  4.5331 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                2.73817    0.15556  17.602  < 2e-16 ***
## pDem_Rep                   0.27945    0.32832   0.851  0.39485    
## pInd_Not                   0.75285    0.37157   2.026  0.04297 *  
## addFoxOther.cons           0.09408    0.03600   2.613  0.00907 ** 
## pDem_Rep:addFoxOther.cons  0.02755    0.07085   0.389  0.69743    
## pInd_Not:addFoxOther.cons -0.03357    0.08934  -0.376  0.70712    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.048 on 1208 degrees of freedom
##   (28 observations deleted due to missingness)
## Multiple R-squared:  0.02879,    Adjusted R-squared:  0.02477 
## F-statistic: 7.161 on 5 and 1208 DF,  p-value: 1.294e-06

e. Descriptives of media difference score and combined measure

# difference score by party
aggregate(d$diffFoxOther.cons, list(d$party_factor), FUN = mean, na.rm = T)
##       Group.1           x
## 1    Democrat -0.46223509
## 2  Republican  1.15394089
## 3 Independent  0.02481203
# combined score by party
aggregate(d$addFoxOther.cons, list(d$party_factor), FUN = mean, na.rm = T)
##       Group.1        x
## 1    Democrat 4.069378
## 2  Republican 4.462438
## 3 Independent 3.638346

f. Graphs

i. Anger by media consumption difference and party

cons.diff.plot <- ggplot(d[!is.na(d$party_factor),], aes(x = diffFoxOther.cons, y = anger)) +
  geom_smooth(method = 'lm', aes(x = diffFoxOther.cons, y = anger, col = party_factor)) +
  facet_wrap(~party_factor)

cons.diff.plot + theme_classic() +
  xlab("Difference between Fox and Other Media Exposure") +
  ylab("Anger") +
  theme(legend.position = c(1000,1000)) +
  coord_cartesian(xlim = c(-4,4),ylim = c(1, 7)) +
  scale_x_continuous(breaks = seq(-4,4,1)) +
  scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) +
  scale_color_manual(values = c("dodgerblue","red3","grey42"))
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 14 rows containing non-finite values (stat_smooth).

ii. Anger by combined media consumption and party

cons.add.plot <- ggplot(d[!is.na(d$party_factor),], aes(x = addFoxOther.cons, y = anger)) +
  geom_smooth(method = 'lm', aes(x = addFoxOther.cons, y = anger, col = party_factor)) +
  facet_wrap(~party_factor)

cons.add.plot + theme_classic() +
  xlab("Combined Fox and Other Media Exposure") +
  ylab("Anger") +
  theme(legend.position = c(1000,1000)) +
  coord_cartesian(xlim = c(1,10),ylim = c(1, 7)) +
  scale_x_continuous(breaks = seq(1,10,1)) +
  scale_y_continuous(breaks = seq(1,7,1)) +
  scale_color_manual(values = c("dodgerblue","red3","grey42"))
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 14 rows containing non-finite values (stat_smooth).