Priming theory explains how ideas in our memory are linked together like nodes. When one idea is activated, it can make related thoughts or feelings come to mind more easily. In media studies, this theory helps explain how what people watch or play can influence how they think and act afterward. For example, seeing violent content might make aggressive thoughts more active for a short time. In this study, one group of children played a violent video game, while the other group played games with little or no violence.
Afterward, researchers watched how the children acted during recess to see if there was a change in behavior. The goal was to find out if violent media exposure could cause more aggressive actions.
Overall, the study uses priming theory to understand how media can shape behavior, even in small ways.
The average level of aggression will be different among at least two of the groups of children.
In this study, 135 elementary school children took part and were randomly divided into three groups of 45. Each group played a different type of video game: The Sims (non-violent), a cooking game (frustration-based but non-violent), and Minecraft (violent). After the gaming session, all the children went outside for a 30-minute recess. During that time, the researcher carefully observed their behavior.
The main focus was on how many minutes each child spent showing physical or verbal aggression. In the data, this was labeled as the dependent variable called “Value.” The independent variable, “Group,” showed which type of game each child had played. This setup helped the researcher see if the kind of game influenced how aggressive the children acted afterward.
A one-way ANOVA test was used to find out if aggression levels were different among children who played three types of video games. The box plot showed that kids who played Minecraft (violent) were the most aggressive, while those who played The Sims (non-violent) were the least aggressive. The cooking game group fell somewhere in between. The Descriptive Statistics table supported this pattern, showing that Minecraft players had the highest average aggression score (M = 19.62), followed by the cooking game (M = 7.98), and The Sims (M = 5.03).
The ANOVA test found these differences were statistically significant, with p < .001, meaning the results were very unlikely due to chance. Post-hoc Tukey tests confirmed that each group’s differences were meaningful and supported the main findings. Other tests, like the Kruskal–Wallis and Dunn’s post-hoc, also showed similar results.
Overall, the findings support the idea that violent games lead to more aggression, matching priming theory’s idea that violent media can trigger aggressive thoughts and actions.
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
# Paste - again - your complete R script, the same one pasted into the first code chunk, above. Pasting it were will display it.