H1 Stress, experiences with discrimination, and rejection sensitivity will predict inequality-driven mistrust
H2 Hypothesis 1 will be replicated with a new sample and in a mini meta-analysis
H3 Inequality-driven mistrust will predict misinformation acceptance, accurate information acceptance, and increased susceptibility to misinformation
H4 Experiences with discrimination and rejection sensitivity predict misinformation acceptance but not accurate information acceptance, mediated by inequality-driven mistrust
Loading
Load Libraries
Code
library(psych)library(kableExtra)library(ggplot2)library(tidyr)library(dplyr)library(nFactors)# remotes::install_version("lavaan", version = "0.6.17")library(lavaan)library(semPlot)library(semTools)library(tidySEM)library(stringr)library(corrplot)library(mifa) # MI covariance matrix for EFAlibrary(mice) # underlying imputation enginelibrary(sjPlot)library(metafor)library(broom)# library(DiagrammeR)library(lme4)library(lmerTest)
$helpless
Composite `helpless` is composed of observed variables:
Q6_2, Q6_3, Q6_6, Q6_9, Q6_10
True-score variance is represented by common factor(s):
helpless
Total variance of composite `helpless` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.874
$efficacy
Composite `efficacy` is composed of observed variables:
Q6_4, Q6_5, Q6_7, Q6_8
True-score variance is represented by common factor(s):
efficacy
Total variance of composite `efficacy` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.831
Code
# AlphacompRelSEM(fit, tau.eq =TRUE)
$helpless
Composite `helpless` is composed of observed variables:
Q6_2, Q6_3, Q6_6, Q6_9, Q6_10
Total variance of composite `helpless` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.877
$efficacy
Composite `efficacy` is composed of observed variables:
Q6_4, Q6_5, Q6_7, Q6_8
Total variance of composite `efficacy` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.827
d <-na.omit(subset(df1, select=c(grep("Q39_", colnames(df1)))))labels <-c(Q39_1 ="Less Courtesy",Q39_2 ="Less Respect",Q39_3 ="Poorer Service",Q39_4 ="Seen as Not Smart",Q39_5 ="Seen as Threatening",Q39_6 ="Seen as Dishonest",Q39_8 ="Inferior",Q39_9 ="Insulted",Q39_10 ="Threatened/Harassed")names(d) <- labelsd_long <-stack(d)names(d_long) <-c("value", "variable")ggplot(d_long, aes(x = value)) +geom_histogram(binwidth =1, fill ="steelblue", color ="white") +facet_wrap(~ variable, labeller =label_wrap_gen(width =30)) +theme_minimal()
EFA 1
Code
ev <-eigen(cor(d)) # get eigenvaluesap <-parallel(subject=nrow(d),var=ncol(d),rep=100,cent=.05) # run the parallel analysis, gives us another perspective on how many factors should be used in the modelnS <-nScree(x=ev$values, aparallel=ap$eigen$qevpea) # creates the scree plotplotnScree(nS) # shows us the scree plot, look for the elbows
Call:
factanal(x = d, factors = 1, rotation = "promax")
Uniquenesses:
Less Courtesy Less Respect Poorer Service Seen as Not Smart
0.175 0.151 0.684 0.542
Seen as Threatening Seen as Dishonest Inferior Insulted
0.804 0.658 0.504 0.678
Threatened/Harassed
0.716
Loadings:
Factor1
Less Courtesy 0.908
Less Respect 0.921
Poorer Service 0.562
Seen as Not Smart 0.677
Seen as Threatening 0.443
Seen as Dishonest 0.585
Inferior 0.705
Insulted 0.568
Threatened/Harassed 0.533
Factor1
SS loadings 4.089
Proportion Var 0.454
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 373.2 on 27 degrees of freedom.
The p-value is 1.39e-62
EFA 2
Code
d <-subset(d, select =-c(`Seen as Threatening`, `Threatened/Harassed`, `Insulted`, `Poorer Service`))ev <-eigen(cor(d)) # get eigenvaluesap <-parallel(subject=nrow(d),var=ncol(d),rep=100,cent=.05) # run the parallel analysis, gives us another perspective on how many factors should be used in the modelnS <-nScree(x=ev$values, aparallel=ap$eigen$qevpea) # creates the scree plotplotnScree(nS) # shows us the scree plot, look for the elbows
Call:
factanal(x = d, factors = 1, rotation = "promax")
Uniquenesses:
Less Courtesy Less Respect Seen as Not Smart Seen as Dishonest
0.132 0.111 0.595 0.712
Inferior
0.545
Loadings:
Factor1
Less Courtesy 0.931
Less Respect 0.943
Seen as Not Smart 0.637
Seen as Dishonest 0.536
Inferior 0.674
Factor1
SS loadings 2.904
Proportion Var 0.581
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 125.02 on 5 degrees of freedom.
The p-value is 2.71e-25
CFA
RMSEA is high, likely due to low degrees of freedom.
End up with four items – treated less courtesy, treated less respect, seen as not smart, and inferior.
Kenny, D. A., Kaniskan, B., & McCoach, D. B. (2015). The performance of RMSEA in models with small degrees of freedom. Sociological methods & research, 44(3), 486-507.
Code
# labels <- c(# Q39_1 = "Less Courtesy",# Q39_2 = "Less Respect",# Q39_4 = "Seen as Not Smart",# Q39_8 = "Inferior",# )d <-na.omit(subset(df2, select=c(grep("Q7_", colnames(df2)))))# specify model: latent variables =~ observed indicatorsmodel <-' discrim =~ Q7_1 + Q7_2 + Q7_4 + Q7_8'# fit CFAfit <-cfa(model, data = d, std.lv =TRUE)# summary with fit indices and standardized loadingssummary(fit, fit.measures =TRUE, standardized =TRUE)
lavaan 0.6-21 ended normally after 20 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 8
Number of observations 184
Model Test User Model:
Test statistic 10.197
Degrees of freedom 2
P-value (Chi-square) 0.006
Model Test Baseline Model:
Test statistic 473.394
Degrees of freedom 6
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.982
Tucker-Lewis Index (TLI) 0.947
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -1030.948
Loglikelihood unrestricted model (H1) -1025.850
Akaike (AIC) 2077.896
Bayesian (BIC) 2103.615
Sample-size adjusted Bayesian (SABIC) 2078.277
Root Mean Square Error of Approximation:
RMSEA 0.149
90 Percent confidence interval - lower 0.068
90 Percent confidence interval - upper 0.245
P-value H_0: RMSEA <= 0.050 0.026
P-value H_0: RMSEA >= 0.080 0.924
Standardized Root Mean Square Residual:
SRMR 0.046
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
discrim =~
Q7_1 1.256 0.079 15.979 0.000 1.256 0.924
Q7_2 1.371 0.079 17.451 0.000 1.371 0.974
Q7_4 0.911 0.092 9.924 0.000 0.911 0.659
Q7_8 0.655 0.086 7.603 0.000 0.655 0.529
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.Q7_1 0.269 0.059 4.543 0.000 0.269 0.146
.Q7_2 0.102 0.063 1.621 0.105 0.102 0.051
.Q7_4 1.081 0.117 9.234 0.000 1.081 0.565
.Q7_8 1.103 0.117 9.428 0.000 1.103 0.720
discrim 1.000 1.000 1.000
$discrim
Composite `discrim` is composed of observed variables:
Q7_1, Q7_2, Q7_4, Q7_8
True-score variance is represented by common factor(s):
discrim
Total variance of composite `discrim` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.856
Code
# AlphacompRelSEM(fit, tau.eq =TRUE)
$discrim
Composite `discrim` is composed of observed variables:
Q7_1, Q7_2, Q7_4, Q7_8
Total variance of composite `discrim` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.861
d <-na.omit(subset(df1, select=c(grep("Q40_", colnames(df1)))))labels <-c(Q40_1 ="Hiring Discrimination",Q40_2 ="Seen as Untrustworthy",Q40_3 ="Seen as Dangerous",Q40_4 ="Devalued",Q40_5 ="Looked Down On",Q40_6 ="Seen as Less Intelligent")names(d) <- labelsd_long <-stack(d)names(d_long) <-c("value", "variable")ggplot(d_long, aes(x = value)) +geom_histogram(binwidth =1, fill ="steelblue", color ="white") +facet_wrap(~ variable, labeller =label_wrap_gen(width =30)) +theme_minimal()
EFA 1
Code
ev <-eigen(cor(d)) # get eigenvaluesap <-parallel(subject=nrow(d),var=ncol(d),rep=100,cent=.05) # run the parallel analysis, gives us another perspective on how many factors should be used in the modelnS <-nScree(x=ev$values, aparallel=ap$eigen$qevpea) # creates the scree plotplotnScree(nS) # shows us the scree plot, look for the elbows
Call:
factanal(x = d, factors = 1, rotation = "promax")
Uniquenesses:
Hiring Discrimination Seen as Untrustworthy Seen as Dangerous
0.529 0.488 0.556
Devalued Looked Down On Seen as Less Intelligent
0.125 0.138 0.357
Loadings:
Factor1
Hiring Discrimination 0.686
Seen as Untrustworthy 0.716
Seen as Dangerous 0.666
Devalued 0.935
Looked Down On 0.928
Seen as Less Intelligent 0.802
Factor1
SS loadings 3.807
Proportion Var 0.635
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 140.3 on 9 degrees of freedom.
The p-value is 8.97e-26
CFA
Dropped ‘person like you is dangerous and unpredictable’
Code
d <-na.omit(subset(df2, select=c(grep("Q8_", colnames(df2)))))# specify model: latent variables =~ observed indicatorsmodel <-' discrim =~ Q8_1 + Q8_2 + Q8_4 + Q8_5 + Q8_6'# fit CFAfit <-cfa(model, data = d, std.lv =TRUE)# summary with fit indices and standardized loadingssummary(fit, fit.measures =TRUE, standardized =TRUE)
lavaan 0.6-21 ended normally after 26 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 10
Number of observations 184
Model Test User Model:
Test statistic 8.919
Degrees of freedom 5
P-value (Chi-square) 0.112
Model Test Baseline Model:
Test statistic 681.994
Degrees of freedom 10
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.994
Tucker-Lewis Index (TLI) 0.988
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -893.823
Loglikelihood unrestricted model (H1) -889.363
Akaike (AIC) 1807.645
Bayesian (BIC) 1839.795
Sample-size adjusted Bayesian (SABIC) 1808.122
Root Mean Square Error of Approximation:
RMSEA 0.065
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.134
P-value H_0: RMSEA <= 0.050 0.297
P-value H_0: RMSEA >= 0.080 0.423
Standardized Root Mean Square Residual:
SRMR 0.025
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
discrim =~
Q8_1 0.660 0.061 10.749 0.000 0.660 0.702
Q8_2 0.524 0.050 10.398 0.000 0.524 0.685
Q8_4 0.908 0.054 16.821 0.000 0.908 0.942
Q8_5 0.904 0.055 16.435 0.000 0.904 0.929
Q8_6 0.811 0.060 13.478 0.000 0.811 0.822
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.Q8_1 0.448 0.049 9.067 0.000 0.448 0.507
.Q8_2 0.311 0.034 9.116 0.000 0.311 0.531
.Q8_4 0.105 0.021 4.944 0.000 0.105 0.113
.Q8_5 0.129 0.023 5.686 0.000 0.129 0.137
.Q8_6 0.315 0.037 8.439 0.000 0.315 0.324
discrim 1.000 1.000 1.000
$discrim
Composite `discrim` is composed of observed variables:
Q8_1, Q8_2, Q8_4, Q8_5, Q8_6
True-score variance is represented by common factor(s):
discrim
Total variance of composite `discrim` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.914
Code
# AlphacompRelSEM(fit, tau.eq =TRUE)
$discrim
Composite `discrim` is composed of observed variables:
Q8_1, Q8_2, Q8_4, Q8_5, Q8_6
Total variance of composite `discrim` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.909
d <-na.omit(subset(df1, select=c(grep("Q18_", colnames(df1)))))labels <-c(Q18_1 ="Unfair Treatment Expected",Q18_2 ="Information Untruthful",Q18_3 ="Distrust from Experience",Q18_4 ="Insincere Intentions",Q18_5 ="Can't Trust Others",Q18_6 ="Will Be Taken Advantage Of",Q18_7 ="No One Would Help",Q18_8 ="Others Out to Get Me",Q18_9 ="Distrust Authority",Q18_11 ="Officials Untrustworthy",Q18_12 ="Treated Unjustly",Q18_13 ="Prefer Self-Research",Q18_14 ="Faith Leads to Hurt",Q18_15 ="Question Why Told Things",Q18_16 ="Ignore Others' Advice")# shorten labels to max 40 characters (you can adjust the number)# labels <- str_trunc(labels, width = 60, side = "right")# replace column namesnames(d) <- labelsd_long <-stack(d)names(d_long) <-c("value", "variable")ggplot(d_long, aes(x = value)) +geom_histogram(binwidth =1, fill ="steelblue", color ="white") +facet_wrap(~ variable, labeller =label_wrap_gen(width =30)) +theme_minimal()
EFA 1
Code
ev <-eigen(cor(d)) # get eigenvaluesap <-parallel(subject=nrow(d),var=ncol(d),rep=100,cent=.05) # run the parallel analysis, gives us another perspective on how many factors should be used in the modelnS <-nScree(x=ev$values, aparallel=ap$eigen$qevpea) # creates the scree plotplotnScree(nS) # shows us the scree plot, look for the elbows
Call:
factanal(x = d, factors = 3, rotation = "promax")
Uniquenesses:
Unfair Treatment Expected Information Untruthful
0.546 0.648
Distrust from Experience Insincere Intentions
0.231 0.155
Can't Trust Others Will Be Taken Advantage Of
0.342 0.497
No One Would Help Others Out to Get Me
0.684 0.535
Distrust Authority Officials Untrustworthy
0.342 0.450
Treated Unjustly Prefer Self-Research
0.391 0.757
Faith Leads to Hurt Question Why Told Things
0.435 0.388
Ignore Others' Advice
0.692
Loadings:
Factor1 Factor2 Factor3
Information Untruthful 0.622
Others Out to Get Me 0.697
Distrust Authority 0.932
Officials Untrustworthy 0.821
Treated Unjustly 0.780
Distrust from Experience 0.926
Insincere Intentions 0.942
Can't Trust Others 0.632
Faith Leads to Hurt 0.714
Question Why Told Things 0.884
Ignore Others' Advice 0.571
Unfair Treatment Expected 0.481
Will Be Taken Advantage Of 0.433
No One Would Help
Prefer Self-Research 0.444
Factor1 Factor2 Factor3
SS loadings 3.557 2.454 1.898
Proportion Var 0.237 0.164 0.127
Cumulative Var 0.237 0.401 0.527
Factor Correlations:
Factor1 Factor2 Factor3
Factor1 1.000 0.683 0.721
Factor2 0.683 1.000 0.692
Factor3 0.721 0.692 1.000
Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 121.21 on 63 degrees of freedom.
The p-value is 1.48e-05
EFA 2
Code
d <-subset(d, select =-c(`No One Would Help`))ev <-eigen(cor(d)) # get eigenvaluesap <-parallel(subject=nrow(d),var=ncol(d),rep=100,cent=.05) # run the parallel analysis, gives us another perspective on how many factors should be used in the modelnS <-nScree(x=ev$values, aparallel=ap$eigen$qevpea) # creates the scree plotplotnScree(nS) # shows us the scree plot, look for the elbows
Call:
factanal(x = d, factors = 3, rotation = "promax")
Uniquenesses:
Unfair Treatment Expected Information Untruthful
0.548 0.643
Distrust from Experience Insincere Intentions
0.230 0.155
Can't Trust Others Will Be Taken Advantage Of
0.342 0.498
Others Out to Get Me Distrust Authority
0.556 0.340
Officials Untrustworthy Treated Unjustly
0.432 0.393
Prefer Self-Research Faith Leads to Hurt
0.749 0.423
Question Why Told Things Ignore Others' Advice
0.413 0.688
Loadings:
Factor1 Factor2 Factor3
Information Untruthful 0.614
Others Out to Get Me 0.657
Distrust Authority 0.915
Officials Untrustworthy 0.823
Treated Unjustly 0.763
Distrust from Experience 0.919
Insincere Intentions 0.931
Can't Trust Others 0.628
Faith Leads to Hurt 0.722
Question Why Told Things 0.836
Ignore Others' Advice 0.567
Unfair Treatment Expected 0.470
Will Be Taken Advantage Of 0.431
Prefer Self-Research 0.451
Factor1 Factor2 Factor3
SS loadings 3.267 2.411 1.805
Proportion Var 0.233 0.172 0.129
Cumulative Var 0.233 0.406 0.535
Factor Correlations:
Factor1 Factor2 Factor3
Factor1 1.00 0.670 0.700
Factor2 0.67 1.000 0.679
Factor3 0.70 0.679 1.000
Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 85.57 on 52 degrees of freedom.
The p-value is 0.00231
CFA
Code
# labels <- c(# Q18_1 = "Unfair Treatment Expected",# Q18_2 = "Information Untruthful",# Q18_3 = "Distrust from Experience",# Q18_4 = "Insincere Intentions",# Q18_5 = "Can't Trust Others",# Q18_6 = "Will Be Taken Advantage Of",# Q18_8 = "Others Out to Get Me",# Q18_9 = "Distrust Authority",# Q18_10 = "Officials Untrustworthy",# Q18_11 = "Treated Unjustly",# Q18_13 = "Prefer Self-Research",# Q18_14 = "Faith Leads to Hurt",# Q18_15 = "Question Why Told Things",# Q18_16 = "Ignore Others' Advice"# )d <-na.omit(subset(df2, select=c(grep("Q18_", colnames(df2)))))# specify model: latent variables =~ observed indicatorsmodel <-' da =~ Q18_8 + Q18_9 + Q18_10 + Q18_11 ib =~ Q18_3 + Q18_4 + Q18_5 + Q18_6 dp =~ Q18_14 + Q18_15 + Q18_16 + Q18_13'# fit CFAfit <-cfa(model, data = d, std.lv =TRUE)# summary with fit indices and standardized loadingssummary(fit, fit.measures =TRUE, standardized =TRUE)
lavaan 0.6-21 ended normally after 26 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 27
Number of observations 184
Model Test User Model:
Test statistic 132.881
Degrees of freedom 51
P-value (Chi-square) 0.000
Model Test Baseline Model:
Test statistic 1278.294
Degrees of freedom 66
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.932
Tucker-Lewis Index (TLI) 0.913
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -2492.399
Loglikelihood unrestricted model (H1) -2425.958
Akaike (AIC) 5038.798
Bayesian (BIC) 5125.601
Sample-size adjusted Bayesian (SABIC) 5040.085
Root Mean Square Error of Approximation:
RMSEA 0.093
90 Percent confidence interval - lower 0.074
90 Percent confidence interval - upper 0.113
P-value H_0: RMSEA <= 0.050 0.000
P-value H_0: RMSEA >= 0.080 0.878
Standardized Root Mean Square Residual:
SRMR 0.059
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
da =~
Q18_8 0.594 0.060 9.900 0.000 0.594 0.680
Q18_9 0.810 0.061 13.295 0.000 0.810 0.841
Q18_10 0.784 0.072 10.872 0.000 0.784 0.729
Q18_11 0.802 0.068 11.742 0.000 0.802 0.771
ib =~
Q18_3 0.902 0.059 15.357 0.000 0.902 0.897
Q18_4 0.933 0.061 15.203 0.000 0.933 0.892
Q18_5 0.795 0.058 13.777 0.000 0.795 0.839
Q18_6 0.771 0.068 11.372 0.000 0.771 0.736
dp =~
Q18_14 0.764 0.066 11.627 0.000 0.764 0.792
Q18_15 0.555 0.064 8.606 0.000 0.555 0.625
Q18_16 0.577 0.063 9.165 0.000 0.577 0.657
Q18_13 0.485 0.070 6.890 0.000 0.485 0.518
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
da ~~
ib 0.711 0.047 15.232 0.000 0.711 0.711
dp 0.676 0.059 11.516 0.000 0.676 0.676
ib ~~
dp 0.755 0.047 15.932 0.000 0.755 0.755
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.Q18_8 0.410 0.049 8.368 0.000 0.410 0.538
.Q18_9 0.272 0.045 6.110 0.000 0.272 0.293
.Q18_10 0.542 0.068 7.960 0.000 0.542 0.468
.Q18_11 0.439 0.059 7.465 0.000 0.439 0.406
.Q18_3 0.197 0.031 6.339 0.000 0.197 0.195
.Q18_4 0.224 0.034 6.524 0.000 0.224 0.205
.Q18_5 0.267 0.034 7.753 0.000 0.267 0.297
.Q18_6 0.503 0.058 8.692 0.000 0.503 0.458
.Q18_14 0.346 0.057 6.031 0.000 0.346 0.372
.Q18_15 0.481 0.058 8.273 0.000 0.481 0.610
.Q18_16 0.438 0.055 8.016 0.000 0.438 0.568
.Q18_13 0.640 0.072 8.845 0.000 0.640 0.731
da 1.000 1.000 1.000
ib 1.000 1.000 1.000
dp 1.000 1.000 1.000
# model_1factor <- '# oneidm =~ Q18_8 + Q18_3 + Q18_4 + Q18_5 + Q18_6 + Q18_14# '# # fit_1factor <- cfa(model_1factor, data = df2, estimator = "ML")# summary(fit_1factor, fit.measures = TRUE, standardized = TRUE)model2 <-' da =~ Q18_8 + Q18_9 + Q18_10 + Q18_11 ib =~ Q18_3 + Q18_4 + Q18_5 + Q18_6'# fit CFAfit2 <-cfa(model2, data = d, std.lv =TRUE)# summary with fit indices and standardized loadingssummary(fit2, fit.measures =TRUE, standardized =TRUE)
lavaan 0.6-21 ended normally after 23 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 17
Number of observations 184
Model Test User Model:
Test statistic 62.767
Degrees of freedom 19
P-value (Chi-square) 0.000
Model Test Baseline Model:
Test statistic 941.262
Degrees of freedom 28
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.952
Tucker-Lewis Index (TLI) 0.929
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -1646.279
Loglikelihood unrestricted model (H1) -1614.895
Akaike (AIC) 3326.557
Bayesian (BIC) 3381.211
Sample-size adjusted Bayesian (SABIC) 3327.368
Root Mean Square Error of Approximation:
RMSEA 0.112
90 Percent confidence interval - lower 0.082
90 Percent confidence interval - upper 0.143
P-value H_0: RMSEA <= 0.050 0.001
P-value H_0: RMSEA >= 0.080 0.959
Standardized Root Mean Square Residual:
SRMR 0.060
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
da =~
Q18_8 0.599 0.060 9.993 0.000 0.599 0.686
Q18_9 0.800 0.061 13.034 0.000 0.800 0.831
Q18_10 0.769 0.073 10.565 0.000 0.769 0.715
Q18_11 0.818 0.068 12.042 0.000 0.818 0.786
ib =~
Q18_3 0.902 0.059 15.309 0.000 0.902 0.896
Q18_4 0.940 0.061 15.380 0.000 0.940 0.899
Q18_5 0.794 0.058 13.735 0.000 0.794 0.837
Q18_6 0.761 0.068 11.148 0.000 0.761 0.726
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
da ~~
ib 0.713 0.046 15.353 0.000 0.713 0.713
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.Q18_8 0.404 0.049 8.282 0.000 0.404 0.530
.Q18_9 0.286 0.046 6.242 0.000 0.286 0.309
.Q18_10 0.565 0.070 8.041 0.000 0.565 0.489
.Q18_11 0.413 0.058 7.149 0.000 0.413 0.381
.Q18_3 0.199 0.032 6.233 0.000 0.199 0.196
.Q18_4 0.210 0.034 6.140 0.000 0.210 0.192
.Q18_5 0.268 0.035 7.712 0.000 0.268 0.299
.Q18_6 0.519 0.059 8.721 0.000 0.519 0.473
da 1.000 1.000 1.000
ib 1.000 1.000 1.000
Alpha/Omega
Code
# Omega (default)compRelSEM(fit)
$da
Composite `da` is composed of observed variables:
Q18_8, Q18_9, Q18_10, Q18_11
True-score variance is represented by common factor(s):
da
Total variance of composite `da` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.851
$ib
Composite `ib` is composed of observed variables:
Q18_3, Q18_4, Q18_5, Q18_6
True-score variance is represented by common factor(s):
ib
Total variance of composite `ib` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.912
$dp
Composite `dp` is composed of observed variables:
Q18_14, Q18_15, Q18_16, Q18_13
True-score variance is represented by common factor(s):
dp
Total variance of composite `dp` determined from the unrestricted model.
The proportion attributable to "true" scores is its model-based estimate of reliability ("omega"):
[1] 0.747
Code
# AlphacompRelSEM(fit, tau.eq =TRUE)
$da
Composite `da` is composed of observed variables:
Q18_8, Q18_9, Q18_10, Q18_11
Total variance of composite `da` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.835
$ib
Composite `ib` is composed of observed variables:
Q18_3, Q18_4, Q18_5, Q18_6
Total variance of composite `ib` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.902
$dp
Composite `dp` is composed of observed variables:
Q18_14, Q18_15, Q18_16, Q18_13
Total variance of composite `dp` determined from the unrestricted model.
Coefficient alpha would be:
[1] 0.742
corrout1 <-corr.test(subset(df1, select=c(60:72)))corrplot( corrout1$r,p.mat = corrout1$p, # add p-valuessig.level =0.05, # hide correlations above this p-valueinsig ="pch", # or "pch" to mark nonsignificant onesmethod ="color",type ="upper",tl.col ="black",tl.srt =45,addCoef.col ="black",number.cex =0.8)
S2
Code
corrout2 <-corr.test(subset(df2, select=c(216:242)))corrplot( corrout2$r,p.mat = corrout2$p, # add p-valuessig.level =0.05, # hide correlations above this p-valueinsig ="pch", # or "pch" to mark nonsignificant onesmethod ="color",type ="upper",tl.col ="black",tl.srt =45,addCoef.col ="black",number.cex =0.8)
Student Status & SES
Code
t.test(parent_edu ~ samp, data = df1)
Welch Two Sample t-test
data: parent_edu by samp
t = -12.26, df = 368.52, p-value < 2.2e-16
alternative hypothesis: true difference in means between group Prolific and group SONA is not equal to 0
95 percent confidence interval:
-1.3390379 -0.9688569
sample estimates:
mean in group Prolific mean in group SONA
2.546053 3.700000
Code
t.test(parent_edu ~ samp, data = df2)
Welch Two Sample t-test
data: parent_edu by samp
t = -8.0798, df = 83.629, p-value = 4.312e-12
alternative hypothesis: true difference in means between group Prolific and group SONA is not equal to 0
95 percent confidence interval:
-1.5966197 -0.9658899
sample estimates:
mean in group Prolific mean in group SONA
2.577236 3.858491
Hypothesis 1
H1 Stress, experiences with discrimination, and rejection sensitivity will predict inequality-driven mistrust
H3 Inequality-driven mistrust will predict misinformation acceptance, accurate information acceptance, and increased susceptibility to misinformation
Findings
IDM predicts misinformation acceptance (b = .14, p = .049) but not accurate information acceptance (b = .04, p = .549). Students are lower in misinformation (b = -.65, p < .001) and accurate information (b = -.71, p < .001) acceptance. IDM also predicts increased susceptability to misinformation acceptance (using residualized change approach; b = .11, p = .045). Students have lower susceptability to misinformation than non-students, but the difference is only borderline significant (b = -.23, p = .080).
Conclusions
IDM predicts misinformation acceptance and increased susceptability to misinformation, but not accurate information acceptance.
Call:
lm(formula = mis_dang_z ~ acc_dang_z + idm_z + samp, data = df2)
Residuals:
Min 1Q Median 3Q Max
-2.56046 -0.55236 0.04106 0.62231 1.94738
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.09610 0.08672 1.108 0.2695
acc_dang_z 0.42090 0.07460 5.642 7.7e-08 ***
idm_z 0.14944 0.07137 2.094 0.0379 *
sampSONA -0.24012 0.16541 -1.452 0.1486
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8955 on 156 degrees of freedom
(24 observations deleted due to missingness)
Multiple R-squared: 0.246, Adjusted R-squared: 0.2315
F-statistic: 16.97 on 3 and 156 DF, p-value: 1.376e-09
Hypothesis 4
H4 Experiences with discrimination and rejection sensitivity predict misinformation acceptance but not accurate information acceptance, mediated by inequality-driven mistrust
Findings
Overall, model is consistent with the hypothesized pathway but does not confirm it.
Conclusions
Analyses
All Posts
Code
model <-' # Direct effects on mis_z (c-prime paths) mis_z ~ c1*discrim_z + c2*reject_z + samp # Direct effects on acc_z (c-prime paths) acc_z ~ c3*discrim_z + c4*reject_z + samp # Effects of predictors on mediator (a paths) idm_z ~ a1*discrim_z + a2*reject_z + samp # Effect of mediator on outcomes (b paths) mis_z ~ b1*idm_z acc_z ~ b2*idm_z # Residual covariance between outcomes mis_z ~~ acc_z # Contrast: does IDM differentially predict mis_z vs acc_z? b_diff := b1 - b2 # Indirect effects on mis_z indirect_discrim_mis := a1*b1 indirect_reject_mis := a2*b1 # Indirect effects on acc_z indirect_discrim_acc := a1*b2 indirect_reject_acc := a2*b2 # Total effects on mis_z total_discrim_mis := c1 + (a1*b1) total_reject_mis := c2 + (a2*b1) # Total effects on acc_z total_discrim_acc := c3 + (a1*b2) total_reject_acc := c4 + (a2*b2)'# Fit the model# fit <- sem(model, data = df2, se = "bootstrap", bootstrap = 5000)# saveRDS(fit, file = "mediation_fit10.rds")fit6 <-readRDS("mediation_fit10.rds")# Summarize resultssummary(fit6, fit.measures =TRUE, ci =TRUE)
lavaan 0.6.17 ended normally after 12 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 15
Number of observations 184
Model Test User Model:
Test statistic 0.000
Degrees of freedom 0
Model Test Baseline Model:
Test statistic 230.726
Degrees of freedom 12
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 1.000
Tucker-Lewis Index (TLI) 1.000
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -666.387
Loglikelihood unrestricted model (H1) NA
Akaike (AIC) 1362.774
Bayesian (BIC) 1410.998
Sample-size adjusted Bayesian (SABIC) 1363.489
Root Mean Square Error of Approximation:
RMSEA 0.000
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.000
P-value H_0: RMSEA <= 0.050 NA
P-value H_0: RMSEA >= 0.080 NA
Standardized Root Mean Square Residual:
SRMR 0.000
Parameter Estimates:
Standard errors Bootstrap
Number of requested bootstrap draws 5000
Number of successful bootstrap draws 5000
Regressions:
Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
mis_z ~
discrim_z (c1) 0.070 0.085 0.816 0.414 -0.099 0.241
reject_z (c2) -0.085 0.093 -0.914 0.361 -0.259 0.108
samp -0.683 0.157 -4.341 0.000 -0.985 -0.375
acc_z ~
discrim_z (c3) -0.053 0.089 -0.592 0.554 -0.226 0.120
reject_z (c4) -0.052 0.098 -0.528 0.598 -0.241 0.147
samp -0.686 0.159 -4.317 0.000 -1.000 -0.379
idm_z ~
discrim_z (a1) 0.164 0.072 2.282 0.022 0.018 0.306
reject_z (a2) 0.498 0.067 7.422 0.000 0.364 0.628
samp -0.371 0.131 -2.842 0.004 -0.627 -0.107
mis_z ~
idm_z (b1) 0.160 0.092 1.739 0.082 -0.022 0.340
acc_z ~
idm_z (b2) 0.098 0.092 1.075 0.283 -0.081 0.273
Covariances:
Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
.mis_z ~~
.acc_z 0.526 0.068 7.785 0.000 0.387 0.645
Variances:
Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
.mis_z 0.861 0.077 11.227 0.000 0.690 0.996
.acc_z 0.872 0.092 9.432 0.000 0.672 1.036
.idm_z 0.593 0.065 9.165 0.000 0.462 0.714
Defined Parameters:
Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
b_diff 0.061 0.097 0.634 0.526 -0.126 0.254
indrct_dscrm_m 0.026 0.020 1.288 0.198 -0.005 0.074
indrct_rjct_ms 0.079 0.047 1.705 0.088 -0.011 0.170
indrct_dscrm_c 0.016 0.017 0.952 0.341 -0.016 0.053
indrct_rjct_cc 0.049 0.046 1.061 0.289 -0.041 0.138
total_dscrm_ms 0.096 0.085 1.126 0.260 -0.071 0.267
total_rejct_ms -0.005 0.086 -0.062 0.950 -0.171 0.169
total_dscrm_cc -0.036 0.088 -0.414 0.679 -0.211 0.134
total_rejct_cc -0.003 0.095 -0.031 0.975 -0.186 0.184
Code
# lay3 <- get_layout(# "discrim_z", "", "samp",# "", "idm_z", "mis_z",# "reject_z", "", "",# rows = 3# )# # graph_sem(fit6, layout = lay3)# # lay3 <- get_layout(# "discrim_z", "", "samp",# "", "idm_z", "acc_z",# "reject_z", "", "",# rows = 3# )# # graph_sem(fit6, layout = lay3)lay3 <-get_layout("discrim_z", "", "mis_z", "","", "idm_z", "", "samp","reject_z", "", "acc_z", "",rows =3)# Prepare the graph object using your existing fit and layoutgraph_data <-prepare_graph(fit6, layout = lay3)# Filter out edges with p >= .10edges(graph_data) <-edges(graph_data)[edges(graph_data)$pval < .10, ]edges(graph_data)$label[edges(graph_data)$from =="idm_z"&edges(graph_data)$to =="mis_z"] <-"0.16†"edges(graph_data) <-edges(graph_data)[edges(graph_data)$curvature ==0|is.na(edges(graph_data)$curvature) |edges(graph_data)$from !="mis_z"|edges(graph_data)$to !="acc_z", ]# Inspect the current node labelsnodes(graph_data)
name shape label x y node_xmin node_xmax node_ymin node_ymax show
1 acc_z rect acc_z 6 2 5.4 6.6 1.6 2.4 TRUE
2 discrim_z rect discrim_z 2 6 1.4 2.6 5.6 6.4 TRUE
3 idm_z rect idm_z 4 4 3.4 4.6 3.6 4.4 TRUE
4 mis_z rect mis_z 6 6 5.4 6.6 5.6 6.4 TRUE
5 reject_z rect reject_z 2 2 1.4 2.6 1.6 2.4 TRUE
6 samp rect samp 8 4 7.4 8.6 3.6 4.4 TRUE