According to the media priming theory, media content can influence behaviors and attitudes in humans for a short period of time. Especially in younger audiences, we see that phenomenons like violent media can influence youth to act more aggressive for a short time after consumption.
In this case, we will look at how violent games can shape the way a group of fifth-graders may act in comparison to nonviolent games or an art project.
The mean time students spend engaging in aggressive acts (“Value”) differs across the types of lessons that students complete (“Group”).
135 fifth-graders at a suburban elementary school were randomly divided into three groups of 45 students each. For about 30 minutes before recess, teachers assigned each of the groups to complete different assignments (“Group”). One group completed a math lesson by playing a game called “Exponent Fighter”, and each time the player gave the correct answer to an exponent math problem, the player’s character would punch a computer-controlled opponent. Each time the player gave an incorrect answer, the computer-controlled opponent would punch the player’s character. The player would win if they landed more punches than the computer-controlled opponent.
A second group of 45 students played a similar game called “Exponent Builder.” Each time the player gave the correct answer to an exponent math problem, the player’s character would add a block to a structure to allow the character to reach an otherwise-unreachable platform. The player would win by acquiring enough blocks to build the structure needed.
A third group of 45 students completed an art lesson involving using the color wheel to select a color scheme for an abstract design produced using paint and pre-cut stencils.
Following the 30-minute lesson, students were sent to the playground for a 30-minute recess. There, a team or researchers watched the students play and recorded the amount of time, in minutes, each student engaged in any sort of aggressive act (“Value”). This could be verbal (taunting, teasing, etc.) or physical (pushing, grabbing, etc).
The box-plot below shows the distribution of the dependent variable (“Value”) and the independent variable (“Group”). The descriptive statistics are also shown. A Shapiro-Wilk Normality Test, ANOVA test, and Tukey HSD test were conducted to determine statistical significance.
| Descriptive Statistics by Group | |||||
| IV | count | mean | sd | min | max |
|---|---|---|---|---|---|
| Art project | 45 | 4.96 | 1.04 | 2.3 | 7.3 |
| Nonviolent game | 45 | 5.86 | 1.06 | 3.6 | 8.4 |
| Violent game | 45 | 10.75 | 1.00 | 8.5 | 12.8 |
| Shapiro-Wilk Normality Test by Group | ||
| IV | W_statistic | p_value |
|---|---|---|
| Art project | 0.99 | 0.923 |
| Nonviolent game | 0.98 | 0.594 |
| Violent game | 0.98 | 0.699 |
| 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 |
|---|---|---|---|
| 420.86 | 2 | 87.94717 | < .001 |
| Tukey HSD Post-hoc Results | ||||
| Comparison | diff | lwr | upr | p adj |
|---|---|---|---|---|
| Nonviolent game-Art project | 0.90 | 0.38 | 1.42 | < .001 |
| Violent game-Art project | 5.79 | 5.27 | 6.30 | < .001 |
| Violent game-Nonviolent game | 4.89 | 4.37 | 5.40 | < .001 |
| Kruskal-Wallis Test Results | ||
| Statistic | df | p_value |
|---|---|---|
| 95.23 | 2 | < .001 |
| Post-hoc Dunn’s Test Results | |||
| Comparison | Z | P.unadj | P.adj |
|---|---|---|---|
| Art project - Nonviolent game | -2.42 | 0.016 | 0.047 |
| Art project - Violent game | -9.40 | < .001 | < .001 |
| Nonviolent game - Violent game | -6.98 | < .001 | < .001 |
The results supported the hypothesis. The students who played the violent game were much more likely to engage in aggressive acts at recess than either of the other two groups. The violent game group had a mean of 10.75, which is much higher than the nonviolent game group with a mean of 5.86, or the art project group with a mean of 4.96. By looking at the Tukey HSD test, we see that the difference between all three groups proved to be statistically significant.
# ============================================================
# 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