Hypothesis 7: Zero-sum mindset will predict implicit hostile attribution bias across a variety of situations.
library(here)
library(readr)
library(psych)
library(tidyverse)
hb <- read_csv(here( "data", "s1a.csv"))
h_df <- select(hb, ends_with(".H"))
b_df <- select(hb, ends_with(".B"))
h_df_binary <- h_df - 1
b_df_binary <- b_df - 1
hostile_sum <- rowSums(h_df_binary)
benign_sum <- rowSums(b_df_binary)
hostile_mean <- rowMeans(h_df_binary)
benign_mean <- rowMeans(b_df_binary)
Hostile.Bias.Sum <- hostile_sum - benign_sum
Hostile.Bias.Mean <- hostile_mean - benign_mean
Describing Key Variables
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 821 3.05 1.35 2.8 2.93 1.19 1 7 6 0.75 -0.11 0.05
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 821 -2.29 4.19 -2 -2.16 4.45 -15 11 26 -0.27 -0.26 0.15
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 821 -0.15 0.28 -0.13 -0.14 0.3 -1 0.73 1.73 -0.27 -0.26 0.01
nfc_df <- select(hb, starts_with("NFClo"))
psych::alpha(nfc_df)
##
## Reliability analysis
## Call: psych::alpha(x = nfc_df)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.89 0.89 0.91 0.35 8 0.0058 4.7 0.91 0.32
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.87 0.89 0.9
## Duhachek 0.87 0.89 0.9
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se
## NFClo.1.Ambiguity 0.87 0.88 0.89 0.33 7.0 0.0065
## NFClo.2.ClosedMinded 0.88 0.88 0.90 0.35 7.4 0.0063
## NFClo.3.Order 0.88 0.88 0.90 0.35 7.5 0.0061
## NFClo.4.Ambiguity 0.88 0.89 0.90 0.36 7.7 0.0060
## NFClo.5.ClosedMinded 0.88 0.89 0.91 0.36 7.8 0.0059
## NFClo.6.Predictability 0.87 0.88 0.90 0.34 7.2 0.0064
## NFClo.7.Decisive 0.88 0.89 0.91 0.36 7.9 0.0059
## NFClo.8.Decisive 0.88 0.88 0.90 0.35 7.6 0.0061
## NFClo.9.Decisive 0.88 0.88 0.90 0.35 7.4 0.0063
## NFClo.10.Predictability 0.88 0.88 0.90 0.35 7.4 0.0063
## NFClo.11.Ambiguity 0.88 0.88 0.90 0.34 7.3 0.0064
## NFClo.12.Order 0.88 0.88 0.90 0.35 7.4 0.0062
## NFClo.13.Order 0.88 0.88 0.90 0.34 7.3 0.0062
## NFClo.14.ClosedMinded 0.89 0.89 0.91 0.37 8.3 0.0055
## NFClo.15.Predictability 0.87 0.88 0.90 0.34 7.1 0.0065
## var.r med.r
## NFClo.1.Ambiguity 0.017 0.32
## NFClo.2.ClosedMinded 0.020 0.32
## NFClo.3.Order 0.017 0.33
## NFClo.4.Ambiguity 0.019 0.33
## NFClo.5.ClosedMinded 0.020 0.34
## NFClo.6.Predictability 0.018 0.32
## NFClo.7.Decisive 0.020 0.34
## NFClo.8.Decisive 0.021 0.32
## NFClo.9.Decisive 0.021 0.32
## NFClo.10.Predictability 0.021 0.32
## NFClo.11.Ambiguity 0.020 0.32
## NFClo.12.Order 0.017 0.33
## NFClo.13.Order 0.017 0.32
## NFClo.14.ClosedMinded 0.016 0.35
## NFClo.15.Predictability 0.018 0.32
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## NFClo.1.Ambiguity 821 0.76 0.77 0.77 0.72 5.1 1.4
## NFClo.2.ClosedMinded 821 0.67 0.64 0.62 0.59 4.0 1.7
## NFClo.3.Order 821 0.61 0.64 0.62 0.54 5.2 1.4
## NFClo.4.Ambiguity 821 0.56 0.55 0.51 0.48 4.9 1.5
## NFClo.5.ClosedMinded 821 0.55 0.53 0.47 0.46 3.6 1.6
## NFClo.6.Predictability 821 0.71 0.71 0.70 0.65 5.2 1.4
## NFClo.7.Decisive 821 0.47 0.50 0.44 0.40 5.6 1.1
## NFClo.8.Decisive 821 0.58 0.59 0.55 0.51 5.1 1.4
## NFClo.9.Decisive 821 0.67 0.65 0.62 0.59 4.3 1.6
## NFClo.10.Predictability 821 0.66 0.65 0.61 0.59 4.5 1.5
## NFClo.11.Ambiguity 821 0.69 0.68 0.66 0.63 4.6 1.6
## NFClo.12.Order 821 0.63 0.65 0.64 0.57 5.4 1.2
## NFClo.13.Order 821 0.65 0.68 0.67 0.59 5.4 1.2
## NFClo.14.ClosedMinded 821 0.41 0.39 0.32 0.30 3.4 1.7
## NFClo.15.Predictability 821 0.76 0.76 0.75 0.70 5.0 1.5
##
## Non missing response frequency for each item
## 1 2 3 4 5 6 7 miss
## NFClo.1.Ambiguity 0.02 0.05 0.11 0.09 0.32 0.29 0.14 0
## NFClo.2.ClosedMinded 0.06 0.18 0.15 0.17 0.21 0.16 0.07 0
## NFClo.3.Order 0.02 0.03 0.08 0.09 0.30 0.32 0.16 0
## NFClo.4.Ambiguity 0.03 0.07 0.09 0.11 0.31 0.28 0.12 0
## NFClo.5.ClosedMinded 0.09 0.22 0.20 0.15 0.21 0.10 0.03 0
## NFClo.6.Predictability 0.01 0.05 0.08 0.08 0.32 0.33 0.14 0
## NFClo.7.Decisive 0.01 0.02 0.02 0.10 0.28 0.39 0.19 0
## NFClo.8.Decisive 0.01 0.05 0.08 0.12 0.33 0.29 0.13 0
## NFClo.9.Decisive 0.04 0.12 0.19 0.11 0.29 0.16 0.08 0
## NFClo.10.Predictability 0.03 0.09 0.15 0.16 0.28 0.21 0.08 0
## NFClo.11.Ambiguity 0.03 0.11 0.12 0.14 0.28 0.23 0.09 0
## NFClo.12.Order 0.01 0.02 0.06 0.09 0.31 0.34 0.17 0
## NFClo.13.Order 0.01 0.01 0.05 0.08 0.31 0.35 0.18 0
## NFClo.14.ClosedMinded 0.12 0.26 0.22 0.12 0.13 0.11 0.05 0
## NFClo.15.Predictability 0.02 0.06 0.10 0.13 0.28 0.26 0.14 0
hb$need_for_closure_mean <- rowMeans(nfc_df)
# Simple Test
test <- lm(hb$Hostile.Bias.Mean ~ hb$zsm_mean)
summary(test)
##
## Call:
## lm(formula = hb$Hostile.Bias.Mean ~ hb$zsm_mean)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.7440 -0.1887 0.0109 0.1782 0.8892
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.323111 0.023162 -13.950 < 2e-16 ***
## hb$zsm_mean 0.055900 0.006938 8.057 2.75e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.269 on 819 degrees of freedom
## Multiple R-squared: 0.07345, Adjusted R-squared: 0.07231
## F-statistic: 64.92 on 1 and 819 DF, p-value: 2.751e-15
#Standardized Estimates
test <- lm(scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean))
summary(test)
##
## Call:
## lm(formula = scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.6643 -0.6757 0.0390 0.6381 3.1842
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.042e-15 3.361e-02 0.000 1
## scale(hb$zsm_mean) 2.710e-01 3.364e-02 8.057 2.75e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9632 on 819 degrees of freedom
## Multiple R-squared: 0.07345, Adjusted R-squared: 0.07231
## F-statistic: 64.92 on 1 and 819 DF, p-value: 2.751e-15
confint(test)
## 2.5 % 97.5 %
## (Intercept) -0.06598107 0.06598107
## scale(hb$zsm_mean) 0.20498649 0.33702906
# Robustness Checks
# Controlling for Need for Closure
test <- lm(scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) + scale(hb$need_for_closure_mean))
summary(test)
##
## Call:
## lm(formula = scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) +
## scale(hb$need_for_closure_mean))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.50118 -0.66027 0.01164 0.66277 2.99984
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.505e-15 3.289e-02 0.000 1
## scale(hb$zsm_mean) 2.058e-01 3.458e-02 5.952 3.93e-09 ***
## scale(hb$need_for_closure_mean) 2.122e-01 3.458e-02 6.138 1.30e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9423 on 818 degrees of freedom
## Multiple R-squared: 0.1142, Adjusted R-squared: 0.1121
## F-statistic: 52.75 on 2 and 818 DF, p-value: < 2.2e-16
# Demographic covariates
test <- lm(scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) + scale(hb$age) + scale(hb$income) + hb$sex + scale(hb$education) + hb$race)
summary(test)
##
## Call:
## lm(formula = scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) +
## scale(hb$age) + scale(hb$income) + hb$sex + scale(hb$education) +
## hb$race)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.6468 -0.6671 0.0343 0.6784 3.1801
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.179714 0.100564 1.787 0.07431 .
## scale(hb$zsm_mean) 0.240427 0.036044 6.670 4.77e-11 ***
## scale(hb$age) 0.008091 0.034609 0.234 0.81521
## scale(hb$income) -0.013942 0.035644 -0.391 0.69579
## hb$sexMale 0.146803 0.068151 2.154 0.03153 *
## hb$sexOther 0.616592 0.393541 1.567 0.11756
## scale(hb$education) -0.077064 0.035512 -2.170 0.03030 *
## hb$raceEast Asian -0.327982 0.190870 -1.718 0.08612 .
## hb$raceIndigenous 0.235165 0.956979 0.246 0.80595
## hb$raceLatinx -0.043523 0.165897 -0.262 0.79312
## hb$raceMiddle Eastern -1.794271 0.964581 -1.860 0.06323 .
## hb$raceMixed -0.456962 0.183332 -2.493 0.01289 *
## hb$raceOther -0.756003 0.401696 -1.882 0.06020 .
## hb$raceWhite -0.298706 0.103842 -2.877 0.00413 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9516 on 797 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.1067, Adjusted R-squared: 0.09213
## F-statistic: 7.323 on 13 and 797 DF, p-value: 1.1e-13
# Adding demographic and Need for closure
test <- lm(scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) + scale(hb$age) + scale(hb$income) + hb$sex + scale(hb$education) + hb$race + scale(hb$need_for_closure_mean))
summary(test)
##
## Call:
## lm(formula = scale(hb$Hostile.Bias.Mean) ~ scale(hb$zsm_mean) +
## scale(hb$age) + scale(hb$income) + hb$sex + scale(hb$education) +
## hb$race + scale(hb$need_for_closure_mean))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.59503 -0.65318 0.02632 0.64034 3.13230
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.131880 0.098424 1.340 0.18066
## scale(hb$zsm_mean) 0.163370 0.037183 4.394 1.27e-05 ***
## scale(hb$age) -0.004867 0.033836 -0.144 0.88567
## scale(hb$income) -0.034845 0.034938 -0.997 0.31891
## hb$sexMale 0.195318 0.066939 2.918 0.00362 **
## hb$sexOther 0.576925 0.384102 1.502 0.13349
## scale(hb$education) -0.078761 0.034657 -2.273 0.02332 *
## hb$raceEast Asian -0.197640 0.187381 -1.055 0.29186
## hb$raceIndigenous 0.359517 0.934107 0.385 0.70043
## hb$raceLatinx -0.036442 0.161901 -0.225 0.82197
## hb$raceMiddle Eastern -1.813106 0.941328 -1.926 0.05445 .
## hb$raceMixed -0.414992 0.179032 -2.318 0.02070 *
## hb$raceOther -0.766593 0.392014 -1.956 0.05087 .
## hb$raceWhite -0.275849 0.101401 -2.720 0.00666 **
## scale(hb$need_for_closure_mean) 0.222808 0.034851 6.393 2.77e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9287 on 796 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.1503, Adjusted R-squared: 0.1354
## F-statistic: 10.06 on 14 and 796 DF, p-value: < 2.2e-16
ggplot(hb, aes(hb$zsm_mean, scale(hb$Hostile.Bias.Mean))) +
geom_smooth(method = lm, color = "red") +
xlab("Zero-Sum Mindset") +
ylab("Hostile Attribution Bias (Standardized)") +
theme_classic() +
geom_jitter() +
theme(axis.text = element_text(size = 14),
axis.title.x = element_text(size = 18),
axis.title.y = element_text(size = 18))