library(readr)
setwd("/Users/melissalagunas/Desktop/Yarns Research Project")
EAET_mediation_data <- read_csv("EAET_mediation_data.csv")
## Rows: 66 Columns: 86
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (86): id, group, eaet, dropout, PCS_bT, PCS_pT, PCScha_p_b, PCScha_6m_b,...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(EAET_mediation_data)
library(apaTables)
library(lavaan)
## This is lavaan 0.6-16
## lavaan is FREE software! Please report any bugs.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ purrr 1.0.2
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(psych)
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
##
## The following object is masked from 'package:lavaan':
##
## cor2cov
library(jtools)
library(broom)
library(interactions)
library(tidySEM)
## Loading required package: OpenMx
## OpenMx may run faster if it is compiled to take advantage of multiple cores.
##
## Attaching package: 'OpenMx'
##
## The following object is masked from 'package:psych':
##
## tr
##
## Registered S3 method overwritten by 'tidySEM':
## method from
## predict.MxModel OpenMx
##
## Attaching package: 'tidySEM'
##
## The following object is masked from 'package:jtools':
##
## get_data
eaet_data <- EAET_mediation_data %>%
select(
# ID
id,
# Outcomes at post-treatment (p)
meanpain_p, # Pain severity - mean pain severity at post treatment
painint_p, # Pain interference - mean pain interference at post treatment
depress_p, # Depression - total raw scores
anxiety_p, # Anxiety - total raw scores
# Outcomes at 6-month (for sensitivity analyses)
meanpain_6m,
painint_6m,
depress_6m,
anxiety_6m,
# Change scores (alternative outcome specification)
paincha_p_b,
painintcha_p_b,
depresscha_p_b,
anxietycha_p_b,
# Baseline outcomes (for controlling)
meanpain_b,
painint_b,
depress_b,
anxiety_b,
# Treatment variable (note: all participants are in EAET, so this is actually group)
group,
eaet,
# Treatment engagement variables (potential moderators)
attend, # Session attendance (0-8)
wai, # Working alliance
# Baseline symptom moderators
PCS_bT, # Pain catastrophizing
ADS_bT, # Anger discomfort (baseline)
# Emotional processing moderators
SOPA_bEmot, # Emotional approach to pain (baseline)
EAC_bT, # Emotional approach coping - Total
EAC_bEX, # Emotional approach - Expression
EAC_bEP, # Emotional approach - Processing
AEQ_bT, # Ambivalence over emotional expression
# Coping style moderators
Coping_bCat, # Catastrophizing coping
Coping_bDA, # Distraction/avoidance coping
Coping_bRPS, # Reappraisal/positive thinking
# Comorbidity moderators
PCL_bT # PTSD symptoms (baseline)
)
# Descriptive statistics ----
cat("\n=== DESCRIPTIVE STATISTICS ===\n")
##
## === DESCRIPTIVE STATISTICS ===
descriptives <- eaet_data %>%
select(meanpain_p, painint_p, depress_p, anxiety_p,
attend, wai, PCS_bT, SOPA_bEmot, EAC_bT, AEQ_bT) %>%
psych::describe()
print(descriptives)
## vars n mean sd median trimmed mad min max range skew
## meanpain_p 1 57 3.70 1.96 3.5 3.65 2.22 0 8 8 0.24
## painint_p 2 57 21.98 8.53 23.0 21.74 10.38 8 40 32 0.19
## depress_p 3 57 15.37 6.82 13.0 14.77 5.93 5 34 29 0.64
## anxiety_p 4 57 15.79 5.73 16.0 15.68 7.41 7 28 21 0.11
## attend 5 66 5.32 2.77 6.0 5.61 2.97 0 8 8 -0.70
## wai 6 57 63.89 14.85 67.0 65.19 13.34 19 84 65 -0.83
## PCS_bT 7 66 22.73 13.15 21.0 22.09 14.08 2 52 50 0.40
## SOPA_bEmot 8 66 5.18 2.27 5.0 5.41 2.97 0 8 8 -0.74
## EAC_bT 9 66 21.94 5.59 23.0 22.43 4.45 2 32 30 -1.05
## AEQ_bT 10 66 37.44 10.92 36.0 37.04 9.64 15 70 55 0.47
## kurtosis se
## meanpain_p -0.86 0.26
## painint_p -1.06 1.13
## depress_p -0.58 0.90
## anxiety_p -1.10 0.76
## attend -0.95 0.34
## wai 0.14 1.97
## PCS_bT -0.96 1.62
## SOPA_bEmot -0.29 0.28
## EAC_bT 1.70 0.69
## AEQ_bT 0.37 1.34
# ===================================================================
# ANGER DISCOMFORT MODERATING PAIN SEVERITY
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline anger discomfort on post-treatment pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → PAIN SEVERITY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
ADS_attend = ADS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain severity
pain_mod_ols <- lm(meanpain_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 3.350, p = 0.019
## R² = 0.256
## Adj. R² = 0.179
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 1.632 -0.155 3.419 1.847 0.072
## ADS_bT_c 0.031 -0.031 0.093 1.003 0.322
## attend_c -0.225 -0.428 -0.022 -2.241 0.031
## meanpain_b 0.323 0.044 0.602 2.343 0.024
## ADS_bT_c:attend_c -0.002 -0.025 0.022 -0.161 0.873
## -------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Anger Discomfort → Pain Severity")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.04 0.77 0.44
##
## Slope of ADS_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.03 1.03 0.31
##
## Slope of ADS_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.04 0.67 0.51
# ===================================================================
# ANGER DISCOMFORT MODERATING PAIN INTERFERENCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline anger discomfort on post-treatment pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → PAIN INTERFERENCE ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
ADS_attend = ADS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain interference
painint_mod_ols <- lm(painint_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
painint_b,
data = eaet_data)
# Display results
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 7.863, p = 0.000
## R² = 0.446
## Adj. R² = 0.390
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 7.279 -0.619 15.177 1.864 0.070
## ADS_bT_c 0.302 0.052 0.553 2.442 0.019
## attend_c -0.763 -1.618 0.092 -1.805 0.079
## painint_b 0.539 0.265 0.813 3.976 0.000
## ADS_bT_c:attend_c -0.004 -0.101 0.093 -0.091 0.928
## -------------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Anger Discomfort → Pain Interference")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(painint_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is INSIDE the interval [-1.11, 2.76], the slope of ADS_bT_c
## is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.31 0.18 1.72 0.09
##
## Slope of ADS_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.30 0.12 2.58 0.01
##
## Slope of ADS_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.29 0.15 1.87 0.07
# ===================================================================
# ANGER DISCOMFORT MODERATING ANXIETY
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline anger discomfort on post-treatment anxiety?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → ANXIETY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
ADS_attend = ADS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment anxiety
anxiety_mod_ols <- lm(anxiety_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
anxiety_b,
data = eaet_data)
# Display results
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.238, p = 0.000
## R² = 0.487
## Adj. R² = 0.434
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 5.183 0.529 9.837 2.253 0.030
## ADS_bT_c 0.073 -0.096 0.242 0.871 0.389
## attend_c -0.635 -1.159 -0.110 -2.449 0.019
## anxiety_b 0.553 0.319 0.788 4.775 0.000
## ADS_bT_c:attend_c -0.053 -0.113 0.008 -1.766 0.085
## -------------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Anger Discomfort → Anxiety")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(anxiety_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.17 0.12 1.50 0.14
##
## Slope of ADS_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.08 0.53 0.60
##
## Slope of ADS_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.09 0.10 -0.90 0.37
# ===================================================================
# ANGER DISCOMFORT MODERATING DEPRESSION
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline anger discomfort on post-treatment depression?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 4: ATTENDANCE × ANGER DISCOMFORT → DEPRESSION ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
ADS_attend = ADS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment depression
depress_mod_ols <- lm(depress_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
depress_b,
data = eaet_data)
# Display results
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.013, p = 0.000
## R² = 0.480
## Adj. R² = 0.427
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 2.559 -2.546 7.664 1.014 0.317
## ADS_bT_c 0.025 -0.176 0.226 0.254 0.801
## attend_c -0.500 -1.161 0.162 -1.527 0.135
## depress_b 0.638 0.400 0.876 5.413 0.000
## ADS_bT_c:attend_c -0.065 -0.142 0.011 -1.732 0.091
## ------------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Anger Discomfort → Depression")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(depress_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = ADS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.15 0.14 1.06 0.30
##
## Slope of ADS_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.09 -0.14 0.89
##
## Slope of ADS_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.18 0.12 -1.46 0.15
# ===================================================================
# ANGER DISCOMFORT WITH WORKING ALLIANCE MODERATING PAIN SEVERITY
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline anger discomfort on post-treatment pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → PAIN SEVERITY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
wai_c = scale(wai, scale = FALSE), # Mean-centered working alliance
ADS_wai = ADS_bT_c * wai_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain severity
pain_mod_ols <- lm(meanpain_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 3.412, p = 0.017
## R² = 0.259
## Adj. R² = 0.183
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 1.733 -0.129 3.595 1.882 0.067
## ADS_bT_c 0.034 -0.028 0.096 1.098 0.279
## wai_c -0.041 -0.077 -0.005 -2.307 0.026
## meanpain_b 0.292 0.003 0.582 2.042 0.048
## ADS_bT_c:wai_c -0.000 -0.004 0.004 -0.169 0.866
## ----------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Anger Discomfort → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.05 0.81 0.42
##
## Slope of ADS_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.03 1.11 0.27
##
## Slope of ADS_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.03 0.84 0.41
# ===================================================================
# ANGER DISCOMFORT WITH WORKING ALLIANCE MODERATING PAIN INTERFERENCE
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline anger discomfort on post-treatment pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → PAIN INTERFERENCE ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
wai_c = scale(wai, scale = FALSE), # Mean-centered working alliance
ADS_wai = ADS_bT_c * wai_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain interference
painint_mod_ols <- lm(painint_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
painint_b,
data = eaet_data)
# Display results
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.572, p = 0.000
## R² = 0.495
## Adj. R² = 0.444
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 6.510 -1.160 14.179 1.717 0.094
## ADS_bT_c 0.308 0.074 0.543 2.661 0.011
## wai_c -0.193 -0.336 -0.050 -2.726 0.010
## painint_b 0.557 0.294 0.821 4.274 0.000
## ADS_bT_c:wai_c 0.000 -0.015 0.016 0.035 0.973
## ----------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Anger Discomfort → Pain Interference")
print(painint_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When wai_c is INSIDE the interval [-8.85, 19.33], the slope of ADS_bT_c is
## p < .05.
##
## Note: The range of observed values of wai_c is [-30.89, 20.11]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.30 0.17 1.75 0.09
##
## Slope of ADS_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.31 0.11 2.72 0.01
##
## Slope of ADS_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.31 0.13 2.31 0.03
# ===================================================================
# ANGER DISCOMFORT WITH WORKING ALLIANCE MODERATING ANXIETY
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline anger discomfort on post-treatment anxiety?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → ANXIETY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
wai_c = scale(wai, scale = FALSE), # Mean-centered working alliance
ADS_wai = ADS_bT_c * wai_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment anxiety
anxiety_mod_ols <- lm(anxiety_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
anxiety_b,
data = eaet_data)
# Display results
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.586, p = 0.000
## R² = 0.496
## Adj. R² = 0.444
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 4.409 -0.437 9.255 1.840 0.073
## ADS_bT_c 0.056 -0.110 0.222 0.678 0.502
## wai_c -0.108 -0.203 -0.013 -2.292 0.027
## anxiety_b 0.581 0.336 0.825 4.807 0.000
## ADS_bT_c:wai_c -0.009 -0.019 0.001 -1.829 0.075
## ----------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Anger Discomfort → Anxiety")
print(anxiety_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.17 0.12 1.45 0.16
##
## Slope of ADS_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.08 0.57 0.57
##
## Slope of ADS_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.08 0.09 -0.88 0.38
# ===================================================================
# ANGER DISCOMFORT WITH WORKING ALLIANCE MODERATING DEPRESSION
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline anger discomfort on post-treatment depression?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 5: WORKING ALLIANCE × ANGER DISCOMFORT → DEPRESSION ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
wai_c = scale(wai, scale = FALSE), # Mean-centered working alliance
ADS_wai = ADS_bT_c * wai_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment depression
depress_mod_ols <- lm(depress_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
depress_b,
data = eaet_data)
# Display results
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.452, p = 0.000
## R² = 0.492
## Adj. R² = 0.440
##
## Standard errors: OLS
## ---------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- ------- -------- -------
## (Intercept) 2.364 -2.885 7.613 0.911 0.368
## ADS_bT_c 0.009 -0.188 0.205 0.090 0.929
## wai_c -0.114 -0.230 0.001 -1.998 0.053
## depress_b 0.637 0.392 0.881 5.273 0.000
## ADS_bT_c:wai_c -0.008 -0.021 0.005 -1.246 0.220
## ---------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Anger Discomfort → Depression")
print(depress_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = ADS_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.11 0.15 0.75 0.46
##
## Slope of ADS_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.00 0.10 0.00 1.00
##
## Slope of ADS_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.11 -1.01 0.32
# ===================================================================
# SESSION ATTENDANCE MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline pain catastrophizing on post-treatment pain severity?
#
# Conceptual model: Does attending more sessions strengthen the
# relationship between initial catastrophizing and pain improvement?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 1: ATTENDANCE × CATASTROPHIZING → PAIN ===\n")
##
##
## === MODERATION EXAMPLE 1: ATTENDANCE × CATASTROPHIZING → PAIN ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
PCS_attend = PCS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain severity
pain_mod_ols <- lm(meanpain_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.627, p = 0.003
## R² = 0.263
## Adj. R² = 0.206
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 2.474 0.753 4.194 2.885 0.006
## PCS_bT_c 0.026 -0.020 0.072 1.142 0.259
## attend_c -0.331 -0.531 -0.132 -3.336 0.002
## meanpain_b 0.248 -0.034 0.531 1.765 0.083
## PCS_bT_c:attend_c -0.005 -0.022 0.011 -0.641 0.524
## -------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.03 1.14 0.26
##
## Slope of PCS_bT_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.02 1.06 0.29
##
## Slope of PCS_bT_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.03 0.36 0.72
# ===================================================================
# SESSION ATTENDANCE MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline pain catastrophizing on post-treatment pain interference?
#
# Conceptual model: Does attending more sessions strengthen the
# relationship between initial catastrophizing and pain improvement?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 1: ATTENDANCE × CATASTROPHIZING → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 1: ATTENDANCE × CATASTROPHIZING → PAIN INTERFERENCE ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
PCS_attend = PCS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain interference
painint_mod_ols <- lm(painint_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
painint_b,
data = eaet_data)
# Display results
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 6.816, p = 0.000
## R² = 0.344
## Adj. R² = 0.293
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 7.281 -1.298 15.860 1.703 0.095
## PCS_bT_c 0.034 -0.170 0.239 0.336 0.738
## attend_c -1.073 -1.895 -0.251 -2.618 0.012
## painint_b 0.565 0.260 0.871 3.711 0.001
## PCS_bT_c:attend_c -0.028 -0.097 0.040 -0.836 0.407
## -------------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.14 0.63 0.53
##
## Slope of PCS_bT_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.10 0.19 0.85
##
## Slope of PCS_bT_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.11 -0.46 0.65
# ===================================================================
# SESSION ATTENDANCE MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline pain catastrophizing on post-treatment anxiety?
#
# Conceptual model: Does attending more sessions strengthen the
# relationship between initial catastrophizing and pain improvement?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE: ATTENDANCE × CATASTROPHIZING → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE: ATTENDANCE × CATASTROPHIZING → ANXIETY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
PCS_attend = PCS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment anxiety
anxiety_mod_ols <- lm(anxiety_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
anxiety_b,
data = eaet_data)
# Display results
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 10.096, p = 0.000
## R² = 0.437
## Adj. R² = 0.394
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 7.511 3.029 11.993 3.362 0.001
## PCS_bT_c 0.088 -0.034 0.210 1.450 0.153
## attend_c -0.687 -1.200 -0.175 -2.691 0.010
## anxiety_b 0.468 0.240 0.696 4.117 0.000
## PCS_bT_c:attend_c -0.059 -0.101 -0.017 -2.790 0.007
## -------------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is OUTSIDE the interval [-0.88, 4.87], the slope of PCS_bT_c
## is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.20 0.08 2.38 0.02
##
## Slope of PCS_bT_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.06 0.94 0.35
##
## Slope of PCS_bT_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.09 0.07 -1.28 0.21
# ===================================================================
# SESSION ATTENDANCE MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline pain catastrophizing on post-treatment depression?
#
# Conceptual model: Does attending more sessions strengthen the
# relationship between initial catastrophizing and pain improvement?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE: ATTENDANCE × CATASTROPHIZING → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE: ATTENDANCE × CATASTROPHIZING → DEPRESSION ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
attend_c = scale(attend, scale = FALSE), # Mean-centered attendance
PCS_attend = PCS_bT_c * attend_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment depression
depress_mod_ols <- lm(depress_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
depress_b,
data = eaet_data)
# Display results
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.821, p = 0.000
## R² = 0.476
## Adj. R² = 0.436
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 2.527 -2.605 7.659 0.988 0.328
## PCS_bT_c -0.024 -0.168 0.120 -0.333 0.741
## attend_c -0.785 -1.370 -0.200 -2.692 0.010
## depress_b 0.655 0.415 0.894 5.482 0.000
## PCS_bT_c:attend_c -0.056 -0.105 -0.007 -2.303 0.025
## -------------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = PCS_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is OUTSIDE the interval [-12.68, 2.12], the slope of PCS_bT_c
## is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.08 0.10 0.83 0.41
##
## Slope of PCS_bT_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.06 0.07 -0.83 0.41
##
## Slope of PCS_bT_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.19 0.08 -2.38 0.02
# ===================================================================
# EMOTIONAL PROCESSING MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does baseline emotional approach coping moderate
# the effect of baseline pain catastrophizing on pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bT_c = scale(EAC_bT, scale = FALSE), # Mean-centered emotional coping
PCS_EAC = PCS_bT_c * EAC_bT_c # Interaction term
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
pain_mod_ols <- lm(meanpain_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
meanpain_b,
data = eaet_data)
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 2.016, p = 0.106
## R² = 0.134
## Adj. R² = 0.068
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 1.992 0.087 3.897 2.099 0.041
## PCS_bT_c 0.015 -0.032 0.061 0.624 0.535
## EAC_bT_c -0.055 -0.146 0.036 -1.207 0.233
## meanpain_b 0.294 -0.021 0.609 1.875 0.066
## PCS_bT_c:EAC_bT_c 0.002 -0.006 0.010 0.492 0.625
## ------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Emotional Approach Coping"
) +
theme_minimal() +
ggtitle("Moderation: Emotional Coping × Catastrophizing → Pain Severity")
print(pain_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when EAC_bT_c = -5.6773588 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.00 0.04 0.08 0.93
##
## Slope of PCS_bT_c when EAC_bT_c = 0.1483254 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.02 0.64 0.53
##
## Slope of PCS_bT_c when EAC_bT_c = 5.9740096 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.03 0.83 0.41
# ===================================================================
# EMOTIONAL PROCESSING MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does baseline emotional approach coping moderate
# the effect of baseline pain catastrophizing on pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → PAIN INTERFERENCE ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bT_c = scale(EAC_bT, scale = FALSE), # Mean-centered emotional coping
PCS_EAC = PCS_bT_c * EAC_bT_c # Interaction term
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
painint_mod_ols <- lm(painint_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 5.166, p = 0.001
## R² = 0.284
## Adj. R² = 0.229
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 7.882 -0.956 16.721 1.790 0.079
## PCS_bT_c 0.006 -0.192 0.205 0.065 0.948
## EAC_bT_c -0.082 -0.432 0.268 -0.471 0.639
## painint_b 0.512 0.197 0.826 3.266 0.002
## PCS_bT_c:EAC_bT_c 0.021 -0.013 0.054 1.247 0.218
## -------------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Emotional Approach Coping"
) +
theme_minimal() +
ggtitle("Moderation: Emotional Coping × Catastrophizing → Pain Interference")
print(painint_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when EAC_bT_c = -5.6773588 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.14 -0.78 0.44
##
## Slope of PCS_bT_c when EAC_bT_c = 0.1483254 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.10 0.10 0.92
##
## Slope of PCS_bT_c when EAC_bT_c = 5.9740096 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.13 0.13 0.96 0.34
# ===================================================================
# EMOTIONAL PROCESSING MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does baseline emotional approach coping moderate
# the effect of baseline pain catastrophizing on anxiety?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → ANXIETY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bT_c = scale(EAC_bT, scale = FALSE), # Mean-centered emotional coping
PCS_EAC = PCS_bT_c * EAC_bT_c # Interaction term
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
anxiety_mod_ols <- lm(anxiety_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.913, p = 0.000
## R² = 0.378
## Adj. R² = 0.331
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 7.329 2.474 12.183 3.029 0.004
## PCS_bT_c 0.045 -0.079 0.169 0.733 0.467
## EAC_bT_c -0.070 -0.296 0.157 -0.618 0.539
## anxiety_b 0.461 0.215 0.708 3.754 0.000
## PCS_bT_c:EAC_bT_c -0.024 -0.045 -0.004 -2.352 0.023
## -------------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Emotional Approach Coping"
) +
theme_minimal() +
ggtitle("Moderation: Emotional Coping × Catastrophizing → Anxiety")
print(anxiety_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## When EAC_bT_c is OUTSIDE the interval [-4.96, 16.67], the slope of PCS_bT_c
## is p < .05.
##
## Note: The range of observed values of EAC_bT_c is [-19.94, 10.06]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when EAC_bT_c = -5.6773588 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.18 0.09 2.09 0.04
##
## Slope of PCS_bT_c when EAC_bT_c = 0.1483254 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.06 0.67 0.50
##
## Slope of PCS_bT_c when EAC_bT_c = 5.9740096 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.10 0.08 -1.18 0.24
# ===================================================================
# EMOTIONAL PROCESSING MODERATING PAIN OUTCOMES
# ===================================================================
# Research Question: Does baseline emotional approach coping moderate
# the effect of baseline pain catastrophizing on depression?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 2: EMOTIONAL COPING × CATASTROPHIZING → DEPRESSION ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bT_c = scale(EAC_bT, scale = FALSE), # Mean-centered emotional coping
PCS_EAC = PCS_bT_c * EAC_bT_c # Interaction term
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
depress_mod_ols <- lm(depress_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 10.090, p = 0.000
## R² = 0.437
## Adj. R² = 0.394
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 3.918 -1.887 9.723 1.354 0.181
## PCS_bT_c -0.033 -0.183 0.117 -0.442 0.660
## EAC_bT_c -0.166 -0.438 0.106 -1.221 0.227
## depress_b 0.571 0.301 0.841 4.238 0.000
## PCS_bT_c:EAC_bT_c -0.026 -0.049 -0.002 -2.180 0.034
## -------------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Emotional Approach Coping"
) +
theme_minimal() +
ggtitle("Moderation: Emotional Coping × Catastrophizing → Depression")
print(depress_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = PCS_bT_c,
modx = EAC_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When EAC_bT_c is OUTSIDE the interval [-36.16, 5.90], the slope of PCS_bT_c
## is p < .05.
##
## Note: The range of observed values of EAC_bT_c is [-19.94, 10.06]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when EAC_bT_c = -5.6773588 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.11 0.11 1.03 0.31
##
## Slope of PCS_bT_c when EAC_bT_c = 0.1483254 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.04 0.07 -0.49 0.62
##
## Slope of PCS_bT_c when EAC_bT_c = 5.9740096 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.19 0.09 -2.02 0.05
# ===================================================================
# EXAMPLE 3: WORKING ALLIANCE MODERATING PAIN SEVERITY
# ===================================================================
# Research Question: Does therapeutic alliance (WAI) moderate the
# effect of baseline emotional ambivalence on pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
AEQ_bT_c = scale(AEQ_bT, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
AEQ_wai = AEQ_bT_c * wai_c
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
pain_mod_ols <- lm(meanpain_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
meanpain_b,
data = eaet_data)
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.471, p = 0.004
## R² = 0.256
## Adj. R² = 0.199
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 1.982 0.450 3.514 2.596 0.012
## AEQ_bT_c 0.031 -0.013 0.076 1.406 0.166
## wai_c -0.050 -0.082 -0.018 -3.129 0.003
## meanpain_b 0.300 0.049 0.551 2.401 0.020
## AEQ_bT_c:wai_c -0.001 -0.004 0.002 -0.577 0.566
## ----------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
x.label = "Baseline Emotional Ambivalence (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Ambivalence → Pain Severity")
print(pain_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of AEQ_bT_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.03 1.34 0.19
##
## Slope of AEQ_bT_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.02 1.41 0.17
##
## Slope of AEQ_bT_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.03 0.63 0.53
# ===================================================================
# EXAMPLE 3: WORKING ALLIANCE MODERATING PAIN INTERFERENCE
# ===================================================================
# Research Question: Does therapeutic alliance (WAI) moderate the
# effect of baseline emotional ambivalence on pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → PAIN INTERFERENCE ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
AEQ_bT_c = scale(AEQ_bT, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
AEQ_wai = AEQ_bT_c * wai_c
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
painint_mod_ols <- lm(painint_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.648, p = 0.000
## R² = 0.473
## Adj. R² = 0.432
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 6.808 0.288 13.328 2.095 0.041
## AEQ_bT_c 0.225 0.061 0.388 2.754 0.008
## wai_c -0.228 -0.349 -0.106 -3.765 0.000
## painint_b 0.559 0.328 0.790 4.858 0.000
## AEQ_bT_c:wai_c -0.000 -0.011 0.010 -0.072 0.943
## ----------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
x.label = "Baseline Emotional Ambivalence (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Ambivalence → Pain Interference")
print(painint_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When wai_c is INSIDE the interval [-13.69, 14.86], the slope of AEQ_bT_c is
## p < .05.
##
## Note: The range of observed values of wai_c is [-44.89, 20.11]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of AEQ_bT_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.23 0.12 1.94 0.06
##
## Slope of AEQ_bT_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.22 0.08 2.75 0.01
##
## Slope of AEQ_bT_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.22 0.11 2.01 0.05
# ===================================================================
# EXAMPLE 3: WORKING ALLIANCE MODERATING ANXIETY OUTCOMES
# ===================================================================
# Research Question: Does therapeutic alliance (WAI) moderate the
# effect of baseline emotional ambivalence on anxiety outcomes?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → ANXIETY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
AEQ_bT_c = scale(AEQ_bT, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
AEQ_wai = AEQ_bT_c * wai_c
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
anxiety_mod_ols <- lm(anxiety_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 9.134, p = 0.000
## R² = 0.413
## Adj. R² = 0.367
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 6.178 1.960 10.396 2.939 0.005
## AEQ_bT_c 0.036 -0.085 0.157 0.599 0.552
## wai_c -0.099 -0.185 -0.013 -2.302 0.025
## anxiety_b 0.517 0.304 0.729 4.877 0.000
## AEQ_bT_c:wai_c -0.007 -0.015 0.000 -1.917 0.061
## ----------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
x.label = "Baseline Emotional Ambivalence (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Ambivalence → Anxiety")
print(anxiety_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of AEQ_bT_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.15 0.09 1.64 0.11
##
## Slope of AEQ_bT_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.06 0.60 0.55
##
## Slope of AEQ_bT_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.07 0.08 -0.95 0.34
# ===================================================================
# EXAMPLE 3: WORKING ALLIANCE MODERATING DEPRESSION OUTCOMES
# ===================================================================
# Research Question: Does therapeutic alliance (WAI) moderate the
# effect of baseline emotional ambivalence on depression outcomes?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 3: WORKING ALLIANCE × AMBIVALENCE → DEPRESSION ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
AEQ_bT_c = scale(AEQ_bT, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
AEQ_wai = AEQ_bT_c * wai_c
)
# --- OLS Approach ---
cat("\n--- OLS RESULTS ---\n")
##
## --- OLS RESULTS ---
depress_mod_ols <- lm(depress_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 10.609, p = 0.000
## R² = 0.449
## Adj. R² = 0.407
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 2.860 -1.799 7.520 1.232 0.224
## AEQ_bT_c -0.037 -0.177 0.103 -0.531 0.598
## wai_c -0.112 -0.208 -0.015 -2.310 0.025
## depress_b 0.617 0.401 0.832 5.744 0.000
## AEQ_bT_c:wai_c -0.007 -0.015 0.002 -1.481 0.145
## ----------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
x.label = "Baseline Emotional Ambivalence (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Ambivalence → Depression")
print(depress_interact_plot)

# Simple slopes
cat("\n--- SIMPLE SLOPES ---\n")
##
## --- SIMPLE SLOPES ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = AEQ_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of AEQ_bT_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.06 0.10 0.59 0.56
##
## Slope of AEQ_bT_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.04 0.07 -0.53 0.60
##
## Slope of AEQ_bT_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.13 0.09 -1.52 0.13
# ===================================================================
# PCL (PTSD) MODERATING ANGER DISCOMFORT
# ===================================================================
# ===================================================================
# PCL MODERATING ANGER DISCOMFORT → PAIN SEVERITY
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline anger discomfort on post-treatment pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → PAIN SEVERITY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
ADS_PCL = ADS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain severity
pain_mod_ols <- lm(meanpain_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 2.842, p = 0.037
## R² = 0.226
## Adj. R² = 0.146
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 0.939 -1.084 2.962 0.938 0.354
## ADS_bT_c -0.002 -0.069 0.064 -0.066 0.948
## PCL_bT_c 0.003 -0.030 0.036 0.193 0.848
## meanpain_b 0.377 0.071 0.683 2.491 0.017
## ADS_bT_c:PCL_bT_c 0.003 -0.000 0.006 1.807 0.078
## ------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Anger Discomfort → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.06 0.05 -1.11 0.27
##
## Slope of ADS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.00 0.03 -0.15 0.89
##
## Slope of ADS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.04 1.31 0.20
# ===================================================================
# PCL MODERATING ANGER DISCOMFORT → PAIN INTERFERENCE
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline anger discomfort on post-treatment pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → PAIN INTERFERENCE ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
ADS_PCL = ADS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain interference
painint_mod_ols <- lm(painint_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
painint_b,
data = eaet_data)
# Display results
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 6.991, p = 0.000
## R² = 0.418
## Adj. R² = 0.358
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- ------- -------- -------- -------- -------
## (Intercept) 8.571 -0.398 17.540 1.933 0.061
## ADS_bT_c 0.226 -0.042 0.493 1.703 0.097
## PCL_bT_c 0.030 -0.114 0.174 0.424 0.674
## painint_b 0.459 0.152 0.766 3.023 0.004
## ADS_bT_c:PCL_bT_c 0.006 -0.006 0.019 1.022 0.313
## ------------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Anger Discomfort → Pain Interference")
print(painint_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When PCL_bT_c is INSIDE the interval [5.37, 34.35], the slope of ADS_bT_c
## is p < .05.
##
## Note: The range of observed values of PCL_bT_c is [-28.88, 40.12]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.10 0.20 0.51 0.61
##
## Slope of ADS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.22 0.13 1.64 0.11
##
## Slope of ADS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.34 0.15 2.27 0.03
# ===================================================================
# PCL MODERATING ANGER DISCOMFORT → ANXIETY
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline anger discomfort on post-treatment anxiety?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → ANXIETY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
ADS_PCL = ADS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment anxiety
anxiety_mod_ols <- lm(anxiety_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
anxiety_b,
data = eaet_data)
# Display results
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 6.373, p = 0.000
## R² = 0.395
## Adj. R² = 0.333
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 5.437 -1.013 11.887 1.705 0.096
## ADS_bT_c 0.032 -0.152 0.215 0.349 0.729
## PCL_bT_c -0.001 -0.108 0.106 -0.023 0.982
## anxiety_b 0.525 0.206 0.845 3.325 0.002
## ADS_bT_c:PCL_bT_c -0.003 -0.011 0.005 -0.793 0.433
## -------------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Anger Discomfort → Anxiety")
print(anxiety_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.14 0.69 0.49
##
## Slope of ADS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.09 0.38 0.71
##
## Slope of ADS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.03 0.10 -0.26 0.80
# ===================================================================
# PCL MODERATING ANGER DISCOMFORT → DEPRESSION
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline anger discomfort on post-treatment depression?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 6: PCL × ANGER DISCOMFORT → DEPRESSION ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
ADS_bT_c = scale(ADS_bT, scale = FALSE), # Mean-centered anger discomfort
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
ADS_PCL = ADS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment depression
depress_mod_ols <- lm(depress_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
depress_b,
data = eaet_data)
# Display results
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 8.603, p = 0.000
## R² = 0.469
## Adj. R² = 0.414
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 3.542 -2.661 9.745 1.155 0.255
## ADS_bT_c 0.019 -0.192 0.229 0.180 0.858
## PCL_bT_c -0.008 -0.123 0.106 -0.146 0.885
## depress_b 0.601 0.320 0.881 4.335 0.000
## ADS_bT_c:PCL_bT_c -0.009 -0.019 0.001 -1.831 0.075
## ------------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Anger Discomfort (centered)",
y.label = "Post-Treatment Depression",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Anger Discomfort → Depression")
print(depress_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = ADS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of ADS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.19 0.16 1.21 0.23
##
## Slope of ADS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.11 0.26 0.80
##
## Slope of ADS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.14 0.11 -1.22 0.23
# ===================================================================
# PCL (PTSD) MODERATING CATASTROPHIZING
# ===================================================================
# ===================================================================
# PCL MODERATING CATASTROPHIZING → PAIN SEVERITY
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline catastrophizing on post-treatment pain severity?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → PAIN SEVERITY ===\n")
##
##
## === MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → PAIN SEVERITY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
PCS_PCL = PCS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain severity
pain_mod_ols <- lm(meanpain_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 2.288, p = 0.077
## R² = 0.190
## Adj. R² = 0.107
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 1.862 -0.284 4.007 1.755 0.087
## PCS_bT_c 0.028 -0.028 0.083 1.014 0.317
## PCL_bT_c -0.002 -0.037 0.033 -0.118 0.906
## meanpain_b 0.243 -0.092 0.578 1.465 0.151
## PCS_bT_c:PCL_bT_c 0.001 -0.002 0.003 0.707 0.484
## ------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Catastrophizing → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.04 0.27 0.79
##
## Slope of PCS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.03 0.98 0.33
##
## Slope of PCS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.03 1.28 0.21
# ===================================================================
# PCL MODERATING CATASTROPHIZING → PAIN INTERFERENCE
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline catastrophizing on post-treatment pain interference?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → PAIN INTERFERENCE ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
PCS_PCL = PCS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment pain interference
painint_mod_ols <- lm(painint_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
painint_b,
data = eaet_data)
# Display results
painint_mod_summary <- jtools::summ(painint_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 5.960, p = 0.001
## R² = 0.379
## Adj. R² = 0.316
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 12.086 1.565 22.608 2.323 0.025
## PCS_bT_c 0.164 -0.075 0.403 1.389 0.173
## PCL_bT_c 0.067 -0.083 0.217 0.901 0.373
## painint_b 0.372 0.006 0.738 2.056 0.046
## PCS_bT_c:PCL_bT_c -0.004 -0.015 0.007 -0.775 0.443
## -------------------------------------------------------------------
# Interaction plot
painint_interact_plot <- interactions::interact_plot(
painint_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Catastrophizing → Pain Interference")
print(painint_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.24 0.16 1.53 0.13
##
## Slope of PCS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.17 0.12 1.42 0.16
##
## Slope of PCS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.15 0.62 0.54
# ===================================================================
# PCL MODERATING CATASTROPHIZING → ANXIETY
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline catastrophizing on post-treatment anxiety?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → ANXIETY ===\n")
##
##
## === MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → ANXIETY ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
PCS_PCL = PCS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment anxiety
anxiety_mod_ols <- lm(anxiety_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
anxiety_b,
data = eaet_data)
# Display results
anxiety_mod_summary <- jtools::summ(anxiety_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 7.727, p = 0.000
## R² = 0.442
## Adj. R² = 0.385
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 6.196 -0.033 12.424 2.012 0.051
## PCS_bT_c 0.126 -0.007 0.259 1.917 0.063
## PCL_bT_c -0.037 -0.145 0.070 -0.701 0.487
## anxiety_b 0.461 0.153 0.770 3.024 0.004
## PCS_bT_c:PCL_bT_c 0.001 -0.005 0.008 0.357 0.723
## -------------------------------------------------------------------
# Interaction plot
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Catastrophizing → Anxiety")
print(anxiety_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.10 0.10 1.08 0.29
##
## Slope of PCS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.12 0.07 1.89 0.07
##
## Slope of PCS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.15 0.08 1.77 0.08
# ===================================================================
# PCL MODERATING CATASTROPHIZING → DEPRESSION
# ===================================================================
# Research Question: Does baseline PTSD moderate the effect of
# baseline catastrophizing on post-treatment depression?
# ===================================================================
cat("\n\n=== MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → DEPRESSION ===\n")
##
##
## === MODERATION EXAMPLE 7: PCL × CATASTROPHIZING → DEPRESSION ===
# Prepare data: mean-center continuous predictors
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE), # Mean-centered catastrophizing
PCL_bT_c = scale(PCL_bT, scale = FALSE), # Mean-centered PTSD symptoms
PCS_PCL = PCS_bT_c * PCL_bT_c # Interaction term
)
# --- OLS Approach with lm() ---
cat("\n--- OLS RESULTS (using lm) ---\n")
##
## --- OLS RESULTS (using lm) ---
# Model predicting post-treatment depression
depress_mod_ols <- lm(depress_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
depress_b,
data = eaet_data)
# Display results
depress_mod_summary <- jtools::summ(depress_mod_ols,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 7.254, p = 0.000
## R² = 0.427
## Adj. R² = 0.368
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 1.929 -4.689 8.548 0.590 0.559
## PCS_bT_c -0.006 -0.182 0.171 -0.065 0.949
## PCL_bT_c -0.018 -0.139 0.103 -0.304 0.763
## depress_b 0.659 0.352 0.966 4.341 0.000
## PCS_bT_c:PCL_bT_c -0.002 -0.011 0.006 -0.590 0.559
## ------------------------------------------------------------------
# Interaction plot
depress_interact_plot <- interactions::interact_plot(
depress_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
modx.labels = c("Low PTSD (-1 SD)",
"Mean PTSD",
"High PTSD (+1 SD)"),
x.label = "Baseline Pain Catastrophizing (centered)",
y.label = "Post-Treatment Depression",
legend.main = "PTSD Symptoms"
) +
theme_minimal() +
ggtitle("Moderation: PTSD × Catastrophizing → Depression")
print(depress_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ols,
pred = PCS_bT_c,
modx = PCL_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCS_bT_c when PCL_bT_c = -19.6773689 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.12 0.34 0.74
##
## Slope of PCS_bT_c when PCL_bT_c = -0.9755245 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.00 0.09 -0.04 0.97
##
## Slope of PCS_bT_c when PCL_bT_c = 17.7263200 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.11 -0.45 0.66
# ===================================================================
# ADDITIONAL PRIORITY MODERATION ANALYSES
# ===================================================================
# Prepare all centered variables
eaet_data <- eaet_data %>%
mutate(
# Emotional processing subscales
EAC_bEX_c = scale(EAC_bEX, scale = FALSE), # Expression
EAC_bEP_c = scale(EAC_bEP, scale = FALSE), # Processing
# Alternative coping styles
Coping_bDA_c = scale(Coping_bDA, scale = FALSE), # Distraction/Avoidance
Coping_bRPS_c = scale(Coping_bRPS, scale = FALSE), # Reappraisal
Coping_bCat_c = scale(Coping_bCat, scale = FALSE), # Catastrophizing coping
# Emotional approach to pain
SOPA_bEmot_c = scale(SOPA_bEmot, scale = FALSE)
)
# ===================================================================
# PRIORITY 1: EMOTIONAL EXPRESSION × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline emotional expression on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bEX_c = scale(EAC_bEX, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
EX_attend = EAC_bEX_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_ex_attend <- lm(meanpain_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ex_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.610, p = 0.003
## R² = 0.262
## Adj. R² = 0.205
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 2.022 0.509 3.535 2.681 0.010
## EAC_bEX_c 0.029 -0.161 0.220 0.310 0.758
## attend_c -0.300 -0.493 -0.106 -3.107 0.003
## meanpain_b 0.329 0.080 0.578 2.651 0.011
## EAC_bEX_c:attend_c -0.046 -0.127 0.035 -1.146 0.257
## --------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Expression → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.12 0.14 0.83 0.41
##
## Slope of EAC_bEX_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.00 0.09 0.03 0.97
##
## Slope of EAC_bEX_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.13 -0.88 0.38
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → PAIN INTERFERENCE ===
painint_mod_ex_attend <- lm(painint_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_ex_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.188, p = 0.000
## R² = 0.356
## Adj. R² = 0.307
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 6.664 -0.197 13.525 1.949 0.057
## EAC_bEX_c -0.198 -0.964 0.569 -0.518 0.607
## attend_c -0.900 -1.692 -0.107 -2.278 0.027
## painint_b 0.591 0.348 0.834 4.874 0.000
## EAC_bEX_c:attend_c -0.148 -0.477 0.181 -0.901 0.372
## --------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Expression → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.08 0.58 0.14 0.89
##
## Slope of EAC_bEX_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.28 0.36 -0.79 0.43
##
## Slope of EAC_bEX_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.65 0.50 -1.30 0.20
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → ANXIETY ===
anxiety_mod_ex_attend <- lm(anxiety_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_ex_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.995, p = 0.000
## R² = 0.381
## Adj. R² = 0.333
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 6.530 2.682 10.378 3.405 0.001
## EAC_bEX_c -0.020 -0.513 0.474 -0.080 0.936
## attend_c -0.438 -0.963 0.086 -1.676 0.100
## anxiety_b 0.516 0.321 0.710 5.318 0.000
## EAC_bEX_c:attend_c -0.156 -0.371 0.060 -1.452 0.153
## --------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Expression → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.28 0.37 0.74 0.46
##
## Slope of EAC_bEX_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.23 -0.48 0.64
##
## Slope of EAC_bEX_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.49 0.33 -1.51 0.14
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL EXPRESSION → DEPRESSION ===
depress_mod_ex_attend <- lm(depress_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_ex_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.375, p = 0.000
## R² = 0.467
## Adj. R² = 0.426
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- ------- -------- -------
## (Intercept) 4.449 0.221 8.677 2.112 0.040
## EAC_bEX_c -0.172 -0.729 0.385 -0.619 0.538
## attend_c -0.482 -1.061 0.098 -1.669 0.101
## depress_b 0.565 0.369 0.761 5.774 0.000
## EAC_bEX_c:attend_c -0.232 -0.470 0.007 -1.951 0.056
## -------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Expression → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ex_attend,
pred = EAC_bEX_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is INSIDE the interval [1.62, 55.93], the slope of EAC_bEX_c
## is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.27 0.42 0.64 0.53
##
## Slope of EAC_bEX_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.31 0.26 -1.18 0.25
##
## Slope of EAC_bEX_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.88 0.36 -2.41 0.02
# ===================================================================
# PRIORITY 1: EMOTIONAL PROCESSING × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline emotional processing on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bEP_c = scale(EAC_bEP, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
EP_attend = EAC_bEP_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_ep_attend <- lm(meanpain_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ep_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 5.985, p = 0.000
## R² = 0.315
## Adj. R² = 0.263
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 2.416 0.965 3.866 3.342 0.002
## EAC_bEP_c 0.152 -0.022 0.327 1.750 0.086
## attend_c -0.355 -0.544 -0.166 -3.773 0.000
## meanpain_b 0.277 0.044 0.511 2.388 0.021
## EAC_bEP_c:attend_c -0.091 -0.172 -0.010 -2.258 0.028
## --------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Processing (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Processing → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is OUTSIDE the interval [-0.55, 7.68], the slope of EAC_bEP_c
## is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEP_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.32 0.14 2.26 0.03
##
## Slope of EAC_bEP_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.10 0.08 1.30 0.20
##
## Slope of EAC_bEP_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.12 0.10 -1.19 0.24
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → PAIN INTERFERENCE ===
painint_mod_ep_attend <- lm(painint_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_ep_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 6.766, p = 0.000
## R² = 0.342
## Adj. R² = 0.292
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 7.326 0.080 14.573 2.029 0.048
## EAC_bEP_c 0.278 -0.466 1.022 0.750 0.457
## attend_c -1.044 -1.854 -0.234 -2.587 0.013
## painint_b 0.565 0.312 0.817 4.493 0.000
## EAC_bEP_c:attend_c -0.082 -0.440 0.275 -0.461 0.647
## --------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Processing (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Processing → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEP_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.43 0.62 0.70 0.49
##
## Slope of EAC_bEP_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.23 0.33 0.71 0.48
##
## Slope of EAC_bEP_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.46 0.06 0.95
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → ANXIETY ===
anxiety_mod_ep_attend <- lm(anxiety_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_ep_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 8.226, p = 0.000
## R² = 0.388
## Adj. R² = 0.340
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 6.541 2.533 10.550 3.274 0.002
## EAC_bEP_c 0.419 -0.058 0.897 1.762 0.084
## attend_c -0.601 -1.129 -0.073 -2.284 0.026
## anxiety_b 0.517 0.317 0.717 5.187 0.000
## EAC_bEP_c:attend_c -0.124 -0.349 0.101 -1.102 0.275
## --------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Processing (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Processing → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEP_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.65 0.39 1.67 0.10
##
## Slope of EAC_bEP_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.35 0.21 1.64 0.11
##
## Slope of EAC_bEP_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.30 0.14 0.89
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × EMOTIONAL PROCESSING → DEPRESSION ===
depress_mod_ep_attend <- lm(depress_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_ep_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 9.437, p = 0.000
## R² = 0.421
## Adj. R² = 0.376
##
## Standard errors: OLS
## --------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ------------------------ -------- -------- -------- -------- -------
## (Intercept) 3.962 -0.520 8.444 1.774 0.082
## EAC_bEP_c 0.264 -0.293 0.821 0.950 0.346
## attend_c -0.673 -1.283 -0.063 -2.214 0.031
## depress_b 0.585 0.379 0.792 5.686 0.000
## EAC_bEP_c:attend_c -0.133 -0.390 0.125 -1.034 0.306
## --------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Processing (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Emotional Processing → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ep_attend,
pred = EAC_bEP_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEP_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.51 0.45 1.14 0.26
##
## Slope of EAC_bEP_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.19 0.25 0.75 0.45
##
## Slope of EAC_bEP_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.14 0.35 -0.41 0.69
# ===================================================================
# PRIORITY 1: EMOTIONAL EXPRESSION × WORKING ALLIANCE
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline emotional expression on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → PAIN SEVERITY ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
EAC_bEX_c = scale(EAC_bEX, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
EX_wai = EAC_bEX_c * wai_c
)
# Model predicting post-treatment pain severity
pain_mod_ex_wai <- lm(meanpain_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_ex_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.573, p = 0.003
## R² = 0.260
## Adj. R² = 0.203
##
## Standard errors: OLS
## -----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------- -------- -------- -------- -------- -------
## (Intercept) 1.572 0.058 3.087 2.083 0.042
## EAC_bEX_c -0.062 -0.240 0.116 -0.699 0.488
## wai_c -0.049 -0.081 -0.017 -3.083 0.003
## meanpain_b 0.374 0.124 0.625 2.999 0.004
## EAC_bEX_c:wai_c -0.007 -0.017 0.002 -1.502 0.139
## -----------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Emotional Expression → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.11 0.45 0.65
##
## Slope of EAC_bEX_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.06 0.09 -0.70 0.49
##
## Slope of EAC_bEX_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.17 0.12 -1.39 0.17
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → PAIN INTERFERENCE ===
painint_mod_ex_wai <- lm(painint_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_ex_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.101, p = 0.000
## R² = 0.461
## Adj. R² = 0.419
##
## Standard errors: OLS
## -----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------- -------- -------- -------- -------- -------
## (Intercept) 4.144 -2.300 10.588 1.290 0.203
## EAC_bEX_c -0.503 -1.148 0.143 -1.563 0.124
## wai_c -0.226 -0.349 -0.103 -3.693 0.001
## painint_b 0.665 0.436 0.894 5.838 0.000
## EAC_bEX_c:wai_c -0.039 -0.076 -0.003 -2.144 0.037
## -----------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Emotional Expression → Pain Interference")
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When wai_c is OUTSIDE the interval [-180.52, 4.79], the slope of EAC_bEX_c
## is p < .05.
##
## Note: The range of observed values of wai_c is [-44.89, 20.11]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.08 0.39 0.20 0.85
##
## Slope of EAC_bEX_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.50 0.32 -1.56 0.12
##
## Slope of EAC_bEX_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -1.08 0.45 -2.43 0.02
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → ANXIETY ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → ANXIETY ===
anxiety_mod_ex_wai <- lm(anxiety_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_ex_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 9.028, p = 0.000
## R² = 0.410
## Adj. R² = 0.364
##
## Standard errors: OLS
## -----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------- -------- -------- -------- -------- -------
## (Intercept) 5.579 1.672 9.486 2.866 0.006
## EAC_bEX_c -0.229 -0.675 0.216 -1.032 0.307
## wai_c -0.101 -0.188 -0.014 -2.339 0.023
## anxiety_b 0.548 0.352 0.744 5.605 0.000
## EAC_bEX_c:wai_c -0.022 -0.047 0.004 -1.695 0.096
## -----------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Emotional Expression → Anxiety")
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.27 0.34 0.73
##
## Slope of EAC_bEX_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.23 0.22 -1.03 0.31
##
## Slope of EAC_bEX_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.55 0.31 -1.77 0.08
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → DEPRESSION ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × EMOTIONAL EXPRESSION → DEPRESSION ===
depress_mod_ex_wai <- lm(depress_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_ex_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 13.124, p = 0.000
## R² = 0.502
## Adj. R² = 0.464
##
## Standard errors: OLS
## -----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------- -------- -------- -------- -------- -------
## (Intercept) 3.457 -0.711 7.624 1.664 0.102
## EAC_bEX_c -0.468 -0.964 0.029 -1.891 0.064
## wai_c -0.113 -0.206 -0.019 -2.424 0.019
## depress_b 0.594 0.402 0.786 6.202 0.000
## EAC_bEX_c:wai_c -0.034 -0.063 -0.006 -2.460 0.017
## -----------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline Emotional Expression (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × Emotional Expression → Depression")
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_ex_wai,
pred = EAC_bEX_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When wai_c is OUTSIDE the interval [-73.52, 0.95], the slope of EAC_bEX_c
## is p < .05.
##
## Note: The range of observed values of wai_c is [-44.89, 20.11]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of EAC_bEX_c when wai_c = -1.484646e+01 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.04 0.30 0.14 0.89
##
## Slope of EAC_bEX_c when wai_c = 2.991759e-15 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.47 0.25 -1.89 0.06
##
## Slope of EAC_bEX_c when wai_c = 1.484646e+01 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.98 0.34 -2.86 0.01
# ===================================================================
# PRIORITY 2: REAPPRAISAL COPING × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline reappraisal/positive thinking on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × REAPPRAISAL → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × REAPPRAISAL → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
Coping_bRPS_c = scale(Coping_bRPS, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
RPS_attend = Coping_bRPS_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_rps_attend <- lm(meanpain_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_rps_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.231, p = 0.005
## R² = 0.246
## Adj. R² = 0.188
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 1.984 0.438 3.530 2.575 0.013
## Coping_bRPS_c -0.003 -0.190 0.183 -0.036 0.971
## attend_c -0.307 -0.500 -0.113 -3.177 0.003
## meanpain_b 0.329 0.074 0.583 2.594 0.012
## Coping_bRPS_c:attend_c -0.014 -0.088 0.060 -0.380 0.705
## ------------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Reappraisal Coping (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Reappraisal → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bRPS_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.13 0.17 0.86
##
## Slope of Coping_bRPS_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.09 -0.13 0.90
##
## Slope of Coping_bRPS_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.12 -0.39 0.70
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × REAPPRAISAL → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × REAPPRAISAL → PAIN INTERFERENCE ===
painint_mod_rps_attend <- lm(painint_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_rps_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 8.578, p = 0.000
## R² = 0.398
## Adj. R² = 0.351
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 8.698 2.022 15.374 2.614 0.012
## Coping_bRPS_c 0.772 0.057 1.487 2.166 0.035
## attend_c -1.041 -1.801 -0.282 -2.750 0.008
## painint_b 0.506 0.267 0.745 4.257 0.000
## Coping_bRPS_c:attend_c -0.000 -0.287 0.286 -0.002 0.998
## ------------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Reappraisal Coping (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Reappraisal → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is INSIDE the interval [-0.46, 2.25], the slope of
## Coping_bRPS_c is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bRPS_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.77 0.52 1.49 0.14
##
## Slope of Coping_bRPS_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.77 0.34 2.30 0.03
##
## Slope of Coping_bRPS_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.77 0.45 1.71 0.09
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × REAPPRAISAL → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × REAPPRAISAL → ANXIETY ===
anxiety_mod_rps_attend <- lm(anxiety_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_rps_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 8.458, p = 0.000
## R² = 0.394
## Adj. R² = 0.348
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 6.080 2.075 10.084 3.047 0.004
## Coping_bRPS_c 0.136 -0.352 0.623 0.559 0.578
## attend_c -0.522 -1.033 -0.010 -2.046 0.046
## anxiety_b 0.538 0.333 0.743 5.263 0.000
## Coping_bRPS_c:attend_c -0.187 -0.381 0.007 -1.937 0.058
## ------------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Reappraisal Coping (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Reappraisal → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bRPS_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.49 0.35 1.40 0.17
##
## Slope of Coping_bRPS_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.03 0.23 0.12 0.90
##
## Slope of Coping_bRPS_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.43 0.31 -1.39 0.17
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × REAPPRAISAL → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × REAPPRAISAL → DEPRESSION ===
depress_mod_rps_attend <- lm(depress_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_rps_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 10.511, p = 0.000
## R² = 0.447
## Adj. R² = 0.405
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- ------- -------- -------
## (Intercept) 2.935 -1.361 7.231 1.371 0.176
## Coping_bRPS_c -0.287 -0.828 0.253 -1.066 0.291
## attend_c -0.574 -1.154 0.006 -1.986 0.052
## depress_b 0.631 0.431 0.832 6.309 0.000
## Coping_bRPS_c:attend_c -0.127 -0.347 0.093 -1.163 0.250
## -----------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Reappraisal Coping (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Reappraisal → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_rps_attend,
pred = Coping_bRPS_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bRPS_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.39 -0.12 0.91
##
## Slope of Coping_bRPS_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.36 0.25 -1.42 0.16
##
## Slope of Coping_bRPS_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.68 0.35 -1.95 0.06
# ===================================================================
# PRIORITY 2: CATASTROPHIZING COPING × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline catastrophizing coping on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × CATASTROPHIZING COPING → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × CATASTROPHIZING COPING → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
Coping_bCat_c = scale(Coping_bCat, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
Cat_attend = Coping_bCat_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_cat_attend <- lm(meanpain_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_cat_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.992, p = 0.002
## R² = 0.277
## Adj. R² = 0.222
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 2.271 0.499 4.043 2.572 0.013
## Coping_bCat_c 0.080 -0.100 0.260 0.895 0.375
## attend_c -0.369 -0.579 -0.159 -3.522 0.001
## meanpain_b 0.288 -0.001 0.577 1.996 0.051
## Coping_bCat_c:attend_c -0.043 -0.109 0.022 -1.328 0.190
## ------------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Catastrophizing Coping (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing Coping → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bCat_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.16 0.11 1.47 0.15
##
## Slope of Coping_bCat_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.06 0.09 0.61 0.55
##
## Slope of Coping_bCat_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.13 -0.39 0.70
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × CATASTROPHIZING COPING → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × CATASTROPHIZING COPING → PAIN INTERFERENCE ===
painint_mod_cat_attend <- lm(painint_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_cat_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.045, p = 0.000
## R² = 0.351
## Adj. R² = 0.302
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 6.687 -1.458 14.831 1.648 0.105
## Coping_bCat_c 0.040 -0.707 0.787 0.107 0.915
## attend_c -1.195 -2.069 -0.321 -2.743 0.008
## painint_b 0.587 0.300 0.875 4.098 0.000
## Coping_bCat_c:attend_c -0.151 -0.416 0.114 -1.144 0.258
## ------------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Catastrophizing Coping (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing Coping → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bCat_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.33 0.47 0.69 0.49
##
## Slope of Coping_bCat_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.37 -0.13 0.90
##
## Slope of Coping_bCat_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.42 0.51 -0.82 0.42
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × CATASTROPHIZING COPING → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × CATASTROPHIZING COPING → ANXIETY ===
anxiety_mod_cat_attend <- lm(anxiety_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_cat_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.825, p = 0.000
## R² = 0.476
## Adj. R² = 0.436
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 6.892 2.919 10.866 3.481 0.001
## Coping_bCat_c 0.156 -0.263 0.574 0.747 0.458
## attend_c -0.880 -1.405 -0.355 -3.365 0.001
## anxiety_b 0.501 0.301 0.700 5.039 0.000
## Coping_bCat_c:attend_c -0.281 -0.441 -0.121 -3.531 0.001
## ------------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Catastrophizing Coping (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing Coping → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is OUTSIDE the interval [-1.16, 2.42], the slope of
## Coping_bCat_c is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bCat_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.69 0.28 2.50 0.02
##
## Slope of Coping_bCat_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.21 -0.03 0.98
##
## Slope of Coping_bCat_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.70 0.29 -2.38 0.02
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × CATASTROPHIZING COPING → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × CATASTROPHIZING COPING → DEPRESSION ===
depress_mod_cat_attend <- lm(depress_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_cat_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 11.659, p = 0.000
## R² = 0.473
## Adj. R² = 0.432
##
## Standard errors: OLS
## ------------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ---------------------------- -------- -------- -------- -------- -------
## (Intercept) 3.487 -1.737 8.710 1.339 0.186
## Coping_bCat_c -0.026 -0.593 0.541 -0.092 0.927
## attend_c -0.935 -1.559 -0.312 -3.010 0.004
## depress_b 0.606 0.365 0.847 5.049 0.000
## Coping_bCat_c:attend_c -0.240 -0.431 -0.048 -2.515 0.015
## ------------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Catastrophizing Coping (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Catastrophizing Coping → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_cat_attend,
pred = Coping_bCat_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is OUTSIDE the interval [-5.24, 2.92], the slope of
## Coping_bCat_c is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bCat_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.43 0.36 1.19 0.24
##
## Slope of Coping_bCat_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.16 0.28 -0.59 0.56
##
## Slope of Coping_bCat_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.76 0.37 -2.04 0.05
# ===================================================================
# PRIORITY 3: PTSD × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline PTSD symptoms on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × PTSD → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × PTSD → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
PCL_bT_c = scale(PCL_bT, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
PCL_attend = PCL_bT_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_pcl_attend <- lm(meanpain_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_pcl_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 3.305, p = 0.020
## R² = 0.253
## Adj. R² = 0.177
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 1.660 -0.170 3.490 1.835 0.074
## PCL_bT_c 0.012 -0.019 0.043 0.808 0.424
## attend_c -0.207 -0.431 0.016 -1.878 0.068
## meanpain_b 0.316 0.029 0.604 2.225 0.032
## PCL_bT_c:attend_c 0.002 -0.010 0.014 0.265 0.792
## ------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × PTSD → Pain Severity")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.02 0.43 0.67
##
## Slope of PCL_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.01 0.91 0.37
##
## Slope of PCL_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.02 0.85 0.40
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × PTSD → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × PTSD → PAIN INTERFERENCE ===
painint_mod_pcl_attend <- lm(painint_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_pcl_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 6.139, p = 0.001
## R² = 0.386
## Adj. R² = 0.323
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 8.169 -1.289 17.628 1.747 0.088
## PCL_bT_c 0.084 -0.054 0.221 1.226 0.228
## attend_c -0.531 -1.548 0.486 -1.056 0.297
## painint_b 0.501 0.166 0.836 3.025 0.004
## PCL_bT_c:attend_c 0.017 -0.037 0.071 0.636 0.528
## -------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × PTSD → Pain Interference")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.09 0.54 0.59
##
## Slope of PCL_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.07 1.40 0.17
##
## Slope of PCL_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.14 0.10 1.40 0.17
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × PTSD → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × PTSD → ANXIETY ===
anxiety_mod_pcl_attend <- lm(anxiety_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_pcl_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 8.486, p = 0.000
## R² = 0.465
## Adj. R² = 0.410
##
## Standard errors: OLS
## -------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- -------- -------- -------
## (Intercept) 5.031 -0.720 10.782 1.769 0.085
## PCL_bT_c 0.020 -0.083 0.122 0.389 0.699
## attend_c -0.697 -1.282 -0.112 -2.410 0.021
## anxiety_b 0.561 0.273 0.850 3.933 0.000
## PCL_bT_c:attend_c -0.019 -0.050 0.012 -1.236 0.224
## -------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × PTSD → Anxiety")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.06 0.07 0.86 0.39
##
## Slope of PCL_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.05 0.17 0.86
##
## Slope of PCL_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.04 0.06 -0.68 0.50
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × PTSD → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × PTSD → DEPRESSION ===
depress_mod_pcl_attend <- lm(depress_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_pcl_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 8.620, p = 0.000
## R² = 0.469
## Adj. R² = 0.415
##
## Standard errors: OLS
## ------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## ----------------------- -------- -------- ------- -------- -------
## (Intercept) 2.282 -3.546 8.111 0.792 0.433
## PCL_bT_c 0.002 -0.110 0.115 0.041 0.967
## attend_c -0.622 -1.354 0.110 -1.719 0.094
## depress_b 0.653 0.382 0.924 4.871 0.000
## PCL_bT_c:attend_c -0.028 -0.067 0.011 -1.444 0.157
## ------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × PTSD → Depression")
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_pcl_attend,
pred = PCL_bT_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.12273609754745 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when attend_c = -1.9409179 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.06 0.08 0.74 0.46
##
## Slope of PCL_bT_c when attend_c = 0.5909091 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.05 -0.27 0.79
##
## Slope of PCL_bT_c when attend_c = 3.1227361 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.09 0.07 -1.27 0.21
# ===================================================================
# PRIORITY 3: PTSD × WORKING ALLIANCE
# ===================================================================
# Research Question: Does working alliance moderate the effect of
# baseline PTSD symptoms on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × PTSD → PAIN SEVERITY ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × PTSD → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
PCL_bT_c = scale(PCL_bT, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
PCL_wai = PCL_bT_c * wai_c
)
# Model predicting post-treatment pain severity
pain_mod_pcl_wai <- lm(meanpain_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_pcl_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 3.594, p = 0.014
## R² = 0.269
## Adj. R² = 0.194
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 1.887 0.048 3.726 2.075 0.045
## PCL_bT_c 0.020 -0.010 0.050 1.347 0.186
## wai_c -0.045 -0.083 -0.007 -2.424 0.020
## meanpain_b 0.272 -0.014 0.558 1.927 0.061
## PCL_bT_c:wai_c -0.000 -0.002 0.002 -0.196 0.846
## ----------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × PTSD → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.02 1.13 0.27
##
## Slope of PCL_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.01 1.33 0.19
##
## Slope of PCL_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.02 0.02 0.84 0.41
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × PTSD → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × PTSD → PAIN INTERFERENCE ===
painint_mod_pcl_wai <- lm(painint_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_pcl_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 7.986, p = 0.000
## R² = 0.450
## Adj. R² = 0.394
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 7.781 -0.934 16.496 1.806 0.079
## PCL_bT_c 0.121 -0.009 0.252 1.881 0.068
## wai_c -0.215 -0.371 -0.059 -2.789 0.008
## painint_b 0.525 0.226 0.825 3.551 0.001
## PCL_bT_c:wai_c -0.003 -0.012 0.005 -0.842 0.405
## ----------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × PTSD → Pain Interference")
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## When wai_c is INSIDE the interval [-7.35, -5.71], the slope of PCL_bT_c is
## p < .05.
##
## Note: The range of observed values of wai_c is [-30.89, 20.11]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.17 0.09 1.94 0.06
##
## Slope of PCL_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.12 0.06 1.82 0.08
##
## Slope of PCL_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.07 0.09 0.80 0.43
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × PTSD → ANXIETY ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × PTSD → ANXIETY ===
anxiety_mod_pcl_wai <- lm(anxiety_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_pcl_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 9.837, p = 0.000
## R² = 0.502
## Adj. R² = 0.451
##
## Standard errors: OLS
## ----------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- -------- -------- -------
## (Intercept) 4.789 -0.959 10.537 1.685 0.100
## PCL_bT_c 0.014 -0.081 0.110 0.302 0.764
## wai_c -0.128 -0.225 -0.031 -2.674 0.011
## anxiety_b 0.571 0.283 0.858 4.017 0.000
## PCL_bT_c:wai_c -0.005 -0.010 0.000 -1.976 0.055
## ----------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × PTSD → Anxiety")
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.08 0.06 1.30 0.20
##
## Slope of PCL_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.01 0.05 0.19 0.85
##
## Slope of PCL_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.06 0.06 -1.09 0.28
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: WORKING ALLIANCE × PTSD → DEPRESSION ===\n")
##
##
## === MODERATION: WORKING ALLIANCE × PTSD → DEPRESSION ===
depress_mod_pcl_wai <- lm(depress_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_pcl_wai,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 44 (22 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,39) = 8.677, p = 0.000
## R² = 0.471
## Adj. R² = 0.417
##
## Standard errors: OLS
## ---------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## -------------------- -------- -------- ------- -------- -------
## (Intercept) 1.536 -4.301 7.373 0.532 0.598
## PCL_bT_c -0.010 -0.118 0.097 -0.193 0.848
## wai_c -0.115 -0.238 0.009 -1.874 0.068
## depress_b 0.670 0.399 0.941 5.001 0.000
## PCL_bT_c:wai_c -0.000 -0.007 0.006 -0.102 0.919
## ---------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
modx.labels = c("Low Alliance (-1 SD)",
"Mean Alliance",
"High Alliance (+1 SD)"),
x.label = "Baseline PTSD Symptoms (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Working Alliance"
) +
theme_minimal() +
ggtitle("Moderation: Working Alliance × PTSD → Depression")
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_pcl_wai,
pred = PCL_bT_c,
modx = wai_c,
johnson_neyman = TRUE
)
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of PCL_bT_c when wai_c = -13.051665 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.07 -0.09 0.93
##
## Slope of PCL_bT_c when wai_c = 1.105263 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.01 0.05 -0.20 0.84
##
## Slope of PCL_bT_c when wai_c = 15.262191 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.02 0.07 -0.22 0.83
# ===================================================================
# PRIORITY 2: DISTRACTION/AVOIDANCE COPING × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline distraction/avoidance coping on post-treatment outcomes?
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
Coping_bDA_c = scale(Coping_bDA, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
DA_attend = Coping_bDA_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_da_attend <- lm(meanpain_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_da_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.351, p = 0.004
## R² = 0.251
## Adj. R² = 0.193
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 1.838 0.273 3.403 2.357 0.022
## Coping_bDA_c -0.052 -0.200 0.095 -0.709 0.482
## attend_c -0.307 -0.499 -0.115 -3.215 0.002
## meanpain_b 0.350 0.094 0.606 2.746 0.008
## Coping_bDA_c:attend_c 0.009 -0.047 0.066 0.329 0.743
## -----------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Distraction/Avoidance Coping (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Distraction/Avoidance → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bDA_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.07 0.10 -0.71 0.48
##
## Slope of Coping_bDA_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.05 0.07 -0.65 0.52
##
## Slope of Coping_bDA_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.02 0.10 -0.23 0.82
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → PAIN INTERFERENCE ===
painint_mod_da_attend <- lm(painint_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_da_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.288, p = 0.000
## R² = 0.359
## Adj. R² = 0.310
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 8.005 1.096 14.915 2.325 0.024
## Coping_bDA_c 0.399 -0.177 0.976 1.389 0.171
## attend_c -0.961 -1.742 -0.181 -2.471 0.017
## painint_b 0.536 0.290 0.781 4.376 0.000
## Coping_bDA_c:attend_c -0.010 -0.238 0.218 -0.088 0.930
## -----------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Distraction/Avoidance Coping (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Distraction/Avoidance → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bDA_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.42 0.39 1.08 0.29
##
## Slope of Coping_bDA_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.39 0.28 1.39 0.17
##
## Slope of Coping_bDA_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.37 0.41 0.90 0.37
# ===================================================================
# ANXIETY
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → ANXIETY ===\n")
##
##
## === MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → ANXIETY ===
anxiety_mod_da_attend <- lm(anxiety_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
anxiety_b,
data = eaet_data)
anxiety_mod_summary <- jtools::summ(anxiety_mod_da_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(anxiety_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: anxiety_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 7.379, p = 0.000
## R² = 0.362
## Adj. R² = 0.313
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 5.993 1.979 10.008 2.996 0.004
## Coping_bDA_c -0.104 -0.488 0.281 -0.542 0.590
## attend_c -0.487 -1.010 0.036 -1.870 0.067
## anxiety_b 0.533 0.330 0.737 5.265 0.000
## Coping_bDA_c:attend_c -0.054 -0.206 0.099 -0.706 0.484
## -----------------------------------------------------------------------
anxiety_interact_plot <- interactions::interact_plot(
anxiety_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Distraction/Avoidance Coping (centered)",
y.label = "Post-Treatment Anxiety",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Distraction/Avoidance → Anxiety")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(anxiety_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_anxiety <- interactions::sim_slopes(
anxiety_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_anxiety)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bDA_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.00 0.26 -0.01 0.99
##
## Slope of Coping_bDA_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.13 0.19 -0.71 0.48
##
## Slope of Coping_bDA_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.27 0.27 -0.98 0.33
# ===================================================================
# DEPRESSION
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → DEPRESSION ===\n")
##
##
## === MODERATION: ATTENDANCE × DISTRACTION/AVOIDANCE → DEPRESSION ===
depress_mod_da_attend <- lm(depress_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
depress_b,
data = eaet_data)
depress_mod_summary <- jtools::summ(depress_mod_da_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(depress_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: depress_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 13.178, p = 0.000
## R² = 0.503
## Adj. R² = 0.465
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 3.575 -0.412 7.561 1.799 0.078
## Coping_bDA_c -0.616 -1.008 -0.223 -3.146 0.003
## attend_c -0.579 -1.125 -0.033 -2.128 0.038
## depress_b 0.589 0.404 0.774 6.387 0.000
## Coping_bDA_c:attend_c 0.004 -0.156 0.164 0.049 0.961
## -----------------------------------------------------------------------
depress_interact_plot <- interactions::interact_plot(
depress_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Distraction/Avoidance Coping (centered)",
y.label = "Post-Treatment Depression",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × Distraction/Avoidance → Depression")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(depress_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_depress <- interactions::sim_slopes(
depress_mod_da_attend,
pred = Coping_bDA_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_depress)
## JOHNSON-NEYMAN INTERVAL
##
## When attend_c is INSIDE the interval [-2.61, 3.34], the slope of
## Coping_bDA_c is p < .05.
##
## Note: The range of observed values of attend_c is [-5.32, 2.68]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of Coping_bDA_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.62 0.27 -2.32 0.02
##
## Slope of Coping_bDA_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.61 0.19 -3.19 0.00
##
## Slope of Coping_bDA_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.60 0.28 -2.14 0.04
# ===================================================================
# PRIORITY 4: EMOTIONAL APPROACH TO PAIN (SOPA) × ATTENDANCE
# ===================================================================
# Research Question: Does treatment attendance moderate the effect of
# baseline emotional approach to pain on post-treatment PAIN outcomes?
# Note: SOPA is theoretically most relevant for pain-specific outcomes
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × SOPA → PAIN SEVERITY ===\n")
##
##
## === MODERATION: ATTENDANCE × SOPA → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
SOPA_bEmot_c = scale(SOPA_bEmot, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
SOPA_attend = SOPA_bEmot_c * attend_c
)
# Model predicting post-treatment pain severity
pain_mod_sopa_attend <- lm(meanpain_p ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_sopa_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.750, p = 0.002
## R² = 0.268
## Adj. R² = 0.211
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 1.585 -0.052 3.222 1.943 0.057
## SOPA_bEmot_c -0.150 -0.384 0.084 -1.283 0.205
## attend_c -0.269 -0.473 -0.066 -2.657 0.010
## meanpain_b 0.386 0.117 0.656 2.877 0.006
## SOPA_bEmot_c:attend_c 0.013 -0.061 0.088 0.364 0.717
## -----------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_sopa_attend,
pred = SOPA_bEmot_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Approach to Pain (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × SOPA → Pain Severity")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_sopa_attend,
pred = SOPA_bEmot_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of SOPA_bEmot_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.18 0.14 -1.27 0.21
##
## Slope of SOPA_bEmot_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.14 0.12 -1.20 0.23
##
## Slope of SOPA_bEmot_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.16 -0.68 0.50
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: ATTENDANCE × SOPA → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: ATTENDANCE × SOPA → PAIN INTERFERENCE ===
painint_mod_sopa_attend <- lm(painint_p ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_sopa_attend,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 6.603, p = 0.000
## R² = 0.337
## Adj. R² = 0.286
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 7.284 -0.159 14.727 1.964 0.055
## SOPA_bEmot_c 0.144 -0.799 1.087 0.306 0.761
## attend_c -0.970 -1.820 -0.120 -2.290 0.026
## painint_b 0.560 0.293 0.826 4.212 0.000
## SOPA_bEmot_c:attend_c 0.029 -0.279 0.338 0.190 0.850
## -----------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_sopa_attend,
pred = SOPA_bEmot_c,
modx = attend_c,
modx.labels = c("Low Attendance (-1 SD)",
"Mean Attendance",
"High Attendance (+1 SD)"),
x.label = "Baseline Emotional Approach to Pain (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Session Attendance"
) +
theme_minimal() +
ggtitle("Moderation: Attendance × SOPA → Pain Interference")
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_sopa_attend,
pred = SOPA_bEmot_c,
modx = attend_c,
johnson_neyman = TRUE
)
## Warning: 3.0455355142583 is outside the observed range of attend_c
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of SOPA_bEmot_c when attend_c = -1.892425 (- 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.09 0.56 0.16 0.88
##
## Slope of SOPA_bEmot_c when attend_c = 0.576555 (Mean):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.16 0.47 0.34 0.74
##
## Slope of SOPA_bEmot_c when attend_c = 3.045536 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.23 0.65 0.36 0.72
# ===================================================================
# PRIORITY 4: EMOTIONAL APPROACH TO PAIN (SOPA) × CATASTROPHIZING
# ===================================================================
# Research Question: Does baseline catastrophizing moderate the effect of
# emotional approach to pain on post-treatment PAIN outcomes?
# ===================================================================
cat("\n\n=== MODERATION: CATASTROPHIZING × SOPA → PAIN SEVERITY ===\n")
##
##
## === MODERATION: CATASTROPHIZING × SOPA → PAIN SEVERITY ===
# Prepare data
eaet_data <- eaet_data %>%
mutate(
SOPA_bEmot_c = scale(SOPA_bEmot, scale = FALSE),
PCS_bT_c = scale(PCS_bT, scale = FALSE),
SOPA_PCS = SOPA_bEmot_c * PCS_bT_c
)
# Model predicting post-treatment pain severity
pain_mod_sopa_pcs <- lm(meanpain_p ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
meanpain_b,
data = eaet_data)
# Display results
pain_mod_summary <- jtools::summ(pain_mod_sopa_pcs,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(pain_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: meanpain_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 2.824, p = 0.034
## R² = 0.178
## Adj. R² = 0.115
##
## Standard errors: OLS
## ----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- ------- -------- -------
## (Intercept) 1.642 -0.260 3.544 1.732 0.089
## SOPA_bEmot_c -0.230 -0.479 0.020 -1.849 0.070
## PCS_bT_c 0.023 -0.023 0.070 1.014 0.315
## meanpain_b 0.338 0.025 0.651 2.168 0.035
## SOPA_bEmot_c:PCS_bT_c 0.008 -0.010 0.026 0.881 0.382
## ----------------------------------------------------------------------
# Interaction plot
pain_interact_plot <- interactions::interact_plot(
pain_mod_sopa_pcs,
pred = SOPA_bEmot_c,
modx = PCS_bT_c,
modx.labels = c("Low Catastrophizing (-1 SD)",
"Mean Catastrophizing",
"High Catastrophizing (+1 SD)"),
x.label = "Baseline Emotional Approach to Pain (centered)",
y.label = "Post-Treatment Pain Severity",
legend.main = "Pain Catastrophizing"
) +
theme_minimal() +
ggtitle("Moderation: Catastrophizing × SOPA → Pain Severity")
print(pain_interact_plot)

# Simple slopes analysis
cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_pain <- interactions::sim_slopes(
pain_mod_sopa_pcs,
pred = SOPA_bEmot_c,
modx = PCS_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_pain)
## JOHNSON-NEYMAN INTERVAL
##
## When PCS_bT_c is INSIDE the interval [-16.95, -2.14], the slope of
## SOPA_bEmot_c is p < .05.
##
## Note: The range of observed values of PCS_bT_c is [-20.73, 29.27]
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of SOPA_bEmot_c when PCS_bT_c = -13.4530420 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.34 0.16 -2.10 0.04
##
## Slope of SOPA_bEmot_c when PCS_bT_c = -0.5167464 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.23 0.12 -1.89 0.06
##
## Slope of SOPA_bEmot_c when PCS_bT_c = 12.4195492 (+ 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.13 0.18 -0.74 0.46
# ===================================================================
# PAIN INTERFERENCE
# ===================================================================
cat("\n\n=== MODERATION: CATASTROPHIZING × SOPA → PAIN INTERFERENCE ===\n")
##
##
## === MODERATION: CATASTROPHIZING × SOPA → PAIN INTERFERENCE ===
painint_mod_sopa_pcs <- lm(painint_p ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
painint_b,
data = eaet_data)
painint_mod_summary <- jtools::summ(painint_mod_sopa_pcs,
digits = 3,
confint = TRUE,
ci.width = 0.95)
print(painint_mod_summary)
## MODEL INFO:
## Observations: 57 (9 missing obs. deleted)
## Dependent Variable: painint_p
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,52) = 4.515, p = 0.003
## R² = 0.258
## Adj. R² = 0.201
##
## Standard errors: OLS
## -----------------------------------------------------------------------
## Est. 2.5% 97.5% t val. p
## --------------------------- -------- -------- -------- -------- -------
## (Intercept) 7.754 -1.543 17.051 1.674 0.100
## SOPA_bEmot_c -0.026 -1.045 0.992 -0.052 0.959
## PCS_bT_c 0.012 -0.193 0.216 0.114 0.910
## painint_b 0.520 0.186 0.854 3.126 0.003
## SOPA_bEmot_c:PCS_bT_c 0.006 -0.069 0.081 0.161 0.873
## -----------------------------------------------------------------------
painint_interact_plot <- interactions::interact_plot(
painint_mod_sopa_pcs,
pred = SOPA_bEmot_c,
modx = PCS_bT_c,
modx.labels = c("Low Catastrophizing (-1 SD)",
"Mean Catastrophizing",
"High Catastrophizing (+1 SD)"),
x.label = "Baseline Emotional Approach to Pain (centered)",
y.label = "Post-Treatment Pain Interference",
legend.main = "Pain Catastrophizing"
) +
theme_minimal() +
ggtitle("Moderation: Catastrophizing × SOPA → Pain Interference")
print(painint_interact_plot)

cat("\n--- SIMPLE SLOPES ANALYSIS ---\n")
##
## --- SIMPLE SLOPES ANALYSIS ---
simple_slopes_painint <- interactions::sim_slopes(
painint_mod_sopa_pcs,
pred = SOPA_bEmot_c,
modx = PCS_bT_c,
johnson_neyman = TRUE
)
print(simple_slopes_painint)
## JOHNSON-NEYMAN INTERVAL
##
## The Johnson-Neyman interval could not be found. Is the p value for your
## interaction term below the specified alpha?
##
## SIMPLE SLOPES ANALYSIS
##
## Slope of SOPA_bEmot_c when PCS_bT_c = -13.4530420 (- 1 SD):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.11 0.65 -0.17 0.87
##
## Slope of SOPA_bEmot_c when PCS_bT_c = -0.5167464 (Mean):
##
## Est. S.E. t val. p
## ------- ------ -------- ------
## -0.03 0.50 -0.06 0.95
##
## Slope of SOPA_bEmot_c when PCS_bT_c = 12.4195492 (+ 1 SD):
##
## Est. S.E. t val. p
## ------ ------ -------- ------
## 0.05 0.75 0.06 0.95
# ===================================================================
# SENSITIVITY ANALYSES: 6-MONTH FOLLOW-UP
# ===================================================================
cat("\n\n=== SENSITIVITY ANALYSIS: 6-MONTH OUTCOMES ===\n")
##
##
## === SENSITIVITY ANALYSIS: 6-MONTH OUTCOMES ===
# Re-prepare centered variables (in case running this chunk independently)
eaet_data <- eaet_data %>%
mutate(
PCS_bT_c = scale(PCS_bT, scale = FALSE),
ADS_bT_c = scale(ADS_bT, scale = FALSE),
attend_c = scale(attend, scale = FALSE),
wai_c = scale(wai, scale = FALSE),
EAC_bT_c = scale(EAC_bT, scale = FALSE),
EAC_bEX_c = scale(EAC_bEX, scale = FALSE),
EAC_bEP_c = scale(EAC_bEP, scale = FALSE),
AEQ_bT_c = scale(AEQ_bT, scale = FALSE),
PCL_bT_c = scale(PCL_bT, scale = FALSE),
Coping_bDA_c = scale(Coping_bDA, scale = FALSE),
Coping_bRPS_c = scale(Coping_bRPS, scale = FALSE),
Coping_bCat_c = scale(Coping_bCat, scale = FALSE),
SOPA_bEmot_c = scale(SOPA_bEmot, scale = FALSE)
)
# --- Attendance × Anger Discomfort (6-month) ---
cat("\n--- Attendance × Anger Discomfort → 6-Month Pain Severity ---\n")
##
## --- Attendance × Anger Discomfort → 6-Month Pain Severity ---
pain_6m_ads_attend <- lm(meanpain_6m ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ads_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 2.470, p = 0.061
## R² = 0.206
## Adj. R² = 0.123
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.904 1.140 1.669 0.103
## ADS_bT_c 0.024 0.039 0.609 0.546
## attend_c -0.082 0.132 -0.624 0.536
## meanpain_b 0.451 0.181 2.497 0.017
## ADS_bT_c:attend_c 0.006 0.015 0.429 0.670
## ---------------------------------------------------------
cat("\n--- Attendance × Anger Discomfort → 6-Month Pain Interference ---\n")
##
## --- Attendance × Anger Discomfort → 6-Month Pain Interference ---
painint_6m_ads_attend <- lm(painint_6m ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ads_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 12.181, p = 0.000
## R² = 0.562
## Adj. R² = 0.516
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 3.516 3.487 1.008 0.320
## ADS_bT_c 0.076 0.110 0.687 0.496
## attend_c -0.923 0.390 -2.368 0.023
## painint_b 0.770 0.123 6.271 0.000
## ADS_bT_c:attend_c 0.020 0.042 0.480 0.634
## ---------------------------------------------------------
cat("\n--- Attendance × Anger Discomfort → 6-Month Anxiety ---\n")
##
## --- Attendance × Anger Discomfort → 6-Month Anxiety ---
anxiety_6m_ads_attend <- lm(anxiety_6m ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ads_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 13.266, p = 0.000
## R² = 0.583
## Adj. R² = 0.539
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 3.881 2.140 1.813 0.078
## ADS_bT_c 0.043 0.078 0.556 0.581
## attend_c -0.402 0.249 -1.614 0.115
## anxiety_b 0.662 0.108 6.147 0.000
## ADS_bT_c:attend_c -0.028 0.028 -1.004 0.322
## ---------------------------------------------------------
cat("\n--- Attendance × Anger Discomfort → 6-Month Depression ---\n")
##
## --- Attendance × Anger Discomfort → 6-Month Depression ---
depress_6m_ads_attend <- lm(depress_6m ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ads_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 16.094, p = 0.000
## R² = 0.629
## Adj. R² = 0.590
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.032 2.115 0.960 0.343
## ADS_bT_c -0.002 0.084 -0.024 0.981
## attend_c -0.745 0.285 -2.615 0.013
## depress_b 0.731 0.099 7.375 0.000
## ADS_bT_c:attend_c -0.046 0.032 -1.434 0.160
## ---------------------------------------------------------
# --- Working Alliance × Anger Discomfort (6-month) ---
cat("\n--- Working Alliance × Anger Discomfort → 6-Month Pain Severity ---\n")
##
## --- Working Alliance × Anger Discomfort → 6-Month Pain Severity ---
pain_6m_ads_wai <- lm(meanpain_6m ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ads_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 2.434, p = 0.064
## R² = 0.204
## Adj. R² = 0.120
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 1.744 1.194 1.461 0.152
## ADS_bT_c 0.020 0.040 0.501 0.619
## wai_c -0.004 0.022 -0.189 0.851
## meanpain_b 0.466 0.188 2.483 0.018
## ADS_bT_c:wai_c 0.002 0.003 0.705 0.485
## ------------------------------------------------------
cat("\n--- Working Alliance × Anger Discomfort → 6-Month Pain Interference ---\n")
##
## --- Working Alliance × Anger Discomfort → 6-Month Pain Interference ---
painint_6m_ads_wai <- lm(painint_6m ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ads_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 11.172, p = 0.000
## R² = 0.540
## Adj. R² = 0.492
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 3.947 3.594 1.098 0.279
## ADS_bT_c 0.101 0.110 0.922 0.363
## wai_c -0.136 0.067 -2.041 0.048
## painint_b 0.737 0.124 5.924 0.000
## ADS_bT_c:wai_c 0.001 0.007 0.192 0.849
## ------------------------------------------------------
cat("\n--- Working Alliance × Anger Discomfort → 6-Month Anxiety ---\n")
##
## --- Working Alliance × Anger Discomfort → 6-Month Anxiety ---
anxiety_6m_ads_wai <- lm(anxiety_6m ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ads_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 14.547, p = 0.000
## R² = 0.605
## Adj. R² = 0.563
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 3.617 2.193 1.650 0.107
## ADS_bT_c 0.052 0.075 0.690 0.494
## wai_c -0.065 0.043 -1.511 0.139
## anxiety_b 0.669 0.110 6.061 0.000
## ADS_bT_c:wai_c -0.008 0.004 -1.801 0.080
## ------------------------------------------------------
cat("\n--- Working Alliance × Anger Discomfort → 6-Month Depression ---\n")
##
## --- Working Alliance × Anger Discomfort → 6-Month Depression ---
depress_6m_ads_wai <- lm(depress_6m ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ads_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 14.060, p = 0.000
## R² = 0.597
## Adj. R² = 0.554
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 2.028 2.293 0.885 0.382
## ADS_bT_c -0.013 0.086 -0.149 0.883
## wai_c -0.086 0.051 -1.696 0.098
## depress_b 0.711 0.107 6.657 0.000
## ADS_bT_c:wai_c -0.007 0.006 -1.208 0.235
## ------------------------------------------------------
# --- Attendance × Catastrophizing (6-month) ---
cat("\n--- Attendance × Catastrophizing → 6-Month Pain Severity ---\n")
##
## --- Attendance × Catastrophizing → 6-Month Pain Severity ---
pain_6m_pcs_attend <- lm(meanpain_6m ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_pcs_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.845, p = 0.009
## R² = 0.239
## Adj. R² = 0.177
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.368 1.003 2.361 0.022
## PCS_bT_c 0.026 0.026 0.991 0.326
## attend_c -0.198 0.113 -1.748 0.087
## meanpain_b 0.413 0.167 2.478 0.017
## PCS_bT_c:attend_c -0.010 0.009 -1.056 0.296
## ---------------------------------------------------------
cat("\n--- Attendance × Catastrophizing → 6-Month Pain Interference ---\n")
##
## --- Attendance × Catastrophizing → 6-Month Pain Interference ---
painint_6m_pcs_attend <- lm(painint_6m ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_pcs_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 13.480, p = 0.000
## R² = 0.524
## Adj. R² = 0.485
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 4.312 3.936 1.095 0.279
## PCS_bT_c 0.015 0.091 0.161 0.873
## attend_c -0.846 0.367 -2.304 0.026
## painint_b 0.762 0.141 5.399 0.000
## PCS_bT_c:attend_c -0.036 0.029 -1.260 0.214
## ---------------------------------------------------------
cat("\n--- Attendance × Catastrophizing → 6-Month Anxiety ---\n")
##
## --- Attendance × Catastrophizing → 6-Month Anxiety ---
anxiety_6m_pcs_attend <- lm(anxiety_6m ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_pcs_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 7.493, p = 0.000
## R² = 0.380
## Adj. R² = 0.329
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 8.567 2.627 3.261 0.002
## PCS_bT_c 0.128 0.070 1.822 0.075
## attend_c -0.717 0.305 -2.349 0.023
## anxiety_b 0.409 0.132 3.087 0.003
## PCS_bT_c:attend_c -0.044 0.024 -1.813 0.076
## ---------------------------------------------------------
cat("\n--- Attendance × Catastrophizing → 6-Month Depression ---\n")
##
## --- Attendance × Catastrophizing → 6-Month Depression ---
depress_6m_pcs_attend <- lm(depress_6m ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_pcs_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 15.858, p = 0.000
## R² = 0.564
## Adj. R² = 0.529
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.613 2.594 0.622 0.537
## PCS_bT_c -0.072 0.072 -1.000 0.322
## attend_c -1.025 0.301 -3.407 0.001
## depress_b 0.787 0.120 6.532 0.000
## PCS_bT_c:attend_c -0.068 0.024 -2.811 0.007
## ---------------------------------------------------------
# --- Emotional Coping × Catastrophizing (6-month) ---
cat("\n--- Emotional Coping × Catastrophizing → 6-Month Pain Severity ---\n")
##
## --- Emotional Coping × Catastrophizing → 6-Month Pain Severity ---
pain_6m_pcs_eac <- lm(meanpain_6m ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_pcs_eac, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.183, p = 0.005
## R² = 0.255
## Adj. R² = 0.194
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.952 1.020 1.913 0.062
## PCS_bT_c 0.016 0.025 0.648 0.520
## EAC_bT_c -0.094 0.045 -2.082 0.043
## meanpain_b 0.463 0.169 2.739 0.009
## PCS_bT_c:EAC_bT_c 0.000 0.004 0.071 0.944
## ---------------------------------------------------------
cat("\n--- Emotional Coping × Catastrophizing → 6-Month Pain Interference ---\n")
##
## --- Emotional Coping × Catastrophizing → 6-Month Pain Interference ---
painint_6m_pcs_eac <- lm(painint_6m ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_pcs_eac, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.576, p = 0.000
## R² = 0.486
## Adj. R² = 0.444
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 5.541 3.989 1.389 0.171
## PCS_bT_c 0.009 0.089 0.102 0.919
## EAC_bT_c -0.165 0.145 -1.135 0.262
## painint_b 0.695 0.141 4.917 0.000
## PCS_bT_c:EAC_bT_c 0.006 0.014 0.460 0.647
## ---------------------------------------------------------
cat("\n--- Emotional Coping × Catastrophizing → 6-Month Anxiety ---\n")
##
## --- Emotional Coping × Catastrophizing → 6-Month Anxiety ---
anxiety_6m_pcs_eac <- lm(anxiety_6m ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_pcs_eac, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 6.442, p = 0.000
## R² = 0.345
## Adj. R² = 0.291
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 7.761 2.794 2.778 0.008
## PCS_bT_c 0.083 0.071 1.179 0.244
## EAC_bT_c 0.097 0.127 0.770 0.445
## anxiety_b 0.432 0.140 3.083 0.003
## PCS_bT_c:EAC_bT_c -0.020 0.012 -1.731 0.090
## ---------------------------------------------------------
cat("\n--- Emotional Coping × Catastrophizing → 6-Month Depression ---\n")
##
## --- Emotional Coping × Catastrophizing → 6-Month Depression ---
depress_6m_pcs_eac <- lm(depress_6m ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_pcs_eac, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 9.758, p = 0.000
## R² = 0.443
## Adj. R² = 0.398
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.196 3.225 0.681 0.499
## PCS_bT_c -0.107 0.083 -1.295 0.202
## EAC_bT_c -0.074 0.146 -0.505 0.616
## depress_b 0.729 0.149 4.903 0.000
## PCS_bT_c:EAC_bT_c -0.014 0.013 -1.084 0.284
## ---------------------------------------------------------
# --- Working Alliance × Ambivalence (6-month) ---
cat("\n--- Working Alliance × Ambivalence → 6-Month Pain Severity ---\n")
##
## --- Working Alliance × Ambivalence → 6-Month Pain Severity ---
pain_6m_aeq_wai <- lm(meanpain_6m ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_aeq_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.714, p = 0.010
## R² = 0.233
## Adj. R² = 0.170
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 2.393 0.863 2.771 0.008
## AEQ_bT_c 0.041 0.025 1.659 0.104
## wai_c -0.014 0.017 -0.794 0.431
## meanpain_b 0.382 0.142 2.702 0.009
## AEQ_bT_c:wai_c 0.001 0.002 0.388 0.700
## ------------------------------------------------------
cat("\n--- Working Alliance × Ambivalence → 6-Month Pain Interference ---\n")
##
## --- Working Alliance × Ambivalence → 6-Month Pain Interference ---
painint_6m_aeq_wai <- lm(painint_6m ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_aeq_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.811, p = 0.000
## R² = 0.491
## Adj. R² = 0.449
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 5.038 3.270 1.541 0.130
## AEQ_bT_c 0.058 0.081 0.713 0.479
## wai_c -0.072 0.059 -1.229 0.225
## painint_b 0.716 0.115 6.206 0.000
## AEQ_bT_c:wai_c -0.003 0.005 -0.486 0.629
## ------------------------------------------------------
cat("\n--- Working Alliance × Ambivalence → 6-Month Anxiety ---\n")
##
## --- Working Alliance × Ambivalence → 6-Month Anxiety ---
anxiety_6m_aeq_wai <- lm(anxiety_6m ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_aeq_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 5.933, p = 0.001
## R² = 0.326
## Adj. R² = 0.271
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 7.542 2.512 3.003 0.004
## AEQ_bT_c 0.084 0.071 1.181 0.243
## wai_c -0.033 0.050 -0.648 0.520
## anxiety_b 0.440 0.125 3.517 0.001
## AEQ_bT_c:wai_c -0.008 0.004 -1.695 0.096
## ------------------------------------------------------
cat("\n--- Working Alliance × Ambivalence → 6-Month Depression ---\n")
##
## --- Working Alliance × Ambivalence → 6-Month Depression ---
depress_6m_aeq_wai <- lm(depress_6m ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_aeq_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 10.148, p = 0.000
## R² = 0.453
## Adj. R² = 0.408
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 5.075 2.552 1.989 0.052
## AEQ_bT_c 0.097 0.076 1.275 0.208
## wai_c -0.086 0.052 -1.663 0.103
## depress_b 0.592 0.117 5.058 0.000
## AEQ_bT_c:wai_c -0.006 0.005 -1.182 0.243
## ------------------------------------------------------
# --- PTSD × Anger Discomfort (6-month) ---
cat("\n--- PTSD × Anger Discomfort → 6-Month Pain Severity ---\n")
##
## --- PTSD × Anger Discomfort → 6-Month Pain Severity ---
pain_6m_ads_pcl <- lm(meanpain_6m ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ads_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 3.670, p = 0.013
## R² = 0.279
## Adj. R² = 0.203
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.742 1.253 1.391 0.172
## ADS_bT_c -0.010 0.039 -0.263 0.794
## PCL_bT_c 0.023 0.020 1.134 0.264
## meanpain_b 0.434 0.192 2.259 0.030
## ADS_bT_c:PCL_bT_c 0.003 0.002 1.610 0.116
## ---------------------------------------------------------
cat("\n--- PTSD × Anger Discomfort → 6-Month Pain Interference ---\n")
##
## --- PTSD × Anger Discomfort → 6-Month Pain Interference ---
painint_6m_ads_pcl <- lm(painint_6m ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ads_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 10.166, p = 0.000
## R² = 0.517
## Adj. R² = 0.466
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 4.188 4.138 1.012 0.318
## ADS_bT_c 0.050 0.119 0.421 0.676
## PCL_bT_c -0.014 0.068 -0.207 0.837
## painint_b 0.701 0.143 4.900 0.000
## ADS_bT_c:PCL_bT_c 0.008 0.006 1.466 0.151
## ---------------------------------------------------------
cat("\n--- PTSD × Anger Discomfort → 6-Month Anxiety ---\n")
##
## --- PTSD × Anger Discomfort → 6-Month Anxiety ---
anxiety_6m_ads_pcl <- lm(anxiety_6m ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ads_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 12.595, p = 0.000
## R² = 0.570
## Adj. R² = 0.525
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.729 2.787 0.620 0.539
## ADS_bT_c -0.004 0.079 -0.048 0.962
## PCL_bT_c -0.044 0.047 -0.925 0.361
## anxiety_b 0.737 0.138 5.322 0.000
## ADS_bT_c:PCL_bT_c 0.004 0.004 1.153 0.256
## ---------------------------------------------------------
cat("\n--- PTSD × Anger Discomfort → 6-Month Depression ---\n")
##
## --- PTSD × Anger Discomfort → 6-Month Depression ---
depress_6m_ads_pcl <- lm(depress_6m ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ads_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 12.319, p = 0.000
## R² = 0.565
## Adj. R² = 0.519
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 0.010 2.797 0.004 0.997
## ADS_bT_c -0.049 0.093 -0.519 0.607
## PCL_bT_c -0.053 0.053 -0.996 0.325
## depress_b 0.788 0.127 6.201 0.000
## ADS_bT_c:PCL_bT_c 0.002 0.004 0.561 0.578
## ---------------------------------------------------------
# --- PTSD × Catastrophizing (6-month) ---
cat("\n--- PTSD × Catastrophizing → 6-Month Pain Severity ---\n")
##
## --- PTSD × Catastrophizing → 6-Month Pain Severity ---
pain_6m_pcs_pcl <- lm(meanpain_6m ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_pcs_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 3.035, p = 0.029
## R² = 0.242
## Adj. R² = 0.162
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.966 1.308 2.267 0.029
## PCS_bT_c 0.027 0.033 0.835 0.409
## PCL_bT_c 0.023 0.022 1.055 0.298
## meanpain_b 0.271 0.206 1.313 0.197
## PCS_bT_c:PCL_bT_c -0.000 0.001 -0.029 0.977
## ---------------------------------------------------------
cat("\n--- PTSD × Catastrophizing → 6-Month Pain Interference ---\n")
##
## --- PTSD × Catastrophizing → 6-Month Pain Interference ---
painint_6m_pcs_pcl <- lm(painint_6m ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_pcs_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 9.127, p = 0.000
## R² = 0.490
## Adj. R² = 0.436
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 6.536 4.815 1.358 0.183
## PCS_bT_c 0.079 0.106 0.744 0.461
## PCL_bT_c 0.002 0.070 0.024 0.981
## painint_b 0.648 0.169 3.840 0.000
## PCS_bT_c:PCL_bT_c -0.002 0.005 -0.373 0.711
## ---------------------------------------------------------
cat("\n--- PTSD × Catastrophizing → 6-Month Anxiety ---\n")
##
## --- PTSD × Catastrophizing → 6-Month Anxiety ---
anxiety_6m_pcs_pcl <- lm(anxiety_6m ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_pcs_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 13.713, p = 0.000
## R² = 0.591
## Adj. R² = 0.548
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.902 2.724 1.065 0.293
## PCS_bT_c 0.087 0.058 1.492 0.144
## PCL_bT_c -0.069 0.049 -1.407 0.167
## anxiety_b 0.673 0.135 4.977 0.000
## PCS_bT_c:PCL_bT_c 0.003 0.003 0.943 0.352
## ---------------------------------------------------------
cat("\n--- PTSD × Catastrophizing → 6-Month Depression ---\n")
##
## --- PTSD × Catastrophizing → 6-Month Depression ---
depress_6m_pcs_pcl <- lm(depress_6m ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_pcs_pcl, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 12.083, p = 0.000
## R² = 0.560
## Adj. R² = 0.514
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 0.777 2.863 0.271 0.788
## PCS_bT_c -0.001 0.076 -0.008 0.993
## PCL_bT_c -0.052 0.054 -0.949 0.348
## depress_b 0.765 0.133 5.731 0.000
## PCS_bT_c:PCL_bT_c -0.001 0.004 -0.191 0.850
## ---------------------------------------------------------
# --- Emotional Expression × Attendance (6-month) ---
cat("\n--- Attendance × Emotional Expression → 6-Month Pain Severity ---\n")
##
## --- Attendance × Emotional Expression → 6-Month Pain Severity ---
pain_6m_ex_attend <- lm(meanpain_6m ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ex_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 5.077, p = 0.002
## R² = 0.293
## Adj. R² = 0.235
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 1.658 0.806 2.057 0.045
## EAC_bEX_c -0.147 0.099 -1.482 0.145
## attend_c -0.116 0.106 -1.093 0.280
## meanpain_b 0.543 0.133 4.072 0.000
## EAC_bEX_c:attend_c -0.051 0.042 -1.210 0.232
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Expression → 6-Month Pain Interference ---\n")
##
## --- Attendance × Emotional Expression → 6-Month Pain Interference ---
painint_6m_ex_attend <- lm(painint_6m ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ex_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 13.472, p = 0.000
## R² = 0.524
## Adj. R² = 0.485
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 5.161 2.988 1.727 0.090
## EAC_bEX_c 0.059 0.324 0.182 0.856
## attend_c -0.641 0.355 -1.806 0.077
## painint_b 0.734 0.106 6.919 0.000
## EAC_bEX_c:attend_c -0.175 0.141 -1.243 0.220
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Expression → 6-Month Anxiety ---\n")
##
## --- Attendance × Emotional Expression → 6-Month Anxiety ---
anxiety_6m_ex_attend <- lm(anxiety_6m ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ex_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 6.081, p = 0.000
## R² = 0.332
## Adj. R² = 0.277
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 6.091 2.221 2.743 0.008
## EAC_bEX_c 0.216 0.279 0.773 0.443
## attend_c -0.645 0.310 -2.081 0.043
## anxiety_b 0.522 0.111 4.700 0.000
## EAC_bEX_c:attend_c 0.049 0.123 0.397 0.693
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Expression → 6-Month Depression ---\n")
##
## --- Attendance × Emotional Expression → 6-Month Depression ---
depress_6m_ex_attend <- lm(depress_6m ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ex_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.944, p = 0.000
## R² = 0.494
## Adj. R² = 0.452
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 4.850 2.276 2.131 0.038
## EAC_bEX_c -0.188 0.294 -0.640 0.525
## attend_c -0.629 0.319 -1.969 0.055
## depress_b 0.633 0.105 6.039 0.000
## EAC_bEX_c:attend_c -0.189 0.126 -1.501 0.140
## ----------------------------------------------------------
# --- Emotional Processing × Attendance (6-month) ---
cat("\n--- Attendance × Emotional Processing → 6-Month Pain Severity ---\n")
##
## --- Attendance × Emotional Processing → 6-Month Pain Severity ---
pain_6m_ep_attend <- lm(meanpain_6m ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ep_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.978, p = 0.007
## R² = 0.245
## Adj. R² = 0.183
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 2.090 0.832 2.510 0.015
## EAC_bEP_c -0.021 0.098 -0.220 0.827
## attend_c -0.167 0.110 -1.522 0.134
## meanpain_b 0.462 0.135 3.428 0.001
## EAC_bEP_c:attend_c -0.049 0.045 -1.078 0.286
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Processing → 6-Month Pain Interference ---\n")
##
## --- Attendance × Emotional Processing → 6-Month Pain Interference ---
painint_6m_ep_attend <- lm(painint_6m ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ep_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 14.555, p = 0.000
## R² = 0.543
## Adj. R² = 0.506
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 6.576 3.054 2.153 0.036
## EAC_bEP_c 0.112 0.304 0.368 0.715
## attend_c -0.733 0.348 -2.106 0.040
## painint_b 0.687 0.107 6.432 0.000
## EAC_bEP_c:attend_c -0.263 0.147 -1.797 0.079
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Processing → 6-Month Anxiety ---\n")
##
## --- Attendance × Emotional Processing → 6-Month Anxiety ---
anxiety_6m_ep_attend <- lm(anxiety_6m ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ep_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 5.995, p = 0.001
## R² = 0.329
## Adj. R² = 0.274
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 6.177 2.332 2.649 0.011
## EAC_bEP_c 0.249 0.271 0.918 0.363
## attend_c -0.638 0.312 -2.048 0.046
## anxiety_b 0.528 0.115 4.575 0.000
## EAC_bEP_c:attend_c -0.039 0.128 -0.304 0.763
## ----------------------------------------------------------
cat("\n--- Attendance × Emotional Processing → 6-Month Depression ---\n")
##
## --- Attendance × Emotional Processing → 6-Month Depression ---
depress_6m_ep_attend <- lm(depress_6m ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ep_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.093, p = 0.000
## R² = 0.475
## Adj. R² = 0.432
##
## Standard errors: OLS
## ----------------------------------------------------------
## Est. S.E. t val. p
## ------------------------ -------- ------- -------- -------
## (Intercept) 4.511 2.351 1.919 0.061
## EAC_bEP_c 0.308 0.285 1.080 0.286
## attend_c -0.850 0.325 -2.611 0.012
## depress_b 0.650 0.108 6.034 0.000
## EAC_bEP_c:attend_c -0.173 0.132 -1.309 0.197
## ----------------------------------------------------------
# --- Emotional Expression × Working Alliance (6-month) ---
cat("\n--- Working Alliance × Emotional Expression → 6-Month Pain Severity ---\n")
##
## --- Working Alliance × Emotional Expression → 6-Month Pain Severity ---
pain_6m_ex_wai <- lm(meanpain_6m ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ex_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.806, p = 0.002
## R² = 0.282
## Adj. R² = 0.223
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 1.520 0.814 1.867 0.068
## EAC_bEX_c -0.224 0.094 -2.381 0.021
## wai_c -0.010 0.017 -0.613 0.543
## meanpain_b 0.550 0.135 4.072 0.000
## EAC_bEX_c:wai_c -0.007 0.005 -1.332 0.189
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Expression → 6-Month Pain Interference ---\n")
##
## --- Working Alliance × Emotional Expression → 6-Month Pain Interference ---
painint_6m_ex_wai <- lm(painint_6m ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ex_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 14.981, p = 0.000
## R² = 0.550
## Adj. R² = 0.513
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 4.814 2.957 1.628 0.110
## EAC_bEX_c -0.270 0.291 -0.929 0.357
## wai_c -0.075 0.055 -1.362 0.179
## painint_b 0.732 0.105 7.007 0.000
## EAC_bEX_c:wai_c -0.043 0.016 -2.628 0.011
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Expression → 6-Month Anxiety ---\n")
##
## --- Working Alliance × Emotional Expression → 6-Month Anxiety ---
anxiety_6m_ex_wai <- lm(anxiety_6m ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ex_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.966, p = 0.002
## R² = 0.288
## Adj. R² = 0.230
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 6.036 2.391 2.524 0.015
## EAC_bEX_c 0.137 0.268 0.511 0.612
## wai_c -0.041 0.052 -0.788 0.435
## anxiety_b 0.512 0.119 4.307 0.000
## EAC_bEX_c:wai_c -0.012 0.015 -0.763 0.449
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Expression → 6-Month Depression ---\n")
##
## --- Working Alliance × Emotional Expression → 6-Month Depression ---
depress_6m_ex_wai <- lm(depress_6m ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ex_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 12.611, p = 0.000
## R² = 0.507
## Adj. R² = 0.467
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 4.214 2.292 1.839 0.072
## EAC_bEX_c -0.502 0.269 -1.863 0.068
## wai_c -0.083 0.050 -1.658 0.104
## depress_b 0.643 0.105 6.140 0.000
## EAC_bEX_c:wai_c -0.037 0.015 -2.425 0.019
## -------------------------------------------------------
# --- Emotional Processing × Working Alliance (6-month) ---
cat("\n--- Working Alliance × Emotional Processing → 6-Month Pain Severity ---\n")
##
## --- Working Alliance × Emotional Processing → 6-Month Pain Severity ---
pain_6m_ep_wai <- lm(meanpain_6m ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_ep_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.234, p = 0.020
## R² = 0.209
## Adj. R² = 0.144
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 1.834 0.838 2.189 0.033
## EAC_bEP_c -0.096 0.083 -1.150 0.256
## wai_c -0.010 0.018 -0.552 0.583
## meanpain_b 0.477 0.137 3.482 0.001
## EAC_bEP_c:wai_c 0.002 0.005 0.455 0.651
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Processing → 6-Month Pain Interference ---\n")
##
## --- Working Alliance × Emotional Processing → 6-Month Pain Interference ---
painint_6m_ep_wai <- lm(painint_6m ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_ep_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 13.222, p = 0.000
## R² = 0.519
## Adj. R² = 0.480
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 4.764 3.025 1.575 0.122
## EAC_bEP_c -0.236 0.259 -0.912 0.366
## wai_c -0.085 0.058 -1.468 0.148
## painint_b 0.725 0.106 6.808 0.000
## EAC_bEP_c:wai_c -0.024 0.015 -1.619 0.112
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Processing → 6-Month Anxiety ---\n")
##
## --- Working Alliance × Emotional Processing → 6-Month Anxiety ---
anxiety_6m_ep_wai <- lm(anxiety_6m ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_ep_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.828, p = 0.002
## R² = 0.283
## Adj. R² = 0.224
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 5.721 2.431 2.353 0.023
## EAC_bEP_c 0.129 0.238 0.542 0.590
## wai_c -0.033 0.053 -0.633 0.530
## anxiety_b 0.527 0.121 4.346 0.000
## EAC_bEP_c:wai_c 0.007 0.014 0.521 0.605
## -------------------------------------------------------
cat("\n--- Working Alliance × Emotional Processing → 6-Month Depression ---\n")
##
## --- Working Alliance × Emotional Processing → 6-Month Depression ---
depress_6m_ep_wai <- lm(depress_6m ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_ep_wai, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 9.015, p = 0.000
## R² = 0.424
## Adj. R² = 0.377
##
## Standard errors: OLS
## -------------------------------------------------------
## Est. S.E. t val. p
## --------------------- -------- ------- -------- -------
## (Intercept) 3.464 2.459 1.409 0.165
## EAC_bEP_c 0.034 0.254 0.134 0.894
## wai_c -0.085 0.054 -1.572 0.122
## depress_b 0.664 0.113 5.870 0.000
## EAC_bEP_c:wai_c 0.001 0.014 0.086 0.932
## -------------------------------------------------------
# --- Distraction/Avoidance × Attendance (6-month) ---
cat("\n--- Attendance × Distraction/Avoidance → 6-Month Pain Severity ---\n")
##
## --- Attendance × Distraction/Avoidance → 6-Month Pain Severity ---
pain_6m_da_attend <- lm(meanpain_6m ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_da_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.574, p = 0.012
## R² = 0.226
## Adj. R² = 0.163
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 2.119 0.854 2.482 0.017
## Coping_bDA_c 0.039 0.085 0.465 0.644
## attend_c -0.162 0.110 -1.482 0.145
## meanpain_b 0.445 0.140 3.176 0.003
## Coping_bDA_c:attend_c 0.022 0.036 0.611 0.544
## -------------------------------------------------------------
cat("\n--- Attendance × Distraction/Avoidance → 6-Month Pain Interference ---\n")
##
## --- Attendance × Distraction/Avoidance → 6-Month Pain Interference ---
painint_6m_da_attend <- lm(painint_6m ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_da_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 12.911, p = 0.000
## R² = 0.513
## Adj. R² = 0.473
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 4.129 3.001 1.376 0.175
## Coping_bDA_c -0.167 0.263 -0.635 0.528
## attend_c -0.693 0.356 -1.949 0.057
## painint_b 0.763 0.107 7.134 0.000
## Coping_bDA_c:attend_c -0.020 0.114 -0.176 0.861
## -------------------------------------------------------------
cat("\n--- Attendance × Distraction/Avoidance → 6-Month Anxiety ---\n")
##
## --- Attendance × Distraction/Avoidance → 6-Month Anxiety ---
anxiety_6m_da_attend <- lm(anxiety_6m ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_da_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 6.506, p = 0.000
## R² = 0.347
## Adj. R² = 0.294
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 6.145 2.279 2.696 0.010
## Coping_bDA_c -0.024 0.231 -0.103 0.918
## attend_c -0.604 0.301 -2.004 0.051
## anxiety_b 0.531 0.114 4.669 0.000
## Coping_bDA_c:attend_c -0.139 0.098 -1.418 0.163
## -------------------------------------------------------------
cat("\n--- Attendance × Distraction/Avoidance → 6-Month Depression ---\n")
##
## --- Attendance × Distraction/Avoidance → 6-Month Depression ---
depress_6m_da_attend <- lm(depress_6m ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_da_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.622, p = 0.000
## R² = 0.487
## Adj. R² = 0.445
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 4.049 2.231 1.815 0.076
## Coping_bDA_c -0.314 0.234 -1.340 0.186
## attend_c -0.719 0.316 -2.276 0.027
## depress_b 0.659 0.103 6.404 0.000
## Coping_bDA_c:attend_c -0.074 0.103 -0.722 0.474
## -------------------------------------------------------------
# --- Reappraisal × Attendance (6-month) ---
cat("\n--- Attendance × Reappraisal → 6-Month Pain Severity ---\n")
##
## --- Attendance × Reappraisal → 6-Month Pain Severity ---
pain_6m_rps_attend <- lm(meanpain_6m ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_rps_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 3.396, p = 0.016
## R² = 0.217
## Adj. R² = 0.153
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 2.099 0.859 2.445 0.018
## Coping_bRPS_c 0.050 0.103 0.482 0.632
## attend_c -0.169 0.110 -1.535 0.131
## meanpain_b 0.451 0.142 3.173 0.003
## Coping_bRPS_c:attend_c -0.004 0.040 -0.088 0.930
## --------------------------------------------------------------
cat("\n--- Attendance × Reappraisal → 6-Month Pain Interference ---\n")
##
## --- Attendance × Reappraisal → 6-Month Pain Interference ---
painint_6m_rps_attend <- lm(painint_6m ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_rps_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 12.842, p = 0.000
## R² = 0.512
## Adj. R² = 0.472
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 4.724 3.034 1.557 0.126
## Coping_bRPS_c 0.095 0.322 0.297 0.768
## attend_c -0.712 0.354 -2.011 0.050
## painint_b 0.745 0.109 6.858 0.000
## Coping_bRPS_c:attend_c -0.079 0.128 -0.622 0.537
## --------------------------------------------------------------
cat("\n--- Attendance × Reappraisal → 6-Month Anxiety ---\n")
##
## --- Attendance × Reappraisal → 6-Month Anxiety ---
anxiety_6m_rps_attend <- lm(anxiety_6m ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_rps_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 9.581, p = 0.000
## R² = 0.439
## Adj. R² = 0.393
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 5.492 2.173 2.528 0.015
## Coping_bRPS_c 0.131 0.263 0.497 0.621
## attend_c -0.602 0.278 -2.165 0.035
## anxiety_b 0.576 0.111 5.214 0.000
## Coping_bRPS_c:attend_c -0.330 0.102 -3.232 0.002
## --------------------------------------------------------------
cat("\n--- Attendance × Reappraisal → 6-Month Depression ---\n")
##
## --- Attendance × Reappraisal → 6-Month Depression ---
depress_6m_rps_attend <- lm(depress_6m ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_rps_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 12.831, p = 0.000
## R² = 0.512
## Adj. R² = 0.472
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 3.042 2.242 1.357 0.181
## Coping_bRPS_c -0.296 0.281 -1.055 0.297
## attend_c -0.720 0.306 -2.351 0.023
## depress_b 0.719 0.104 6.886 0.000
## Coping_bRPS_c:attend_c -0.190 0.112 -1.692 0.097
## --------------------------------------------------------------
# --- Catastrophizing Coping × Attendance (6-month) ---
cat("\n--- Attendance × Catastrophizing Coping → 6-Month Pain Severity ---\n")
##
## --- Attendance × Catastrophizing Coping → 6-Month Pain Severity ---
pain_6m_cat_attend <- lm(meanpain_6m ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_cat_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.590, p = 0.003
## R² = 0.273
## Adj. R² = 0.213
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 2.947 1.031 2.859 0.006
## Coping_bCat_c 0.183 0.102 1.801 0.078
## attend_c -0.190 0.119 -1.597 0.117
## meanpain_b 0.319 0.170 1.876 0.067
## Coping_bCat_c:attend_c -0.029 0.036 -0.826 0.413
## --------------------------------------------------------------
cat("\n--- Attendance × Catastrophizing Coping → 6-Month Pain Interference ---\n")
##
## --- Attendance × Catastrophizing Coping → 6-Month Pain Interference ---
painint_6m_cat_attend <- lm(painint_6m ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_cat_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 13.077, p = 0.000
## R² = 0.516
## Adj. R² = 0.477
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 4.461 3.743 1.192 0.239
## Coping_bCat_c 0.027 0.334 0.082 0.935
## attend_c -0.860 0.396 -2.172 0.035
## painint_b 0.755 0.133 5.678 0.000
## Coping_bCat_c:attend_c -0.105 0.114 -0.926 0.359
## --------------------------------------------------------------
cat("\n--- Attendance × Catastrophizing Coping → 6-Month Anxiety ---\n")
##
## --- Attendance × Catastrophizing Coping → 6-Month Anxiety ---
anxiety_6m_cat_attend <- lm(anxiety_6m ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_cat_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 8.497, p = 0.000
## R² = 0.410
## Adj. R² = 0.361
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 8.321 2.355 3.534 0.001
## Coping_bCat_c 0.482 0.244 1.978 0.054
## attend_c -0.827 0.315 -2.626 0.012
## anxiety_b 0.426 0.117 3.633 0.001
## Coping_bCat_c:attend_c -0.205 0.093 -2.203 0.032
## --------------------------------------------------------------
cat("\n--- Attendance × Catastrophizing Coping → 6-Month Depression ---\n")
##
## --- Attendance × Catastrophizing Coping → 6-Month Depression ---
depress_6m_cat_attend <- lm(depress_6m ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_cat_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 13.251, p = 0.000
## R² = 0.520
## Adj. R² = 0.480
##
## Standard errors: OLS
## --------------------------------------------------------------
## Est. S.E. t val. p
## ---------------------------- -------- ------- -------- -------
## (Intercept) 4.368 2.795 1.563 0.124
## Coping_bCat_c 0.067 0.299 0.224 0.824
## attend_c -1.119 0.334 -3.345 0.002
## depress_b 0.652 0.128 5.080 0.000
## Coping_bCat_c:attend_c -0.256 0.099 -2.575 0.013
## --------------------------------------------------------------
# --- PTSD × Attendance (6-month) ---
cat("\n--- Attendance × PTSD → 6-Month Pain Severity ---\n")
##
## --- Attendance × PTSD → 6-Month Pain Severity ---
pain_6m_pcl_attend <- lm(meanpain_6m ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_pcl_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 3.127, p = 0.026
## R² = 0.248
## Adj. R² = 0.168
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.418 1.158 2.088 0.044
## PCL_bT_c 0.024 0.021 1.162 0.253
## attend_c -0.051 0.136 -0.372 0.712
## meanpain_b 0.365 0.184 1.978 0.055
## PCL_bT_c:attend_c 0.006 0.008 0.713 0.480
## ---------------------------------------------------------
cat("\n--- Attendance × PTSD → 6-Month Pain Interference ---\n")
##
## --- Attendance × PTSD → 6-Month Pain Interference ---
painint_6m_pcl_attend <- lm(painint_6m ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_pcl_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 11.573, p = 0.000
## R² = 0.549
## Adj. R² = 0.502
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.463 4.091 0.602 0.551
## PCL_bT_c -0.001 0.064 -0.015 0.988
## attend_c -0.969 0.431 -2.247 0.031
## painint_b 0.811 0.146 5.544 0.000
## PCL_bT_c:attend_c -0.004 0.024 -0.158 0.875
## ---------------------------------------------------------
cat("\n--- Attendance × PTSD → 6-Month Anxiety ---\n")
##
## --- Attendance × PTSD → 6-Month Anxiety ---
anxiety_6m_pcl_attend <- lm(anxiety_6m ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_pcl_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 14.731, p = 0.000
## R² = 0.608
## Adj. R² = 0.567
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 2.785 2.536 1.099 0.279
## PCL_bT_c -0.004 0.048 -0.081 0.936
## attend_c -0.524 0.256 -2.045 0.048
## anxiety_b 0.723 0.128 5.655 0.000
## PCL_bT_c:attend_c -0.025 0.015 -1.702 0.097
## ---------------------------------------------------------
cat("\n--- Attendance × PTSD → 6-Month Depression ---\n")
##
## --- Attendance × PTSD → 6-Month Depression ---
depress_6m_pcl_attend <- lm(depress_6m ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_pcl_attend, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 16.418, p = 0.000
## R² = 0.633
## Adj. R² = 0.595
##
## Standard errors: OLS
## ---------------------------------------------------------
## Est. S.E. t val. p
## ----------------------- -------- ------- -------- -------
## (Intercept) 1.109 2.428 0.457 0.650
## PCL_bT_c -0.028 0.050 -0.563 0.577
## attend_c -0.827 0.299 -2.763 0.009
## depress_b 0.776 0.114 6.803 0.000
## PCL_bT_c:attend_c -0.021 0.018 -1.201 0.237
## ---------------------------------------------------------
# --- PTSD × Working Alliance (6-month) ---
cat("\n--- Working Alliance × PTSD → 6-Month Pain Severity ---\n")
##
## --- Working Alliance × PTSD → 6-Month Pain Severity ---
pain_6m_pcl_wai <- lm(meanpain_6m ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_pcl_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 2.982, p = 0.031
## R² = 0.239
## Adj. R² = 0.159
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 2.676 1.187 2.255 0.030
## PCL_bT_c 0.034 0.020 1.697 0.098
## wai_c -0.017 0.024 -0.709 0.482
## meanpain_b 0.327 0.188 1.745 0.089
## PCL_bT_c:wai_c -0.000 0.001 -0.344 0.733
## ------------------------------------------------------
cat("\n--- Working Alliance × PTSD → 6-Month Pain Interference ---\n")
##
## --- Working Alliance × PTSD → 6-Month Pain Interference ---
painint_6m_pcl_wai <- lm(painint_6m ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_pcl_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 12.693, p = 0.000
## R² = 0.572
## Adj. R² = 0.527
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 4.712 3.873 1.217 0.231
## PCL_bT_c 0.037 0.060 0.614 0.543
## wai_c -0.169 0.067 -2.509 0.016
## painint_b 0.730 0.135 5.417 0.000
## PCL_bT_c:wai_c -0.007 0.004 -1.912 0.063
## ------------------------------------------------------
cat("\n--- Working Alliance × PTSD → 6-Month Anxiety ---\n")
##
## --- Working Alliance × PTSD → 6-Month Anxiety ---
anxiety_6m_pcl_wai <- lm(anxiety_6m ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
anxiety_b, data = eaet_data)
print(jtools::summ(anxiety_6m_pcl_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: anxiety_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 15.457, p = 0.000
## R² = 0.619
## Adj. R² = 0.579
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 2.736 2.564 1.067 0.293
## PCL_bT_c -0.020 0.044 -0.459 0.648
## wai_c -0.082 0.043 -1.899 0.065
## anxiety_b 0.724 0.129 5.632 0.000
## PCL_bT_c:wai_c -0.005 0.002 -2.079 0.044
## ------------------------------------------------------
cat("\n--- Working Alliance × PTSD → 6-Month Depression ---\n")
##
## --- Working Alliance × PTSD → 6-Month Depression ---
depress_6m_pcl_wai <- lm(depress_6m ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
depress_b, data = eaet_data)
print(jtools::summ(depress_6m_pcl_wai, digits = 3))
## MODEL INFO:
## Observations: 43 (23 missing obs. deleted)
## Dependent Variable: depress_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,38) = 14.182, p = 0.000
## R² = 0.599
## Adj. R² = 0.557
##
## Standard errors: OLS
## ------------------------------------------------------
## Est. S.E. t val. p
## -------------------- -------- ------- -------- -------
## (Intercept) 1.012 2.509 0.403 0.689
## PCL_bT_c -0.037 0.048 -0.772 0.445
## wai_c -0.094 0.053 -1.783 0.083
## depress_b 0.765 0.117 6.516 0.000
## PCL_bT_c:wai_c -0.003 0.003 -1.161 0.253
## ------------------------------------------------------
# --- SOPA × Attendance (6-month, pain outcomes only) ---
cat("\n--- Attendance × SOPA → 6-Month Pain Severity ---\n")
##
## --- Attendance × SOPA → 6-Month Pain Severity ---
pain_6m_sopa_attend <- lm(meanpain_6m ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_sopa_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 4.657, p = 0.003
## R² = 0.275
## Adj. R² = 0.216
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 1.249 0.876 1.426 0.160
## SOPA_bEmot_c -0.239 0.133 -1.794 0.079
## attend_c -0.154 0.113 -1.357 0.181
## meanpain_b 0.610 0.147 4.149 0.000
## SOPA_bEmot_c:attend_c -0.046 0.041 -1.112 0.272
## -------------------------------------------------------------
cat("\n--- Attendance × SOPA → 6-Month Pain Interference ---\n")
##
## --- Attendance × SOPA → 6-Month Pain Interference ---
painint_6m_sopa_attend <- lm(painint_6m ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_sopa_attend, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 12.913, p = 0.000
## R² = 0.513
## Adj. R² = 0.473
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 3.740 3.153 1.186 0.241
## SOPA_bEmot_c -0.291 0.422 -0.688 0.495
## attend_c -0.689 0.378 -1.821 0.075
## painint_b 0.780 0.114 6.834 0.000
## SOPA_bEmot_c:attend_c -0.038 0.135 -0.282 0.779
## -------------------------------------------------------------
# --- SOPA × Catastrophizing (6-month, pain outcomes only) ---
cat("\n--- Catastrophizing × SOPA → 6-Month Pain Severity ---\n")
##
## --- Catastrophizing × SOPA → 6-Month Pain Severity ---
pain_6m_sopa_pcs <- lm(meanpain_6m ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
meanpain_b, data = eaet_data)
print(jtools::summ(pain_6m_sopa_pcs, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: meanpain_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 5.104, p = 0.002
## R² = 0.294
## Adj. R² = 0.237
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 1.660 1.016 1.635 0.108
## SOPA_bEmot_c -0.242 0.145 -1.672 0.101
## PCS_bT_c 0.023 0.027 0.859 0.395
## meanpain_b 0.481 0.164 2.937 0.005
## SOPA_bEmot_c:PCS_bT_c 0.014 0.011 1.299 0.200
## -------------------------------------------------------------
cat("\n--- Catastrophizing × SOPA → 6-Month Pain Interference ---\n")
##
## --- Catastrophizing × SOPA → 6-Month Pain Interference ---
painint_6m_sopa_pcs <- lm(painint_6m ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
painint_b, data = eaet_data)
print(jtools::summ(painint_6m_sopa_pcs, digits = 3))
## MODEL INFO:
## Observations: 54 (12 missing obs. deleted)
## Dependent Variable: painint_6m
## Type: OLS linear regression
##
## MODEL FIT:
## F(4,49) = 11.363, p = 0.000
## R² = 0.481
## Adj. R² = 0.439
##
## Standard errors: OLS
## -------------------------------------------------------------
## Est. S.E. t val. p
## --------------------------- -------- ------- -------- -------
## (Intercept) 5.215 4.053 1.287 0.204
## SOPA_bEmot_c -0.528 0.494 -1.069 0.290
## PCS_bT_c 0.040 0.097 0.411 0.683
## painint_b 0.714 0.143 4.998 0.000
## SOPA_bEmot_c:PCS_bT_c -0.008 0.038 -0.213 0.832
## -------------------------------------------------------------
# ===================================================================
# CREATE COMPREHENSIVE RESULTS TABLE (POST-TREATMENT)
# ===================================================================
cat("\n\n=== COMPREHENSIVE RESULTS TABLE: POST-TREATMENT MODERATION MODELS ===\n")
##
##
## === COMPREHENSIVE RESULTS TABLE: POST-TREATMENT MODERATION MODELS ===
# Re-run post-treatment models to ensure they're in environment
# Attendance × Anger Discomfort
pain_p_ads_attend <- lm(meanpain_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_ads_attend <- lm(painint_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_ads_attend <- lm(anxiety_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_ads_attend <- lm(depress_p ~ ADS_bT_c + attend_c + ADS_bT_c:attend_c +
depress_b, data = eaet_data)
# Working Alliance × Anger Discomfort
pain_p_ads_wai <- lm(meanpain_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
meanpain_b, data = eaet_data)
painint_p_ads_wai <- lm(painint_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
painint_b, data = eaet_data)
anxiety_p_ads_wai <- lm(anxiety_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
anxiety_b, data = eaet_data)
depress_p_ads_wai <- lm(depress_p ~ ADS_bT_c + wai_c + ADS_bT_c:wai_c +
depress_b, data = eaet_data)
# Attendance × Catastrophizing
pain_p_pcs_attend <- lm(meanpain_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_pcs_attend <- lm(painint_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_pcs_attend <- lm(anxiety_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_pcs_attend <- lm(depress_p ~ PCS_bT_c + attend_c + PCS_bT_c:attend_c +
depress_b, data = eaet_data)
# Emotional Coping × Catastrophizing
pain_p_pcs_eac <- lm(meanpain_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
meanpain_b, data = eaet_data)
painint_p_pcs_eac <- lm(painint_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
painint_b, data = eaet_data)
anxiety_p_pcs_eac <- lm(anxiety_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
anxiety_b, data = eaet_data)
depress_p_pcs_eac <- lm(depress_p ~ PCS_bT_c + EAC_bT_c + PCS_bT_c:EAC_bT_c +
depress_b, data = eaet_data)
# Working Alliance × Ambivalence
pain_p_aeq_wai <- lm(meanpain_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
meanpain_b, data = eaet_data)
painint_p_aeq_wai <- lm(painint_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
painint_b, data = eaet_data)
anxiety_p_aeq_wai <- lm(anxiety_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
anxiety_b, data = eaet_data)
depress_p_aeq_wai <- lm(depress_p ~ AEQ_bT_c + wai_c + AEQ_bT_c:wai_c +
depress_b, data = eaet_data)
# PTSD × Anger Discomfort
pain_p_ads_pcl <- lm(meanpain_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
meanpain_b, data = eaet_data)
painint_p_ads_pcl <- lm(painint_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
painint_b, data = eaet_data)
anxiety_p_ads_pcl <- lm(anxiety_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
anxiety_b, data = eaet_data)
depress_p_ads_pcl <- lm(depress_p ~ ADS_bT_c + PCL_bT_c + ADS_bT_c:PCL_bT_c +
depress_b, data = eaet_data)
# PTSD × Catastrophizing
pain_p_pcs_pcl <- lm(meanpain_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
meanpain_b, data = eaet_data)
painint_p_pcs_pcl <- lm(painint_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
painint_b, data = eaet_data)
anxiety_p_pcs_pcl <- lm(anxiety_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
anxiety_b, data = eaet_data)
depress_p_pcs_pcl <- lm(depress_p ~ PCS_bT_c + PCL_bT_c + PCS_bT_c:PCL_bT_c +
depress_b, data = eaet_data)
# Emotional Expression × Attendance
pain_p_ex_attend <- lm(meanpain_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_ex_attend <- lm(painint_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_ex_attend <- lm(anxiety_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_ex_attend <- lm(depress_p ~ EAC_bEX_c + attend_c + EAC_bEX_c:attend_c +
depress_b, data = eaet_data)
# Emotional Processing × Attendance
pain_p_ep_attend <- lm(meanpain_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_ep_attend <- lm(painint_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_ep_attend <- lm(anxiety_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_ep_attend <- lm(depress_p ~ EAC_bEP_c + attend_c + EAC_bEP_c:attend_c +
depress_b, data = eaet_data)
# Emotional Expression × Working Alliance
pain_p_ex_wai <- lm(meanpain_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
meanpain_b, data = eaet_data)
painint_p_ex_wai <- lm(painint_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
painint_b, data = eaet_data)
anxiety_p_ex_wai <- lm(anxiety_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
anxiety_b, data = eaet_data)
depress_p_ex_wai <- lm(depress_p ~ EAC_bEX_c + wai_c + EAC_bEX_c:wai_c +
depress_b, data = eaet_data)
# Emotional Processing × Working Alliance
pain_p_ep_wai <- lm(meanpain_p ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
meanpain_b, data = eaet_data)
painint_p_ep_wai <- lm(painint_p ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
painint_b, data = eaet_data)
anxiety_p_ep_wai <- lm(anxiety_p ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
anxiety_b, data = eaet_data)
depress_p_ep_wai <- lm(depress_p ~ EAC_bEP_c + wai_c + EAC_bEP_c:wai_c +
depress_b, data = eaet_data)
# Distraction/Avoidance × Attendance
pain_p_da_attend <- lm(meanpain_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_da_attend <- lm(painint_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_da_attend <- lm(anxiety_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_da_attend <- lm(depress_p ~ Coping_bDA_c + attend_c + Coping_bDA_c:attend_c +
depress_b, data = eaet_data)
# Reappraisal × Attendance
pain_p_rps_attend <- lm(meanpain_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_rps_attend <- lm(painint_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_rps_attend <- lm(anxiety_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_rps_attend <- lm(depress_p ~ Coping_bRPS_c + attend_c + Coping_bRPS_c:attend_c +
depress_b, data = eaet_data)
# Catastrophizing Coping × Attendance
pain_p_cat_attend <- lm(meanpain_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_cat_attend <- lm(painint_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_cat_attend <- lm(anxiety_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_cat_attend <- lm(depress_p ~ Coping_bCat_c + attend_c + Coping_bCat_c:attend_c +
depress_b, data = eaet_data)
# PTSD × Attendance
pain_p_pcl_attend <- lm(meanpain_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_pcl_attend <- lm(painint_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
painint_b, data = eaet_data)
anxiety_p_pcl_attend <- lm(anxiety_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
anxiety_b, data = eaet_data)
depress_p_pcl_attend <- lm(depress_p ~ PCL_bT_c + attend_c + PCL_bT_c:attend_c +
depress_b, data = eaet_data)
# PTSD × Working Alliance
pain_p_pcl_wai <- lm(meanpain_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
meanpain_b, data = eaet_data)
painint_p_pcl_wai <- lm(painint_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
painint_b, data = eaet_data)
anxiety_p_pcl_wai <- lm(anxiety_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
anxiety_b, data = eaet_data)
depress_p_pcl_wai <- lm(depress_p ~ PCL_bT_c + wai_c + PCL_bT_c:wai_c +
depress_b, data = eaet_data)
# SOPA × Attendance (pain outcomes only)
pain_p_sopa_attend <- lm(meanpain_p ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
meanpain_b, data = eaet_data)
painint_p_sopa_attend <- lm(painint_p ~ SOPA_bEmot_c + attend_c + SOPA_bEmot_c:attend_c +
painint_b, data = eaet_data)
# SOPA × Catastrophizing (pain outcomes only)
pain_p_sopa_pcs <- lm(meanpain_p ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
meanpain_b, data = eaet_data)
painint_p_sopa_pcs <- lm(painint_p ~ SOPA_bEmot_c + PCS_bT_c + SOPA_bEmot_c:PCS_bT_c +
painint_b, data = eaet_data)
# Create comprehensive results table
results_table <- data.frame(
Predictor = c(
rep("Attend × ADS", 4),
rep("WAI × ADS", 4),
rep("Attend × PCS", 4),
rep("EAC × PCS", 4),
rep("WAI × AEQ", 4),
rep("PCL × ADS", 4),
rep("PCL × PCS", 4),
rep("Attend × EAC_EX", 4),
rep("Attend × EAC_EP", 4),
rep("WAI × EAC_EX", 4),
rep("WAI × EAC_EP", 4),
rep("Attend × DA", 4),
rep("Attend × RPS", 4),
rep("Attend × Cat_Cop", 4),
rep("Attend × PCL", 4),
rep("WAI × PCL", 4),
rep("Attend × SOPA", 2),
rep("SOPA × PCS", 2)
),
Outcome = c(
rep(c("Pain Severity", "Pain Interference", "Anxiety", "Depression"), 16),
rep(c("Pain Severity", "Pain Interference"), 2)
),
R_squared = c(
# Attend × ADS
summary(pain_p_ads_attend)$r.squared, summary(painint_p_ads_attend)$r.squared,
summary(anxiety_p_ads_attend)$r.squared, summary(depress_p_ads_attend)$r.squared,
# WAI × ADS
summary(pain_p_ads_wai)$r.squared, summary(painint_p_ads_wai)$r.squared,
summary(anxiety_p_ads_wai)$r.squared, summary(depress_p_ads_wai)$r.squared,
# Attend × PCS
summary(pain_p_pcs_attend)$r.squared, summary(painint_p_pcs_attend)$r.squared,
summary(anxiety_p_pcs_attend)$r.squared, summary(depress_p_pcs_attend)$r.squared,
# EAC × PCS
summary(pain_p_pcs_eac)$r.squared, summary(painint_p_pcs_eac)$r.squared,
summary(anxiety_p_pcs_eac)$r.squared, summary(depress_p_pcs_eac)$r.squared,
# WAI × AEQ
summary(pain_p_aeq_wai)$r.squared, summary(painint_p_aeq_wai)$r.squared,
summary(anxiety_p_aeq_wai)$r.squared, summary(depress_p_aeq_wai)$r.squared,
# PCL × ADS
summary(pain_p_ads_pcl)$r.squared, summary(painint_p_ads_pcl)$r.squared,
summary(anxiety_p_ads_pcl)$r.squared, summary(depress_p_ads_pcl)$r.squared,
# PCL × PCS
summary(pain_p_pcs_pcl)$r.squared, summary(painint_p_pcs_pcl)$r.squared,
summary(anxiety_p_pcs_pcl)$r.squared, summary(depress_p_pcs_pcl)$r.squared,
# Attend × EAC_EX
summary(pain_p_ex_attend)$r.squared, summary(painint_p_ex_attend)$r.squared,
summary(anxiety_p_ex_attend)$r.squared, summary(depress_p_ex_attend)$r.squared,
# Attend × EAC_EP
summary(pain_p_ep_attend)$r.squared, summary(painint_p_ep_attend)$r.squared,
summary(anxiety_p_ep_attend)$r.squared, summary(depress_p_ep_attend)$r.squared,
# WAI × EAC_EX
summary(pain_p_ex_wai)$r.squared, summary(painint_p_ex_wai)$r.squared,
summary(anxiety_p_ex_wai)$r.squared, summary(depress_p_ex_wai)$r.squared,
# WAI × EAC_EP
summary(pain_p_ep_wai)$r.squared, summary(painint_p_ep_wai)$r.squared,
summary(anxiety_p_ep_wai)$r.squared, summary(depress_p_ep_wai)$r.squared,
# Attend × DA
summary(pain_p_da_attend)$r.squared, summary(painint_p_da_attend)$r.squared,
summary(anxiety_p_da_attend)$r.squared, summary(depress_p_da_attend)$r.squared,
# Attend × RPS
summary(pain_p_rps_attend)$r.squared, summary(painint_p_rps_attend)$r.squared,
summary(anxiety_p_rps_attend)$r.squared, summary(depress_p_rps_attend)$r.squared,
# Attend × Cat_Cop
summary(pain_p_cat_attend)$r.squared, summary(painint_p_cat_attend)$r.squared,
summary(anxiety_p_cat_attend)$r.squared, summary(depress_p_cat_attend)$r.squared,
# Attend × PCL
summary(pain_p_pcl_attend)$r.squared, summary(painint_p_pcl_attend)$r.squared,
summary(anxiety_p_pcl_attend)$r.squared, summary(depress_p_pcl_attend)$r.squared,
# WAI × PCL
summary(pain_p_pcl_wai)$r.squared, summary(painint_p_pcl_wai)$r.squared,
summary(anxiety_p_pcl_wai)$r.squared, summary(depress_p_pcl_wai)$r.squared,
# Attend × SOPA (pain only)
summary(pain_p_sopa_attend)$r.squared, summary(painint_p_sopa_attend)$r.squared,
# SOPA × PCS (pain only)
summary(pain_p_sopa_pcs)$r.squared, summary(painint_p_sopa_pcs)$r.squared
),
Interaction_B = c(
# Attend × ADS
coef(pain_p_ads_attend)["ADS_bT_c:attend_c"],
coef(painint_p_ads_attend)["ADS_bT_c:attend_c"],
coef(anxiety_p_ads_attend)["ADS_bT_c:attend_c"],
coef(depress_p_ads_attend)["ADS_bT_c:attend_c"],
# WAI × ADS
coef(pain_p_ads_wai)["ADS_bT_c:wai_c"],
coef(painint_p_ads_wai)["ADS_bT_c:wai_c"],
coef(anxiety_p_ads_wai)["ADS_bT_c:wai_c"],
coef(depress_p_ads_wai)["ADS_bT_c:wai_c"],
# Attend × PCS
coef(pain_p_pcs_attend)["PCS_bT_c:attend_c"],
coef(painint_p_pcs_attend)["PCS_bT_c:attend_c"],
coef(anxiety_p_pcs_attend)["PCS_bT_c:attend_c"],
coef(depress_p_pcs_attend)["PCS_bT_c:attend_c"],
# EAC × PCS
coef(pain_p_pcs_eac)["PCS_bT_c:EAC_bT_c"],
coef(painint_p_pcs_eac)["PCS_bT_c:EAC_bT_c"],
coef(anxiety_p_pcs_eac)["PCS_bT_c:EAC_bT_c"],
coef(depress_p_pcs_eac)["PCS_bT_c:EAC_bT_c"],
# WAI × AEQ
coef(pain_p_aeq_wai)["AEQ_bT_c:wai_c"],
coef(painint_p_aeq_wai)["AEQ_bT_c:wai_c"],
coef(anxiety_p_aeq_wai)["AEQ_bT_c:wai_c"],
coef(depress_p_aeq_wai)["AEQ_bT_c:wai_c"],
# PCL × ADS
coef(pain_p_ads_pcl)["ADS_bT_c:PCL_bT_c"],
coef(painint_p_ads_pcl)["ADS_bT_c:PCL_bT_c"],
coef(anxiety_p_ads_pcl)["ADS_bT_c:PCL_bT_c"],
coef(depress_p_ads_pcl)["ADS_bT_c:PCL_bT_c"],
# PCL × PCS
coef(pain_p_pcs_pcl)["PCS_bT_c:PCL_bT_c"],
coef(painint_p_pcs_pcl)["PCS_bT_c:PCL_bT_c"],
coef(anxiety_p_pcs_pcl)["PCS_bT_c:PCL_bT_c"],
coef(depress_p_pcs_pcl)["PCS_bT_c:PCL_bT_c"],
# Attend × EAC_EX
coef(pain_p_ex_attend)["EAC_bEX_c:attend_c"],
coef(painint_p_ex_attend)["EAC_bEX_c:attend_c"],
coef(anxiety_p_ex_attend)["EAC_bEX_c:attend_c"],
coef(depress_p_ex_attend)["EAC_bEX_c:attend_c"],
# Attend × EAC_EP
coef(pain_p_ep_attend)["EAC_bEP_c:attend_c"],
coef(painint_p_ep_attend)["EAC_bEP_c:attend_c"],
coef(anxiety_p_ep_attend)["EAC_bEP_c:attend_c"],
coef(depress_p_ep_attend)["EAC_bEP_c:attend_c"],
# WAI × EAC_EX
coef(pain_p_ex_wai)["EAC_bEX_c:wai_c"],
coef(painint_p_ex_wai)["EAC_bEX_c:wai_c"],
coef(anxiety_p_ex_wai)["EAC_bEX_c:wai_c"],
coef(depress_p_ex_wai)["EAC_bEX_c:wai_c"],
# WAI × EAC_EP
coef(pain_p_ep_wai)["EAC_bEP_c:wai_c"],
coef(painint_p_ep_wai)["EAC_bEP_c:wai_c"],
coef(anxiety_p_ep_wai)["EAC_bEP_c:wai_c"],
coef(depress_p_ep_wai)["EAC_bEP_c:wai_c"],
# Attend × DA
coef(pain_p_da_attend)["Coping_bDA_c:attend_c"],
coef(painint_p_da_attend)["Coping_bDA_c:attend_c"],
coef(anxiety_p_da_attend)["Coping_bDA_c:attend_c"],
coef(depress_p_da_attend)["Coping_bDA_c:attend_c"],
# Attend × RPS
coef(pain_p_rps_attend)["Coping_bRPS_c:attend_c"],
coef(painint_p_rps_attend)["Coping_bRPS_c:attend_c"],
coef(anxiety_p_rps_attend)["Coping_bRPS_c:attend_c"],
coef(depress_p_rps_attend)["Coping_bRPS_c:attend_c"],
# Attend × Cat_Cop
coef(pain_p_cat_attend)["Coping_bCat_c:attend_c"],
coef(painint_p_cat_attend)["Coping_bCat_c:attend_c"],
coef(anxiety_p_cat_attend)["Coping_bCat_c:attend_c"],
coef(depress_p_cat_attend)["Coping_bCat_c:attend_c"],
# Attend × PCL
coef(pain_p_pcl_attend)["PCL_bT_c:attend_c"],
coef(painint_p_pcl_attend)["PCL_bT_c:attend_c"],
coef(anxiety_p_pcl_attend)["PCL_bT_c:attend_c"],
coef(depress_p_pcl_attend)["PCL_bT_c:attend_c"],
# WAI × PCL
coef(pain_p_pcl_wai)["PCL_bT_c:wai_c"],
coef(painint_p_pcl_wai)["PCL_bT_c:wai_c"],
coef(anxiety_p_pcl_wai)["PCL_bT_c:wai_c"],
coef(depress_p_pcl_wai)["PCL_bT_c:wai_c"],
# Attend × SOPA (pain only)
coef(pain_p_sopa_attend)["SOPA_bEmot_c:attend_c"],
coef(painint_p_sopa_attend)["SOPA_bEmot_c:attend_c"],
# SOPA × PCS (pain only)
coef(pain_p_sopa_pcs)["SOPA_bEmot_c:PCS_bT_c"],
coef(painint_p_sopa_pcs)["SOPA_bEmot_c:PCS_bT_c"]
),
Interaction_p = c(
# Attend × ADS
summary(pain_p_ads_attend)$coefficients["ADS_bT_c:attend_c", "Pr(>|t|)"],
summary(painint_p_ads_attend)$coefficients["ADS_bT_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_ads_attend)$coefficients["ADS_bT_c:attend_c", "Pr(>|t|)"],
summary(depress_p_ads_attend)$coefficients["ADS_bT_c:attend_c", "Pr(>|t|)"],
# WAI × ADS
summary(pain_p_ads_wai)$coefficients["ADS_bT_c:wai_c", "Pr(>|t|)"],
summary(painint_p_ads_wai)$coefficients["ADS_bT_c:wai_c", "Pr(>|t|)"],
summary(anxiety_p_ads_wai)$coefficients["ADS_bT_c:wai_c", "Pr(>|t|)"],
summary(depress_p_ads_wai)$coefficients["ADS_bT_c:wai_c", "Pr(>|t|)"],
# Attend × PCS
summary(pain_p_pcs_attend)$coefficients["PCS_bT_c:attend_c", "Pr(>|t|)"],
summary(painint_p_pcs_attend)$coefficients["PCS_bT_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_pcs_attend)$coefficients["PCS_bT_c:attend_c", "Pr(>|t|)"],
summary(depress_p_pcs_attend)$coefficients["PCS_bT_c:attend_c", "Pr(>|t|)"],
# EAC × PCS
summary(pain_p_pcs_eac)$coefficients["PCS_bT_c:EAC_bT_c", "Pr(>|t|)"],
summary(painint_p_pcs_eac)$coefficients["PCS_bT_c:EAC_bT_c", "Pr(>|t|)"],
summary(anxiety_p_pcs_eac)$coefficients["PCS_bT_c:EAC_bT_c", "Pr(>|t|)"],
summary(depress_p_pcs_eac)$coefficients["PCS_bT_c:EAC_bT_c", "Pr(>|t|)"],
# WAI × AEQ
summary(pain_p_aeq_wai)$coefficients["AEQ_bT_c:wai_c", "Pr(>|t|)"],
summary(painint_p_aeq_wai)$coefficients["AEQ_bT_c:wai_c", "Pr(>|t|)"],
summary(anxiety_p_aeq_wai)$coefficients["AEQ_bT_c:wai_c", "Pr(>|t|)"],
summary(depress_p_aeq_wai)$coefficients["AEQ_bT_c:wai_c", "Pr(>|t|)"],
# PCL × ADS
summary(pain_p_ads_pcl)$coefficients["ADS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(painint_p_ads_pcl)$coefficients["ADS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(anxiety_p_ads_pcl)$coefficients["ADS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(depress_p_ads_pcl)$coefficients["ADS_bT_c:PCL_bT_c", "Pr(>|t|)"],
# PCL × PCS
summary(pain_p_pcs_pcl)$coefficients["PCS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(painint_p_pcs_pcl)$coefficients["PCS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(anxiety_p_pcs_pcl)$coefficients["PCS_bT_c:PCL_bT_c", "Pr(>|t|)"],
summary(depress_p_pcs_pcl)$coefficients["PCS_bT_c:PCL_bT_c", "Pr(>|t|)"],
# Attend × EAC_EX
summary(pain_p_ex_attend)$coefficients["EAC_bEX_c:attend_c", "Pr(>|t|)"],
summary(painint_p_ex_attend)$coefficients["EAC_bEX_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_ex_attend)$coefficients["EAC_bEX_c:attend_c", "Pr(>|t|)"],
summary(depress_p_ex_attend)$coefficients["EAC_bEX_c:attend_c", "Pr(>|t|)"],
# Attend × EAC_EP
summary(pain_p_ep_attend)$coefficients["EAC_bEP_c:attend_c", "Pr(>|t|)"],
summary(painint_p_ep_attend)$coefficients["EAC_bEP_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_ep_attend)$coefficients["EAC_bEP_c:attend_c", "Pr(>|t|)"],
summary(depress_p_ep_attend)$coefficients["EAC_bEP_c:attend_c", "Pr(>|t|)"],
# WAI × EAC_EX
summary(pain_p_ex_wai)$coefficients["EAC_bEX_c:wai_c", "Pr(>|t|)"],
summary(painint_p_ex_wai)$coefficients["EAC_bEX_c:wai_c", "Pr(>|t|)"],
summary(anxiety_p_ex_wai)$coefficients["EAC_bEX_c:wai_c", "Pr(>|t|)"],
summary(depress_p_ex_wai)$coefficients["EAC_bEX_c:wai_c", "Pr(>|t|)"],
# WAI × EAC_EP
summary(pain_p_ep_wai)$coefficients["EAC_bEP_c:wai_c", "Pr(>|t|)"],
summary(painint_p_ep_wai)$coefficients["EAC_bEP_c:wai_c", "Pr(>|t|)"],
summary(anxiety_p_ep_wai)$coefficients["EAC_bEP_c:wai_c", "Pr(>|t|)"],
summary(depress_p_ep_wai)$coefficients["EAC_bEP_c:wai_c", "Pr(>|t|)"],
# Attend × DA
summary(pain_p_da_attend)$coefficients["Coping_bDA_c:attend_c", "Pr(>|t|)"],
summary(painint_p_da_attend)$coefficients["Coping_bDA_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_da_attend)$coefficients["Coping_bDA_c:attend_c", "Pr(>|t|)"],
summary(depress_p_da_attend)$coefficients["Coping_bDA_c:attend_c", "Pr(>|t|)"],
# Attend × RPS
summary(pain_p_rps_attend)$coefficients["Coping_bRPS_c:attend_c", "Pr(>|t|)"],
summary(painint_p_rps_attend)$coefficients["Coping_bRPS_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_rps_attend)$coefficients["Coping_bRPS_c:attend_c", "Pr(>|t|)"],
summary(depress_p_rps_attend)$coefficients["Coping_bRPS_c:attend_c", "Pr(>|t|)"],
# Attend × Cat_Cop
summary(pain_p_cat_attend)$coefficients["Coping_bCat_c:attend_c", "Pr(>|t|)"],
summary(painint_p_cat_attend)$coefficients["Coping_bCat_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_cat_attend)$coefficients["Coping_bCat_c:attend_c", "Pr(>|t|)"],
summary(depress_p_cat_attend)$coefficients["Coping_bCat_c:attend_c", "Pr(>|t|)"],
# Attend × PCL
summary(pain_p_pcl_attend)$coefficients["PCL_bT_c:attend_c", "Pr(>|t|)"],
summary(painint_p_pcl_attend)$coefficients["PCL_bT_c:attend_c", "Pr(>|t|)"],
summary(anxiety_p_pcl_attend)$coefficients["PCL_bT_c:attend_c", "Pr(>|t|)"],
summary(depress_p_pcl_attend)$coefficients["PCL_bT_c:attend_c", "Pr(>|t|)"],
# WAI × PCL
summary(pain_p_pcl_wai)$coefficients["PCL_bT_c:wai_c", "Pr(>|t|)"],
summary(painint_p_pcl_wai)$coefficients["PCL_bT_c:wai_c", "Pr(>|t|)"],
summary(anxiety_p_pcl_wai)$coefficients["PCL_bT_c:wai_c", "Pr(>|t|)"],
summary(depress_p_pcl_wai)$coefficients["PCL_bT_c:wai_c", "Pr(>|t|)"],
# Attend × SOPA (pain only)
summary(pain_p_sopa_attend)$coefficients["SOPA_bEmot_c:attend_c", "Pr(>|t|)"],
summary(painint_p_sopa_attend)$coefficients["SOPA_bEmot_c:attend_c", "Pr(>|t|)"],
# SOPA × PCS (pain only)
summary(pain_p_sopa_pcs)$coefficients["SOPA_bEmot_c:PCS_bT_c", "Pr(>|t|)"],
summary(painint_p_sopa_pcs)$coefficients["SOPA_bEmot_c:PCS_bT_c", "Pr(>|t|)"]
)
)
# Add significance indicator
results_table$Sig <- ifelse(results_table$Interaction_p < .001, "***",
ifelse(results_table$Interaction_p < .01, "**",
ifelse(results_table$Interaction_p < .05, "*", "")))
# Round for display
results_table$R_squared <- round(results_table$R_squared, 3)
results_table$Interaction_B <- round(results_table$Interaction_B, 3)
results_table$Interaction_p <- round(results_table$Interaction_p, 4)
print(results_table)
## Predictor Outcome R_squared Interaction_B Interaction_p Sig
## 1 Attend × ADS Pain Severity 0.256 -0.002 0.8730
## 2 Attend × ADS Pain Interference 0.446 -0.004 0.9278
## 3 Attend × ADS Anxiety 0.487 -0.053 0.0852
## 4 Attend × ADS Depression 0.480 -0.065 0.0911
## 5 WAI × ADS Pain Severity 0.259 0.000 0.8664
## 6 WAI × ADS Pain Interference 0.495 0.000 0.9726
## 7 WAI × ADS Anxiety 0.496 -0.009 0.0750
## 8 WAI × ADS Depression 0.492 -0.008 0.2203
## 9 Attend × PCS Pain Severity 0.263 -0.005 0.5242
## 10 Attend × PCS Pain Interference 0.344 -0.028 0.4069
## 11 Attend × PCS Anxiety 0.437 -0.059 0.0073 **
## 12 Attend × PCS Depression 0.476 -0.056 0.0253 *
## 13 EAC × PCS Pain Severity 0.134 0.002 0.6245
## 14 EAC × PCS Pain Interference 0.284 0.021 0.2179
## 15 EAC × PCS Anxiety 0.378 -0.024 0.0225 *
## 16 EAC × PCS Depression 0.437 -0.026 0.0338 *
## 17 WAI × AEQ Pain Severity 0.256 -0.001 0.5662
## 18 WAI × AEQ Pain Interference 0.473 0.000 0.9426
## 19 WAI × AEQ Anxiety 0.413 -0.007 0.0607
## 20 WAI × AEQ Depression 0.449 -0.007 0.1445
## 21 PCL × ADS Pain Severity 0.226 0.003 0.0784
## 22 PCL × ADS Pain Interference 0.418 0.006 0.3129
## 23 PCL × ADS Anxiety 0.395 -0.003 0.4328
## 24 PCL × ADS Depression 0.469 -0.009 0.0748
## 25 PCL × PCS Pain Severity 0.190 0.001 0.4837
## 26 PCL × PCS Pain Interference 0.379 -0.004 0.4428
## 27 PCL × PCS Anxiety 0.442 0.001 0.7228
## 28 PCL × PCS Depression 0.427 -0.002 0.5588
## 29 Attend × EAC_EX Pain Severity 0.262 -0.046 0.2568
## 30 Attend × EAC_EX Pain Interference 0.356 -0.148 0.3718
## 31 Attend × EAC_EX Anxiety 0.381 -0.156 0.1525
## 32 Attend × EAC_EX Depression 0.467 -0.232 0.0565
## 33 Attend × EAC_EP Pain Severity 0.315 -0.091 0.0282 *
## 34 Attend × EAC_EP Pain Interference 0.342 -0.082 0.6468
## 35 Attend × EAC_EP Anxiety 0.388 -0.124 0.2753
## 36 Attend × EAC_EP Depression 0.421 -0.133 0.3059
## 37 WAI × EAC_EX Pain Severity 0.260 -0.007 0.1391
## 38 WAI × EAC_EX Pain Interference 0.461 -0.039 0.0367 *
## 39 WAI × EAC_EX Anxiety 0.410 -0.022 0.0960
## 40 WAI × EAC_EX Depression 0.502 -0.034 0.0173 *
## 41 WAI × EAC_EP Pain Severity 0.234 -0.003 0.4399
## 42 WAI × EAC_EP Pain Interference 0.397 -0.004 0.8083
## 43 WAI × EAC_EP Anxiety 0.386 0.000 0.9852
## 44 WAI × EAC_EP Depression 0.430 -0.012 0.3519
## 45 Attend × DA Pain Severity 0.251 0.009 0.7432
## 46 Attend × DA Pain Interference 0.359 -0.010 0.9301
## 47 Attend × DA Anxiety 0.362 -0.054 0.4835
## 48 Attend × DA Depression 0.503 0.004 0.9610
## 49 Attend × RPS Pain Severity 0.246 -0.014 0.7053
## 50 Attend × RPS Pain Interference 0.398 0.000 0.9981
## 51 Attend × RPS Anxiety 0.394 -0.187 0.0582
## 52 Attend × RPS Depression 0.447 -0.127 0.2503
## 53 Attend × Cat_Cop Pain Severity 0.277 -0.043 0.1899
## 54 Attend × Cat_Cop Pain Interference 0.351 -0.151 0.2578
## 55 Attend × Cat_Cop Anxiety 0.476 -0.281 0.0009 ***
## 56 Attend × Cat_Cop Depression 0.473 -0.240 0.0150 *
## 57 Attend × PCL Pain Severity 0.253 0.002 0.7922
## 58 Attend × PCL Pain Interference 0.386 0.017 0.5285
## 59 Attend × PCL Anxiety 0.465 -0.019 0.2238
## 60 Attend × PCL Depression 0.469 -0.028 0.1567
## 61 WAI × PCL Pain Severity 0.269 0.000 0.8457
## 62 WAI × PCL Pain Interference 0.450 -0.003 0.4047
## 63 WAI × PCL Anxiety 0.502 -0.005 0.0553
## 64 WAI × PCL Depression 0.471 0.000 0.9194
## 65 Attend × SOPA Pain Severity 0.268 0.013 0.7174
## 66 Attend × SOPA Pain Interference 0.337 0.029 0.8499
## 67 SOPA × PCS Pain Severity 0.178 0.008 0.3824
## 68 SOPA × PCS Pain Interference 0.258 0.006 0.8728