The Priming Theory suggests that exposure to or consumption of violent media content can trigger aggressive thought or emotions, increasing the likelihood of aggressive behavior shortly after. When individuals are exposed to violent cues in media, those cues can “prime” aggressive scripts, making aggressive behavior more likely to occur immediately after exposure.This effect tends to diminish over time as the primed associations fade.
In this experiment, a total of 135 elementary-school-age children were randomly assigned to play one of three video games before recess: a non-violent life simulation game (The Sims), a time-pressured but non-violent cooking game, and a combat-oriented building game (Minecraft) featuring weapons and explosions.
Following gameplay, each child participated in a 30-minute recess period. The researcher recorder the number of minutes each child spend engaging in physical or verbal aggression during recess, which served as the dependent variable (continuously). The independent variable was categorical and indicated which video game each child played: Sims, Cooking, or Minecraft.
If Priming Theory holds true, the group exposed to violent video games should display more aggressive behavior during recess compared to those exposed to non-violent video games.
Average aggression levels during recess will differ for at least two of the groups, with higher aggression expected among children who played the violent video game (Minecraft).
Aggression, measured continuously as the number of minutes each child engaged in aggressive behavior during recess, served as the dependent variable (DV). The independent variable (IV) was categorical and indicated which video game each child played: Sims, Cooking, or Minecraft.
Because the independent variable included three groups, a one-way ANOVA was used to test for statistically significant differences in average aggression across the groups. Prior to the analysis, the data were checked for normality (Shapiro–Wilk test) and equality of variances (Levene’s test). When assumptions were not met, a Kruskal–Wallis test was used instead, followed by Dunn’s post-hoc comparisons.
The boxplots below illustrate the distributions of aggression across three groups, with black diamonds marking the group means.
Descriptive statistics showed that the Minecraft group exhibited the highest mean aggression, followed by the Cooking group, while the Sims group displayed the lowest mean aggression.
The normality test (Shapiro–Wilk) was performed which indicated that the data were approximately normal for each group, and Levene’s test confirmed that variances were sufficiently similar to proceed with ANOVA.
The one-way ANOVA found a statistically significant difference in mean aggression among the three groups. Post-hoc Tukey’s HSD tests indicated that aggression levels were significantly higher among children who played Minecraft compared to those who played The Sims. Differences involving the Cooking game group were not statistically significant.
When ANOVA assumptions were not satisfied, the nonparametric Kruskal–Wallis test confirmed a significant effect of game type. Dunn’s test identified a significant difference between Minecraft and Sims.
| 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 |
These results supported the hypothesis and aligned with Priming Theory, showing that brief exposure to violent media content can increase short-term aggressive behavior in children.
# ============================================================
# 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