This study examines whether playing violent video games before recess increases aggressive behavior in children compared to playing games with little or no violence. The theoretical foundation for this research is priming theory, which suggests that exposure to certain stimuli can activate related thoughts, emotions, and behaviors stored in memory. In the context of media, priming theory argues that when individuals are exposed to violent content, it can temporarily activate aggressive ideas and emotions that make aggressive behavior more likely to occur shortly afterward. This activation happens automatically, often without conscious awareness, and can influence how a person interprets situations or reacts to others in the immediate future.
According to priming theory, violent video games can serve as a stimulus that primes aggressive mental frameworks in children. Because these games often involve rewards for violence or repeated exposure to conflict, they may strengthen the link between aggression-related thoughts and actions. When a child who has just played a violent game enters a social setting like a playground, the aggressive thoughts or feelings that were primed by the game may lead to more aggressive behaviors, such as hitting, yelling, or pushing. In contrast, children who played non-violent games are less likely to have those aggressive concepts activated and therefore are expected to behave less aggressively.
Kids who are exposed to violent video games before recess will have more aggressive behavior on the playpround than those who played games with little to no violence.
The independent variable (IV) is the type of video game played before
recess (violent, mildly violent, or non-violent).
The dependent variable (DV) is the level of aggressive behavior
displayed on the playground (such as pushing, yelling, or breaking
rules).
Students were divided into groups and each played a different type of video game before recess. After gameplay, observers recorded how often aggressive behaviors occurred using a standardized observation checklist. Data were analyzed using R. Descriptive statistics summarized each group’s aggression levels, and normality tests were run to check data distribution. Depending on results, either an ANOVA or Kruskal-Wallis test was used to determine whether there were significant differences in aggression between the groups.
The results showed that children who played violent video games before recess displayed more aggressive behavior on the playground compared to those who played mildly violent or non-violent games. Both the ANOVA and Kruskal-Wallis tests found statistically significant differences between the groups (p < .001).
These findings support the hypothesis that exposure to violent video games increases short-term aggressive behavior. They also align with priming theory, as the violent game exposure appears to have activated aggressive thoughts or emotions that carried over into children’s real-world interactions. Future studies could test how long these priming effects last or whether certain factors—like age, gender, or personality—change the strength of the effect.
Descriptive Statistics by Group | |||||
IV | count | mean | sd | min | max |
---|---|---|---|---|---|
Cooking game | 45 | 7.98 | 1.86 | 5.0 | 11.9 |
Minecraft | 45 | 19.62 | 2.48 | 15.4 | 24.8 |
Sims | 45 | 5.03 | 1.85 | 2.1 | 9.3 |
Shapiro-Wilk Normality Test by Group | ||
IV | W_statistic | p_value |
---|---|---|
Cooking game | 0.95 | 0.062 |
Minecraft | 0.96 | 0.136 |
Sims | 0.97 | 0.294 |
Note. If any p-value figures are 0.05 or less, if one or more group distributions appear non-normal, and any group sizes are less than 40, consider using the Kruskal-Wallis and Post-hoc Dunn’s Test results instead of the ANOVA and Tukey HSD Post-hoc results. |
ANOVA Test Results | |||
Statistic | df | df_resid | p_value |
---|---|---|---|
516.05 | 2 | 86.69692 | < .001 |
Tukey HSD Post-hoc Results | ||||
Comparison | diff | lwr | upr | p adj |
---|---|---|---|---|
Minecraft-Cooking game | 11.64 | 10.60 | 12.68 | < .001 |
Sims-Cooking game | -2.95 | -3.99 | -1.91 | < .001 |
Sims-Minecraft | -14.59 | -15.63 | -13.55 | < .001 |
Kruskal-Wallis Test Results | ||
Statistic | df | p_value |
---|---|---|
104.92 | 2 | < .001 |
Post-hoc Dunn’s Test Results | |||
Comparison | Z | P.unadj | P.adj |
---|---|---|---|
Cooking game - Minecraft | -6.21 | < .001 | < .001 |
Cooking game - Sims | 3.95 | < .001 | < .001 |
Minecraft - Sims | 10.16 | < .001 | < .001 |
# ============================================================
# Setup: Install and Load Required Packages
# ============================================================
if (!require("tidyverse")) install.packages("tidyverse")
if (!require("gt")) install.packages("gt")
if (!require("gtExtras")) install.packages("gtExtras")
if (!require("FSA")) install.packages("FSA")
if (!require("plotly")) install.packages("plotly")
library(tidyverse)
library(gt)
library(gtExtras)
library(FSA)
library(plotly)
options(scipen = 999) # suppress scientific notation
# ============================================================
# Step 1: Load Data
# ============================================================
mydata <- read.csv("Priming.csv") # <-- Edit YOURFILENAME.csv
# Specify DV and IV (edit column names here)
mydata$DV <- mydata$Value
mydata$IV <- mydata$Group
# ============================================================
# Step 2: Visualize Group Distributions (Interactive)
# ============================================================
# Compute group means
group_means <- mydata %>%
group_by(IV) %>%
summarise(mean_value = mean(DV), .groups = "drop")
# Interactive plot (boxplot + group means)
box_plot <- plot_ly() %>%
# Boxplot trace
add_trace(
data = mydata,
x = ~IV, y = ~DV,
type = "box",
boxpoints = "outliers", # only applies here
marker = list(color = "red", size = 4), # outlier style
line = list(color = "black"),
fillcolor = "royalblue",
name = ""
) %>%
# Group means (diamonds)
add_trace(
data = group_means,
x = ~IV, y = ~mean_value,
type = "scatter", mode = "markers",
marker = list(
symbol = "diamond", size = 9,
color = "black", line = list(color = "white", width = 1)
),
text = ~paste0("Mean = ", round(mean_value, 2)),
hoverinfo = "text",
name = "Group Mean"
) %>%
layout(
title = "Interactive Group Distributions with Means",
xaxis = list(title = "Independent Variable (IV)"),
yaxis = list(title = "Dependent Variable (DV)"),
showlegend = FALSE
)
# ============================================================
# Step 3: Descriptive Statistics by Group
# ============================================================
desc_stats <- mydata %>%
group_by(IV) %>%
summarise(
count = n(),
mean = mean(DV, na.rm = TRUE),
sd = sd(DV, na.rm = TRUE),
min = min(DV, na.rm = TRUE),
max = max(DV, na.rm = TRUE)
)
desc_table <- desc_stats %>%
mutate(across(where(is.numeric), ~round(.x, 2))) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "Descriptive Statistics by Group")
# ============================================================
# Step 4: Test Normality (Shapiro-Wilk)
# ============================================================
shapiro_results <- mydata %>%
group_by(IV) %>%
summarise(
W_statistic = shapiro.test(DV)$statistic,
p_value = shapiro.test(DV)$p.value
)
shapiro_table <- shapiro_results %>%
mutate(
W_statistic = round(W_statistic, 2),
p_value = ifelse(p_value < .001, "< .001", sprintf("%.3f", p_value))
) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "Shapiro-Wilk Normality Test by Group") %>%
tab_source_note(
source_note = "Note. If any p-value figures are 0.05 or less, if one or more group distributions appear non-normal, and any group sizes are less than 40, consider using the Kruskal-Wallis and Post-hoc Dunn’s Test results instead of the ANOVA and Tukey HSD Post-hoc results."
)
# ============================================================
# Step 5a: Non-Parametric Test (Kruskal-Wallis + Dunn)
# ============================================================
kruskal_res <- kruskal.test(DV ~ IV, data = mydata)
kruskal_table <- data.frame(
Statistic = round(kruskal_res$statistic, 2),
df = kruskal_res$parameter,
p_value = ifelse(kruskal_res$p.value < .001, "< .001",
sprintf("%.3f", kruskal_res$p.value))
) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "Kruskal-Wallis Test Results")
dunn_res <- dunnTest(DV ~ IV, data = mydata, method = "bonferroni")$res
dunn_table <- dunn_res %>%
mutate(
Z = round(Z, 2),
P.unadj = ifelse(P.unadj < .001, "< .001", sprintf("%.3f", P.unadj)),
P.adj = ifelse(P.adj < .001, "< .001", sprintf("%.3f", P.adj))
) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "Post-hoc Dunn’s Test Results")
# ============================================================
# Step 5b: Parametric Test (ANOVA + Tukey)
# ============================================================
anova_res <- oneway.test(DV ~ IV, data = mydata, var.equal = FALSE)
anova_table <- data.frame(
Statistic = round(anova_res$statistic, 2),
df = anova_res$parameter[1],
df_resid = anova_res$parameter[2],
p_value = ifelse(anova_res$p.value < .001, "< .001",
sprintf("%.3f", anova_res$p.value))
) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "ANOVA Test Results")
anova_model <- aov(DV ~ IV, data = mydata)
tukey_res <- TukeyHSD(anova_model)$IV %>% as.data.frame()
tukey_table <- tukey_res %>%
rownames_to_column("Comparison") %>%
mutate(
diff = round(diff, 2),
lwr = round(lwr, 2),
upr = round(upr, 2),
`p adj` = ifelse(`p adj` < .001, "< .001", sprintf("%.3f", `p adj`))
) %>%
gt() %>%
gt_theme_538() %>%
tab_header(title = "Tukey HSD Post-hoc Results")
# ============================================================
# Step 6: Display Key Results
# ============================================================
# Interactive box plot
box_plot
# Tables
desc_table
shapiro_table
anova_table
tukey_table
kruskal_table
dunn_table