Media priming theory suggests that being exposed to certain forms of media can momentarily influence thoughts, feelings, or actions for a short period of time. When these forms of media fall under the umbrella of being aggressive, such as an action movie or a “shooter” video game, the person is more likely to have some sort of an aggressive response in behaviors that follow the exposure. The theory does suggest that the effects from this exposure are typically short-lived while relying on the availability of related cognitive associations.
In this study, the participants (135 fifth-grade students) were randomly divided into three groups of 45 students each. The groups were each given a different activity before recess: playing a violent math game, a nonviolent math game, or completing an art project. The media priming theory suggests that the students assigned to the group with the violent game, which is aggresive content, should experience an increase seen as relevant when it comes to aggressive thoughts and behaviors while at recess compared to the other groups.
Fifth-grade students who complete the violent math game (Exponent Fighter) will display more aggressive behavior while at recess in comparison to students who complete the nonviolent math game (Exponent Builder) or the art project.
The independent variable in this study are categorical, while it is based on the three groups that the fifth graders were split into. This includes the violent game, the nonviolent game, and the art project. It is denoted as group in the code.
The continuous dependent variable was the total minutes engaged in aggressive behaviors during recess. It is denoted as value in the code.
The method of this analysis began with the 135 fifth graders who were split into three groups of 45 students. Each were assigned to a different group that participated in one of three separate projects as the independent variable. After working on the projects for 30 minutes, all of the students were sent to recess. During the 30 minute recess, researchers watched the students and recorded the amount of time each student engaged in an aggressive act. This data was used to conduct a one-way ANOVA to see if the mean aggression value differed between the groups.
The box plot shows that students who played the violent game showed much greater times of engaging and exhibiting aggressive behavior at recess compared to the students who did the nonviolent game or the art project. The one-way ANOVA also showed a statistically significant difference between the groups as p < .05. The Tukey HSD test displays the violent game group with a significantly greater aggression value compared to the other two groups. There was not a statistically significant difference between those two other groups, the nonviolent game and the art project.
These findings support the media priming theory along with the hypothesis above, with exposure to violent media leading to an increase in aggression immediately after the exposure.
| 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 |
# ============================================================
# 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