“This study examines how exposure to polarizing social media content, particularly promoting zero-sum beliefs, affects the mental health of undergraduate students. Zero-sum beliefs are the perception that one group’s gain inherently results in another’s loss. Gains have been linked to heightened political intergroup conflict and increased polarization (Roberts, 2022; Davidai, 2023). A mixed-methods survey was designed to assess participants’ engagements with politically polarizing zero-sum media and their corresponding emotional and psychological responses. Undergraduate students of 18 or older were recruited through campus tabling, poster advertisements, and email outreach, with an expected sample size of approximately 300 participants. Given the current sociopolitical climate, understanding how zero-sum thinking influences mental health is essential. Political polarization not only undermines constructive democracy but may also contribute to increased stress, anxiety, and emotional distress among individuals. Findings from this study aim to clarify the psychological effects of exposure to zero-sum social media content and to inform future interventions that promote healthier online engagements and reduce the mental health burden associated with political polarization. The study seeks to identify whether exposure to zero-sum messaging contributes to measurable declines in the mental health of undergraduates.”
Keywords
Zero-sum Beliefs, Political Polarization, Mental Health, Mental Distress, Social Media
1 Results
1.1 Quantitative Findings
everything you did below
1.2 Qualitative Findings
insert Brianna
2 Discussion
2.1 Future work
pilot testing videos - ratings of minor vs. extreme categorization
3 Import
Loading R Packages
library(readxl)library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(psych)
Attaching package: 'psych'
The following objects are masked from 'package:ggplot2':
%+%, alpha
Attaching package: 'scales'
The following objects are masked from 'package:psych':
alpha, rescale
The following object is masked from 'package:purrr':
discard
The following object is masked from 'package:readr':
col_factor
library(english)
Attaching package: 'english'
The following object is masked from 'package:scales':
ordinal
library(RColorBrewer)library(stats)# source: The FRI Playbook (McCarty, 2025)# explanation: loads different libraries to use for data analysis/cleaning
Importing Data
library(readxl)alldata <-read_excel("11.06.2025.Intervention.Team3.Clean.xlsx",col_names =TRUE)alldata[alldata ==-99] <-NAalldata[alldata ==-50] <-NA# source: The FRI Playbook (McCarty, 2025)# explanation: alldata with values as -99 or -50 will count as missing data and will therefore not be included in the analyses
Variable Selection
library(dplyr)selecteddata <- alldata %>%select(ZSPRE_IMM, ZSPRE_HEALTH, ZSPRE_WOMEN1, ZSPRE_WOMEN2, ZSPRE_ECONOMY, ZSPRE_DEI1, ZSPRE_DEI2, ZSPRE_ENVIRO1, ZSPRE_ENVIRO2, ZSPOST_IMMI, ZSPOST_HEALTH, ZSPOST_WOMEN1, ZSPOST_WOMEN2, ZSPOST_ECONOMY, ZSPOST_DEI1, ZSPOST_DEI2, ZSPOST_ENVIRO1, ZSPOST_ENVIRO2, PRE_HOPE, PRE_ANXIETY, POST_HOPE, POST_ANXIETY, CONDITION, POL_IMM_ALIGN, POL_HEALTHC_ALIGN, POL_WOMEN_ALIGN, POL_ECONOMY_ALIGN, POL_DEI_ALIGN, POL_ENVI_ALIGN, LEAN_IMM_ALIGN, LEAN_HEALTHC_ALIGN, LEAN_WOMEN_ALIGN, LEAN_ECONOMY_ALIGN, LEAN_DEI_ALIGN, LEAN_ENVIRO_ALIGN, POL_IMM_ENGAGE, POL_HEALTHC_ENGAGE, POL_WOMEN_ENGAGE, POL_ECONOMY_ENGAGE, POL_DEI_ENGAGE, POL_ENVI_ENGAGE, LEAN_IMM_ENGAGE, LEAN_HEALTHC_ENGAGE, LEAN_WOMEN_ENGAGE, LEAN_ECONOMY_ENGAGE, LEAN_DEI_ENGAGE, LEAN_ENVIRO_ENGAGE, AGE) %>%filter (AGE >17, AGE <37)# source: R for Data Science - Data Transformation (Wickham et al., 2023)# explanation: Selects variables to be used in the data analyses. Filter() cleans the data so that responses less than or equal to 17 years old are not included in the anlayses
4 Transform
Zero Sum Belief Composites
library(psych)zerosum_keys <-list(PREZEROSUM =c("ZSPRE_IMM", "ZSPRE_HEALTH", "ZSPRE_WOMEN1", "ZSPRE_WOMEN2", "ZSPRE_ECONOMY", "ZSPRE_DEI1", "ZSPRE_DEI2", "ZSPRE_ENVIRO1", "ZSPRE_ENVIRO2"),POSTZEROSUM =c("ZSPOST_IMMI", "ZSPOST_HEALTH", "ZSPOST_WOMEN1", "ZSPOST_WOMEN2", "ZSPOST_ECONOMY", "ZSPOST_DEI1", "ZSPOST_DEI2", "ZSPOST_ENVIRO1", "ZSPOST_ENVIRO2"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called zerosum_keys is created. This tells R which survey questions belong to which composite score (PREZEROSUM vs POSTZEROSUM)
zerosum_scores <-scoreItems(zerosum_keys, selecteddata)composite_scores <- zerosum_scores$scoresselecteddata$PREZEROSUM <- composite_scores[, "PREZEROSUM"]selecteddata$POSTZEROSUM <- composite_scores[, "POSTZEROSUM"]# source: The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the PREZEROSUM and POSTZEROSUM lists and adds it to the dataframe being used, which is called "selecteddata"
condition1_selecteddata <- selecteddata %>%filter(CONDITION ==1)# source: The FRI Playbook (McCarty, 2025)# expanation: creates a new dataset called condition1_selecteddata by taking the existing dataset (selecteddata) and only keeping the rows where CONDITION = 1
Women’s Rights Composites
library(psych)women_keys <-list(PREZSWOMEN =c("ZSPRE_WOMEN1", "ZSPRE_WOMEN2"),POSTZSWOMEN =c("ZSPOST_WOMEN1", "ZSPOST_WOMEN2"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called women_keys is created. This tells R which survey questions belong to which composite score (PREZSWOMEN vs POSTZSWOMEN)
women_scores <-scoreItems(women_keys, selecteddata)composite_scores_women <- women_scores$scoresselecteddata$PREZSWOMEN <- composite_scores_women[, "PREZSWOMEN"]selecteddata$POSTZSWOMEN <- composite_scores_women[, "POSTZSWOMEN"]# source: The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the PREZSWOMEN and POSTZSWOMEN lists and adds it to the dataframe being used, which is called "selecteddata"
condition2_selecteddata <- selecteddata %>%filter(CONDITION ==1)# source: The FRI Playbook (McCarty, 2025)# expanation: creates a new dataset called condition2_selecteddata by taking the existing dataset (selecteddata) and only keeping the rows where CONDITION = 1
DEI Composites
library(psych)DEI_keys <-list(PREZSDEI =c("ZSPRE_DEI1", "ZSPRE_DEI2"),POSTZSDEI =c("ZSPOST_DEI1", "ZSPOST_DEI1"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called DEI_keys is created. This tells R which survey questions belong to which composite score (PREZSDEI vs POSTZSDEI)
DEI_scores <-scoreItems(DEI_keys, selecteddata)composite_scores_DEI <- DEI_scores$scoresselecteddata$PREZSDEI <- composite_scores_DEI[, "PREZSDEI"]selecteddata$POSTZSDEI <- composite_scores_DEI[, "POSTZSDEI"]# source: The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the PREZSDEI and POSTZSDEI lists and adds it to the dataframe being used, which is called "selecteddata"
condition3_selecteddata <- selecteddata %>%filter(CONDITION ==1)# source: The FRI Playbook (McCarty, 2025)# expanation: creates a new dataset called condition3_selecteddata by taking the existing dataset (selecteddata) and only keeping the rows where CONDITION = 1
Numeric Conversion
library(dplyr)# Convert all ENGAGE columns to numeric using dplyrselecteddata <- selecteddata %>%mutate(across(ends_with("_ENGAGE"), ~as.numeric(as.character(.))))
Warning: There were 6 warnings in `mutate()`.
The first warning was:
ℹ In argument: `across(ends_with("_ENGAGE"), ~as.numeric(as.character(.)))`.
Caused by warning:
! NAs introduced by coercion
ℹ Run `dplyr::last_dplyr_warnings()` to see the 5 remaining warnings.
# source: Team 2 code # explanation: converts variables into numeric data
Environment Composites
library(psych)enviro_keys <-list(PREZSENVIRO =c("ZSPRE_ENVIRO1", "ZSPRE_ENVIRO2"),POSTZSENVIRO =c("ZSPOST_ENVIRO1", "ZSPOST_ENVIRO1"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called enviro_keys is created. This tells R which survey questions belong to which composite score (PREZSENVIRO vs POSTZSENVIRO)
composite_scores_enviro <- enviro_scores$scoresselecteddata$PREZSENVIRO <- composite_scores_enviro[, "PREZSENVIRO"]selecteddata$POSTZSENVIRO <- composite_scores_enviro[, "POSTZSENVIRO"]# source: The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the PREZSENVIRO and POSTZSENVIRO lists and adds it to the dataframe being used, which is called "selecteddata"
condition5_selecteddata <- selecteddata %>%filter(CONDITION ==1)# source: The FRI Playbook (McCarty, 2025)# expanation: creates a new dataset called condition5_selecteddata by taking the existing dataset (selecteddata) and only keeping the rows where CONDITION = 1
ALIGN Composites
library(psych)ALIGN_keys <-list(POLARALIGN =c("POL_IMM_ALIGN", "POL_HEALTHC_ALIGN", "POL_WOMEN_ALIGN", "POL_ECONOMY_ALIGN", "POL_DEI_ALIGN", "POL_ENVI_ALIGN"),LEANALIGN =c("LEAN_IMM_ALIGN", "LEAN_HEALTHC_ALIGN", "LEAN_WOMEN_ALIGN", "LEAN_ECONOMY_ALIGN", "LEAN_DEI_ALIGN", "LEAN_ENVIRO_ALIGN"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called ALIGN_keys is created. This tells R which survey questions belong to which composite score (POLARALIGN vs LEANALIGN)
composite_scores_ALIGN <- ALIGN_scores$scoresselecteddata$POLARALIGN <- composite_scores_ALIGN[, "POLARALIGN"]selecteddata$LEANALIGN <- composite_scores_ALIGN[, "LEANALIGN"]ALIGN_vars <-c("POLARALIGN", "LEANALIGN")# source: The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the POLARALIGN and LEANALIGN lists and adds it to the dataframe being used, which is called "selecteddata"
Engagement Composites
library(psych)engagement_keys <-list(POLARENGAGEMENT =c("POL_IMM_ENGAGE", "POL_HEALTHC_ENGAGE", "POL_WOMEN_ENGAGE", "POL_ECONOMY_ENGAGE", "POL_DEI_ENGAGE", "POL_ENVI_ENGAGE"),LEANENGAGEMENT =c("LEAN_IMM_ENGAGE", "LEAN_HEALTHC_ENGAGE", "LEAN_WOMEN_ENGAGE", "LEAN_ECONOMY_ENGAGE", "LEAN_DEI_ENGAGE", "LEAN_ENVIRO_ENGAGE"))# source: The FRI Playbook (McCarty, 2025)# explanation: a list called engagement_keys is created. This tells R which survey questions belong to which composite score (POLARENGAGEMENT vs LEANENGAGEMENT)
library(psych)engagement_scores <- psych::scoreItems(engagement_keys, selecteddata, missing =TRUE, impute ="mean")composite_scores_engagement <- engagement_scores$scoresselecteddata$POLARENGAGEMENT <- composite_scores_engagement[, "POLARENGAGEMENT"]selecteddata$LEANENGAGEMENT <- composite_scores_engagement[, "LEANENGAGEMENT"]# The FRI Playbook (McCarty, 2025)# explanation: Extracts the scores from the POLARENGAGEMENT and LEANENGAGEMENT lists and adds it to the dataframe being used, which is called "selecteddata"
Numeric Conversions
library(dplyr)# Convert all POST ZERO SUM columns to numeric using dplyrselecteddata <- selecteddata %>%mutate(across(starts_with("POST"), ~as.numeric(as.character(.))))# Verify conversioncat("Checking POST ZERO SUM column types:\n")
# source: Team 2 code # explanation: converts variables into numeric data
library(dplyr)# Convert all PRE ZERO SUM columns to numeric using dplyrselecteddata <- selecteddata %>%mutate(across(starts_with("PRE"), ~as.numeric(as.character(.))))# Verify conversioncat("Checking PRE ZERO SUM column types:\n")
# source: Team 2 code # explanation: converts variables into numeric data
5 Visualize
Reliability Analysis
zerosum_scores
Call: scoreItems(keys = zerosum_keys, items = selecteddata)
(Unstandardized) Alpha:
PREZEROSUM POSTZEROSUM
alpha 0.65 0.59
Standard errors of unstandardized Alpha:
PREZEROSUM POSTZEROSUM
ASE 0.072 0.081
Average item correlation:
PREZEROSUM POSTZEROSUM
average.r 0.17 0.14
Median item correlation:
PREZEROSUM POSTZEROSUM
0.31 0.25
Guttman 6* reliability:
PREZEROSUM POSTZEROSUM
Lambda.6 0.84 0.82
Signal/Noise based upon av.r :
PREZEROSUM POSTZEROSUM
Signal/Noise 1.9 1.4
Scale intercorrelations corrected for attenuation
raw correlations below the diagonal, alpha on the diagonal
corrected correlations above the diagonal:
PREZEROSUM POSTZEROSUM
PREZEROSUM 0.65 1.05
POSTZEROSUM 0.65 0.59
Average adjusted correlations within and between scales (MIMS)
PREZE POSTZ
PREZEROSUM 0.17
POSTZEROSUM 0.24 0.14
Average adjusted item x scale correlations within and between scales (MIMT)
PREZE POSTZ
PREZEROSUM 0.55
POSTZEROSUM 0.36 0.53
In order to see the item by scale loadings and frequency counts of the data
print with the short option = FALSE
# source: The FRI Playbook (McCarty, 2025)# explanation: Views reliability statistics to check consistency in measuring a construct. the difference between alpha values shows us hows that less participants are self-reporting the same values post intervention vs pre intervention
Zero-sum Beliefs Histogram
p1 <-ggplot(selecteddata, aes(x = PREZEROSUM)) +geom_histogram(binwidth =1, fill ="blue", color ="black") +labs(title ="ZEROSUM Pre-Intervention", x ="ZEROSUM Score", y ="Count") +theme_minimal()p2 <-ggplot(selecteddata, aes(x = POSTZEROSUM)) +geom_histogram(binwidth =1, fill ="red", color ="black") +labs(title ="ZEROSUM Post-Intervention", x ="ZEROSUM Score", y ="Count") +theme_minimal()p1 + p2
# source: R for Data Science - Data Visualization (Wickham et al., 2023)# explanation: creates two histograms to display the distrubution of participants' zerosum scores pre- and post-intervention.
Hope Histogram
p3 <-ggplot(selecteddata, aes(x = PRE_HOPE)) +geom_histogram(binwidth =1, fill ="blue", color ="black") +labs(title ="HOPE Pre-Intervention", x ="HOPE Score", y ="Count") +theme_minimal()p4 <-ggplot(selecteddata, aes(x = POST_HOPE)) +geom_histogram(binwidth =1, fill ="red", color ="black") +labs(title ="HOPE Post-Intervention", x ="HOPE Score", y ="Count") +theme_minimal()p3 + p4
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_bin()`).
# source: R for Data Science - Data Visualization (Wickham et al., 2023)# explanation: creates two histograms to display the distrubution of participants' hope scores pre- and post-intervention.
Anxiety Histogram
p5 <-ggplot(selecteddata, aes(x = PRE_ANXIETY)) +geom_histogram(binwidth =1, fill ="blue", color ="black") +labs(title ="ANXIETY Pre-Intervention", x ="ANXIETY Score", y ="Count") +theme_minimal()p6 <-ggplot(selecteddata, aes(x = POST_ANXIETY)) +geom_histogram(binwidth =1, fill ="red", color ="black") +labs(title ="ANXIETY Post-Intervention", x ="ANXIETY Score", y ="Count") +theme_minimal()p5 + p6
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_bin()`).
# source: R for Data Science - Data Visualization (Wickham et al., 2023)# explanation: creates two histograms to display the distrubution of participants' anxiety scores pre- and post-intervention.
6 Model: Zero-sum Paired Samples Wilcoxon Test
Impact of zero-sum videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(POSTZEROSUM, PREZEROSUM) %>%filter(!is.na(POSTZEROSUM) &!is.na(PREZEROSUM)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(PREZEROSUM, POSTZEROSUM), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("PREZEROSUM", "POSTZEROSUM"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired lineszero_sum_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="POSTZEROSUM"), shape =16, size =3, color ="#3779ba") +geom_point(data = paired_data_long %>%filter(Composite =="PREZEROSUM"),shape =17, size =3, color ="#c8d9f8") +labs(title ="Pre vs. Post Intervention with Zero-sum Videos",x ="Intervention Period", y ="Score") +theme_minimal()zero_sum_figure
figure 1. Paired pre- and post-intervention zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Paired Samples: Pre vs. Post Intervention with Zero-sum Videos.png", plot = zero_sum_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$PREZEROSUM, condition1_selecteddata$POSTZEROSUM, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$PREZEROSUM,
condition1_selecteddata$POSTZEROSUM, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$PREZEROSUM,
condition1_selecteddata$POSTZEROSUM, : cannot compute exact p-value with zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$PREZEROSUM and condition1_selecteddata$POSTZEROSUM
V = 480, p-value = 0.006717
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples WIlcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.006717, indicating statistical significance.
Impact of zero-sum immigration videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_IMM, ZSPOST_IMMI) %>%filter(!is.na(ZSPRE_IMM) &!is.na(ZSPOST_IMMI)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPOST_IMMI, ZSPRE_IMM), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_IMM", "ZSPOST_IMMI"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired linesimmigration_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_IMM"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_IMMI"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Immigration Videos",x ="Intervention Period", y ="Score") +theme_minimal()immigration_figure
figure 2. Paired pre- and post-intervention immigration zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Immigration Videos.png", plot = immigration_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' immigration zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_IMM, condition1_selecteddata$ZSPOST_IMMI, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_IMM,
condition1_selecteddata$ZSPOST_IMMI, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_IMM,
condition1_selecteddata$ZSPOST_IMMI, : cannot compute exact p-value with zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_IMM and condition1_selecteddata$ZSPOST_IMMI
V = 37, p-value = 0.3464
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.3464, indicating no statistical significance.
Impact of zero-sum healthcare videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_HEALTH, ZSPOST_HEALTH) %>%filter(!is.na(ZSPRE_HEALTH) &!is.na(ZSPOST_HEALTH)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPOST_HEALTH, ZSPRE_HEALTH), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_HEALTH", "ZSPOST_HEALTH"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired lineshealthcare_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_HEALTH"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_HEALTH"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Healthcare Videos",x ="Intervention Period", y ="Score") +theme_minimal()healthcare_figure
figure 3. Paired pre- and post-intervention healthcare zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Healthcare Videos.png", plot = healthcare_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' healthcare zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_HEALTH, condition1_selecteddata$ZSPOST_HEALTH, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_HEALTH,
condition1_selecteddata$ZSPOST_HEALTH, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_HEALTH,
condition1_selecteddata$ZSPOST_HEALTH, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_HEALTH and condition1_selecteddata$ZSPOST_HEALTH
V = 56, p-value = 0.166
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.166, indicating no statistical significance.
Impact of zero-sum women’s rights videos: pre- vs. post-intervention
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' women's rights zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_WOMEN1, ZSPOST_WOMEN1) %>%filter(!is.na(ZSPRE_WOMEN1) &!is.na(ZSPOST_WOMEN1)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_WOMEN1, ZSPOST_WOMEN1), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_WOMEN1", "ZSPOST_WOMEN1"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired lineswomen_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_WOMEN1"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_WOMEN1"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Women's Rights Videos",x ="Intervention Period", y ="Score") +theme_minimal()women_figure
figure 4. Paired pre- and post-intervention women’s rights zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Women's Rights Videos.png", plot = women_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' women's rights zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_WOMEN1, condition1_selecteddata$ZSPOST_WOMEN1, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_WOMEN1,
condition1_selecteddata$ZSPOST_WOMEN1, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_WOMEN1,
condition1_selecteddata$ZSPOST_WOMEN1, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_WOMEN1 and condition1_selecteddata$ZSPOST_WOMEN1
V = 20, p-value = 0.8211
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.6943, indicating no statistical significance.
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_WOMEN2, ZSPOST_WOMEN2) %>%filter(!is.na(ZSPRE_WOMEN2) &!is.na(ZSPOST_WOMEN2)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_WOMEN2, ZSPOST_WOMEN2), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_WOMEN2", "ZSPOST_WOMEN2"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired lineswomen_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_WOMEN2"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_WOMEN2"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Women's Rights Videos 2",x ="Intervention Period", y ="Score") +theme_minimal()women_figure
figure 4. Paired pre- and post-intervention women’s rights zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Women's Rights Videos 2.png", plot = women_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' women's rights zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_WOMEN2, condition1_selecteddata$ZSPOST_WOMEN2, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_WOMEN2,
condition1_selecteddata$ZSPOST_WOMEN2, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_WOMEN2,
condition1_selecteddata$ZSPOST_WOMEN2, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_WOMEN2 and condition1_selecteddata$ZSPOST_WOMEN2
V = 14.5, p-value = 0.66
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.6943, indicating no statistical significance.
Impact of zero-sum economy videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_ECONOMY, ZSPOST_ECONOMY) %>%filter(!is.na(ZSPRE_ECONOMY) &!is.na(ZSPOST_ECONOMY)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_ECONOMY, ZSPOST_ECONOMY), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_ECONOMY", "ZSPOST_ECONOMY"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired lineseconomy_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_ECONOMY"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_ECONOMY"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Economy Videos",x ="Intervention Period", y ="Score") +theme_minimal()economy_figure
figure 5. Paired pre- and post-intervention economy zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Economy Videos.png", plot = economy_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' economy zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_ECONOMY, condition1_selecteddata$ZSPOST_ECONOMY, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ECONOMY,
condition1_selecteddata$ZSPOST_ECONOMY, : cannot compute exact p-value with
ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ECONOMY,
condition1_selecteddata$ZSPOST_ECONOMY, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_ECONOMY and condition1_selecteddata$ZSPOST_ECONOMY
V = 164.5, p-value = 0.002785
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.02785, indicating statistical significance.
Impact of zero-sum DEI videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_DEI1, ZSPOST_DEI1) %>%filter(!is.na(ZSPRE_DEI1) &!is.na(ZSPOST_DEI1)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_DEI1, ZSPOST_DEI1), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_DEI1", "ZSPOST_DEI1"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired linesdei_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_DEI1"), shape =16, size =3, color ="#d9d2e9ff") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_DEI1"),shape =17, size =3, color ="#aa98d3ff") +labs(title ="Pre vs. Post Intervention with Zero-sum DEI Videos",x ="Intervention Period", y ="Score") +theme_minimal()dei_figure
figure 6. Paired pre- and post-intervention DEI zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum DEI Videos.png", plot = dei_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' economy zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_DEI1, condition1_selecteddata$ZSPOST_DEI1, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_DEI1,
condition1_selecteddata$ZSPOST_DEI1, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_DEI1,
condition1_selecteddata$ZSPOST_DEI1, : cannot compute exact p-value with zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_DEI1 and condition1_selecteddata$ZSPOST_DEI1
V = 85.5, p-value = 0.02768
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.02785, indicating statistical significance.
# Create long data with participant IDpaired_data_long <- condition1_selecteddata %>%select(ZSPRE_DEI2, ZSPOST_DEI2) %>%filter(!is.na(ZSPRE_DEI2) &!is.na(ZSPOST_DEI2)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_DEI2, ZSPOST_DEI2), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_DEI2", "ZSPOST_DEI2"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired linesdei_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_DEI2"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_DEI2"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum DEI Videos 2",x ="Intervention Period", y ="Score") +theme_minimal()dei_figure
figure 6. Paired pre- and post-intervention DEI zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum DEI Videos 2.png", plot = dei_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' economy zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_DEI2, condition1_selecteddata$ZSPOST_DEI2, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_DEI2,
condition1_selecteddata$ZSPOST_DEI2, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_DEI2,
condition1_selecteddata$ZSPOST_DEI2, : cannot compute exact p-value with zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_DEI2 and condition1_selecteddata$ZSPOST_DEI2
V = 3.5, p-value = 0.1294
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.02785, indicating statistical significance.
Impact of zero-sum environment videos: pre- vs. post-intervention
# Create long data with participant IDpaired_data_long<- condition1_selecteddata %>%select(ZSPRE_ENVIRO1, ZSPOST_ENVIRO1) %>%filter(!is.na(ZSPRE_ENVIRO1) &!is.na(ZSPOST_ENVIRO1)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_ENVIRO1, ZSPOST_ENVIRO1), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_ENVIRO1", "ZSPOST_ENVIRO1"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired linesenvironment_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_ENVIRO1"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_ENVIRO1"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Environment Videos",x ="Intervention Period", y ="Score") +theme_minimal()environment_figure
figure 7. Paired pre- and post-intervention environment zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Environment Videos.png", plot = environment_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' environment zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_ENVIRO1, condition1_selecteddata$ZSPOST_ENVIRO1, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ENVIRO1,
condition1_selecteddata$ZSPOST_ENVIRO1, : cannot compute exact p-value with
ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ENVIRO1,
condition1_selecteddata$ZSPOST_ENVIRO1, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_ENVIRO1 and condition1_selecteddata$ZSPOST_ENVIRO1
V = 27.5, p-value = 0.3557
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.3557, indicating no statistical significance.
# Create long data with participant IDpaired_data_long<- condition1_selecteddata %>%select(ZSPRE_ENVIRO2, ZSPOST_ENVIRO2) %>%filter(!is.na(ZSPRE_ENVIRO2) &!is.na(ZSPOST_ENVIRO2)) %>%# Remove missing pairsmutate(ID =row_number()) %>%pivot_longer(cols =c(ZSPRE_ENVIRO2, ZSPOST_ENVIRO2), names_to ="Composite", values_to ="Score") %>%mutate(Composite =factor(Composite, levels =c("ZSPRE_ENVIRO2", "ZSPOST_ENVIRO2"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# Plot: boxplot + paired linesenvironment_figure <-ggplot(paired_data_long, aes(x = Composite, y = Score, group = ID)) +geom_boxplot(aes(group = Composite), width =0.5, alpha =0.3, fill ="white", outlier.shape =NA) +geom_line(color ="gray70", alpha =0.6) +geom_point(data = paired_data_long %>%filter(Composite =="ZSPRE_ENVIRO2"), shape =16, size =3, color ="blue") +geom_point(data = paired_data_long %>%filter(Composite =="ZSPOST_ENVIRO2"),shape =17, size =3, color ="red") +labs(title ="Pre vs. Post Intervention with Zero-sum Environment Videos 2",x ="Intervention Period", y ="Score") +theme_minimal()environment_figure
figure 8. Paired pre- and post-intervention environment zero-sum beliefs of participants. Boxplots show overall distributions with lines connecting participants scores before and after the intervention.
ggsave("Pre vs. Post Intervention with Zero-sum Environment Videos 2.png", plot = environment_figure)
Saving 8 x 4 in image
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025)# explanation: Compares participants' environment zero-sum beliefs scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$ZSPRE_ENVIRO2, condition1_selecteddata$ZSPOST_ENVIRO2, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ENVIRO2,
condition1_selecteddata$ZSPOST_ENVIRO2, : cannot compute exact p-value with
ties
Warning in wilcox.test.default(condition1_selecteddata$ZSPRE_ENVIRO2,
condition1_selecteddata$ZSPOST_ENVIRO2, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$ZSPRE_ENVIRO2 and condition1_selecteddata$ZSPOST_ENVIRO2
V = 78, p-value = 0.961
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' zero-sum scores pre- and post-intervention. p = 0.961, indicating no statistical significance.
7 Model: Hope and Anxiety Paired Samples Wilcoxon Test
Hope scores: pre- vs. post-intervention
long_data <- condition1_selecteddata %>%select(PRE_HOPE, POST_HOPE) %>%pivot_longer(cols =c(PRE_HOPE, POST_HOPE),names_to ="Intervention_Period",values_to ="Hope_Score") %>%mutate(Intervention_Period =factor(Intervention_Period, levels =c("PRE_HOPE", "POST_HOPE"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# creates boxplots hope_figure <-ggplot(long_data, aes(x = Intervention_Period, y = Hope_Score, fill = Intervention_Period)) +geom_boxplot(width =0.5, alpha =0.7) +labs(title ="Pre vs Post Intervention Hope Levels", x ="Intervention Period",y ="Hope Score") +scale_y_continuous(limits =c(1, 7), breaks =1:7) +scale_fill_manual(values =c("PRE_HOPE"="red", "POST_HOPE"="blue")) +theme_minimal() +theme(legend.position ="none")hope_figure
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_boxplot()`).
figure 8. Paired pre- and post-intervention hope scores of participants. Boxplots show overall distributions.
ggsave("Pre vs Post Intervention Hope Levels.png", plot = hope_figure)
Saving 8 x 4 in image
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_boxplot()`).
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025); Create Your Own Discrete Scale (ggplot2, n.d.)# explanation: Compares participants' hope scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$PRE_HOPE, condition1_selecteddata$POST_HOPE, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$PRE_HOPE,
condition1_selecteddata$POST_HOPE, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$PRE_HOPE,
condition1_selecteddata$POST_HOPE, : cannot compute exact p-value with zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$PRE_HOPE and condition1_selecteddata$POST_HOPE
V = 38.5, p-value = 0.2273
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' hope scores pre- and post-intervention. p = 0.2273, indicating no statistical significance.
Anxiety scores: pre- vs. post-intervention
long_data <- condition1_selecteddata %>%select(PRE_ANXIETY, POST_ANXIETY) %>%pivot_longer(cols =c(PRE_ANXIETY, POST_ANXIETY),names_to ="Intervention_Period",values_to ="Anxiety_Score") %>%mutate(Intervention_Period =factor(Intervention_Period, levels =c("PRE_ANXIETY", "POST_ANXIETY"))) # changes the order so that PREZEROSUM is shown before POSTZEROSUM# creates boxplots anxiety_figure <-ggplot(long_data, aes(x = Intervention_Period, y = Anxiety_Score, fill = Intervention_Period)) +geom_boxplot(width =0.5, alpha =0.7) +labs(title ="Pre vs Post Intervention Anxiety Levels", x ="Intervention Period",y ="Anxiety Score") +scale_y_continuous(limits =c(1, 7), breaks =1:7) +scale_fill_manual(values =c("PRE_ANXIETY"="red", "POST_ANXIETY"="blue")) +theme_minimal() +theme(legend.position ="none")anxiety_figure
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_boxplot()`).
figure 9. Paired pre- and post-intervention anxiety scores of participants. Boxplots show overall distributions.
ggsave("Pre vs Post Intervention Anxiety Levels.png", plot = anxiety_figure)
Saving 8 x 4 in image
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_boxplot()`).
# source: Zero-sum social identity, not zero-sum economic beliefs, explain voting preference in 2024 U.S. presidential election (McCarty et al., 2025); Create Your Own Discrete Scale (ggplot2, n.d.)# explanation: Compares participants' hope scores before and after watching intervention videos by visualizing paired differences.
wilcox.test(condition1_selecteddata$PRE_ANXIETY, condition1_selecteddata$POST_ANXIETY, paired =TRUE, alternative ="two.sided")
Warning in wilcox.test.default(condition1_selecteddata$PRE_ANXIETY,
condition1_selecteddata$POST_ANXIETY, : cannot compute exact p-value with ties
Warning in wilcox.test.default(condition1_selecteddata$PRE_ANXIETY,
condition1_selecteddata$POST_ANXIETY, : cannot compute exact p-value with
zeroes
Wilcoxon signed rank test with continuity correction
data: condition1_selecteddata$PRE_ANXIETY and condition1_selecteddata$POST_ANXIETY
V = 7, p-value = 0.484
alternative hypothesis: true location shift is not equal to 0
# source: Paired Samples Wilcoxon Test in R (STHDA, n.d.)# explanation: Performs a paired-samples Wilcoxon test to compare participants' anxiety scores pre- and post-intervention. p = 0.484, indicating no statistical significance.
8 Model: Linear Regression Spearman Correlation
Polarizing content: alignment vs engagement
polar_align_engage <-ggplot(selecteddata, aes(x = POLARALIGN, y = POLARENGAGEMENT)) +geom_point(alpha =0.6, color ="red") +geom_smooth(method ="lm", color ="darkred", se =TRUE) +labs(title ="Polarizing Video Engagement vs alignment",x ="Alignment", y ="Engagement") +theme_minimal()polar_align_engage
`geom_smooth()` using formula = 'y ~ x'
figure 10. Relationship between polarization alignment and engagement. Fitted with a regression line to show the association between participant’s alignment with polarizing videos and their engagement levels.
ggsave("Polarizing Video Engagement vs alignment.png", plot = polar_align_engage)
Saving 8 x 4 in image
`geom_smooth()` using formula = 'y ~ x'
# source: R for Data Science - Data Visualization (Wickham et al., 2023)# explanation:Linear regression showing the relationship between a person's alignment with the video content and level of engagement with video content.
Warning in cor.test.default(selecteddata$POLARALIGN,
selecteddata$POLARENGAGEMENT, : Cannot compute exact p-value with ties
Spearman's rank correlation rho
data: selecteddata$POLARALIGN and selecteddata$POLARENGAGEMENT
S = 99786, p-value = 0.1327
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
-0.169555
# source: Correlation Test Between Two Variables in R (STHDA, n.d.)# explanation: performs a correlation test. Spearman is used because of nonnormality.
Leaning content: engagement vs allignment
lean_align_engage <-ggplot(selecteddata, aes(x = LEANALIGN, y = LEANENGAGEMENT)) +geom_point(alpha =0.6, color ="blue") +geom_smooth(method ="lm", color ="darkblue", se =TRUE) +labs(title ="Leaning Video Engagement vs ALIGN",x ="Alignment", y ="Engagement") +theme_minimal()lean_align_engage
`geom_smooth()` using formula = 'y ~ x'
figure 11. Relationship between leaning alignment and engagement. Fitted with a regression line to show the association between participant’s alignment with leaning videos and their engagement levels.
ggsave("Leaning Video Engagement vs alignment.png", plot = lean_align_engage)
Saving 8 x 4 in image
`geom_smooth()` using formula = 'y ~ x'
# source: R for Data Science - Data Visualization (Wickham et al., 2023)# explanation: Linear regression showing the relationship between a person's alignment with the video content and level of engagement with video content.
Warning in cor.test.default(selecteddata$LEANENGAGEMENT,
selecteddata$LEANALIGN, : Cannot compute exact p-value with ties
Spearman's rank correlation rho
data: selecteddata$LEANENGAGEMENT and selecteddata$LEANALIGN
S = 86799, p-value = 0.8787
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
-0.0173329
# source: correlation Test Between Two Variables in R (STHDA, n.d.)# explanation: performs a correlation test. Spearman is used because of nonnormality.
cor.mtest <-function(mat, ...) { mat <-as.matrix(mat) n <-ncol(mat) p.mat <-matrix(NA, n, n)diag(p.mat) <-0for(i in1:(n-1)) {for(j in (i+1):n) { tmp <-cor.test(mat[,i], mat[,j], ...) p.mat[i,j] <- p.mat[j,i] <- tmp$p.value } }colnames(p.mat) <-rownames(p.mat) <-colnames(mat)return(p.mat)}p.mat <-cor.mtest(cor_data)col <-colorRampPalette(c("red", "white", "blue"))(20)corrplot(M, type ="upper", order ="hclust", col = col, tl.col ="black", tl.srt =45, p.mat = p.mat, sig.level =0.05, insig ="blank", addCoef.col ="black")
figure 12. Correlation matrix of pre-intervention zero-sum survey items and the composite pre-zero-sum score.
# source: Correlation matrix : An R function to do all you need (STHDA, n.d.)# explanation: Correlation matrix of pre-intervention zero-sum survey items and the composite pre-zero-sum score