Mechanistic Test of GAM
Creators: name: Chester, David
Publisher: name: OSF Registries
Year: 2024
Subjects: subject: Social Psychology
subject: Social and Behavioral Sciences
subject: Psychology
subject: FOS: Psychology

description: Kersten and Greitemeyer (2024) sought to put the central mechanism of the General Aggression Model (GAM) to the test by testing whether aggressive traits' effects upon aggressive internal states and aggressive behavior were exacerbated by situational aggression triggers. 

Kersten, R., &amp; Greitemeyer, T. (2024). Human aggression in everyday life: An empirical test of the general aggression model. British journal of social psychology.

The authors put together an incredible dataset (see above paper for details) that combined personality assessments with momentary assessments of situational triggers, present internal states, and aggressive behavior. I commend the authors for the immense efforts that went into this data collection effort and their decision to make such a direct test of the GAM's central tenets. I am grateful to the original authors for these efforts and their contribution to the field's understanding. In addition to all of these positive aspects, the authors' analytic strategy fell short of testing the true moderated mediation model that the GAM would expect, in which aggressive traits and aggression-inducing environments interact to predict greater aggressive behavior *through* greater aggressive internal states (e.g., anger). 

The shortcomings in Kersten's and Greitemeyer's (2024) analysis were that:
1. Aggressive behavior as a clearly zero-inflated binary outcome was not treated appropriately (i.e., it was not modeled via generalized linear mixed modeling specifying a binomial distribution), instead it was modeled via linear mixed modeling without an appropriate distribution family.

2. The authors treated verbal and physical aggression as separate outcomes, yet given the low incidence rates of both outcomes, combining them into a single binary aggression outcome variable would enhance statistical power.

3. Moderation was not tested by estimating the interactive effect between aggressive traits and triggers, but instead by running separate models for varying levels of triggers. Moderation should be estimated via a direct test of the interactive effect, not only inferred from changes in simple slopes/effects across levels of the moderator.

4. By testing multiple models for different traits and triggers, the authors had to counteract this by applying bonferroni corrections, which often dramatically increase type II error rates. By conducting a single test of the model, no such corrections are needed and type II error rates can be better controlled.

5. Mediation was estimated by examining how direct effects were influenced by adding different putative mediators to the model. This is not the best practice for estimating indirect effects. Instead, one should directly model the indirect effect at different levels of the mediator via bootstrapping analyses.

To address these limitations, I downloaded Kersten and Greitemeyer's publicly accessible dataset (thank you authors!) and after examining the dataset's descriptive statistics I have settled on the following predictions and analytic strategy. 

-----Predictions-----
The positive indirect effect, whereby the positive direct effect of interpersonal triggers on aggressive behavior is mediated by greater aggressive internal states, will become more positive as trait aggression increases.

-----Analysis-----
library(lme4)
library(mediation)

##Interactive effect upon the mediator##
med.fit &lt;- lmer(AggressiveInternalState_Mean ~ (1 + AssessmentID|ParticipantID) + Trigger_Interpersonal_Total*BPAQSF_Total, data = Data_Translated_AggBinarized)

##Main effect of mediator on the outcome w/ appropriate covariates##
out.fit &lt;- glmer(BothAgg_Binarized ~ (1 + AssessmentID|ParticipantID) + AggressiveInternalState_Mean + Trigger_Interpersonal_Total*BPAQSF_Total, data = Data_Translated_AggBinarized, family = binomial)

##Indirect effect at +1 sd levels of trait aggression##
med.out &lt;- mediate(med.fit, out.fit, treat = "Trigger_Interpersonal_Total", mediator = "AggressiveInternalState_Mean", covariates = list(BPAQSF_Total = 3.5), sims = 100)

##Indirect effect at mean levels of trait aggression##
med.out &lt;- mediate(med.fit, out.fit, treat = "Trigger_Interpersonal_Total", mediator = "AggressiveInternalState_Mean", covariates = list(BPAQSF_Total = 2.6), sims = 100)

##Indirect effect at -1 sd levels of trait aggression##
med.out &lt;- mediate(med.fit, out.fit, treat = "Trigger_Interpersonal_Total", mediator = "AggressiveInternalState_Mean", covariates = list(BPAQSF_Total = 1.7), sims = 100)