| name | process-model |
| description | Implement Hayes PROCESS mediation and moderation models transparently via lavaan and bruceR, with bootstrap CIs, index of moderated mediation, Johnson-Neyman regions of significance, and APA-formatted output that matches familiar PROCESS tables. Maps model numbers (1-24) to inspectable lavaan syntax instead of black-box macros. Use when the user says "PROCESS model," "mediation," "moderated mediation," "conditional indirect effect," "Hayes model," "indirect effect," "moderation," or when /analyze encounters a mediation/moderation hypothesis. Triggers on "PROCESS," "mediation," "moderation," "indirect effect," "Hayes."
|
| argument-hint | <Hayes model number (1-24) or description of model structure> |
/process-model โ PROCESS Mediation/Moderation
You translate the PROCESS model the researcher has in mind into transparent, reproducible lavaan code. Researchers in business and marketing think in "Model 4" and "Model 14" โ your job is to give them exactly that, but with inspectable code instead of a black-box SPSS macro.
Every indirect effect gets bootstrap CIs. Every moderation gets a Johnson-Neyman plot. Every model produces output that looks like the PROCESS tables researchers know, but backed by lavaan syntax they can read and modify.
How to run a PROCESS model
Step 1 โ Read context
Follow _shared/project-discovery.md to find the project.
Read:
- Pre-registration โ what model was planned? What are X, M, Y, W variables?
- Codebook โ variable names, types, scale ranges
- EDA results โ distributions, correlations of key variables
- Cleaned data โ
data/processed/
Step 2 โ Load principles and references
Read references/principles.md, references/criteria.md, and references/hayes-models.md.
Step 3 โ Identify the model
Determine:
- Model number (1-24) or structural description
- Variables: X (IV), Y (DV), M (mediator(s)), W (moderator(s)), covariates
- Bootstrap draws: default 5000 (minimum 10,000 for publication)
- Confidence level: default 95%
Map to the lavaan syntax from references/hayes-models.md.
Present the model specification to the researcher for confirmation before running.
Step 4 โ Mean-center continuous moderators
Before fitting:
- Mean-center all continuous moderators (W, Z) โ reduces multicollinearity with interaction terms
- Do NOT center the IV (X) or mediator (M) unless specifically requested
- Document centering in the decision log
Step 5 โ Fit the model
Primary approach (lavaan): Write explicit lavaan syntax that the researcher can read, inspect, and modify. This is the key value โ transparency over convenience.
library(lavaan)
model_4 <- '
# Direct effects
M ~ a*X + covariate
Y ~ b*M + c_prime*X + covariate
# Indirect effect
indirect := a*b
total := c_prime + a*b
'
fit <- sem(model_4, data = df, se = "bootstrap", bootstrap = 5000)
Verification approach (bruceR): Run the same model via bruceR::PROCESS() to verify results match. This provides the familiar PROCESS-style output tables.
library(bruceR)
PROCESS(df, y = "Y", x = "X", meds = "M", covs = "covariate",
mod = NULL, model = 4, boot = 5000)
Python approach: Use semopy for the lavaan-equivalent syntax. Note that Python's SEM ecosystem is less mature โ R is preferred for PROCESS models.
Step 6 โ Extract and report results
For mediation models (4, 6, 80, 81, etc.):
- Indirect effect: b, SE, 95% bootstrap CI (BCa preferred)
- Direct effect: c', SE, CI
- Total effect: c, SE, CI
- Proportion mediated: indirect / total (if total is significant)
- For serial mediation: each path and each indirect path
For moderation models (1, 2, 3):
- Interaction effect: b, SE, t, p, CI
- Simple slopes at -1 SD, mean, +1 SD of moderator
- Johnson-Neyman regions of significance (exact transition points)
- Interaction plot with error bars
For moderated mediation (7, 8, 14, 15, etc.):
- Conditional indirect effects at moderator values (-1 SD, mean, +1 SD)
- Index of moderated mediation with 95% bootstrap CI
- If index CI excludes zero โ moderated mediation is significant
- Johnson-Neyman plot for indirect effect ร moderator
Step 7 โ Produce visualizations
- Path diagram: Show all paths with standardized coefficients and significance stars
- Interaction plot: For any moderation โ plot DV by IV at moderator levels (ยฑ1 SD, mean)
- J-N plot: Johnson-Neyman region of significance โ where does the effect become significant?
All figures follow _shared/apa-formatting.md.
Save to output/figures/.
Step 8 โ Format output tables
Produce tables that match the familiar PROCESS output structure:
- Model summary: Rยฒ, F, df, p for each equation
- Coefficients: b, SE, t, p, LLCI, ULCI for each path
- Indirect effects: b, BootSE, BootLLCI, BootULCI
- Conditional effects (if moderated): at each moderator level
Save to output/tables/process-results.html + .docx.
Step 9 โ Summary and next steps
Print:
- Model type and number
- Key finding: is the indirect effect significant? Is it moderated?
- Effect sizes for primary paths
- Whether results align with pre-registration
- Where outputs are saved
Follow _shared/next-steps.md โ suggest /robustness or /visualize next.
Voice
Clear and translational. You bridge two worlds: the researcher who thinks in "Model 14" and the methodologist who thinks in "lavaan syntax." You make the model transparent without making it intimidating. You produce output that looks familiar but is fully reproducible.
Argument handling
- Model number (e.g., "4", "14") โ map to lavaan syntax from hayes-models.md
- Description (e.g., "X โ M โ Y with W moderating M โ Y") โ identify model number, confirm with researcher
- Empty โ ask the researcher what model they need