Setup

Setup Overview

See tabs for loading libraries, loading dataset etc.

Libraries

Load Cleaned & Prepped Data

embrace_data <- as.data.frame(read.csv("/Users/seanzion/Desktop/EMBRACE Data Analysis/embrace_cleaned_did_7.13.21_b.csv")) %>% 
  clean_names() 


embrace_data <- embrace_data %>%
  filter(record_id!=53 | record_id!=54) %>%
  mutate(exclude = case_when(cancer_stage=="Stage 0" ~ 1,
                             cancer_stage=="Other" ~ 1,
                             cancer_type == "Prostate" & gender=="Female" ~ 1,
                             cancer_type == "Endometrial" & gender=="Male" ~ 1,
                             cancer_type == "Ovarian" & gender=="Male" ~ 1,
                             dx_length >= 180 ~ 1,
                             #initial_dx == 2 ~ 1,
                             #psych_tx == 1 ~ 1,
                             cancer_type=="Multiple Myeloma" ~ 1,
                             cancer_type != cancer_type_t6 ~ 1,
                             TRUE ~ 0)) %>%
  mutate(dropout = case_when(record_id==59 | record_id==77 |  record_id==103 |  record_id==111 | record_id==113 | record_id==119 | record_id==132 | record_id==139 | record_id==152 | record_id==154 | record_id==156 | record_id==218 | record_id==225 | record_id==228 | record_id==233 | record_id==282  | record_id==297 |  record_id==340 | record_id==359 | record_id==360 | record_id==362 | record_id==365 | record_id==376 | record_id==379 | record_id==76 | record_id==194 | record_id==263 | record_id==313 | record_id==386 | record_id==391 | record_id==412 ~ "dropout", TRUE ~ "complete"))

embrace <- embrace_data %>%
  filter(exclude!=1) 

#record_id==289 record_id==305 | record_id==307 | record_id==354 |record_id==91 
embrace <- embrace %>%
  filter(dropout=="complete")

Factor Analyses

IMI

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_imi <- embrace %>%
  filter(dropout=="complete") %>%
  select(imi_cat_1_t1, imi_cat_2_t1, imi_cat_3_t1, imi_man_1_t1, imi_man_2_t1, imi_man_3_t1, imi_opp_1_t1, imi_opp_2_t1, imi_opp_3_t1, imi_opp_4_t1) 

fa_embrace_imi <- factanal(embrace_imi, 3)
ev <- eigen(cor(embrace_imi))
ap <- parallel(subject=nrow(embrace_imi),var=ncol(embrace_imi),
  rep=100,cent=.05)
nS <- nScree(x=ev$values, aparallel=ap$eigen$qevpea)
print(fa_embrace_imi, digits=2, cutoff=.4, sort=FALSE)

embrace_imi_cat <- embrace_imi %>%
  select(contains("cat"))
psych::alpha(embrace_imi_cat)

embrace_imi_man <- embrace_imi %>%
  select(contains("man"))
psych::alpha(embrace_imi_man)

embrace_imi_opp <- embrace_imi %>%
  select(contains("opp"))
psych::alpha(embrace_imi_opp)
  • Factor Analysis
    • As expected, 3 Factors were sufficient and explained 57% of variance.
  • Internal Consistency
    • Illness Catastrophe Mindset: Alpha = 0.85
    • Illness Manageable Mindset: Alpha = 0.65
    • Illness Opportunity Mindset: Alpha = 0.83

BMI

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_bmi <- embrace %>%
  filter(dropout=="complete") %>%
  select(bmi_heal_1_t1, bmi_heal_2_t1, bmi_heal_3_t1, bmi_cap_1_t1, bmi_cap_2_t1, bmi_cap_3_t1, bmi_adv_1_t1, bmi_adv_2_t1, bmi_adv_3_t1, bmi_adv_4_t1) 

fa_embrace_bmi <- factanal(embrace_bmi, 3)
ev <- eigen(cor(embrace_bmi))
ap <- parallel(subject=nrow(embrace_bmi),var=ncol(embrace_bmi),
  rep=100,cent=.05)
nS <- nScree(x=ev$values, aparallel=ap$eigen$qevpea)
print(fa_embrace_bmi, digits=2, cutoff=.4, sort=FALSE)

embrace_bmi_heal <- embrace_bmi %>%
  select(contains("heal"))
psych::alpha(embrace_bmi_heal)

embrace_bmi_cap <- embrace_bmi %>%
  select(contains("cap"))
psych::alpha(embrace_bmi_cap)

embrace_bmi_adv <- embrace_bmi %>%
  select(contains("adv"))
psych::alpha(embrace_bmi_adv)
  • Factor Analysis
    • As expected, 3 Factors were sufficient and explained 69% of variance.
    • Note: Body Capable Item 1 and Body Capable Item 3 cross loaded onto factor 2 (with Body Responsive items).
  • Internal Consistency
    • Body Responsive Mindset: Alpha = 0.81
    • Body Capable Mindset: Alpha = 0.88
    • Body Adversary Mindset: Alpha = 0.89

FACT-G

### Recode FACT-G Physical Wellbeing. Higher score = better  QOL. 
embrace <- embrace %>%
  mutate(factg_phys1_t1_r = recode(factg_phys1_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t1_r = recode(factg_phys2_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t1_r = recode(factg_phys3_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t1_r = recode(factg_phys4_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t1_r = recode(factg_phys5_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t1_r = recode(factg_phys6_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t1_r = recode(factg_phys7_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_phys1_t2_r = recode(factg_phys1_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t2_r = recode(factg_phys2_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t2_r = recode(factg_phys3_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t2_r = recode(factg_phys4_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t2_r = recode(factg_phys5_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t2_r = recode(factg_phys6_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t2_r = recode(factg_phys7_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_phys1_t3_r = recode(factg_phys1_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t3_r = recode(factg_phys2_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t3_r = recode(factg_phys3_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t3_r = recode(factg_phys4_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t3_r = recode(factg_phys5_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t3_r = recode(factg_phys6_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t3_r = recode(factg_phys7_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_phys1_t4_r = recode(factg_phys1_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t4_r = recode(factg_phys2_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t4_r = recode(factg_phys3_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t4_r = recode(factg_phys4_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t4_r = recode(factg_phys5_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t4_r = recode(factg_phys6_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t4_r = recode(factg_phys7_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_phys1_t5_r = recode(factg_phys1_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t5_r = recode(factg_phys2_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t5_r = recode(factg_phys3_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t5_r = recode(factg_phys4_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t5_r = recode(factg_phys5_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t5_r = recode(factg_phys6_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t5_r = recode(factg_phys7_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_phys1_t6_r = recode(factg_phys1_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys2_t6_r = recode(factg_phys2_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys3_t6_r = recode(factg_phys3_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys4_t6_r = recode(factg_phys4_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys5_t6_r = recode(factg_phys5_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys6_t6_r = recode(factg_phys6_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_phys7_t6_r = recode(factg_phys7_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

### Recode FACT-G Emotional Wellbeing. Higher score = better  QOL.  
# Note - item 2 is not reversed
embrace <- embrace %>%
  mutate(factg_emo1_t1_r = recode(factg_emo1_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t1_r = recode(factg_emo3_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t1_r = recode(factg_emo4_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t1_r = recode(factg_emo5_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t1_r = recode(factg_emo6_t1, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_emo1_t2_r = recode(factg_emo1_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t2_r = recode(factg_emo3_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t2_r = recode(factg_emo4_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t2_r = recode(factg_emo5_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t2_r = recode(factg_emo6_t2, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_emo1_t3_r = recode(factg_emo1_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t3_r = recode(factg_emo3_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t3_r = recode(factg_emo4_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t3_r = recode(factg_emo5_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t3_r = recode(factg_emo6_t3, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_emo1_t4_r = recode(factg_emo1_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t4_r = recode(factg_emo3_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t4_r = recode(factg_emo4_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t4_r = recode(factg_emo5_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t4_r = recode(factg_emo6_t4, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_emo1_t5_r = recode(factg_emo1_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t5_r = recode(factg_emo3_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t5_r = recode(factg_emo4_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t5_r = recode(factg_emo5_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t5_r = recode(factg_emo6_t5, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

embrace <- embrace %>%
  mutate(factg_emo1_t6_r = recode(factg_emo1_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo3_t6_r = recode(factg_emo3_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo4_t6_r = recode(factg_emo4_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo5_t6_r = recode(factg_emo5_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0),
         factg_emo6_t6_r = recode(factg_emo6_t6, "0"=4, "1"=3,"2"=2,"3"=1,"4"=0))

#Create a separate dataframe to do exploratory factor analyses
embrace_factg <- embrace %>%
  filter(dropout=="complete") %>%
  select(factg_phys1_t1_r, factg_phys2_t1_r, factg_phys3_t1_r, factg_phys4_t1_r, factg_phys5_t1_r, factg_phys6_t1_r, factg_phys7_t1_r, factg_soc1_t1, factg_soc2_t1, factg_soc3_t1, factg_soc4_t1, factg_soc5_t1, factg_soc6_t1, factg_emo1_t1_r, factg_emo2_t1, factg_emo3_t1_r, factg_emo4_t1_r, factg_emo5_t1_r, factg_emo6_t1_r, factg_func1_t1, factg_func2_t1, factg_func3_t1, factg_func4_t1, factg_func5_t1, factg_func6_t1, factg_func7_t1) 

fa_embrace_factg <- factanal(embrace_factg, 4)
ev <- eigen(cor(embrace_factg))
ap <- parallel(subject=nrow(embrace_factg),var=ncol(embrace_factg),
  rep=100,cent=.05)
nS <- nScree(x=ev$values, aparallel=ap$eigen$qevpea)
print(fa_embrace_factg, digits=2, cutoff=.4, sort=FALSE)

embrace_factg_phys <- embrace_factg %>%
  select(contains("phys"))
psych::alpha(embrace_factg_phys)

embrace_factg_soc <- embrace_factg %>%
  select(contains("soc"))
psych::alpha(embrace_factg_soc)

embrace_factg_emo <- embrace_factg %>%
  select(contains("emo"))
psych::alpha(embrace_factg_emo)

embrace_factg_func <- embrace_factg %>%
  select(contains("func"))
psych::alpha(embrace_factg_func)

embrace_factg_total <- embrace_factg
psych::alpha(embrace_factg_total)
  • FACT-G - Internal Consistency
    • FACT-G Physical: Alpha = 0.91
    • FACT-G Social: Alpha = 0.87
    • FACT-G Emotional: Alpha = 0.82
    • FACT-G Functional: Alpha = 0.84
    • Total Score: Alpha = 0.92

CBI

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_cbi <- embrace %>%
  filter(dropout=="complete") %>%
  select(cbi_1_t1, cbi_2_t1, cbi_3_t1, cbi_4_t1, cbi_5_t1, cbi_6_t1, cbi_7_t1, cbi_8_t1, cbi_9_t1, cbi_10_t1, cbi_11_t1, cbi_12_t1) 

# Independence and Positive Attitude
embrace_cbi_ind <- embrace_cbi %>%
  select(cbi_1_t1, cbi_2_t1, cbi_3_t1)
psych::alpha(embrace_cbi_ind)

# Participating in Medical Care
embrace_cbi_part <- embrace_cbi %>%
  select(cbi_7_t1, cbi_8_t1)
psych::alpha(embrace_cbi_part)

# Coping and Stress Management
embrace_cbi_adv <- embrace_cbi %>%
  select(cbi_5_t1, cbi_6_t1, cbi_11_t1, cbi_12_t1)
psych::alpha(embrace_cbi_adv)

# Managing Affect
embrace_cbi_adv <- embrace_cbi %>%
  select(cbi_4_t1, cbi_9_t1, cbi_10_t1)
psych::alpha(embrace_cbi_adv)

# Total Score
embrace_cbi_tot <- embrace_cbi 
psych::alpha(embrace_cbi_tot)
  • CBI - Internal Consistency
    • Independence and Positive Attitude: Alpha = 0.79
    • Participating in Medical Care: Alpha = 0.87
    • Coping and Stress Management: Alpha = 0.81
    • Managing Affect: Alpha = 0.77
    • Total Score: Alpha = 0.90

BTMS

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_bti <- embrace %>%
  filter(dropout=="complete") %>%
  select(bti_vig_2_t1, bti_vig_6_t1, bti_vig_7_t1, bti_vig_8_t1, bti_threat_1_t1, bti_threat_2_t1, bti_threat_4_t1, bti_threat_5_t1, bti_fear_2_t1, bti_fear_3_t1, bti_fear_4_t1, bti_fear_5_t1) 

# Vigilance
embrace_bti_vig <- embrace_bti %>%
  select(bti_vig_2_t1, bti_vig_6_t1, bti_vig_7_t1, bti_vig_8_t1)
psych::alpha(embrace_bti_vig)

# Threat
embrace_bti_threat <- embrace_bti %>%
  select(bti_threat_1_t1, bti_threat_2_t1, bti_threat_4_t1, bti_threat_5_t1)
psych::alpha(embrace_bti_threat)

# Fear
embrace_bti_fear <- embrace_bti %>%
  select(bti_fear_2_t1, bti_fear_3_t1, bti_fear_4_t1, bti_fear_5_t1)
psych::alpha(embrace_bti_fear)

# Total Score
psych::alpha(embrace_bti)
  • BTMS - Internal Consistency
    • Vigilance: Alpha = 0.90
    • Threat: Alpha = 0.87
    • Fear: Alpha = 0.90
    • Total Score: Alpha = 0.94

RSCL

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_rscl <- embrace %>%
  filter(dropout=="complete") %>%
  select(rscl_1_t1, rscl_2_t1, rscl_3_t1, rscl_5_t1, rscl_6_t1, rscl_7_t1, rscl_8_t1, rscl_9_t1, rscl_10_t1, rscl_11_t1, rscl_12_t1, rscl_13_t1, rscl_14_t1, rscl_15_t1, rscl_16_t1, rscl_17_t1, rscl_18_t1, rscl_19_t1, rscl_22_t1, rscl_23_t1, rscl_4_t1, rscl_20_t1, rscl_21_t1) 

# Physical Distress
embrace_rscl_phys <- embrace_rscl %>%
  select(rscl_1_t1, rscl_2_t1, rscl_3_t1, rscl_5_t1, rscl_6_t1, rscl_7_t1, rscl_8_t1, rscl_9_t1, rscl_10_t1, rscl_11_t1, rscl_12_t1, rscl_13_t1, rscl_14_t1, rscl_15_t1, rscl_16_t1, rscl_17_t1, rscl_18_t1, rscl_19_t1, rscl_22_t1, rscl_23_t1)
psych::alpha(embrace_rscl_phys)

# Psychological Distress
embrace_rscl_psych <- embrace_rscl %>%
  select(rscl_4_t1, rscl_20_t1, rscl_21_t1)
psych::alpha(embrace_rscl_psych)

# Total
psych::alpha(embrace_rscl)
  • RSCL - Internal Consistency
    • Physical Symptom Distress: Alpha = 0.87
    • Threat: Alpha = 0.79
    • Total Score: Alpha = 0.88

PANAS

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_panas <- embrace %>%
  filter(dropout=="complete") %>%
  select(panas_2_t1, panas_4_t1, panas_6_t1, panas_7_t1, panas_8_t1, panas_11_t1, panas_13_t1, panas_15_t1, panas_18_t1, panas_20_t1, panas_1_t1, panas_3_t1, panas_5_t1, panas_9_t1, panas_10_t1, panas_12_t1, panas_14_t1, panas_16_t1, panas_17_t1, panas_19_t1) 

# Negative Affect 
embrace_panas_neg <- embrace_panas %>%
  select(panas_2_t1, panas_4_t1, panas_6_t1, panas_7_t1, panas_8_t1, panas_11_t1, panas_13_t1, panas_15_t1, panas_18_t1, panas_20_t1)
psych::alpha(embrace_panas_neg)

# Positive Affect
embrace_panas_pos <- embrace_panas %>%
  select(panas_1_t1, panas_3_t1, panas_5_t1, panas_9_t1, panas_10_t1, panas_12_t1, panas_14_t1, panas_16_t1, panas_17_t1, panas_19_t1)
psych::alpha(embrace_panas_pos)
  • PANAS - Internal Consistency
    • Negative Affect: Alpha = 0.91
    • Positive Affect: Alpha = 0.91

BMQ

#Create a separate dataframe to do exploratory factor analyses using the Hetcor package for binary variables.
embrace_bmq <- embrace %>%
  filter(dropout=="complete") %>%
  select(bmq_1_t1, bmq_4_t1, bmq_6_t1, bmq_7_t1, bmq_2_t1, bmq_3_t1, bmq_5_t1, bmq_8_t1) 

# Overuse 
embrace_bmq_overuse <- embrace_bmq %>%
  select(bmq_1_t1, bmq_4_t1, bmq_6_t1, bmq_7_t1)
psych::alpha(embrace_bmq_overuse)

# Harm
embrace_bmq_harm <- embrace_bmq %>%
  select(bmq_2_t1, bmq_3_t1, bmq_5_t1, bmq_8_t1)
psych::alpha(embrace_bmq_harm)
  • BMQ - Internal Consistency
    • Overuse: Alpha = 0.78
    • Harm: Alpha = 0.77

Summarize Variables & Calculate Composite Scores

# Illness Mindset Inventory 
## IMI - Cancer Catastrophe
embrace <- embrace %>%
  rowwise() %>%
  mutate(catastrophe_t1 = mean(c(imi_cat_1_t1, imi_cat_2_t1, imi_cat_3_t1), na.rm=TRUE),
         catastrophe_t2 = mean(c(imi_cat_1_t2, imi_cat_2_t2, imi_cat_3_t2), na.rm=TRUE),
         catastrophe_t3 = mean(c(imi_cat_1_t3, imi_cat_2_t3, imi_cat_3_t3), na.rm=TRUE),
         catastrophe_t4 = mean(c(imi_cat_1_t4, imi_cat_2_t4, imi_cat_3_t4), na.rm=TRUE),
         catastrophe_t5 = mean(c(imi_cat_1_t5, imi_cat_2_t5, imi_cat_3_t5), na.rm=TRUE),
         catastrophe_t6 = mean(c(imi_cat_1_t6, imi_cat_2_t6, imi_cat_3_t6), na.rm=TRUE))

## IMI - Cancer Manageable
embrace <- embrace %>%
  rowwise() %>%
  mutate(manageable_t1 = mean(c(imi_man_1_t1, imi_man_2_t1, imi_man_3_t1), na.rm=TRUE),
         manageable_t2 = mean(c(imi_man_1_t2, imi_man_2_t2, imi_man_3_t2), na.rm=TRUE),
         manageable_t3 = mean(c(imi_man_1_t3, imi_man_2_t3, imi_man_3_t3), na.rm=TRUE),
         manageable_t4 = mean(c(imi_man_1_t4, imi_man_2_t4, imi_man_3_t4), na.rm=TRUE),
         manageable_t5 = mean(c(imi_man_1_t5, imi_man_2_t5, imi_man_3_t5), na.rm=TRUE),
         manageable_t6 = mean(c(imi_man_1_t6, imi_man_2_t6, imi_man_3_t6), na.rm=TRUE))

## IMI - Cancer Opportunity
embrace <- embrace %>%
  rowwise() %>%
  mutate(opportunity_t1 = mean(c(imi_opp_1_t1, imi_opp_2_t1, imi_opp_3_t1, imi_opp_4_t1), na.rm=TRUE),
         opportunity_t2 = mean(c(imi_opp_1_t2, imi_opp_2_t2, imi_opp_3_t2, imi_opp_4_t2), na.rm=TRUE),
         opportunity_t3 = mean(c(imi_opp_1_t3, imi_opp_2_t3, imi_opp_3_t3, imi_opp_4_t3), na.rm=TRUE),
         opportunity_t4 = mean(c(imi_opp_1_t4, imi_opp_2_t4, imi_opp_3_t4, imi_opp_4_t4), na.rm=TRUE),
         opportunity_t5 = mean(c(imi_opp_1_t5, imi_opp_2_t5, imi_opp_3_t5, imi_opp_4_t5), na.rm=TRUE),
         opportunity_t6 = mean(c(imi_opp_1_t6, imi_opp_2_t6, imi_opp_3_t6, imi_opp_4_t6), na.rm=TRUE))

# Body Mindset Inventory (BMI) 

## BMI - Body Responsive
embrace <- embrace %>%
  rowwise() %>%
  mutate(responsive_t1 = mean(c(bmi_heal_1_t1, bmi_heal_2_t1, bmi_heal_3_t1), na.rm=TRUE),
         responsive_t2 = mean(c(bmi_heal_1_t2, bmi_heal_2_t2, bmi_heal_3_t2), na.rm=TRUE),
         responsive_t3 = mean(c(bmi_heal_1_t3, bmi_heal_2_t3, bmi_heal_3_t3), na.rm=TRUE),
         responsive_t4 = mean(c(bmi_heal_1_t4, bmi_heal_2_t4, bmi_heal_3_t4), na.rm=TRUE),
         responsive_t5 = mean(c(bmi_heal_1_t5, bmi_heal_2_t5, bmi_heal_3_t5), na.rm=TRUE),
         responsive_t6 = mean(c(bmi_heal_1_t6, bmi_heal_2_t6, bmi_heal_3_t6), na.rm=TRUE))

## BMI - Body Capable
embrace <- embrace %>%
  rowwise() %>%
  mutate(capable_t1 = mean(c(bmi_cap_1_t1, bmi_cap_2_t1, bmi_cap_3_t1), na.rm=TRUE),
         capable_t2 = mean(c(bmi_cap_1_t2, bmi_cap_2_t2, bmi_cap_3_t2), na.rm=TRUE),
         capable_t3 = mean(c(bmi_cap_1_t3, bmi_cap_2_t3, bmi_cap_3_t3), na.rm=TRUE),
         capable_t4 = mean(c(bmi_cap_1_t4, bmi_cap_2_t4, bmi_cap_3_t4), na.rm=TRUE),
         capable_t5 = mean(c(bmi_cap_1_t5, bmi_cap_2_t5, bmi_cap_3_t5), na.rm=TRUE),
         capable_t6 = mean(c(bmi_cap_1_t6, bmi_cap_2_t6, bmi_cap_3_t6), na.rm=TRUE))

## BMI - Body Adversary
embrace <- embrace %>%
  rowwise() %>%
  mutate(adversary_t1 = mean(c(bmi_adv_1_t1, bmi_adv_2_t1, bmi_adv_3_t1, bmi_adv_4_t1), na.rm=TRUE),
         adversary_t2 = mean(c(bmi_adv_1_t2, bmi_adv_2_t2, bmi_adv_3_t2, bmi_adv_4_t2), na.rm=TRUE),
         adversary_t3 = mean(c(bmi_adv_1_t3, bmi_adv_2_t3, bmi_adv_3_t3, bmi_adv_4_t3), na.rm=TRUE),
         adversary_t4 = mean(c(bmi_adv_1_t4, bmi_adv_2_t4, bmi_adv_3_t4, bmi_adv_4_t4), na.rm=TRUE),
         adversary_t5 = mean(c(bmi_adv_1_t5, bmi_adv_2_t5, bmi_adv_3_t5, bmi_adv_4_t5), na.rm=TRUE),
         adversary_t6 = mean(c(bmi_adv_1_t6, bmi_adv_2_t6, bmi_adv_3_t6, bmi_adv_4_t6), na.rm=TRUE))

# Functional Assessment of Cancer Therapy (FACT-G) 
## FACT-G Physical Wellbeing Summary Score 
embrace <- embrace %>%
  rowwise() %>%
  mutate(factg_physical_t1 = sum(c(factg_phys1_t1_r, factg_phys2_t1_r, factg_phys3_t1_r, factg_phys4_t1_r, factg_phys5_t1_r, factg_phys6_t1_r, factg_phys7_t1_r), na.rm=TRUE),
         factg_physical_t2 = sum(c(factg_phys1_t2_r, factg_phys2_t2_r, factg_phys3_t2_r, factg_phys4_t2_r, factg_phys5_t2_r, factg_phys6_t2_r, factg_phys7_t2_r), na.rm=TRUE),
         factg_physical_t3 = sum(c(factg_phys1_t3_r, factg_phys2_t3_r, factg_phys3_t3_r, factg_phys4_t3_r, factg_phys5_t3_r, factg_phys6_t3_r, factg_phys7_t3_r), na.rm=TRUE),
         factg_physical_t4 = sum(c(factg_phys1_t4_r, factg_phys2_t4_r, factg_phys3_t4_r, factg_phys4_t4_r, factg_phys5_t4_r, factg_phys6_t4_r, factg_phys7_t4_r), na.rm=TRUE),
         factg_physical_t5 = sum(c(factg_phys1_t5_r, factg_phys2_t5_r, factg_phys3_t5_r, factg_phys4_t5_r, factg_phys5_t5_r, factg_phys6_t5_r, factg_phys7_t5_r), na.rm=TRUE),
         factg_physical_t6 = sum(c(factg_phys1_t6_r, factg_phys2_t6_r, factg_phys3_t6_r, factg_phys4_t6_r, factg_phys5_t6_r, factg_phys6_t6_r, factg_phys7_t6_r), na.rm=TRUE))

embrace <- embrace %>%
  rowwise() %>%
  mutate(factg_social_t1 = sum(c(factg_soc1_t1, factg_soc2_t1, factg_soc3_t1, factg_soc4_t1, factg_soc5_t1, factg_soc6_t1), na.rm=TRUE),
         factg_social_t2 = sum(c(factg_soc1_t2, factg_soc2_t2, factg_soc3_t2, factg_soc4_t2, factg_soc5_t2, factg_soc6_t2), na.rm=TRUE),
         factg_social_t3 = sum(c(factg_soc1_t3, factg_soc2_t3, factg_soc3_t3, factg_soc4_t3, factg_soc5_t3, factg_soc6_t3), na.rm=TRUE),
         factg_social_t4 = sum(c(factg_soc1_t4, factg_soc2_t4, factg_soc3_t4, factg_soc4_t4, factg_soc5_t4, factg_soc6_t4), na.rm=TRUE),
         factg_social_t5 = sum(c(factg_soc1_t5, factg_soc2_t5, factg_soc3_t5, factg_soc4_t5, factg_soc5_t5, factg_soc6_t5), na.rm=TRUE),
         factg_social_t6 = sum(c(factg_soc1_t6, factg_soc2_t6, factg_soc3_t6, factg_soc4_t6, factg_soc5_t6, factg_soc6_t6), na.rm=TRUE))

### FACT-G Emotional Wellbeing Summary Score  
#### Item 3 (factg_emo3_t1_r) removed from summary score based on Factor Analysis 
embrace <- embrace %>%
  rowwise() %>%
  mutate(factg_emotional_t1 = sum(c(factg_emo1_t1_r, factg_emo2_t1, factg_emo3_t1_r, factg_emo4_t1_r, factg_emo5_t1_r, factg_emo6_t1_r), na.rm=TRUE),
         factg_emotional_t2 = sum(c(factg_emo1_t2_r, factg_emo2_t2, factg_emo3_t2_r, factg_emo4_t2_r, factg_emo5_t2_r, factg_emo6_t2_r), na.rm=TRUE),
         factg_emotional_t3 = sum(c(factg_emo1_t3_r, factg_emo2_t3, factg_emo3_t3_r, factg_emo4_t3_r, factg_emo5_t3_r, factg_emo6_t3_r), na.rm=TRUE),
         factg_emotional_t4 = sum(c(factg_emo1_t4_r, factg_emo2_t4, factg_emo3_t4_r, factg_emo4_t4_r, factg_emo5_t4_r, factg_emo6_t4_r), na.rm=TRUE),
         factg_emotional_t5 = sum(c(factg_emo1_t5_r, factg_emo2_t5, factg_emo3_t5_r, factg_emo4_t5_r, factg_emo5_t5_r, factg_emo6_t5_r), na.rm=TRUE),
         factg_emotional_t6 = sum(c(factg_emo1_t6_r, factg_emo2_t6, factg_emo3_t6_r, factg_emo4_t6_r, factg_emo5_t6_r, factg_emo6_t6_r), na.rm=TRUE))

### FACT-G Functional Wellbeing Summary Score 
embrace <- embrace %>%
  rowwise() %>%
  mutate(factg_functional_t1 = sum(c(factg_func1_t1, factg_func2_t1, factg_func3_t1, factg_func4_t1, factg_func5_t1, factg_func6_t1, factg_func7_t1), na.rm=TRUE),
         factg_functional_t2 = sum(c(factg_func1_t2, factg_func2_t2, factg_func3_t2, factg_func4_t2, factg_func5_t2, factg_func6_t2, factg_func7_t2), na.rm=TRUE),
         factg_functional_t3 = sum(c(factg_func1_t3, factg_func2_t3, factg_func3_t3, factg_func4_t3, factg_func5_t3, factg_func6_t3, factg_func7_t3), na.rm=TRUE),
         factg_functional_t4 = sum(c(factg_func1_t4, factg_func2_t4, factg_func3_t4, factg_func4_t4, factg_func5_t4, factg_func6_t4, factg_func7_t4), na.rm=TRUE),
         factg_functional_t5 = sum(c(factg_func1_t5, factg_func2_t5, factg_func3_t5, factg_func4_t5, factg_func5_t5, factg_func6_t5, factg_func7_t5), na.rm=TRUE),
         factg_functional_t6 = sum(c(factg_func1_t6, factg_func2_t6, factg_func3_t6, factg_func4_t6, factg_func5_t6, factg_func6_t6, factg_func7_t6), na.rm=TRUE))

## FACT-G Total Score (Sum of All Subscales)
embrace <- embrace %>%
  rowwise() %>%
  mutate(factg_total_t1 = sum(c(factg_physical_t1, factg_social_t1, factg_emotional_t1, factg_functional_t1), na.rm=TRUE),
         factg_total_t2 = sum(c(factg_physical_t2, factg_social_t2, factg_emotional_t2, factg_functional_t2), na.rm=TRUE),
         factg_total_t3 = sum(c(factg_physical_t3, factg_social_t3, factg_emotional_t3, factg_functional_t3), na.rm=TRUE),
         factg_total_t4 = sum(c(factg_physical_t4, factg_social_t4, factg_emotional_t4, factg_functional_t4), na.rm=TRUE),
         factg_total_t5 = sum(c(factg_physical_t5, factg_social_t5, factg_emotional_t5, factg_functional_t5), na.rm=TRUE),
         factg_total_t6 = sum(c(factg_physical_t6, factg_social_t6, factg_emotional_t6, factg_functional_t6), na.rm=TRUE))

# Cancer Behavior Inventory (CBI)

## CBI - Single Factor Composite Score for Each Timepoint
embrace <- embrace %>%
  rowwise() %>%
  mutate(cbi_avg_t1 = mean(c(cbi_1_t1, cbi_2_t1, cbi_3_t1, cbi_4_t1, cbi_5_t1, cbi_6_t1, cbi_7_t1, cbi_8_t1, cbi_9_t1, cbi_10_t1, cbi_11_t1, cbi_12_t1), na.rm=TRUE),
         cbi_avg_t2 = mean(c(cbi_1_t2, cbi_2_t2, cbi_3_t2, cbi_4_t2, cbi_5_t2, cbi_6_t2, cbi_7_t2, cbi_8_t2, cbi_9_t2, cbi_10_t2, cbi_11_t2, cbi_12_t2), na.rm=TRUE),
         cbi_avg_t3 = mean(c(cbi_1_t3, cbi_2_t3, cbi_3_t3, cbi_4_t3, cbi_5_t3, cbi_6_t3, cbi_7_t3, cbi_8_t3, cbi_9_t3, cbi_10_t3, cbi_11_t3, cbi_12_t3), na.rm=TRUE),
         cbi_avg_t4 = mean(c(cbi_1_t4, cbi_2_t4, cbi_3_t4, cbi_4_t4, cbi_5_t4, cbi_6_t4, cbi_7_t4, cbi_8_t4, cbi_9_t4, cbi_10_t4, cbi_11_t4, cbi_12_t4), na.rm=TRUE),
         cbi_avg_t5 = mean(c(cbi_1_t5, cbi_2_t5, cbi_3_t5, cbi_4_t5, cbi_5_t5, cbi_6_t5, cbi_7_t5, cbi_8_t5, cbi_9_t5, cbi_10_t5, cbi_11_t5, cbi_12_t5), na.rm=TRUE),
         cbi_avg_t6 = mean(c(cbi_1_t6, cbi_2_t6, cbi_3_t6, cbi_4_t6, cbi_5_t6, cbi_6_t6, cbi_7_t6, cbi_8_t6, cbi_9_t6, cbi_10_t6, cbi_11_t6, cbi_12_t6), na.rm=TRUE))

## CBI - Maintaining Independence and Positive Attitude
embrace <- embrace %>%
  rowwise() %>%
  mutate(cbi_independence_t1 = mean(c(cbi_1_t1, cbi_2_t1, cbi_3_t1), na.rm=TRUE),
         cbi_independence_t2 = mean(c(cbi_1_t2, cbi_2_t2, cbi_3_t2), na.rm=TRUE),
         cbi_independence_t3 = mean(c(cbi_1_t3, cbi_2_t3, cbi_3_t3), na.rm=TRUE),
         cbi_independence_t4 = mean(c(cbi_1_t4, cbi_2_t4, cbi_3_t4), na.rm=TRUE),
         cbi_independence_t5 = mean(c(cbi_1_t5, cbi_2_t5, cbi_3_t5), na.rm=TRUE),
         cbi_independence_t6 = mean(c(cbi_1_t6, cbi_2_t6, cbi_3_t6), na.rm=TRUE))

## CBI - Participating in Medical Care
embrace <- embrace %>%
  rowwise() %>%
  mutate(cbi_activepart_t1 = mean(c(cbi_7_t1, cbi_8_t1), na.rm=TRUE),
         cbi_activepart_t2 = mean(c(cbi_7_t2, cbi_8_t2), na.rm=TRUE),
         cbi_activepart_t3 = mean(c(cbi_7_t3, cbi_8_t3), na.rm=TRUE),
         cbi_activepart_t4 = mean(c(cbi_7_t4, cbi_8_t4), na.rm=TRUE),
         cbi_activepart_t5 = mean(c(cbi_7_t5, cbi_8_t5), na.rm=TRUE),
         cbi_activepart_t6 = mean(c(cbi_7_t6, cbi_8_t6), na.rm=TRUE))

## CBI - Coping and Stress Management
embrace <- embrace %>%
  rowwise() %>%
  mutate(cbi_cope_t1 = mean(c(cbi_5_t1, cbi_6_t1, cbi_11_t1, cbi_12_t1), na.rm=TRUE),
         cbi_cope_t2 = mean(c(cbi_5_t2, cbi_6_t2, cbi_11_t2, cbi_12_t2), na.rm=TRUE),
         cbi_cope_t3 = mean(c(cbi_5_t3, cbi_6_t3, cbi_11_t3, cbi_12_t3), na.rm=TRUE),
         cbi_cope_t4 = mean(c(cbi_5_t4, cbi_6_t4, cbi_11_t4, cbi_12_t4), na.rm=TRUE),
         cbi_cope_t5 = mean(c(cbi_5_t5, cbi_6_t5, cbi_11_t5, cbi_12_t5), na.rm=TRUE),
         cbi_cope_t6 = mean(c(cbi_5_t6, cbi_6_t6, cbi_11_t6, cbi_12_t6), na.rm=TRUE))

## CBI - Managing Affect
embrace <- embrace %>%
  rowwise() %>%
  mutate(cbi_emoreg_t1 = mean(c(cbi_4_t1, cbi_9_t1, cbi_10_t1), na.rm=TRUE),
         cbi_emoreg_t2 = mean(c(cbi_4_t2, cbi_9_t2, cbi_10_t2), na.rm=TRUE),
         cbi_emoreg_t3 = mean(c(cbi_4_t3, cbi_9_t3, cbi_10_t3), na.rm=TRUE),
         cbi_emoreg_t4 = mean(c(cbi_4_t4, cbi_9_t4, cbi_10_t4), na.rm=TRUE),
         cbi_emoreg_t5 = mean(c(cbi_4_t5, cbi_9_t5, cbi_10_t5), na.rm=TRUE),
         cbi_emoreg_t6 = mean(c(cbi_4_t6, cbi_9_t6, cbi_10_t6), na.rm=TRUE))

# Bodily Threat Inventory 

## BTI - Vigilance 
embrace <- embrace %>%
  rowwise() %>%
  mutate(bti_vigilance_t1 = mean(c(bti_vig_6_t1, bti_vig_7_t1, bti_vig_8_t1), na.rm=TRUE),
         bti_vigilance_t2 = mean(c(bti_vig_6_t2, bti_vig_7_t2, bti_vig_8_t2), na.rm=TRUE),
         bti_vigilance_t3 = mean(c(bti_vig_6_t3, bti_vig_7_t3, bti_vig_8_t3), na.rm=TRUE),
         bti_vigilance_t4 = mean(c(bti_vig_6_t4, bti_vig_7_t4, bti_vig_8_t4), na.rm=TRUE),
         bti_vigilance_t5 = mean(c(bti_vig_6_t5, bti_vig_7_t5, bti_vig_8_t5), na.rm=TRUE),
         bti_vigilance_t6 = mean(c(bti_vig_6_t6, bti_vig_7_t6, bti_vig_8_t6), na.rm=TRUE))

## BTI - Threat 
embrace <- embrace %>%
  rowwise() %>%
  mutate(bti_threat_t1 = mean(c(bti_threat_1_t1, bti_threat_2_t1, bti_threat_4_t1, bti_threat_5_t1), na.rm=TRUE),
         bti_threat_t2 = mean(c(bti_threat_1_t2, bti_threat_2_t2, bti_threat_4_t2, bti_threat_5_t2), na.rm=TRUE),
         bti_threat_t3 = mean(c(bti_threat_1_t3, bti_threat_2_t3, bti_threat_4_t3, bti_threat_5_t3), na.rm=TRUE),
         bti_threat_t4 = mean(c(bti_threat_1_t4, bti_threat_2_t4, bti_threat_4_t4, bti_threat_5_t4), na.rm=TRUE),
         bti_threat_t5 = mean(c(bti_threat_1_t5, bti_threat_2_t5, bti_threat_4_t5, bti_threat_5_t5), na.rm=TRUE),
         bti_threat_t6 = mean(c(bti_threat_1_t6, bti_threat_2_t6, bti_threat_4_t6, bti_threat_5_t6), na.rm=TRUE))

## BTI - Fear
embrace <- embrace %>%
  rowwise() %>%
  mutate(bti_fear_t1 = mean(c(bti_fear_2_t1, bti_fear_3_t1, bti_fear_4_t1, bti_fear_5_t1), na.rm=TRUE),
         bti_fear_t2 = mean(c(bti_fear_2_t2, bti_fear_3_t2, bti_fear_4_t2, bti_fear_5_t2), na.rm=TRUE),
         bti_fear_t3 = mean(c(bti_fear_2_t3, bti_fear_3_t3, bti_fear_4_t3, bti_fear_5_t3), na.rm=TRUE),
         bti_fear_t4 = mean(c(bti_fear_2_t4, bti_fear_3_t4, bti_fear_4_t4, bti_fear_5_t4), na.rm=TRUE),
         bti_fear_t5 = mean(c(bti_fear_2_t5, bti_fear_3_t5, bti_fear_4_t5, bti_fear_5_t5), na.rm=TRUE),
         bti_fear_t6 = mean(c(bti_fear_2_t6, bti_fear_3_t6, bti_fear_4_t6, bti_fear_5_t6), na.rm=TRUE))

# Rotterdam Symptom Checklist (RSCL)

## Physical and Psychological Symptom Distress Summary Scores

embrace <- embrace %>%
  rowwise() %>%
  mutate(rscl_phys_total_t1 = sum(c(rscl_1_t1, rscl_2_t1, rscl_3_t1, rscl_5_t1, rscl_6_t1, rscl_7_t1, rscl_8_t1, rscl_9_t1, rscl_10_t1, rscl_11_t1, rscl_12_t1, rscl_13_t1, rscl_14_t1, rscl_15_t1, rscl_16_t1, rscl_17_t1, rscl_18_t1, rscl_19_t1, rscl_22_t1, rscl_23_t1), na.rm=TRUE),
         rscl_phys_total_t2 = sum(c(rscl_1_t2, rscl_2_t2, rscl_3_t2, rscl_5_t2, rscl_6_t2, rscl_7_t2, rscl_8_t2, rscl_9_t2, rscl_10_t2, rscl_11_t2, rscl_12_t2, rscl_13_t2, rscl_14_t2, rscl_15_t2, rscl_16_t2, rscl_17_t2, rscl_18_t2, rscl_19_t2, rscl_22_t2, rscl_23_t2), na.rm=TRUE),
         rscl_phys_total_t3 = sum(c(rscl_1_t3, rscl_2_t3, rscl_3_t3, rscl_5_t3, rscl_6_t3, rscl_7_t3, rscl_8_t3, rscl_9_t3, rscl_10_t3, rscl_11_t3, rscl_12_t3, rscl_13_t3, rscl_14_t3, rscl_15_t3, rscl_16_t3, rscl_17_t3, rscl_18_t3, rscl_19_t3, rscl_22_t3, rscl_23_t3), na.rm=TRUE),
         rscl_phys_total_t4 = sum(c(rscl_1_t4, rscl_2_t4, rscl_3_t4, rscl_5_t4, rscl_6_t4, rscl_7_t4, rscl_8_t4, rscl_9_t4, rscl_10_t4, rscl_11_t4, rscl_12_t4, rscl_13_t4, rscl_14_t4, rscl_15_t4, rscl_16_t4, rscl_17_t4, rscl_18_t4, rscl_19_t4, rscl_22_t4, rscl_23_t4), na.rm=TRUE),
         rscl_phys_total_t5 = sum(c(rscl_1_t5, rscl_2_t5, rscl_3_t5, rscl_5_t5, rscl_6_t5, rscl_7_t5, rscl_8_t5, rscl_9_t5, rscl_10_t5, rscl_11_t5, rscl_12_t5, rscl_13_t5, rscl_14_t5, rscl_15_t5, rscl_16_t5, rscl_17_t5, rscl_18_t5, rscl_19_t5, rscl_22_t5, rscl_23_t5), na.rm=TRUE),
         rscl_phys_total_t6 = sum(c(rscl_1_t6, rscl_2_t6, rscl_3_t6, rscl_5_t6, rscl_6_t6, rscl_7_t6, rscl_8_t6, rscl_9_t6, rscl_10_t6, rscl_11_t6, rscl_12_t6, rscl_13_t6, rscl_14_t6, rscl_15_t6, rscl_16_t6, rscl_17_t6, rscl_18_t6, rscl_19_t6, rscl_22_t6, rscl_23_t6), na.rm=TRUE),
         rscl_psych_total_t1 = sum(c(rscl_4_t1, rscl_20_t1, rscl_21_t1), na.rm=TRUE),
         rscl_psych_total_t2 = sum(c(rscl_4_t2, rscl_20_t2, rscl_21_t2), na.rm=TRUE),
         rscl_psych_total_t3 = sum(c(rscl_4_t3, rscl_20_t3, rscl_21_t3), na.rm=TRUE),
         rscl_psych_total_t4 = sum(c(rscl_4_t4, rscl_20_t4, rscl_21_t4), na.rm=TRUE),
         rscl_psych_total_t5 = sum(c(rscl_4_t5, rscl_20_t5, rscl_21_t5), na.rm=TRUE),
         rscl_psych_total_t6 = sum(c(rscl_4_t6, rscl_20_t6, rscl_21_t6), na.rm=TRUE))

#PANAS 

## PANAS - Positive Affect
embrace <- embrace %>%
  rowwise() %>%
  mutate(panas_positive_t1 = mean(c(panas_1_t1, panas_3_t1, panas_5_t1, panas_9_t1, panas_10_t1, panas_12_t1, panas_14_t1, panas_16_t1, panas_17_t1, panas_19_t1), na.rm=TRUE),
         panas_positive_t2 = mean(c(panas_1_t2, panas_3_t2, panas_5_t2, panas_9_t2, panas_10_t2, panas_12_t2, panas_14_t2, panas_16_t2, panas_17_t2, panas_19_t2), na.rm=TRUE),
         panas_positive_t3 = mean(c(panas_1_t3, panas_3_t3, panas_5_t3, panas_9_t3, panas_10_t3, panas_12_t3, panas_14_t3, panas_16_t3, panas_17_t3, panas_19_t3), na.rm=TRUE),
         panas_positive_t4 = mean(c(panas_1_t4, panas_3_t4, panas_5_t4, panas_9_t4, panas_10_t4, panas_12_t4, panas_14_t4, panas_16_t4, panas_17_t4, panas_19_t4), na.rm=TRUE),
         panas_positive_t5 = mean(c(panas_1_t5, panas_3_t5, panas_5_t5, panas_9_t5, panas_10_t5, panas_12_t5, panas_14_t5, panas_16_t5, panas_17_t5, panas_19_t5), na.rm=TRUE),
         panas_positive_t6 = mean(c(panas_1_t6, panas_3_t6, panas_5_t6, panas_9_t6, panas_10_t6, panas_12_t6, panas_14_t6, panas_16_t6, panas_17_t6, panas_19_t6), na.rm=TRUE))

## PANAS - Negative Affect
embrace <- embrace %>%
  rowwise() %>%
  mutate(panas_negative_t1 = mean(c(panas_2_t1, panas_4_t1, panas_6_t1, panas_7_t1, panas_8_t1, panas_11_t1, panas_13_t1, panas_15_t1, panas_18_t1, panas_20_t1), na.rm=TRUE),
         panas_negative_t2 = mean(c(panas_2_t2, panas_4_t2, panas_6_t2, panas_7_t2, panas_8_t2, panas_11_t2, panas_13_t2, panas_15_t2, panas_18_t2, panas_20_t2), na.rm=TRUE),
         panas_negative_t3 = mean(c(panas_2_t3, panas_4_t3, panas_6_t3, panas_7_t3, panas_8_t3, panas_11_t3, panas_13_t3, panas_15_t3, panas_18_t3, panas_20_t3), na.rm=TRUE),
         panas_negative_t4 = mean(c(panas_2_t4, panas_4_t4, panas_6_t4, panas_7_t4, panas_8_t4, panas_11_t4, panas_13_t4, panas_15_t4, panas_18_t4, panas_20_t4), na.rm=TRUE),
         panas_negative_t5 = mean(c(panas_2_t5, panas_4_t5, panas_6_t5, panas_7_t5, panas_8_t5, panas_11_t5, panas_13_t5, panas_15_t5, panas_18_t5, panas_20_t5), na.rm=TRUE),
         panas_negative_t6 = mean(c(panas_2_t6, panas_4_t6, panas_6_t6, panas_7_t6, panas_8_t6, panas_11_t6, panas_13_t6, panas_15_t6, panas_18_t6, panas_20_t6), na.rm=TRUE))

# Beliefs About Medicines (BMQ) 
## BMQ - Overuse & Harm Subscales  
embrace <- embrace %>%
  rowwise() %>%
  mutate(bmq_overuse_t1 = mean(c(bmq_1_t1, bmq_4_t1, bmq_6_t1, bmq_7_t1), na.rm=TRUE),
         bmq_harm_t1 = mean(c(bmq_2_t1, bmq_3_t1, bmq_5_t1, bmq_8_t1), na.rm=TRUE),
         bmq_overuse_t5 = mean(c(bmq_1_t5, bmq_4_t5, bmq_6_t5, bmq_7_t5), na.rm=TRUE),
         bmq_harm_t5 = mean(c(bmq_2_t5, bmq_3_t5, bmq_5_t5, bmq_8_t5), na.rm=TRUE))

# Cancer Worry Scale (CWS) 
## CWS - Total Score  
embrace <- embrace %>%
  rowwise() %>%
  mutate(cws_t5 = mean(c(cws_1_q_t5, cws_2_q_t5, cws_3_q_t5, cws_4_q_t5, cws_5_q_t5, cws_6_q_t5), na.rm=TRUE),
         cws_t6 = mean(c(cws_1_q_t6, cws_2_q_t6, cws_3_q_t6, cws_4_q_t6, cws_5_q_t6, cws_6_q_t6), na.rm=TRUE))

Differences Across Condition At Baseline

Note:These analyses includes all randomized participants at baseline excluding ineligible participants. Dropouts are included in this analysis.

Demographic Variables

summary(tableby(randomization ~ gender + age + race_cat + education_cat, data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test = TRUE, digits=2)
Mindset (N=148) TAU (N=149) Total (N=297) p value
gender 0.859
   Female 120 (81.1%) 122 (81.9%) 242 (81.5%)
   Male 28 (18.9%) 27 (18.1%) 55 (18.5%)
age 0.980
   Mean (SD) 52.16 (12.97) 52.12 (13.51) 52.14 (13.22)
race_cat 0.450
   Non-White 22 (14.9%) 27 (18.1%) 49 (16.5%)
   White 126 (85.1%) 122 (81.9%) 248 (83.5%)
education_cat 0.349
   ≥ Bachelor’s Degree 101 (68.2%) 94 (63.1%) 195 (65.7%)
   High School 47 (31.8%) 55 (36.9%) 102 (34.3%)

Clinical Health Variables

summary(tableby(randomization ~ cancer_type + cancer_stage + dx_length + chemotherapy + surgery + radiation + immunotherapy + hormone + targeted_tx + covid_status, data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
Mindset (N=148) TAU (N=149) Total (N=297) p value
cancer_type 0.572
   Breast 82 (55.4%) 92 (61.7%) 174 (58.6%)
   Colon/Rectal 17 (11.5%) 19 (12.8%) 36 (12.1%)
   Endometrial 7 (4.7%) 3 (2.0%) 10 (3.4%)
   Leukemia 5 (3.4%) 5 (3.4%) 10 (3.4%)
   Lung 4 (2.7%) 0 (0.0%) 4 (1.3%)
   Lymphoma 6 (4.1%) 5 (3.4%) 11 (3.7%)
   Melanoma 2 (1.4%) 0 (0.0%) 2 (0.7%)
   Other 11 (7.4%) 13 (8.7%) 24 (8.1%)
   Ovarian 3 (2.0%) 1 (0.7%) 4 (1.3%)
   Pancreatic 1 (0.7%) 1 (0.7%) 2 (0.7%)
   Prostate 9 (6.1%) 9 (6.0%) 18 (6.1%)
   Thyroid 1 (0.7%) 1 (0.7%) 2 (0.7%)
cancer_stage 0.966
   No Stage 20 (13.5%) 20 (13.4%) 40 (13.5%)
   Stage 1 53 (35.8%) 54 (36.2%) 107 (36.0%)
   Stage 2 47 (31.8%) 50 (33.6%) 97 (32.7%)
   Stage 3 28 (18.9%) 25 (16.8%) 53 (17.8%)
dx_length 0.288
   Mean (SD) 62.95 (42.72) 67.91 (37.24) 65.44 (40.06)
chemotherapy 0.551
   Chemo 88 (59.5%) 93 (62.8%) 181 (61.1%)
   No Chemo 60 (40.5%) 55 (37.2%) 115 (38.9%)
surgery 0.894
   No Surgery 38 (25.7%) 37 (25.0%) 75 (25.3%)
   Surgery 110 (74.3%) 111 (75.0%) 221 (74.7%)
radiation 0.352
   No Radiation 73 (49.3%) 81 (54.7%) 154 (52.0%)
   Radiation 75 (50.7%) 67 (45.3%) 142 (48.0%)
immunotherapy 0.658
   Immuno 12 (8.1%) 10 (6.8%) 22 (7.4%)
   No Immuno 136 (91.9%) 138 (93.2%) 274 (92.6%)
hormone 0.723
   Hormone 59 (39.9%) 62 (41.9%) 121 (40.9%)
   No Hormone 89 (60.1%) 86 (58.1%) 175 (59.1%)
targeted_tx 0.328
   No Targeted 136 (91.9%) 131 (88.5%) 267 (90.2%)
   Targeted 12 (8.1%) 17 (11.5%) 29 (9.8%)
covid_status 0.402
   No 133 (97.1%) 137 (95.1%) 270 (96.1%)
   Yes 4 (2.9%) 7 (4.9%) 11 (3.9%)

Individual Differences

summary(tableby(randomization ~ extroverted + open + emostab + agree + consc + optimism,  data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
Mindset (N=148) TAU (N=149) Total (N=297) p value
extroverted 0.112
   Mean (SD) 3.25 (1.32) 3.49 (1.26) 3.37 (1.29)
open 0.522
   Mean (SD) 3.91 (0.95) 3.98 (0.87) 3.95 (0.91)
emostab 0.723
   Mean (SD) 3.86 (1.01) 3.91 (0.96) 3.89 (0.98)
agree 0.650
   Mean (SD) 4.31 (0.83) 4.26 (0.78) 4.28 (0.80)
consc 0.767
   Mean (SD) 4.25 (0.87) 4.27 (0.70) 4.26 (0.79)
optimism 0.695
   Mean (SD) 3.59 (1.00) 3.64 (0.88) 3.62 (0.94)

Differences Across Retention Rate

Note:These analysis includes is conducted across participants who dropped out (i.e., no post-baseline measures) and those participants with post-baseline measures. Ineligible participants are excluded from all analyses.

Study Level Variables

summary(tableby(dropout ~ randomization + cohort, data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test = TRUE, digits=2)
complete (N=297) Total (N=297) p value
randomization
   Mindset 148 (49.8%) 148 (49.8%)
   TAU 149 (50.2%) 149 (50.2%)
cohort
   A 35 (11.8%) 35 (11.8%)
   B 81 (27.3%) 81 (27.3%)
   C 64 (21.5%) 64 (21.5%)
   D 67 (22.6%) 67 (22.6%)
   E 50 (16.8%) 50 (16.8%)

Demographic Variables

summary(tableby(dropout ~ gender + age + race_cat + education_cat, data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test = TRUE, digits=2)
complete (N=297) Total (N=297) p value
gender
   Female 242 (81.5%) 242 (81.5%)
   Male 55 (18.5%) 55 (18.5%)
age
   Mean (SD) 52.14 (13.22) 52.14 (13.22)
race_cat
   Non-White 49 (16.5%) 49 (16.5%)
   White 248 (83.5%) 248 (83.5%)
education_cat
   ≥ Bachelor’s Degree 195 (65.7%) 195 (65.7%)
   High School 102 (34.3%) 102 (34.3%)

Clinical Health Variables

summary(tableby(dropout ~ cancer_type_simplified + cancer_stage + dx_length, data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
complete (N=297) Total (N=297) p value
cancer_type_simplified
   Blood Cancers 21 (7.1%) 21 (7.1%)
   Breast Cancer 174 (58.6%) 174 (58.6%)
   Solid Tumors 102 (34.3%) 102 (34.3%)
cancer_stage
   No Stage 40 (13.5%) 40 (13.5%)
   Stage 1 107 (36.0%) 107 (36.0%)
   Stage 2 97 (32.7%) 97 (32.7%)
   Stage 3 53 (17.8%) 53 (17.8%)
dx_length
   Mean (SD) 65.44 (40.06) 65.44 (40.06)

Individual Differences

summary(tableby(dropout ~ extroverted + open + emostab + agree + consc + optimism,  data=embrace, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
complete (N=297) Total (N=297) p value
extroverted
   Mean (SD) 3.37 (1.29) 3.37 (1.29)
open
   Mean (SD) 3.95 (0.91) 3.95 (0.91)
emostab
   Mean (SD) 3.89 (0.98) 3.89 (0.98)
agree
   Mean (SD) 4.28 (0.80) 4.28 (0.80)
consc
   Mean (SD) 4.26 (0.79) 4.26 (0.79)
optimism
   Mean (SD) 3.62 (0.94) 3.62 (0.94)
#Remove Dropouts (as per pre-registration. even though we have imputed their data)
#embrace <- embrace %>%
#  filter(dropout=="complete")

Descriptive Statistics

Cancer Mindsets (IMI)

Table - IMI Change

#Mindset Intervention
cancer_mindset_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Catastrophe"=catastrophe_t1, "T2: Catastrophe"=catastrophe_t2, "T3: Catastrophe"=catastrophe_t3, "T4: Catastrophe"=catastrophe_t4, "T5: Catastrophe"=catastrophe_t5, "T6: Catastrophe"=catastrophe_t6, "T1: Manageable"=manageable_t1, "T2: Manageable"=manageable_t2, "T3: Manageable"=manageable_t3, "T4: Manageable"=manageable_t4, "T5: Manageable"=manageable_t5, "T6: Manageable"=manageable_t6, "T1: Opportunity"=opportunity_t1,  "T2: Opportunity"=opportunity_t2, "T3: Opportunity"=opportunity_t3, "T4: Opportunity"=opportunity_t4, "T5: Opportunity"=opportunity_t5, "T6: Opportunity"=opportunity_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cancer_mindset_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Catastrophe Mindset", 1, 6) %>%
  kableExtra::pack_rows("Manageable Mindset", 7, 12) %>%
  kableExtra::pack_rows("Opportunity Mindset", 13, 18)
n mean sd se min max skew kurtosis
Catastrophe Mindset
T1: Catastrophe 148 3.313063 1.1581166 0.0951966 1.000000 6.000000 -0.0217897 -0.5066111
T2: Catastrophe 148 2.997748 1.0407398 0.0855483 1.000000 6.000000 0.0048944 -0.2931857
T3: Catastrophe 148 2.860360 1.0294334 0.0846189 1.000000 5.333333 0.0566342 -0.6878100
T4: Catastrophe 148 2.822072 1.1082154 0.0910947 1.000000 5.666667 0.1502986 -0.7742029
T5: Catastrophe 148 2.610360 1.1122818 0.0914290 1.000000 6.000000 0.4999542 -0.3773556
T6: Catastrophe 148 2.691441 1.1336209 0.0931831 1.000000 5.666667 0.2974952 -0.7305736
Manageable Mindset
T1: Manageable 148 4.551802 0.8012772 0.0658646 1.333333 6.000000 -0.6220655 0.8191226
T2: Manageable 148 4.713964 0.7756792 0.0637604 1.666667 6.000000 -0.8848770 1.5253624
T3: Manageable 148 4.781531 0.6995440 0.0575022 2.000000 6.000000 -0.4827323 0.5808014
T4: Manageable 148 4.747748 0.7694287 0.0632467 2.000000 6.000000 -0.7173119 1.0002870
T5: Manageable 148 4.855856 0.7450133 0.0612397 2.000000 6.000000 -0.4426235 0.5448405
T6: Manageable 148 4.799550 0.7754158 0.0637388 2.000000 6.000000 -0.7448600 0.8988823
Opportunity Mindset
T1: Opportunity 148 4.657095 0.8656721 0.0711578 2.000000 6.000000 -0.4065911 -0.2222959
T2: Opportunity 148 4.851351 0.7719783 0.0634562 2.500000 6.000000 -0.5077457 0.0368018
T3: Opportunity 148 4.883446 0.7292571 0.0599446 2.500000 6.000000 -0.4139149 -0.0457476
T4: Opportunity 148 4.891892 0.8207358 0.0674641 1.250000 6.000000 -1.2398610 3.0517280
T5: Opportunity 148 4.983108 0.8235801 0.0676979 1.750000 6.000000 -1.0180140 1.6868197
T6: Opportunity 148 4.979730 0.8342751 0.0685770 2.000000 6.000000 -0.8832090 0.6833766
#TAU
cancer_mindset_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
  select("T1: Catastrophe"=catastrophe_t1, "T2: Catastrophe"=catastrophe_t2, "T3: Catastrophe"=catastrophe_t3, "T4: Catastrophe"=catastrophe_t4, "T5: Catastrophe"=catastrophe_t5, "T6: Catastrophe"=catastrophe_t6, "T1: Manageable"=manageable_t1, "T2: Manageable"=manageable_t2, "T3: Manageable"=manageable_t3, "T4: Manageable"=manageable_t4, "T5: Manageable"=manageable_t5, "T6: Manageable"=manageable_t6, "T1: Opportunity"=opportunity_t1,  "T2: Opportunity"=opportunity_t2, "T3: Opportunity"=opportunity_t3, "T4: Opportunity"=opportunity_t4, "T5: Opportunity"=opportunity_t5, "T6: Opportunity"=opportunity_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cancer_mindset_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Catastrophe Mindset", 1, 6) %>%
  kableExtra::pack_rows("Manageable Mindset", 7, 12) %>%
  kableExtra::pack_rows("Opportunity Mindset", 13, 18)
n mean sd se min max skew kurtosis
Catastrophe Mindset
T1: Catastrophe 149 3.333333 1.0898108 0.0892808 1.000000 6 -0.0679829 -0.5591728
T2: Catastrophe 149 3.391499 1.1916448 0.0976233 1.000000 6 -0.1047299 -0.5017003
T3: Catastrophe 149 3.348993 1.0585953 0.0867235 1.000000 6 0.0290435 -0.3685282
T4: Catastrophe 149 3.270694 1.1562398 0.0947229 1.000000 6 -0.0262285 -0.5526963
T5: Catastrophe 149 3.351230 1.1603984 0.0950635 1.000000 6 0.0583968 -0.4772633
T6: Catastrophe 149 3.239374 1.1791994 0.0966038 1.000000 6 0.1697262 -0.3821013
Manageable Mindset
T1: Manageable 149 4.563758 0.7185857 0.0588688 2.333333 6 -0.1477775 0.2998508
T2: Manageable 149 4.516779 0.7468012 0.0611803 2.333333 6 -0.0891171 0.2139487
T3: Manageable 149 4.445190 0.7045655 0.0577203 2.333333 6 -0.1729057 0.0637497
T4: Manageable 149 4.422819 0.7956629 0.0651832 1.333333 6 -0.4234089 0.8638527
T5: Manageable 149 4.425056 0.7920960 0.0648910 1.000000 6 -0.4821590 1.4941360
T6: Manageable 149 4.476510 0.7742623 0.0634300 1.666667 6 -0.3463611 0.8909105
Opportunity Mindset
T1: Opportunity 149 4.750000 0.8552303 0.0700632 1.000000 6 -0.8811297 1.6893972
T2: Opportunity 149 4.703020 0.8273049 0.0677755 1.750000 6 -0.8736371 1.0934845
T3: Opportunity 149 4.632550 0.8530337 0.0698832 1.500000 6 -0.6227168 1.1425653
T4: Opportunity 149 4.590604 0.8953779 0.0733522 1.250000 6 -0.7417118 1.2262596
T5: Opportunity 149 4.577181 0.8630454 0.0707034 1.000000 6 -0.7931312 1.7889172
T6: Opportunity 149 4.572148 0.9001198 0.0737407 1.250000 6 -0.6369444 0.9964148

Plot - IMI Change

se <- function(x) sqrt(var(x)/length(x))

imi_time_plot_df <- embrace %>% 
   select(randomization, catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6, manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6, opportunity_t1,  opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6, manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6, opportunity_t1,  opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Mindset= as.factor(
    case_when(grepl("catastrophe_t", name) ~ "Catastrophe",
              grepl("manageable_t", name) ~ "Manageable",
              grepl("opportunity_t", name) ~ "Opportunity"))) %>%
  group_by(Mindset, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


imi_time_plot <- imi_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=Agreement-std_err, ymax=Agreement+std_err), width=.1) +
    geom_line() + 
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    scale_y_continuous(limits=c(2.5, 5), breaks=seq(2.5,5,0.5)) +
    facet_grid(~Mindset)

print(imi_time_plot)

Body Mindsets (BMI)

Table - BMI Change

#Mindset Intervention
body_mindset_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Adversary"=adversary_t1, "T2: Adversary"=adversary_t2, "T3: Adversary"=adversary_t3, "T4: Adversary"=adversary_t4, "T5: Adversary"=adversary_t5, "T6: Adversary"=adversary_t6, "T1: Capable"=capable_t1, "T2: Capable"=capable_t2, "T3: Capable"=capable_t3, "T4: Capable"=capable_t4, "T5: Capable"=capable_t5, "T6: Capable"=capable_t6, "T1: Responsive"=responsive_t1,  "T2: Responsive"=responsive_t2, "T3: Responsive"=responsive_t3, "T4: Responsive"=responsive_t4, "T5: Responsive"=responsive_t5, "T6: Responsive"=responsive_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(body_mindset_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Adversary Mindset", 1, 6) %>%
  kableExtra::pack_rows("Capable Mindset", 7, 12) %>%
  kableExtra::pack_rows("Responsive Mindset", 13, 18)
n mean sd se min max skew kurtosis
Adversary Mindset
T1: Adversary 148 2.562500 1.1379639 0.0935401 1.000000 5.50 0.3911969 -0.7597377
T2: Adversary 148 2.403716 1.0278948 0.0844924 1.000000 6.00 0.6156029 -0.1315325
T3: Adversary 148 2.358108 1.0793998 0.0887261 1.000000 5.25 0.6201267 -0.5990946
T4: Adversary 148 2.386824 1.1124429 0.0914422 1.000000 5.00 0.6018238 -0.7626330
T5: Adversary 148 2.222973 1.0223419 0.0840360 1.000000 4.75 0.6972981 -0.4326720
T6: Adversary 148 2.244932 1.0274587 0.0844566 1.000000 5.50 0.8080671 0.0265740
Capable Mindset
T1: Capable 148 3.984234 1.0471387 0.0860743 1.000000 6.00 -0.6065936 0.4921191
T2: Capable 148 4.353604 0.9300772 0.0764519 1.000000 6.00 -0.7302676 1.0490705
T3: Capable 148 4.427928 0.9380191 0.0771047 1.666667 6.00 -0.5489336 -0.0141457
T4: Capable 148 4.378378 0.9615815 0.0790415 1.000000 6.00 -0.6829048 0.6380724
T5: Capable 148 4.527027 0.9508031 0.0781555 1.333333 6.00 -0.7127135 0.6679286
T6: Capable 148 4.531531 1.0263629 0.0843665 1.000000 6.00 -0.8080486 0.7503028
Responsive Mindset
T1: Responsive 148 4.277027 0.9055039 0.0744320 1.333333 6.00 -0.3648875 0.2850306
T2: Responsive 148 4.783784 0.7114917 0.0584843 2.666667 6.00 0.0831334 -0.4070842
T3: Responsive 148 4.831081 0.7534216 0.0619309 2.333333 6.00 -0.3159918 -0.1596956
T4: Responsive 148 4.756757 0.7983303 0.0656223 2.000000 6.00 -0.5186924 0.3892664
T5: Responsive 148 4.903153 0.7511678 0.0617456 2.666667 6.00 -0.2483905 -0.6076727
T6: Responsive 148 4.887387 0.8020703 0.0659298 2.666667 6.00 -0.4790216 -0.1909605
#TAU Control 
body_mindset_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Adversary"=adversary_t1, "T2: Adversary"=adversary_t2, "T3: Adversary"=adversary_t3, "T4: Adversary"=adversary_t4, "T5: Adversary"=adversary_t5, "T6: Adversary"=adversary_t6, "T1: Capable"=capable_t1, "T2: Capable"=capable_t2, "T3: Capable"=capable_t3, "T4: Capable"=capable_t4, "T5: Capable"=capable_t5, "T6: Capable"=capable_t6, "T1: Responsive"=responsive_t1,  "T2: Responsive"=responsive_t2, "T3: Responsive"=responsive_t3, "T4: Responsive"=responsive_t4, "T5: Responsive"=responsive_t5, "T6: Responsive"=responsive_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(body_mindset_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Adversary Mindset", 1, 6) %>%
  kableExtra::pack_rows("Capable Mindset", 7, 12) %>%
  kableExtra::pack_rows("Responsive Mindset", 13, 18)
n mean sd se min max skew kurtosis
Adversary Mindset
T1: Adversary 149 2.491611 1.1446911 0.0937767 1.000000 6 0.6989638 -0.1027939
T2: Adversary 149 2.543624 1.2586631 0.1031137 1.000000 6 0.6635499 -0.3000089
T3: Adversary 149 2.560403 1.1778685 0.0964947 1.000000 6 0.5412628 -0.3606694
T4: Adversary 149 2.620805 1.3024807 0.1067034 1.000000 6 0.4873856 -0.5180805
T5: Adversary 149 2.667785 1.2645915 0.1035994 1.000000 6 0.5601462 -0.4010683
T6: Adversary 149 2.634228 1.2535502 0.1026948 1.000000 6 0.5473395 -0.4466366
Capable Mindset
T1: Capable 149 4.087248 0.9920071 0.0812684 1.666667 6 -0.0908897 -0.2214288
T2: Capable 149 4.114094 1.0110291 0.0828267 1.000000 6 -0.3586386 0.1803593
T3: Capable 149 4.080537 1.0847364 0.0888651 1.000000 6 -0.3092887 -0.1558182
T4: Capable 149 4.100671 1.1361549 0.0930774 1.000000 6 -0.4543887 0.1779284
T5: Capable 149 3.910515 1.1194639 0.0917101 1.000000 6 -0.4870283 0.0653314
T6: Capable 149 4.089486 1.0798669 0.0884661 1.000000 6 -0.3035625 0.0972481
Responsive Mindset
T1: Responsive 149 4.129754 1.0264603 0.0840909 2.000000 6 -0.2950407 -0.6929824
T2: Responsive 149 4.241611 0.9442882 0.0773591 1.666667 6 -0.0919384 -0.1921824
T3: Responsive 149 4.243848 1.0153705 0.0831824 1.333333 6 -0.3317528 0.1222451
T4: Responsive 149 4.261745 1.0444791 0.0855671 1.000000 6 -0.3063407 0.0398002
T5: Responsive 149 4.154362 1.0219244 0.0837193 1.000000 6 -0.5129501 0.3009656
T6: Responsive 149 4.299776 1.0124933 0.0829467 1.666667 6 -0.2941925 -0.0795750

Plot - BMI Change

se <- function(x) sqrt(var(x)/length(x))

bmi_time_plot_df <- embrace %>% 
   select(randomization, adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6, capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6, responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6, capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6, responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Mindset= as.factor(
    case_when(grepl("adversary_t", name) ~ "Adversary",
              grepl("capable_t", name) ~ "Capable",
              grepl("responsive_t", name) ~ "Responsive"))) %>%
  group_by(Mindset, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


bmi_time_plot <- bmi_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Mindset)

print(bmi_time_plot)

Functional Assessment of Cancer Therapy (FACT-G)

Table - FACT-G Change

#Mindset Intervention
fact_g_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Total"=factg_total_t1, "T2: Total"=factg_total_t2, "T3: Total"=factg_total_t3, "T4: Total"=factg_total_t4, "T5: Total"=factg_total_t5, "T6: Total"=factg_total_t6, "T1: Physical Wellbeing"=factg_physical_t1, "T2: Physical Wellbeing"=factg_physical_t2, "T3: Physical Wellbeing"=factg_physical_t3, "T4: Physical Wellbeing"=factg_physical_t4, "T5: Physical Wellbeing"=factg_physical_t5, "T6: Physical Wellbeing"=factg_physical_t6, "T1: Social Wellbeing"=factg_social_t1, "T2: Social Wellbeing"=factg_social_t2, "T3: Social Wellbeing"=factg_social_t3, "T4: Social Wellbeing"=factg_social_t4, "T5: Social Wellbeing"=factg_social_t5, "T6: Social Wellbeing"=factg_social_t6, "T1: Emotional Wellbeing"=factg_emotional_t1, "T2: Emotional Wellbeing"=factg_emotional_t2, "T3: Emotional Wellbeing"=factg_emotional_t3, "T4: Emotional Wellbeing"=factg_emotional_t4, "T5: Emotional Wellbeing"=factg_emotional_t5, "T6: Emotional Wellbeing"=factg_emotional_t6, "T1: Functional Wellbeing"=factg_functional_t1, "T2: Functional Wellbeing"=factg_functional_t2, "T3: Functional Wellbeing"=factg_functional_t3, "T4: Functional Wellbeing"=factg_functional_t4, "T5: Functional Wellbeing"=factg_functional_t5, "T6: Functional Wellbeing"=factg_functional_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(fact_g_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Total Score", 1, 6) %>%  
  kableExtra::pack_rows("Physical Wellbeing", 7, 12) %>%
  kableExtra::pack_rows("Social Wellbeing", 13, 18) %>%
  kableExtra::pack_rows("Emotional Wellbeing", 19, 24) %>%
  kableExtra::pack_rows("Functional Wellbeing", 25, 30)
n mean sd se min max skew kurtosis
Total Score
T1: Total 148 70.33784 16.855349 1.3855011 18 101 -0.3924329 -0.0871991
T2: Total 148 71.92568 17.334677 1.4249017 13 101 -0.5768329 0.0584580
T3: Total 148 72.53378 17.390049 1.4294533 16 103 -0.6746070 0.2895929
T4: Total 148 73.06757 17.084688 1.4043527 11 104 -0.6783238 0.6250097
T5: Total 148 75.41216 16.809832 1.3817597 18 104 -0.5758657 0.0175160
T6: Total 148 75.20270 16.799724 1.3809288 18 103 -0.4876774 -0.2179016
Physical Wellbeing
T1: Physical Wellbeing 148 19.56757 5.967214 0.4905020 3 28 -0.5981387 -0.2668647
T2: Physical Wellbeing 148 19.53378 6.472774 0.5320588 0 28 -0.7043059 -0.2854917
T3: Physical Wellbeing 148 19.56081 6.129250 0.5038212 1 28 -0.7472180 0.0949271
T4: Physical Wellbeing 148 19.89189 5.985396 0.4919965 0 28 -0.9031576 0.5761290
T5: Physical Wellbeing 148 19.93243 5.901300 0.4850838 4 28 -0.7740043 -0.1760939
T6: Physical Wellbeing 148 20.02703 5.782858 0.4753480 0 28 -0.9617522 0.6710523
Social Wellbeing
T1: Social Wellbeing 148 18.40541 5.169031 0.4248917 1 24 -1.0258496 0.5191065
T2: Social Wellbeing 148 18.14189 5.053469 0.4153926 0 24 -1.1135891 1.0775446
T3: Social Wellbeing 148 18.45270 4.805516 0.3950110 1 24 -0.9967699 0.7116824
T4: Social Wellbeing 148 18.17568 4.740499 0.3896666 1 24 -0.9757303 0.8856727
T5: Social Wellbeing 148 18.98649 4.900349 0.4028062 2 24 -1.2107927 1.0350209
T6: Social Wellbeing 148 18.79054 4.999664 0.4109699 1 24 -1.0267288 0.6320057
Emotional Wellbeing
T1: Emotional Wellbeing 148 15.62162 4.457517 0.3664057 2 24 -0.5581624 0.0841208
T2: Emotional Wellbeing 148 17.12838 4.144138 0.3406461 2 24 -0.8703455 0.7159130
T3: Emotional Wellbeing 148 17.08784 4.272884 0.3512289 3 24 -1.1103868 1.1919422
T4: Emotional Wellbeing 148 17.33108 4.510590 0.3707682 1 24 -1.0716394 1.1425905
T5: Emotional Wellbeing 148 17.93919 4.214046 0.3463924 5 24 -0.9984953 0.5583270
T6: Emotional Wellbeing 148 17.86486 4.588730 0.3771913 3 24 -1.1178088 1.1767934
Functional Wellbeing
T1: Functional Wellbeing 148 16.74324 5.946612 0.4888085 3 28 -0.0745269 -0.6879400
T2: Functional Wellbeing 148 17.12162 6.101082 0.5015059 2 28 -0.1790106 -0.6889573
T3: Functional Wellbeing 148 17.43243 6.065585 0.4985880 1 28 -0.3024170 -0.4690561
T4: Functional Wellbeing 148 17.66892 5.832572 0.4794344 2 28 -0.1974623 -0.6405459
T5: Functional Wellbeing 148 18.55405 5.681194 0.4669913 5 28 -0.1775142 -0.8085894
T6: Functional Wellbeing 148 18.52027 5.730298 0.4710276 5 28 -0.2271542 -0.7435538
#TAU Control 
fact_g_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Total"=factg_total_t1, "T2: Total"=factg_total_t2, "T3: Total"=factg_total_t3, "T4: Total"=factg_total_t4, "T5: Total"=factg_total_t5, "T6: Total"=factg_total_t6, "T1: Physical Wellbeing"=factg_physical_t1, "T2: Physical Wellbeing"=factg_physical_t2, "T3: Physical Wellbeing"=factg_physical_t3, "T4: Physical Wellbeing"=factg_physical_t4, "T5: Physical Wellbeing"=factg_physical_t5, "T6: Physical Wellbeing"=factg_physical_t6, "T1: Social Wellbeing"=factg_social_t1, "T2: Social Wellbeing"=factg_social_t2, "T3: Social Wellbeing"=factg_social_t3, "T4: Social Wellbeing"=factg_social_t4, "T5: Social Wellbeing"=factg_social_t5, "T6: Social Wellbeing"=factg_social_t6, "T1: Emotional Wellbeing"=factg_emotional_t1, "T2: Emotional Wellbeing"=factg_emotional_t2, "T3: Emotional Wellbeing"=factg_emotional_t3, "T4: Emotional Wellbeing"=factg_emotional_t4, "T5: Emotional Wellbeing"=factg_emotional_t5, "T6: Emotional Wellbeing"=factg_emotional_t6, "T1: Functional Wellbeing"=factg_functional_t1, "T2: Functional Wellbeing"=factg_functional_t2, "T3: Functional Wellbeing"=factg_functional_t3, "T4: Functional Wellbeing"=factg_functional_t4, "T5: Functional Wellbeing"=factg_functional_t5, "T6: Functional Wellbeing"=factg_functional_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(fact_g_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Total Score", 1, 6) %>%  
  kableExtra::pack_rows("Physical Wellbeing", 7, 12) %>%
  kableExtra::pack_rows("Social Wellbeing", 13, 18) %>%
  kableExtra::pack_rows("Emotional Wellbeing", 19, 24) %>%
  kableExtra::pack_rows("Functional Wellbeing", 25, 30)
n mean sd se min max skew kurtosis
Total Score
T1: Total 149 69.52349 16.117635 1.3204081 23 104 -0.1874822 -0.1839650
T2: Total 149 68.78523 18.149367 1.4868541 14 104 -0.3670269 0.0246533
T3: Total 149 68.07383 17.839030 1.4614303 15 104 -0.2601606 -0.0086649
T4: Total 149 68.53691 18.564178 1.5208367 12 104 -0.2245702 -0.3032320
T5: Total 149 68.11409 18.211791 1.4919680 17 104 -0.2273156 -0.2486506
T6: Total 149 69.55705 18.639316 1.5269922 20 104 -0.4287663 -0.0506671
Physical Wellbeing
T1: Physical Wellbeing 149 18.47651 6.390009 0.5234899 0 28 -0.5282329 -0.2891632
T2: Physical Wellbeing 149 18.02685 6.867419 0.5626008 0 28 -0.4163923 -0.7381832
T3: Physical Wellbeing 149 17.69128 6.827903 0.5593636 0 28 -0.3958129 -0.6098733
T4: Physical Wellbeing 149 17.95302 7.104753 0.5820440 0 28 -0.4700973 -0.6608712
T5: Physical Wellbeing 149 17.48993 6.864142 0.5623325 0 28 -0.4776177 -0.4870512
T6: Physical Wellbeing 149 18.13423 6.790950 0.5563363 0 28 -0.5511970 -0.5134956
Social Wellbeing
T1: Social Wellbeing 149 18.46309 4.756963 0.3897056 6 24 -0.6559350 -0.4009260
T2: Social Wellbeing 149 17.84564 5.085386 0.4166110 5 24 -0.6969947 -0.2870670
T3: Social Wellbeing 149 17.81879 5.037768 0.4127100 3 24 -0.5726015 -0.5411443
T4: Social Wellbeing 149 17.55705 5.165350 0.4231620 2 24 -0.6981250 -0.2659923
T5: Social Wellbeing 149 17.59732 5.082986 0.4164145 3 24 -0.7109043 -0.0987736
T6: Social Wellbeing 149 17.91275 4.964649 0.4067199 3 24 -0.7009418 -0.0016270
Emotional Wellbeing
T1: Emotional Wellbeing 149 16.15436 4.284991 0.3510401 4 24 -0.5880755 0.1958731
T2: Emotional Wellbeing 149 16.59732 4.843384 0.3967855 0 24 -0.8914905 0.7187705
T3: Emotional Wellbeing 149 16.79866 4.452421 0.3647565 1 24 -0.6311524 0.4396681
T4: Emotional Wellbeing 149 16.98658 4.724843 0.3870742 1 24 -0.6433446 0.3181307
T5: Emotional Wellbeing 149 16.83893 4.767666 0.3905824 0 24 -0.6896298 0.2711768
T6: Emotional Wellbeing 149 17.20134 4.674514 0.3829511 3 24 -0.6697150 0.1404640
Functional Wellbeing
T1: Functional Wellbeing 149 16.42953 5.702364 0.4671559 4 28 0.0213130 -0.4549335
T2: Functional Wellbeing 149 16.31544 5.934425 0.4861670 2 28 0.0458570 -0.4777196
T3: Functional Wellbeing 149 15.76510 6.149477 0.5037848 1 28 0.0877630 -0.4741815
T4: Functional Wellbeing 149 16.04027 6.203616 0.5082200 3 28 0.0326065 -0.6793264
T5: Functional Wellbeing 149 16.18792 5.975591 0.4895395 0 28 -0.1145638 -0.4041597
T6: Functional Wellbeing 149 16.30872 6.102613 0.4999455 0 28 -0.1872590 -0.3909608

Plot - FACT-G Subscale Change

se <- function(x) sqrt(var(x)/length(x))

factg_time_plot_df <- embrace %>% 
   select(randomization, factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6, factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6, factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6, factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6, factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("factg_physical_t", name) ~ "Physical Wellbeing",
              grepl("factg_social_t", name) ~ "Social Wellbeing",
              grepl("factg_emotional_t", name) ~ "Emotional Wellbeing",
              grepl("factg_functional_t", name) ~ "Functional Wellbeing"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


factg_time_plot <- factg_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale)

print(factg_time_plot)

Plot - FACT-G Total Change

factg_tot_time_plot_df <- embrace %>% 
   select(randomization, factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("factg_total_t", name) ~ "FACT-G Total Score"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


factg_tot_time_plot <- factg_tot_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1))

print(factg_tot_time_plot)

Cancer Behavior Inventory (CBI)

Table - CBI Change

#Mindset Intervention
cbi_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: CBI"=cbi_avg_t1, "T2: CBI"=cbi_avg_t2, "T3: CBI"=cbi_avg_t3, "T4: CBI"=cbi_avg_t4, "T5: CBI"=cbi_avg_t5, "T6: CBI"=cbi_avg_t6, "T1: Independence"=cbi_independence_t1, "T2: Independence"=cbi_independence_t2, "T3: Independence"=cbi_independence_t3, "T4: Independence"=cbi_independence_t4, "T5: Independence"=cbi_independence_t5, "T6: Independence"=cbi_independence_t6, "T1: Participation"=cbi_activepart_t1, "T2: Participation"=cbi_activepart_t2, "T3: Participation"=cbi_activepart_t3, "T4: Participation"=cbi_activepart_t4, "T5: Participation"=cbi_activepart_t5, "T6: Participation"=cbi_activepart_t6, "T1: Coping"=cbi_cope_t1, "T2: Coping"=cbi_cope_t2, "T3: Coping"=cbi_cope_t3, "T4: Coping"=cbi_cope_t4, "T5: Coping"=cbi_cope_t5, "T6: Coping"=cbi_cope_t6, "T1: Affect Reg"=cbi_emoreg_t1, "T2: Affect Reg"=cbi_emoreg_t2, "T3: Affect Reg"=cbi_emoreg_t3, "T4: Affect Reg"=cbi_emoreg_t4, "T5: Affect Reg"=cbi_emoreg_t5, "T6: Affect Reg"=cbi_emoreg_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cbi_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Score: CBI", 1, 6) %>%
  kableExtra::pack_rows("Independence & Attitude", 7, 12) %>%
  kableExtra::pack_rows("Participation in Care", 13, 18) %>%
  kableExtra::pack_rows("Coping and Stress", 19, 24) %>%
  kableExtra::pack_rows("Affect Regulation", 25, 30)
n mean sd se min max skew kurtosis
Avg Score: CBI
T1: CBI 148 3.597410 0.6814814 0.0560174 1.416667 5 -0.2748123 0.0973868
T2: CBI 148 3.692568 0.6529087 0.0536688 1.583333 5 -0.2981764 -0.1929568
T3: CBI 148 3.725788 0.6716265 0.0552074 1.666667 5 -0.5140778 0.1700804
T4: CBI 148 3.766892 0.6997165 0.0575163 1.416667 5 -0.4586000 0.2039802
T5: CBI 148 3.963964 0.6750579 0.0554894 1.333333 5 -0.7214612 0.8172543
T6: CBI 148 3.953829 0.6995358 0.0575015 1.833333 5 -0.5860386 0.1108302
Independence & Attitude
T1: Independence 148 3.738739 0.8380055 0.0688836 1.333333 5 -0.3759728 -0.3369854
T2: Independence 148 3.842342 0.8131998 0.0668446 1.333333 5 -0.4555529 -0.1894448
T3: Independence 148 3.819820 0.8177716 0.0672204 1.333333 5 -0.6405760 0.0390651
T4: Independence 148 3.905405 0.8500950 0.0698774 1.666667 5 -0.6227047 -0.2485370
T5: Independence 148 4.085586 0.7873927 0.0647233 1.666667 5 -0.7608974 -0.0127282
T6: Independence 148 4.114865 0.7812164 0.0642156 1.666667 5 -0.8995190 0.4171283
Participation in Care
T1: Participation 148 4.358108 0.7627388 0.0626967 1.500000 5 -1.0951669 0.7613636
T2: Participation 148 4.435811 0.7610421 0.0625573 1.500000 5 -1.5894678 2.6691185
T3: Participation 148 4.381757 0.7175200 0.0589798 1.500000 5 -1.1483809 1.3174255
T4: Participation 148 4.341216 0.8082002 0.0664337 1.000000 5 -1.3732718 1.9397919
T5: Participation 148 4.493243 0.7445642 0.0612028 1.000000 5 -1.6467266 2.9938996
T6: Participation 148 4.503378 0.7083002 0.0582219 1.500000 5 -1.5662756 2.3770019
Coping and Stress
T1: Coping 148 3.145270 0.8820843 0.0725069 1.000000 5 0.0745714 -0.6460672
T2: Coping 148 3.295608 0.7964831 0.0654705 1.250000 5 0.0203705 -0.1573825
T3: Coping 148 3.304054 0.8373410 0.0688290 1.000000 5 -0.1005531 -0.3148446
T4: Coping 148 3.386824 0.8652073 0.0711196 1.000000 5 -0.2340882 -0.4257547
T5: Coping 148 3.653716 0.8004695 0.0657982 1.000000 5 -0.3073757 -0.1960820
T6: Coping 148 3.619932 0.8408519 0.0691176 1.750000 5 -0.1585143 -0.8729782
Affect Regulation
T1: Affect Reg 148 3.551802 0.9074420 0.0745913 1.000000 5 -0.2547645 -0.2703979
T2: Affect Reg 148 3.576577 0.9607526 0.0789734 1.000000 5 -0.5606880 -0.1039589
T3: Affect Reg 148 3.756757 0.8811408 0.0724293 1.333333 5 -0.5829972 -0.0550024
T4: Affect Reg 148 3.752252 0.8634001 0.0709711 1.333333 5 -0.3258930 -0.4616547
T5: Affect Reg 148 3.903153 0.8817057 0.0724758 1.000000 5 -0.5917799 0.0960830
T6: Affect Reg 148 3.871622 0.9089491 0.0747152 1.333333 5 -0.5490554 -0.3294516
#TAU Control 
cbi_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: CBI"=cbi_avg_t1, "T2: CBI"=cbi_avg_t2, "T3: CBI"=cbi_avg_t3, "T4: CBI"=cbi_avg_t4, "T5: CBI"=cbi_avg_t5, "T6: CBI"=cbi_avg_t6, "T1: Independence"=cbi_independence_t1, "T2: Independence"=cbi_independence_t2, "T3: Independence"=cbi_independence_t3, "T4: Independence"=cbi_independence_t4, "T5: Independence"=cbi_independence_t5, "T6: Independence"=cbi_independence_t6, "T1: Participation"=cbi_activepart_t1, "T2: Participation"=cbi_activepart_t2, "T3: Participation"=cbi_activepart_t3, "T4: Participation"=cbi_activepart_t4, "T5: Participation"=cbi_activepart_t5, "T6: Participation"=cbi_activepart_t6, "T1: Coping"=cbi_cope_t1, "T2: Coping"=cbi_cope_t2, "T3: Coping"=cbi_cope_t3, "T4: Coping"=cbi_cope_t4, "T5: Coping"=cbi_cope_t5, "T6: Coping"=cbi_cope_t6, "T1: Affect Reg"=cbi_emoreg_t1, "T2: Affect Reg"=cbi_emoreg_t2, "T3: Affect Reg"=cbi_emoreg_t3, "T4: Affect Reg"=cbi_emoreg_t4, "T5: Affect Reg"=cbi_emoreg_t5, "T6: Affect Reg"=cbi_emoreg_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cbi_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Score: CBI", 1, 6) %>%
  kableExtra::pack_rows("Independence & Attitude", 7, 12) %>%
  kableExtra::pack_rows("Participation in Care", 13, 18) %>%
  kableExtra::pack_rows("Coping and Stress", 19, 24) %>%
  kableExtra::pack_rows("Affect Regulation", 25, 30)
n mean sd se min max skew kurtosis
Avg Score: CBI
T1: CBI 149 3.530761 0.7365759 0.0603426 1.416667 5 -0.3293624 0.1224114
T2: CBI 149 3.567114 0.7632512 0.0625280 1.416667 5 -0.3647484 0.0011351
T3: CBI 149 3.546421 0.8044769 0.0659053 1.166667 5 -0.5782448 0.4901553
T4: CBI 149 3.578300 0.8585284 0.0703334 1.250000 5 -0.3965846 -0.0419778
T5: CBI 149 3.559284 0.8825179 0.0722987 1.000000 5 -0.4728748 0.2151259
T6: CBI 149 3.658837 0.8147904 0.0667502 1.083333 5 -0.4713730 0.1920096
Independence & Attitude
T1: Independence 149 3.691275 0.7770101 0.0636551 1.666667 5 -0.1330870 -0.5530179
T2: Independence 149 3.702461 0.8683118 0.0711349 1.333333 5 -0.3947624 -0.2797467
T3: Independence 149 3.691275 0.8656733 0.0709187 1.333333 5 -0.3586959 -0.3680473
T4: Independence 149 3.664429 0.9791341 0.0802138 1.000000 5 -0.5018787 -0.2715768
T5: Independence 149 3.668904 0.9589915 0.0785636 1.000000 5 -0.4801642 -0.0235959
T6: Independence 149 3.838926 0.8738820 0.0715912 1.000000 5 -0.6021270 -0.0098774
Participation in Care
T1: Participation 149 4.134228 0.9614721 0.0787669 1.000000 5 -1.0379118 0.4228763
T2: Participation 149 4.164429 0.9434034 0.0772866 1.000000 5 -1.2070880 1.0735683
T3: Participation 149 4.107383 0.9873589 0.0808876 1.000000 5 -1.3851890 1.8467070
T4: Participation 149 4.151007 0.9720845 0.0796363 1.000000 5 -1.2420390 1.2280934
T5: Participation 149 4.050336 1.0029432 0.0821643 1.000000 5 -1.2598148 1.3408008
T6: Participation 149 4.174497 0.9654963 0.0790965 1.000000 5 -1.4803111 2.2043840
Coping and Stress
T1: Coping 149 3.120805 0.8365611 0.0685338 1.000000 5 0.1051054 0.1971301
T2: Coping 149 3.206376 0.8731794 0.0715336 1.250000 5 0.0428337 -0.3908925
T3: Coping 149 3.184564 0.8893115 0.0728552 1.000000 5 -0.2119797 -0.0613356
T4: Coping 149 3.231544 0.9682868 0.0793251 1.000000 5 -0.0532758 -0.5310908
T5: Coping 149 3.268456 0.9700298 0.0794679 1.000000 5 -0.0788772 -0.4941080
T6: Coping 149 3.348993 0.9312602 0.0762918 1.000000 5 -0.0290599 -0.2350123
Affect Regulation
T1: Affect Reg 149 3.514541 0.9519091 0.0779834 1.000000 5 -0.3761743 -0.2434315
T2: Affect Reg 149 3.514541 0.9074957 0.0743449 1.000000 5 -0.2168356 -0.3933984
T3: Affect Reg 149 3.510067 0.9898562 0.0810922 1.000000 5 -0.4006158 -0.4045240
T4: Affect Reg 149 3.572707 1.0281916 0.0842327 1.000000 5 -0.4431515 -0.3993811
T5: Affect Reg 149 3.510067 1.0502088 0.0860365 1.000000 5 -0.3759706 -0.5070238
T6: Affect Reg 149 3.548098 0.9932761 0.0813723 1.000000 5 -0.3500282 -0.3991782

Plot - CBI Subscale Change

se <- function(x) sqrt(var(x)/length(x))

cbi_time_plot_df <- embrace %>% 
   select(randomization, cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6, cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6, cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("cbi_independence_t", name) ~ "Independence and Positive Attitude",
              grepl("cbi_activepart_t", name) ~ "Participation in Care",
              grepl("cbi_cope_t", name) ~ "Coping Stress Management",
              grepl("cbi_emoreg_t", name) ~ "Managing Affec"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


cbi_time_plot <- cbi_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale)

print(cbi_time_plot)

Plot - CBI Total Change

se <- function(x) sqrt(var(x)/length(x))

cbi_tot_time_plot_df <- embrace %>% 
   select(randomization, cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Value= as.factor(
    case_when(grepl("cbi_avg_t", name) ~ "CBI Total Score"))) %>%
  group_by(Value, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


cbi_tot_time_plot <- cbi_tot_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1))

print(cbi_tot_time_plot)

Bodily Threat Monitoring Scale (BTMS)

Table - BTMS Change

#Mindset Intervention
bti_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Vigilance"=bti_vigilance_t1, "T2: Vigilance"=bti_vigilance_t2, "T3: Vigilance"=bti_vigilance_t3, "T4: Vigilance"=bti_vigilance_t4, "T5: Vigilance"=bti_vigilance_t5, "T6: Vigilance"=bti_vigilance_t6, "T1: Threat"=bti_threat_t1, "T2: Threat"=bti_threat_t2, "T3: Threat"=bti_threat_t3, "T4: Threat"=bti_threat_t4, "T5: Threat"=bti_threat_t5, "T6: Threat"=bti_threat_t6, "T1: Fear"=bti_fear_t1,  "T2: Fear"=bti_fear_t2, "T3: Fear"=bti_fear_t3, "T4: Fear"=bti_fear_t4, "T5: Fear"=bti_fear_t5, "T6: Fear"=bti_fear_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(bti_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Vigilance", 1, 6) %>%
  kableExtra::pack_rows("Threat", 7, 12) %>%
  kableExtra::pack_rows("Fear", 13, 18)
n mean sd se min max skew kurtosis
Vigilance
T1: Vigilance 148 2.405405 1.078576 0.0886584 0 4 -0.5436495 -0.3577285
T2: Vigilance 148 2.524775 1.054158 0.0866513 0 4 -0.6097193 -0.1254406
T3: Vigilance 148 2.495496 1.121821 0.0922131 0 4 -0.5443565 -0.4933870
T4: Vigilance 148 2.436937 1.127443 0.0926753 0 4 -0.3776158 -0.7362508
T5: Vigilance 148 2.369369 1.119561 0.0920273 0 4 -0.3969697 -0.7337383
T6: Vigilance 148 2.315315 1.219509 0.1002430 0 4 -0.3089276 -1.0006012
Threat
T1: Threat 148 1.719595 1.040386 0.0855192 0 4 0.1326708 -0.8392484
T2: Threat 148 1.815878 1.051546 0.0864366 0 4 0.1413093 -0.7353408
T3: Threat 148 1.815878 1.024513 0.0842145 0 4 0.1412426 -0.6686879
T4: Threat 148 1.880068 1.082667 0.0889947 0 4 0.1248769 -0.7647553
T5: Threat 148 1.805743 1.065388 0.0875744 0 4 0.2266053 -0.6053521
T6: Threat 148 1.807432 1.103140 0.0906775 0 4 0.2734944 -0.6712779
Fear
T1: Fear 148 1.408784 1.057508 0.0869266 0 4 0.5152948 -0.5005598
T2: Fear 148 1.356419 1.120727 0.0921232 0 4 0.6600715 -0.5092432
T3: Fear 148 1.398649 1.139444 0.0936617 0 4 0.6425476 -0.5919842
T4: Fear 148 1.429054 1.121467 0.0921840 0 4 0.5431020 -0.6058904
T5: Fear 148 1.327703 1.072163 0.0881313 0 4 0.7003986 -0.1864455
T6: Fear 148 1.231419 1.100823 0.0904871 0 4 0.8766188 0.1053816
#TAU Control 
bti_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Vigilance"=bti_vigilance_t1, "T2: Vigilance"=bti_vigilance_t2, "T3: Vigilance"=bti_vigilance_t3, "T4: Vigilance"=bti_vigilance_t4, "T5: Vigilance"=bti_vigilance_t5, "T6: Vigilance"=bti_vigilance_t6, "T1: Threat"=bti_threat_t1, "T2: Threat"=bti_threat_t2, "T3: Threat"=bti_threat_t3, "T4: Threat"=bti_threat_t4, "T5: Threat"=bti_threat_t5, "T6: Threat"=bti_threat_t6, "T1: Fear"=bti_fear_t1,  "T2: Fear"=bti_fear_t2, "T3: Fear"=bti_fear_t3, "T4: Fear"=bti_fear_t4, "T5: Fear"=bti_fear_t5, "T6: Fear"=bti_fear_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(bti_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Vigilance", 1, 6) %>%
  kableExtra::pack_rows("Threat", 7, 12) %>%
  kableExtra::pack_rows("Fear", 13, 18)
n mean sd se min max skew kurtosis
Vigilance
T1: Vigilance 149 2.557047 1.0328268 0.0846125 0 4 -0.6587696 -0.1063216
T2: Vigilance 149 2.740492 0.9794017 0.0802357 0 4 -0.8338583 0.4270079
T3: Vigilance 149 2.496644 1.0791621 0.0884084 0 4 -0.5598311 -0.3281319
T4: Vigilance 149 2.527964 1.0267450 0.0841142 0 4 -0.6757086 -0.0197735
T5: Vigilance 149 2.387025 1.1521407 0.0943870 0 4 -0.4919820 -0.5943727
T6: Vigilance 149 2.371365 1.1788490 0.0965751 0 4 -0.4322532 -0.7188671
Threat
T1: Threat 149 1.807047 1.0059455 0.0824103 0 4 0.0352164 -0.6469873
T2: Threat 149 1.976510 1.0370429 0.0849579 0 4 0.0605503 -0.5337098
T3: Threat 149 1.971477 1.0596764 0.0868121 0 4 -0.0566338 -0.6791965
T4: Threat 149 1.924497 1.0145499 0.0831152 0 4 -0.0010548 -0.7020409
T5: Threat 149 1.897651 1.0943704 0.0896543 0 4 -0.0753370 -0.6880648
T6: Threat 149 1.939597 1.1828772 0.0969051 0 4 -0.0111710 -0.9566494
Fear
T1: Fear 149 1.444631 1.0613948 0.0869528 0 4 0.5357732 -0.4635422
T2: Fear 149 1.500000 1.0792108 0.0884124 0 4 0.5366127 -0.5537933
T3: Fear 149 1.474832 1.1088347 0.0908393 0 4 0.5543134 -0.5466571
T4: Fear 149 1.508389 1.0863932 0.0890008 0 4 0.4288498 -0.5959698
T5: Fear 149 1.479866 1.1159610 0.0914231 0 4 0.4403990 -0.5839518
T6: Fear 149 1.468121 1.2085313 0.0990067 0 4 0.4343107 -0.9073014

Plot - BTMS Change

se <- function(x) sqrt(var(x)/length(x))

btms_time_plot_df <- embrace %>% 
   select(randomization, bti_vigilance_t1, bti_vigilance_t2, bti_vigilance_t3, bti_vigilance_t4, bti_vigilance_t5, bti_vigilance_t6, bti_threat_t1, bti_threat_t2, bti_threat_t3, bti_threat_t4, bti_threat_t5, bti_threat_t6, bti_fear_t1, bti_fear_t2, bti_fear_t3, bti_fear_t4, bti_fear_t5, bti_fear_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(bti_vigilance_t1, bti_vigilance_t2, bti_vigilance_t3, bti_vigilance_t4, bti_vigilance_t5, bti_vigilance_t6, bti_threat_t1, bti_threat_t2, bti_threat_t3, bti_threat_t4, bti_threat_t5, bti_threat_t6, bti_fear_t1, bti_fear_t2, bti_fear_t3, bti_fear_t4, bti_fear_t5, bti_fear_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("bti_vigilance_t", name) ~ "Vigilance",
              grepl("bti_threat_t", name) ~ "Threat",
              grepl("bti_fear_t", name) ~ "Fear"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


btms_time_plot <- btms_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() +
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale)

print(btms_time_plot)

Rotterdam Symptom Checklist (RSCL)

Table - RSCL Change

#Mindset Intervention
rscl_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Physical"=rscl_phys_total_t1, "T2: Physical"=rscl_phys_total_t2, "T3: Physical"=rscl_phys_total_t3, "T4: Physical"=rscl_phys_total_t4, "T5: Physical"=rscl_phys_total_t5, "T6: Physical"=rscl_phys_total_t6, "T1: Psych"=rscl_psych_total_t1, "T2: Psych"=rscl_psych_total_t2, "T3: Psych"=rscl_psych_total_t3, "T4: Psych"=rscl_psych_total_t4, "T5: Psych"=rscl_psych_total_t5, "T6: Psych"=rscl_psych_total_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(rscl_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Physical Symptom Distress", 1, 6) %>%
  kableExtra::pack_rows("Psych Symptom Distress", 7, 12) 
n mean sd se min max skew kurtosis
Physical Symptom Distress
T1: Physical 148 33.148649 8.169434 0.6715234 20 56 0.5921240 -0.2599767
T2: Physical 148 33.074324 9.191901 0.7555696 20 64 0.8413270 0.6907283
T3: Physical 148 33.662162 9.078309 0.7462324 20 68 0.8266968 0.8752230
T4: Physical 148 32.601351 8.395609 0.6901148 20 61 0.8870260 0.6401648
T5: Physical 148 31.722973 7.659258 0.6295871 20 56 0.8291891 0.6490568
T6: Physical 148 31.891892 8.089748 0.6649732 20 62 0.9220636 1.1277193
Psych Symptom Distress
T1: Psych 148 5.729730 2.149496 0.1766875 3 12 0.7943796 0.4670271
T2: Psych 148 5.675676 2.268435 0.1864642 3 12 0.8075044 0.1607474
T3: Psych 148 5.675676 2.359569 0.1939554 3 12 1.1126771 0.7226604
T4: Psych 148 5.614865 2.085008 0.1713866 3 12 0.8362486 0.5585248
T5: Psych 148 5.236486 2.177065 0.1789536 3 12 0.9316471 0.3317409
T6: Psych 148 5.317568 2.169790 0.1783556 3 12 1.0522847 1.0585452
#TAU Control 
rscl_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Physical"=rscl_phys_total_t1, "T2: Physical"=rscl_phys_total_t2, "T3: Physical"=rscl_phys_total_t3, "T4: Physical"=rscl_phys_total_t4, "T5: Physical"=rscl_phys_total_t5, "T6: Physical"=rscl_phys_total_t6, "T1: Psych"=rscl_psych_total_t1, "T2: Psych"=rscl_psych_total_t2, "T3: Psych"=rscl_psych_total_t3, "T4: Psych"=rscl_psych_total_t4, "T5: Psych"=rscl_psych_total_t5, "T6: Psych"=rscl_psych_total_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(rscl_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Physical Symptom Distress", 1, 6) %>%
  kableExtra::pack_rows("Psych Symptom Distress", 7, 12) 
n mean sd se min max skew kurtosis
Physical Symptom Distress
T1: Physical 149 34.463087 8.977091 0.7354319 20 67 0.6757024 0.4204846
T2: Physical 149 35.302013 10.529691 0.8626259 20 66 0.7157046 -0.1747086
T3: Physical 149 35.617450 10.557178 0.8648778 20 68 0.5454165 -0.3731906
T4: Physical 149 35.751678 11.108133 0.9100137 20 80 0.9116292 0.8020859
T5: Physical 149 36.033557 10.815040 0.8860026 20 79 0.9509024 1.0676504
T6: Physical 149 35.020134 10.788802 0.8838531 20 74 1.0404813 0.8901081
Psych Symptom Distress
T1: Psych 149 5.879195 2.205377 0.1806715 3 12 0.6176519 -0.0629953
T2: Psych 149 6.046980 2.383319 0.1952491 3 12 0.7359486 -0.2045701
T3: Psych 149 5.885906 2.420437 0.1982899 3 12 0.6720796 -0.1776926
T4: Psych 149 5.919463 2.395144 0.1962178 3 12 0.5808699 -0.3863840
T5: Psych 149 6.087248 2.463059 0.2017817 3 12 0.4958093 -0.5395517
T6: Psych 149 5.731544 2.456736 0.2012637 3 12 0.7786448 -0.0683543

Plot - RSCL Change

se <- function(x) sqrt(var(x)/length(x))

rscl_time_plot_df <- embrace %>% 
   select(randomization, rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("rscl_phys_total_t", name) ~ "Physical Symptom Distress",
              grepl("rscl_psych_total_t", name) ~ "Psychological Symptom Distress"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


rscl_time_plot <- rscl_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() + 
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale, scales = "free_y")

print(rscl_time_plot)

Positive & Negative Affect Scale (PANAS)

Table - PANAS Change

#Mindset Intervention
panas_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Positive"=panas_positive_t1, "T2: Positive"=panas_positive_t2, "T3: Positive"=panas_positive_t3, "T4: Positive"=panas_positive_t4, "T5: Positive"=panas_positive_t5, "T6: Positive"=panas_positive_t6, "T1: Negative"=panas_negative_t1, "T2: Negative"=panas_negative_t2, "T3: Negative"=panas_negative_t3, "T4: Negative"=panas_negative_t4, "T5: Negative"=panas_negative_t5, "T6: Negative"=panas_negative_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(panas_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Positive Affect", 1, 6) %>%
  kableExtra::pack_rows("Avg Negative Affect", 7, 12)
n mean sd se min max skew kurtosis
Avg Positive Affect
T1: Positive 148 2.766216 0.7506509 0.0617031 1.1 4.4 -0.0493809 -0.7535810
T2: Positive 148 2.856081 0.8180137 0.0672403 1.2 4.6 -0.0375292 -0.7433485
T3: Positive 148 2.918243 0.8812512 0.0724384 1.1 4.7 -0.1387903 -0.9047821
T4: Positive 148 2.868243 0.8975429 0.0737776 1.0 4.8 0.1135000 -0.8427312
T5: Positive 148 2.968919 0.8790727 0.0722593 1.2 5.0 0.0830978 -0.8929518
T6: Positive 148 2.941892 0.8962517 0.0736714 1.0 4.9 0.1254186 -0.8103416
Avg Negative Affect
T1: Negative 148 2.050000 0.7920953 0.0651098 1.0 5.0 1.0596188 0.8264902
T2: Negative 148 1.909460 0.6953038 0.0571536 1.0 4.5 0.9877785 0.8967768
T3: Negative 148 1.862838 0.6972522 0.0573138 1.0 4.4 1.2985840 1.3244344
T4: Negative 148 1.788514 0.6894268 0.0566705 1.0 5.0 1.6052722 3.6121355
T5: Negative 148 1.718919 0.6741436 0.0554143 1.0 4.5 1.3510801 1.7105320
T6: Negative 148 1.658108 0.6718857 0.0552287 1.0 4.1 1.3615279 1.5653685
#TAU Control 
panas_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Positive"=panas_positive_t1, "T2: Positive"=panas_positive_t2, "T3: Positive"=panas_positive_t3, "T4: Positive"=panas_positive_t4, "T5: Positive"=panas_positive_t5, "T6: Positive"=panas_positive_t6, "T1: Negative"=panas_negative_t1, "T2: Negative"=panas_negative_t2, "T3: Negative"=panas_negative_t3, "T4: Negative"=panas_negative_t4, "T5: Negative"=panas_negative_t5, "T6: Negative"=panas_negative_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(panas_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Positive Affect", 1, 6) %>%
  kableExtra::pack_rows("Avg Negative Affect", 7, 12)
n mean sd se min max skew kurtosis
Avg Positive Affect
T1: Positive 149 2.798658 0.8891224 0.0728397 1.2 5.0 0.2979772 -0.6729781
T2: Positive 149 2.849664 0.8601245 0.0704641 1.2 5.0 0.2731479 -0.5684488
T3: Positive 149 2.773154 0.8993715 0.0736794 1.0 5.0 0.2343512 -0.4404328
T4: Positive 149 2.728188 0.9262742 0.0758833 1.0 4.9 0.3003063 -0.5941716
T5: Positive 149 2.690604 0.9053402 0.0741684 1.0 5.0 0.4008963 -0.4757320
T6: Positive 149 2.763087 0.8637872 0.0707642 1.0 5.0 0.3708947 -0.3031879
Avg Negative Affect
T1: Negative 149 1.974497 0.7355963 0.0602624 1.0 4.7 1.1488998 1.2479294
T2: Negative 149 1.991946 0.7797710 0.0638813 1.0 4.7 0.9530384 0.4257805
T3: Negative 149 1.932215 0.7504295 0.0614776 1.0 4.5 0.9070113 0.4734940
T4: Negative 149 1.892617 0.7775650 0.0637006 1.0 5.0 1.2952368 1.8536534
T5: Negative 149 1.937584 0.7560098 0.0619347 1.0 4.6 1.0053099 0.8193616
T6: Negative 149 1.804027 0.8552603 0.0700657 1.0 5.0 1.5280984 2.1640461

Plot - PANAS Change

se <- function(x) sqrt(var(x)/length(x))

panas_time_plot_df <- embrace %>% 
   select(randomization, panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5, panas_positive_t6, panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5, panas_positive_t6, panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t2", name)~ 2, 
              grepl("_t3", name)~ 3,
              grepl("_t4", name)~ 4, 
              grepl("_t5", name)~ 5, 
              grepl("_t6", name)~ 6, 
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("panas_positive_t", name) ~ "Positive Affect",
              grepl("panas_negative_t", name) ~ "Negative Affect"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


panas_time_plot <- panas_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() + 
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale, scales = "free_y")

print(panas_time_plot)

Beliefs About Medicine Questionnaire (BMQ)

Table - BMQ Change

#Mindset Intervention
bmq_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T1: Overuse"=bmq_overuse_t1, "T5: Overuse"=bmq_overuse_t5, "T1: Harm"=bmq_harm_t1, "T5: Harm"=bmq_harm_t5) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(bmq_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg BMQ Overuse", 1, 2) %>%
  kableExtra::pack_rows("Avg BMQ Harm", 3, 4)
n mean sd se min max skew kurtosis
Avg BMQ Overuse
T1: Overuse 148 2.809122 0.7934476 0.0652210 1 5 0.1806054 -0.4897734
T5: Overuse 148 2.702703 0.7902205 0.0649557 1 5 -0.0482266 0.1403930
Avg BMQ Harm
T1: Harm 148 1.918919 0.6248920 0.0513658 1 4 0.5471632 0.1844475
T5: Harm 148 1.922297 0.7177602 0.0589995 1 5 0.9068558 1.5329962
#TAU Control 
bmq_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T1: Overuse"=bmq_overuse_t1, "T5: Overuse"=bmq_overuse_t5, "T1: Harm"=bmq_harm_t1, "T5: Harm"=bmq_harm_t5) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(bmq_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg BMQ Overuse", 1, 2) %>%
  kableExtra::pack_rows("Avg BMQ Harm", 3, 4)
n mean sd se min max skew kurtosis
Avg BMQ Overuse
T1: Overuse 149 2.803691 0.8784025 0.0719615 1 5.00 0.2765375 -0.2238207
T5: Overuse 149 2.645973 0.9268429 0.0759299 1 5.00 0.1562165 -0.4793280
Avg BMQ Harm
T1: Harm 149 2.031879 0.6773910 0.0554940 1 4.25 0.3134302 -0.2844769
T5: Harm 149 2.020134 0.7297473 0.0597832 1 4.00 0.5006303 -0.2984533

Plot - BMQ Change

se <- function(x) sqrt(var(x)/length(x))

bmq_time_plot_df <- embrace %>% 
   select(randomization, bmq_overuse_t1, bmq_overuse_t5, bmq_harm_t1, bmq_harm_t5) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(bmq_overuse_t1, bmq_overuse_t5, bmq_harm_t1, bmq_harm_t5))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t1", name) ~ 1, 
              grepl("_t5", name)~ 5
              ))) %>% 
  mutate(Subscale= as.factor(
    case_when(grepl("bmq_overuse_t", name) ~ "BMQ Overuse",
              grepl("bmq_harm_t", name) ~ "BMQ Harm"))) %>%
  group_by(Subscale, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


bmq_time_plot <- bmq_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() + 
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Subscale, scales = "free_y")

print(bmq_time_plot)

Cancer Worry Scale (CWS)

Table - CWS Change

#Mindset Intervention
cws_describe_mi <- embrace %>%
  filter(randomization=="Mindset") %>%
   select("T5: CWS"=cws_t5, "T6: CWS"=cws_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cws_describe_mi, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Cancer Worry T5", 1, 1) %>%
  kableExtra::pack_rows("Avg Cancer Worry T6", 2, 2)
n mean sd se min max skew kurtosis
Avg Cancer Worry T5
T5: CWS 148 2.299549 0.6529078 0.0536687 1 4 0.3815737 -0.2652302
Avg Cancer Worry T6
T6: CWS 148 2.308559 0.6980604 0.0573802 1 4 0.5639496 0.0844005
#TAU Control 
cws_describe_tau <- embrace %>%
  filter(randomization=="TAU") %>%
   select("T5: CWS"=cws_t5, "T6: CWS"=cws_t6) %>%
  psych::describe() %>%
  as.data.frame() %>%
  select(n, mean, sd, se, min, max, skew, kurtosis) 

kable(cws_describe_tau, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover")) %>%
  kableExtra::pack_rows("Avg Cancer Worry T5", 1, 1) %>%
  kableExtra::pack_rows("Avg Cancer Worry T6", 2, 2)
n mean sd se min max skew kurtosis
Avg Cancer Worry T5
T5: CWS 149 2.422819 0.7104231 0.0582001 1 4 -0.0002091 -0.2750763
Avg Cancer Worry T6
T6: CWS 149 2.314318 0.7289411 0.0597172 1 4 0.3271565 -0.2127068

Plot - CWS Change Over Time

se <- function(x) sqrt(var(x)/length(x))

cws_time_plot_df <- embrace %>% 
   select(randomization, cws_t5, cws_t6) %>%
  na.omit() %>%
  pivot_longer(
    cols = c(cws_t5, cws_t6))%>% 
  mutate(Timepoint=as.numeric(
    case_when(grepl("_t5", name) ~ 5, 
              grepl("_t6", name)~ 6
              ))) %>% 
  mutate(Score= as.factor(
    case_when(grepl("cws_t", name) ~ "CWS Total Score"))) %>%
  group_by(Score, Timepoint, randomization) %>%
  summarize(Agreement = mean(value),
            sd = sd(value)) %>%
  mutate(std_err = se(sd))


cws_time_plot <- cws_time_plot_df %>%
  ggplot(aes(x=Timepoint, y=Agreement, group=randomization, color=randomization)) +
    geom_errorbar(aes(ymin=(Agreement-std_err), ymax=(Agreement+std_err)), width=.1) +
    geom_line() + 
    geom_point(shape=21, color="black", fill="grey48", size=2) +
    scale_x_continuous(breaks=seq(0,6,1)) + 
    facet_wrap(~Score, scales = "free_y")

print(cws_time_plot)

Preliminary Analyses & Manipulation Check

embrace_mods <- embrace %>% 
  select(record_id, randomization, cohort, age, gender, education_cat, race_cat, cancer_stage, dx_length, cancer_type_simplified, 
        catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6,
        manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6,
        opportunity_t1, opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6,
        responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6,
        capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6,
        adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6,
        factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6,
        factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6,
        factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6,
        factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, 
        factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6, 
        cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6, 
        cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, 
        cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6,
        cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, 
        cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6, 
        rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, 
        rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6, 
        panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5,  panas_positive_t6, 
        panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6) %>%
    mutate(condition = case_when(randomization=="Mindset" ~ "Mindset",
                                 randomization=="TAU" ~ "Control")) %>%
  pivot_longer(
    cols = c(catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6,
        manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6,
        opportunity_t1, opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6,
        responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6,
        capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6,
        adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6,
        factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6,
        factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6,
        factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6,
        factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, 
        factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6, 
        cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6, 
        cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, 
        cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6,
        cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, 
        cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6, 
        rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, 
        rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6, 
        panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5,  panas_positive_t6, 
        panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6)) %>% 
  mutate(time = as.factor(
    case_when(grepl("_t1", name)~ "time 1", 
              grepl("_t2", name)~ "time 2", 
              grepl("_t3", name)~ "time 3",
              grepl("_t4", name)~ "time 4",
              grepl("_t5", name)~ "time 5",
              grepl("_t6", name)~ "time 6",
              ))) %>% 
  mutate(name = case_when(
    grepl("catastrophe_t", name) ~ "catastrophe",
    grepl("manageable_t", name) ~ "manageable",
    grepl("opportunity_t", name) ~ "opportunity",
    grepl("responsive_t", name) ~ "responsive",
    grepl("capable_t", name) ~ "capable",
    grepl("adversary_t", name) ~ "adversary",
    grepl("factg_total_t", name) ~ "factg_total",
    grepl("factg_physical_t", name) ~ "factg_physical",
    grepl("factg_social_t", name) ~ "factg_social",
    grepl("factg_emotional_t", name) ~ "factg_emotional",
    grepl("factg_functional_t", name) ~ "factg_functional",
    grepl("cbi_avg_t", name) ~ "cbi",
    grepl("cbi_activepart_t", name) ~ "cbi_activepart",
    grepl("cbi_cope_t", name) ~ "cbi_cope",
    grepl("cbi_independence_t", name) ~ "cbi_ind",
    grepl("cbi_emoreg_t", name) ~ "cbi_emoreg",
    grepl("rscl_phys_total_t", name) ~ "rscl_phys",
    grepl("rscl_psych_total_t", name) ~ "rscl_psych",
    grepl("panas_positive_t", name) ~ "panas_positive",
    grepl("panas_negative_t", name) ~ "panas_negative")) 
    

embrace_mods= embrace_mods %>% 
  pivot_wider(names_from = "name", values_from= "value") 

embrace_mods <- embrace_mods %>%
  filter(record_id != "")

embrace_mods <- embrace_mods %>%
  mutate(
    time_1=if_else(time=="time 1", 1, 0),
    time_2=if_else(time=="time 2", 1, 0),
    time_3=if_else(time=="time 3", 1, 0),
    time_4=if_else(time=="time 4", 1, 0),
    time_5=if_else(time=="time 5", 1, 0),
    time_6=if_else(time=="time 6", 1, 0))

embrace_mods <- embrace_mods %>%
  mutate(week = case_when(time=="time 1" ~ 0,
                          time=="time 2" ~ 2,
                          time=="time 3" ~ 4,
                          time=="time 4" ~ 6,
                          time=="time 5" ~ 10,
                          time=="time 6" ~ 14)) 

#Categorical variables prep
embrace_mods <- embrace_mods %>% 
   mutate(
#Gender
          female = if_else (gender == "Male", 1, 0),
          male = if_else(gender == "Female", 1, 0),

#Education
          highschool_edu = if_else(education_cat == "High School", 1, 0),
          college_edu = if_else(education_cat == "≥ Bachelor's Degree", 1, 0),

#Race
          white_race = if_else(race_cat=="White", 1, 0),
          nonwhite_race = if_else(race_cat=="Non-White", 1, 0),
#Diagnosis
          breast = if_else(cancer_type_simplified == "Breast Cancer", 1, 0),
          colon = if_else(cancer_type_simplified == "Colon/Rectal Cancer",1,0),
          gynecological = if_else(cancer_type_simplified == "Gynecological Cancers", 1, 0),
          blood = if_else(cancer_type_simplified == "Blood Cancers", 1, 0),
          other = if_else(cancer_type_simplified ==  "Other Cancers", 1, 0),
#Cancer Stage
          stage_1 = if_else(cancer_stage == "Stage 1", 1, 0),
          stage_2 = if_else(cancer_stage == "Stage 2",1,0),
          stage_3 = if_else(cancer_stage == "Stage 3", 1, 0),
          no_stage = if_else(cancer_stage == "No Stage", 1, 0),
#Cohort
          cohort_a = if_else(cohort == "A", 1, 0),
          cohort_b = if_else(cohort == "B",1,0),
          cohort_c = if_else(cohort == "C", 1, 0),
          cohort_d = if_else(cohort == "D", 1, 0),
          cohort_e = if_else(cohort ==  "E", 1, 0),
#Randomization
          condition_mindset = if_else(condition == "Mindset", 1, 0),
          condition_tau = if_else(condition ==  "Control", 1, 0))
embrace_mods_iv_change <- embrace_mods %>% 
  select(record_id, condition, time, week, catastrophe, manageable, opportunity, responsive, capable, adversary) %>%
  pivot_longer(
    cols=c(catastrophe, manageable, opportunity, responsive, capable, adversary))

Catastrophe Mindset

#Create dataframe with only the catastrophe mindset as the mindset variable.
catastrophe_slopes <- embrace_mods_iv_change %>%
  filter(name=="catastrophe")

catastrophe_slopes$record_id <- as.factor(catastrophe_slopes$record_id)

#Run Mixed Model
cat_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=catastrophe_slopes)
tab_model(cat_slopes)
  value
Predictors Estimates CI p
(Intercept) 3.36 3.20 – 3.53 <0.001
week -0.01 -0.02 – 0.00 0.165
condition [Mindset] -0.23 -0.46 – -0.00 0.047
week * condition
[Mindset]
-0.03 -0.05 – -0.02 <0.001
Random Effects
σ2 0.32
τ00 record_id 0.89
τ11 record_id.week 0.00
ρ01 record_id -0.07
ICC 0.75
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.051 / 0.762
catastrophe_slope_plot <- catastrophe_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

catastrophe_slope_plot_a <- catastrophe_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(2, 5), breaks=c(2,3,4,5)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Catastrophe Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

catastrophe_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(4.7,4.7,4.7), yend= c(2,2,2), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(4.75,4.75,4.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

#catastrophe_slope_plot_a + 
#  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(5.5,5.5,5.5), yend=c(4,4,4), colour = "slategray2", size=1.5, arrow=arrow()) +
#    annotate(x=c(1,3,9), y=c(5.75,5.75,5.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2")
## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
catastrophe_efsz <- catastrophe_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
catastrophe_efsz$cat_change = catastrophe_efsz$`time 5` - catastrophe_efsz$`time 1`
#Ensure both condition and change value are the correct format
catastrophe_efsz$condition <- as.factor(catastrophe_efsz$condition)
catastrophe_efsz$cat_change <- as.numeric(catastrophe_efsz$cat_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ cat_change,  data=catastrophe_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**cat_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.02 (1.06)   |  -0.70 (0.93)   | -0.34 (1.06)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(catastrophe_efsz$cat_change, catastrophe_efsz$condition)
## Call: cohen.d(x = catastrophe_efsz$cat_change, group = catastrophe_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.97  -0.72 -0.48
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.72
## r equivalent of difference between two means
##  data 
## -0.34
#Run a T-Test to Report T-Value 
t.test(catastrophe_efsz$cat_change ~ catastrophe_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  catastrophe_efsz$cat_change by catastrophe_efsz$condition
## t = 6.2252, df = 290.29, p-value = 1.68e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.4927727 0.9484269
## sample estimates:
## mean in group Control mean in group Mindset 
##            0.01789709           -0.70270270
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
catastrophe_efsz_t5 <- catastrophe_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
catastrophe_efsz_t5$condition <- as.factor(catastrophe_efsz_t5$condition)
catastrophe_efsz_t5$`time 5` <- as.numeric(catastrophe_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=catastrophe_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   3.35 (1.16)   |   2.61 (1.11)   |  2.98 (1.19)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(catastrophe_efsz$`time 5`, catastrophe_efsz$condition)
## Call: cohen.d(x = catastrophe_efsz$`time 5`, group = catastrophe_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.89  -0.65 -0.41
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.65
## r equivalent of difference between two means
##  data 
## -0.31
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.03; SD=1.04
    • Mindset: -0.73; SD=0.96
    • t-value: 6.62
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.76

Manageable Mindset

#Create dataframe with only the relevant mindset as the mindset variable.
manageable_slopes <- embrace_mods_iv_change %>%
  filter(name=="manageable")

manageable_slopes$record_id <- as.factor(manageable_slopes$record_id)

#Run Mixed Model
man_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=manageable_slopes)
tab_model(man_slopes)
  value
Predictors Estimates CI p
(Intercept) 4.51 4.41 – 4.62 <0.001
week -0.01 -0.01 – 0.00 0.089
condition [Mindset] 0.14 -0.01 – 0.29 0.067
week * condition
[Mindset]
0.02 0.01 – 0.03 <0.001
Random Effects
σ2 0.21
τ00 record_id 0.33
τ11 record_id.week 0.00
ρ01 record_id 0.11
ICC 0.64
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.035 / 0.655
manageable_slope_plot <- manageable_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

manageable_slope_plot_a <- manageable_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(3, 6), breaks=c(3,4,5,6)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Manageable Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

manageable_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(5.75,5.75,5.75), yend= c(3,3,3), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(5.75,5.75,5.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
manageable_efsz <- manageable_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
manageable_efsz$man_change = manageable_efsz$`time 5` - manageable_efsz$`time 1`
#Ensure both condition and change value are the correct format
manageable_efsz$condition <- as.factor(manageable_efsz$condition)
manageable_efsz$man_change <- as.numeric(manageable_efsz$man_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ man_change,  data=manageable_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**man_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.14 (0.80)   |   0.30 (0.72)   |  0.08 (0.79)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(manageable_efsz$man_change, manageable_efsz$condition)
## Call: cohen.d(x = manageable_efsz$man_change, group = manageable_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.35   0.59  0.82
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.59
## r equivalent of difference between two means
## data 
## 0.28
#Run a T-Test to Report T-Value 
t.test(manageable_efsz$man_change ~ manageable_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  manageable_efsz$man_change by manageable_efsz$condition
## t = -5.0274, df = 292.16, p-value = 8.685e-07
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.616086 -0.269427
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.1387025             0.3040541
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
manageable_efsz_t5 <- manageable_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
manageable_efsz_t5$condition <- as.factor(manageable_efsz_t5$condition)
manageable_efsz_t5$`time 5` <- as.numeric(manageable_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=manageable_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   4.43 (0.79)   |   4.86 (0.75)   |  4.64 (0.80)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(manageable_efsz$`time 5`, manageable_efsz$condition)
## Call: cohen.d(x = manageable_efsz$`time 5`, group = manageable_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.32   0.56   0.8
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.56
## r equivalent of difference between two means
## data 
## 0.27
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.13; SD=0.79
    • Mindset: 0.32; SD=0.73
    • t-value: -5.27
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.60

Opportunity Mindset

#Create dataframe with only the relevant mindset as the mindset variable.
opportunity_slopes <- embrace_mods_iv_change %>%
  filter(name=="opportunity")

opportunity_slopes$record_id <- as.factor(opportunity_slopes$record_id)

#Run Mixed Model
opp_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=opportunity_slopes)
tab_model(opp_slopes)
  value
Predictors Estimates CI p
(Intercept) 4.71 4.59 – 4.83 <0.001
week -0.01 -0.02 – -0.00 0.001
condition [Mindset] 0.05 -0.13 – 0.22 0.608
week * condition
[Mindset]
0.03 0.02 – 0.04 <0.001
Random Effects
σ2 0.17
τ00 record_id 0.50
τ11 record_id.week 0.00
ρ01 record_id -0.10
ICC 0.76
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.028 / 0.763
opportunity_slope_plot <- opportunity_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

opportunity_slope_plot_a <- opportunity_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(3, 6), breaks=c(3,4,5,6)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Opportunity Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

opportunity_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(5.7,5.7,5.7), yend= c(3,3,3), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(5.75,5.75,5.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
opportunity_efsz <- opportunity_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
opportunity_efsz$opp_change = opportunity_efsz$`time 5` - opportunity_efsz$`time 1`
#Ensure both condition and change value are the correct format
opportunity_efsz$condition <- as.factor(opportunity_efsz$condition)
opportunity_efsz$opp_change <- as.numeric(opportunity_efsz$opp_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ opp_change,  data=opportunity_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**opp_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.17 (0.74)   |   0.33 (0.73)   |  0.08 (0.77)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(opportunity_efsz$opp_change, opportunity_efsz$condition)
## Call: cohen.d(x = opportunity_efsz$opp_change, group = opportunity_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.44   0.68  0.92
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.68
## r equivalent of difference between two means
## data 
## 0.32
#Run a T-Test to Report T-Value 
t.test(opportunity_efsz$opp_change ~ opportunity_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  opportunity_efsz$opp_change by opportunity_efsz$condition
## t = -5.8513, df = 295, p-value = 1.296e-08
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.6666109 -0.3310537
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.1728188             0.3260135
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
opportunity_efsz_t5 <- opportunity_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
opportunity_efsz_t5$condition <- as.factor(opportunity_efsz_t5$condition)
opportunity_efsz_t5$`time 5` <- as.numeric(opportunity_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=opportunity_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   4.58 (0.86)   |   4.98 (0.82)   |  4.78 (0.87)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(opportunity_efsz$`time 5`, opportunity_efsz$condition)
## Call: cohen.d(x = opportunity_efsz$`time 5`, group = opportunity_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.25   0.48  0.72
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.48
## r equivalent of difference between two means
## data 
## 0.23
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.20; SD=0.72
    • Mindset: 0.34; SD=0.74
    • t-value: -6.53
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.75

Body Adversary Mindset

#Create dataframe with only the Adversary mindset as the mindset variable.
adversary_slopes <- embrace_mods_iv_change %>%
  filter(name=="adversary")

adversary_slopes$record_id <- as.factor(adversary_slopes$record_id)

#Run Mixed Model
adv_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=adversary_slopes)
tab_model(adv_slopes)
  value
Predictors Estimates CI p
(Intercept) 2.52 2.35 – 2.69 <0.001
week 0.01 0.00 – 0.02 0.031
condition [Mindset] -0.03 -0.28 – 0.22 0.805
week * condition
[Mindset]
-0.03 -0.05 – -0.02 <0.001
Random Effects
σ2 0.28
τ00 record_id 1.06
τ11 record_id.week 0.00
ρ01 record_id -0.22
ICC 0.79
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.014 / 0.790
avd_slope_plot <- adversary_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

avd_slope_plot_a <- avd_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(1, 4), breaks=c(1,2,3,4)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Body Adversary Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

avd_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(3.7,3.7,3.7), yend= c(1,1,1), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(3.75,3.75,3.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
adversary_efsz <- adversary_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
adversary_efsz$adv_change = adversary_efsz$`time 5` - adversary_efsz$`time 1`
#Ensure both condition and change value are the correct format
adversary_efsz$condition <- as.factor(adversary_efsz$condition)
adversary_efsz$opp_change <- as.numeric(adversary_efsz$adv_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ adv_change,  data=adversary_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**adv_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.18 (0.99)   |  -0.34 (0.96)   | -0.08 (1.01)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(adversary_efsz$adv_change, adversary_efsz$condition)
## Call: cohen.d(x = adversary_efsz$adv_change, group = adversary_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.76  -0.53 -0.29
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.53
## r equivalent of difference between two means
##  data 
## -0.26
#Run a T-Test to Report T-Value 
t.test(adversary_efsz$opp_change ~ adversary_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  adversary_efsz$opp_change by adversary_efsz$condition
## t = 4.5552, df = 294.68, p-value = 7.673e-06
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.2928939 0.7385092
## sample estimates:
## mean in group Control mean in group Mindset 
##             0.1761745            -0.3395270
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
adversary_efsz_t5 <- adversary_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
adversary_efsz_t5$condition <- as.factor(adversary_efsz_t5$condition)
adversary_efsz_t5$`time 5` <- as.numeric(adversary_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=adversary_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   2.67 (1.26)   |   2.22 (1.02)   |  2.45 (1.17)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(adversary_efsz$`time 5`, adversary_efsz$condition)
## Call: cohen.d(x = adversary_efsz$`time 5`, group = adversary_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.62  -0.39 -0.16
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.39
## r equivalent of difference between two means
##  data 
## -0.19
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.17; SD=1.01
    • Mindset: -0.33; SD=1.01
    • t-value: 4.30
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.49

Body Capable Mindset

#Create dataframe with only the Capable mindset as the mindset variable.
capable_slopes <- embrace_mods_iv_change %>%
  filter(name=="capable")

capable_slopes$record_id <- as.factor(capable_slopes$record_id)

#Run Mixed Model
cap_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=capable_slopes)
tab_model(cap_slopes)
  value
Predictors Estimates CI p
(Intercept) 4.10 3.95 – 4.24 <0.001
week -0.01 -0.02 – 0.00 0.268
condition [Mindset] 0.08 -0.12 – 0.29 0.424
week * condition
[Mindset]
0.04 0.02 – 0.05 <0.001
Random Effects
σ2 0.31
τ00 record_id 0.69
τ11 record_id.week 0.00
ρ01 record_id -0.11
ICC 0.71
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.031 / 0.716
cap_slope_plot <- capable_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

cap_slope_plot_a <- cap_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(3, 6), breaks=c(3,4,5,6)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Body Capable Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

cap_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(5.7,5.7,5.7), yend= c(3,3,3), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(5.75,5.75,5.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
capable_efsz <- capable_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
capable_efsz$cap_change = capable_efsz$`time 5` - capable_efsz$`time 1`
#Ensure both condition and change value are the correct format
capable_efsz$condition <- as.factor(capable_efsz$condition)
capable_efsz$cap_change <- as.numeric(capable_efsz$cap_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ cap_change,  data=capable_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**cap_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.18 (1.03)   |   0.54 (1.01)   |  0.18 (1.08)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(capable_efsz$cap_change, capable_efsz$condition)
## Call: cohen.d(x = capable_efsz$cap_change, group = capable_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.47   0.71  0.95
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.71
## r equivalent of difference between two means
## data 
## 0.33
#Run a T-Test to Report T-Value 
t.test(capable_efsz$cap_change ~ capable_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  capable_efsz$cap_change by capable_efsz$condition
## t = -6.0994, df = 294.94, p-value = 3.334e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.9516888 -0.4873644
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.1767338             0.5427928
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
capable_efsz_t5 <- capable_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
capable_efsz_t5$condition <- as.factor(capable_efsz_t5$condition)
capable_efsz_t5$`time 5` <- as.numeric(capable_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=capable_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   3.91 (1.12)   |   4.53 (0.95)   |  4.22 (1.08)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(capable_efsz$`time 5`, capable_efsz$condition)
## Call: cohen.d(x = capable_efsz$`time 5`, group = capable_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.36    0.6  0.83
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.6
## r equivalent of difference between two means
## data 
## 0.29
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.16; SD=1.01
    • Mindset: 0.52; SD=1.00
    • t-value: 6.01
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.69

Body Responsive Mindset

#Create dataframe with only the Responsive mindset as the mindset variable.
responsive_slopes <- embrace_mods_iv_change %>%
  filter(name=="responsive")

responsive_slopes$record_id <- as.factor(responsive_slopes$record_id)

#Run Mixed Model
resp_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=responsive_slopes)
tab_model(resp_slopes)
  value
Predictors Estimates CI p
(Intercept) 4.19 4.06 – 4.32 <0.001
week 0.01 -0.00 – 0.01 0.174
condition [Mindset] 0.36 0.18 – 0.55 <0.001
week * condition
[Mindset]
0.03 0.01 – 0.04 <0.001
Random Effects
σ2 0.27
τ00 record_id 0.55
τ11 record_id.week 0.00
ρ01 record_id -0.11
ICC 0.67
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.086 / 0.701
resp_slope_plot <- responsive_slopes %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

resp_slope_plot_a <- resp_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(3, 6), breaks=c(3,4,5,6)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Body Responsive Mindset Over Time Across Conditions", x="Weeks", y = "Agreement") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

resp_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(5.7,5.7,5.7), yend= c(3,3,3), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(5.75,5.75,5.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
responsive_efsz <- responsive_slopes %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
responsive_efsz$resp_change = responsive_efsz$`time 5` - responsive_efsz$`time 1`
#Ensure both condition and change value are the correct format
responsive_efsz$condition <- as.factor(responsive_efsz$condition)
responsive_efsz$resp_change <- as.numeric(responsive_efsz$resp_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ resp_change,  data=responsive_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**resp_change**             |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.02 (0.89)   |   0.63 (0.86)   |  0.32 (0.93)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(responsive_efsz$resp_change, responsive_efsz$condition)
## Call: cohen.d(x = responsive_efsz$resp_change, group = responsive_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.45   0.69  0.93
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.69
## r equivalent of difference between two means
## data 
## 0.33
#Run a T-Test to Report T-Value 
t.test(responsive_efsz$resp_change ~ responsive_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  responsive_efsz$resp_change by responsive_efsz$condition
## t = -5.9109, df = 294.76, p-value = 9.396e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.8017956 -0.4012396
## sample estimates:
## mean in group Control mean in group Mindset 
##             0.0246085             0.6261261
## Calculate Both at T5 Across Groups ## 
#Create a dataframe with only T5 times for the variable of interest
responsive_efsz_t5 <- responsive_slopes %>%
  filter(time=="time 5") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")
#Ensure both condition and change value are the correct format
responsive_efsz_t5$condition <- as.factor(responsive_efsz_t5$condition)
responsive_efsz_t5$`time 5` <- as.numeric(responsive_efsz_t5$`time 5`)
#Calculate Mean at T5 across groups and run a T Test
summary(tableby(condition ~ `time 5`,  data=responsive_efsz_t5, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**time 5**                  |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   4.15 (1.02)   |   4.90 (0.75)   |  4.53 (0.97)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(responsive_efsz$`time 5`, responsive_efsz$condition)
## Call: cohen.d(x = responsive_efsz$`time 5`, group = responsive_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.59   0.84  1.08
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.84
## r equivalent of difference between two means
## data 
## 0.39
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.02; SD=0.88
    • Mindset: 0.62; SD=0.88
    • t-value: -6.048
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.69

Primary Outcome Analysis - Effects of Intervention on Wellbeing

#Create dataframe for outcome measures (DVs). 
embrace_mods_dv_change <- embrace_mods %>% 
  select(record_id, condition, time, week, catastrophe, manageable, opportunity, responsive, capable, adversary, factg_total, factg_physical, factg_social, factg_emotional, factg_functional, cbi, cbi_activepart, cbi_cope, cbi_ind, cbi_emoreg, rscl_phys, rscl_psych, panas_positive, panas_negative) %>%
  pivot_longer(
    cols=c(catastrophe, manageable, opportunity, responsive, capable, adversary, factg_total, factg_physical, factg_social, factg_emotional, factg_functional, cbi, cbi_activepart, cbi_cope, cbi_ind, cbi_emoreg, rscl_phys, rscl_psych, panas_positive, panas_negative))

Total FACT-G Score

#Create dataframe with only the relevant variable (i.e., FACT-G Total) as the variable of interest. 
factg_slope_df <- embrace_mods_dv_change %>%
  filter(name=="factg_total")

#Run Mixed Model
factg_slopes = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=factg_slope_df)
tab_model(factg_slopes)
  value
Predictors Estimates CI p
(Intercept) 68.74 66.05 – 71.44 <0.001
week 0.00 -0.14 – 0.15 0.961
condition [Mindset] 2.20 -1.62 – 6.01 0.259
week * condition
[Mindset]
0.35 0.15 – 0.56 0.001
Random Effects
σ2 49.32
τ00 record_id 259.98
τ11 record_id.week 0.43
ρ01 record_id -0.22
ICC 0.84
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.019 / 0.842
factg_slopes <- factg_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))


factg_slope_plot_a <- factg_slopes %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
    scale_y_continuous(limits=c(65, 80), breaks=c(65,70,75,80)) + 
  labs(title="FACT-G Total Score Over Time Across Conditions",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

factg_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(79,79,79), yend= c(65,65,65), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(79,79,79), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
factg_efsz <- factg_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
factg_efsz$factg_change = factg_efsz$`time 5` - factg_efsz$`time 1`
#Ensure both condition and change value are the correct format
factg_efsz$condition <- as.factor(factg_efsz$condition)
factg_efsz$factg_change <- as.numeric(factg_efsz$factg_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ factg_change,  data=factg_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**factg_change**            |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -1.41 (14.09)  |  5.07 (12.09)   | 1.82 (13.50)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(factg_efsz$factg_change, factg_efsz$condition)
## Call: cohen.d(x = factg_efsz$factg_change, group = factg_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.26    0.5  0.73
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.5
## r equivalent of difference between two means
## data 
## 0.24
#Run a T-Test to Report T-Value 
t.test(factg_efsz$factg_change ~ factg_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  factg_efsz$factg_change by factg_efsz$condition
## t = -4.2573, df = 288.94, p-value = 2.801e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -9.481253 -3.486188
## sample estimates:
## mean in group Control mean in group Mindset 
##             -1.409396              5.074324
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -1.27; SD=14.02
    • Mindset: 5.43; SD=12.34
    • t-value: -4.45
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.51

FACT-G Physical Wellbeing

#Create dataframe with only the relevant variable (i.e., FACT-G Total) as the variable of interest.
factg_phys_slope_df <- embrace_mods_dv_change %>%
  filter(name=="factg_physical")

#Run Mixed Model
factg_phys_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=factg_phys_slope_df)
tab_model(factg_phys_slope)
  value
Predictors Estimates CI p
(Intercept) 18.11 17.11 – 19.10 <0.001
week -0.02 -0.09 – 0.04 0.446
condition [Mindset] 1.41 0.00 – 2.82 0.050
week * condition
[Mindset]
0.06 -0.03 – 0.15 0.163
Random Effects
σ2 9.96
τ00 record_id 34.03
τ11 record_id.week 0.08
ρ01 record_id -0.36
ICC 0.76
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.020 / 0.765
factg_phys_slopes <- factg_phys_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))


factg_phys_slopes_plot <- factg_phys_slopes %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("0\n(Baseline)", "2", "4", "6", "8", "10\n(Post-Intervention)", "12", "14\n(Follow Up)")) + 
    scale_y_continuous(limits=c(15, 25), breaks=c(15,16,17,18,19,20,21,22,23,24,25)) + 
  labs(title="FACT-G Physical Wellbeing Over Time Across Conditions",x="Timepoint", y = "Physical Wellbeing") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

factg_phys_slopes_plot + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(24,24,24), yend= c(15,15,15), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(24,24,24), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
phys_efsz <- factg_phys_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
phys_efsz$phys_change = phys_efsz$`time 5` - phys_efsz$`time 1`
#Ensure both condition and change value are the correct format
phys_efsz$condition <- as.factor(phys_efsz$condition)
phys_efsz$phys_change <- as.numeric(phys_efsz$phys_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ phys_change,  data=phys_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**phys_change**             |                 |                 |               |   0.038|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.99 (6.10)   |   0.36 (5.04)   | -0.31 (5.63)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(phys_efsz$phys_change, phys_efsz$condition)
## Call: cohen.d(x = phys_efsz$phys_change, group = phys_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.01   0.24  0.47
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.24
## r equivalent of difference between two means
## data 
## 0.12
#Run a T-Test to Report T-Value 
t.test(phys_efsz$phys_change ~ phys_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  phys_efsz$phys_change by phys_efsz$condition
## t = -2.0818, df = 285.67, p-value = 0.03825
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -2.62920300 -0.07368109
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.9865772             0.3648649
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.80; SD=6.08
    • Mindset: 0.27; SD=5.26
    • t-value: -1.66
    • p-value: 0.098
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.19

FACT-G Social Wellbeing

#Create dataframe with only the relevant variable (i.e., FACT-G Total) as the variable of interest.
factg_soc_slope_df <- embrace_mods_dv_change %>%
  filter(name=="factg_social")

#Run Mixed Model
factg_soc_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=factg_soc_slope_df)
tab_model(factg_soc_slope)
  value
Predictors Estimates CI p
(Intercept) 18.05 17.28 – 18.81 <0.001
week -0.03 -0.07 – 0.01 0.142
condition [Mindset] 0.16 -0.92 – 1.25 0.767
week * condition
[Mindset]
0.08 0.02 – 0.13 0.008
Random Effects
σ2 4.11
τ00 record_id 20.99
τ11 record_id.week 0.03
ρ01 record_id -0.22
ICC 0.83
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.005 / 0.836
summary(factg_soc_slope)
## Linear mixed model fit by REML ['lmerMod']
## Formula: value ~ week + condition + week:condition + (1 + week | record_id)
##    Data: factg_soc_slope_df
## 
## REML criterion at convergence: 8814
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.3868 -0.4546  0.0643  0.4704  3.9422 
## 
## Random effects:
##  Groups    Name        Variance Std.Dev. Corr 
##  record_id (Intercept) 20.98647 4.5811        
##            week         0.03281 0.1811   -0.22
##  Residual               4.10862 2.0270        
## Number of obs: 1782, groups:  record_id, 297
## 
## Fixed effects:
##                       Estimate Std. Error t value
## (Intercept)           18.04698    0.39082  46.177
## week                  -0.03020    0.02057  -1.469
## conditionMindset       0.16433    0.55364   0.297
## week:conditionMindset  0.07700    0.02913   2.643
## 
## Correlation of Fixed Effects:
##             (Intr) week   cndtnM
## week        -0.302              
## condtnMndst -0.706  0.213       
## wk:cndtnMnd  0.213 -0.706 -0.302
factg_soc_slopes <- factg_soc_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))


factg_soc_slopes_plot <- factg_soc_slopes %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("0\n(Baseline)", "2", "4", "6", "8", "10\n(Post-Intervention)", "12", "14\n(Follow Up)")) + 
    scale_y_continuous(limits=c(15, 25), breaks=c(15,16,17,18,19,20,21,22,23,24,25)) + 
  labs(title="FACT-G Social Wellbeing Over Time Across Conditions",x="Timepoint", y = "Social Wellbeing") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

factg_soc_slopes_plot + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(24,24,24), yend= c(15,15,15), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(24,24,24), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
social_efsz <- factg_soc_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
social_efsz$social_change = social_efsz$`time 5` - social_efsz$`time 1`
#Ensure both condition and change value are the correct format
social_efsz$condition <- as.factor(social_efsz$condition)
social_efsz$social_change <- as.numeric(social_efsz$social_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ social_change,  data=social_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**social_change**           |                 |                 |               |   0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.87 (3.85)   |   0.58 (3.73)   | -0.14 (3.86)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(social_efsz$social_change, social_efsz$condition)
## Call: cohen.d(x = social_efsz$social_change, group = social_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.15   0.38  0.61
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.38
## r equivalent of difference between two means
## data 
## 0.19
#Run a T-Test to Report T-Value 
t.test(social_efsz$social_change ~ social_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  social_efsz$social_change by social_efsz$condition
## t = -3.2868, df = 294.83, p-value = 0.001136
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -2.3131939 -0.5805119
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.8657718             0.5810811
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.84; SD=3.80
    • Mindset: 0.65; SD=3.75
    • t-value: -3.45
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.40

FACT-G Emotional Wellbeing

#Create dataframe with only the relevant variable (i.e., FACT-G Total) as the variable of interest.
factg_emo_slope_df <- embrace_mods_dv_change %>%
  filter(name=="factg_emotional")

#Run Mixed Model
factg_emo_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=factg_emo_slope_df)
tab_model(factg_emo_slope)
  value
Predictors Estimates CI p
(Intercept) 16.41 15.73 – 17.08 <0.001
week 0.06 0.02 – 0.10 0.004
condition [Mindset] -0.05 -1.01 – 0.90 0.917
week * condition
[Mindset]
0.08 0.02 – 0.13 0.009
Random Effects
σ2 4.42
τ00 record_id 15.75
τ11 record_id.week 0.03
ρ01 record_id -0.18
ICC 0.78
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.014 / 0.786
factg_emo_slopes <- factg_emo_slope_df %>%
  group_by(condition, name, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

factg_emo_slopes_plot <- factg_emo_slopes %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("0\n(Baseline)", "2", "4", "6", "8", "10\n(Post-Intervention)", "12", "14\n(Follow Up)")) + 
    scale_y_continuous(limits=c(12, 22), breaks=c(12,13,14,15,16,17,18,19,20,21,22)) + 
  labs(title="FACT-G Emotional Wellbeing Over Time Across Conditions",x="Timepoint", y = "Emotional Wellbeing") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

factg_emo_slopes_plot + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(21.5,21.5,21.5), yend= c(12,12,12), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(21.5,21.5,21.5), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
emotional_efsz <- factg_emo_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
emotional_efsz$emotional_change = emotional_efsz$`time 5` - emotional_efsz$`time 1`
#Ensure both condition and change value are the correct format
emotional_efsz$condition <- as.factor(emotional_efsz$condition)
emotional_efsz$emotional_change <- as.numeric(emotional_efsz$emotional_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ emotional_change,  data=emotional_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**emotional_change**        |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.68 (4.02)   |   2.32 (3.36)   |  1.50 (3.79)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(emotional_efsz$emotional_change, emotional_efsz$condition)
## Call: cohen.d(x = emotional_efsz$emotional_change, group = emotional_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.21   0.44  0.67
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.44
## r equivalent of difference between two means
## data 
## 0.22
#Run a T-Test to Report T-Value 
t.test(emotional_efsz$emotional_change ~ emotional_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  emotional_efsz$emotional_change by emotional_efsz$condition
## t = -3.7961, df = 286.62, p-value = 0.0001794
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -2.4797198 -0.7862878
## sample estimates:
## mean in group Control mean in group Mindset 
##             0.6845638             2.3175676
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.65; SD=3.99
    • Mindset: 2.39; SD=3.46
    • t-value: -4.07
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.47

FACT-G Functional Wellbeing

#Create dataframe with only the relevant variable (i.e., FACT-G Total) as the variable of interest. 
factg_funct_slope_df <- embrace_mods_dv_change %>%
  filter(name=="factg_functional")

#Run Mixed Model
factg_funct_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=factg_funct_slope_df)
tab_model(factg_funct_slope)
  value
Predictors Estimates CI p
(Intercept) 16.18 15.25 – 17.11 <0.001
week -0.00 -0.05 – 0.05 0.968
condition [Mindset] 0.67 -0.65 – 1.99 0.318
week * condition
[Mindset]
0.14 0.06 – 0.21 <0.001
Random Effects
σ2 7.02
τ00 record_id 30.70
τ11 record_id.week 0.05
ρ01 record_id -0.35
ICC 0.80
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.021 / 0.806
factg_funct_slopes <- factg_funct_slope_df %>%
  group_by(condition, name, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

factg_funct_slopes_plot <- factg_funct_slopes %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("0\n(Baseline)", "2", "4", "6", "8", "10\n(Post-Intervention)", "12", "14\n(Follow Up)")) + 
    scale_y_continuous(limits=c(12, 22), breaks=c(12,13,14,15,16,17,18,19,20,21,22)) + 
  labs(title="FACT-G Functional Wellbeing Over Time Across Conditions",x="Timepoint", y = "Functional Wellbeing") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

factg_funct_slopes_plot + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(21.5,21.5,21.5), yend= c(12,12,12), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(21.5,21.5,21.5), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
functional_efsz <- factg_funct_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
functional_efsz$functional_change = functional_efsz$`time 5` - functional_efsz$`time 1`
#Ensure both condition and change value are the correct format
functional_efsz$condition <- as.factor(functional_efsz$condition)
functional_efsz$functional_change <- as.numeric(functional_efsz$functional_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ functional_change,  data=functional_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**functional_change**       |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.24 (4.49)   |   1.81 (4.64)   |  0.78 (4.67)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(functional_efsz$functional_change, functional_efsz$condition)
## Call: cohen.d(x = functional_efsz$functional_change, group = functional_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.22   0.45  0.68
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.45
## r equivalent of difference between two means
## data 
## 0.22
#Run a T-Test to Report T-Value 
t.test(functional_efsz$functional_change ~ functional_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  functional_efsz$functional_change by functional_efsz$condition
## t = -3.8717, df = 294.55, p-value = 0.0001332
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -3.095714 -1.009129
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.2416107             1.8108108
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.29; SD=4.78
    • Mindset: 2.12; SD=4.57
    • t-value: -4.50
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.52

Secondary Outcome Analyses

Positive Affect

panas_pos_slope_df <- embrace_mods_dv_change %>%
  filter(name=="panas_positive")

#Run Mixed Model
panas_pos_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=panas_pos_slope_df)
tab_model(panas_pos_slope)
  value
Predictors Estimates CI p
(Intercept) 2.81 2.68 – 2.93 <0.001
week -0.01 -0.02 – 0.00 0.146
condition [Mindset] 0.01 -0.17 – 0.19 0.893
week * condition
[Mindset]
0.02 0.01 – 0.03 0.004
Random Effects
σ2 0.19
τ00 record_id 0.56
τ11 record_id.week 0.00
ρ01 record_id -0.21
ICC 0.74
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.007 / 0.747
pos_slope_plot <- panas_pos_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

pos_slope_plot_a <- pos_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(1, 4), breaks=c(1,2,3,4)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Positive Affect Over Time Across Conditions", x="Weeks", y = "Avg. Affect in Past Week") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

pos_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(3.7,3.7,3.7), yend= c(1,1,1), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(3.75,3.75,3.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
panas_pos_efsz <- panas_pos_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
panas_pos_efsz$panas_pos_change = panas_pos_efsz$`time 5` - panas_pos_efsz$`time 1`
#Ensure both condition and change value are the correct format
panas_pos_efsz$condition <- as.factor(panas_pos_efsz$condition)
panas_pos_efsz$panas_pos_change <- as.numeric(panas_pos_efsz$panas_pos_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ panas_pos_change,  data=panas_pos_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**panas_pos_change**        |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.11 (0.85)   |   0.20 (0.68)   |  0.05 (0.78)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(panas_pos_efsz$panas_pos_change, panas_pos_efsz$condition)
## Call: cohen.d(x = panas_pos_efsz$panas_pos_change, group = panas_pos_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.17   0.41  0.64
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.41
## r equivalent of difference between two means
## data 
##  0.2
#Run a T-Test to Report T-Value 
t.test(panas_pos_efsz$panas_pos_change ~ panas_pos_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  panas_pos_efsz$panas_pos_change by panas_pos_efsz$condition
## t = -3.4902, df = 281.55, p-value = 0.0005601
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.4860206 -0.1354922
## sample estimates:
## mean in group Control mean in group Mindset 
##            -0.1080537             0.2027027
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.12; SD=0.85
    • Mindset: 0.22; SD=0.68
    • t-value: -3.86
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.44

Negative Affect

panas_neg_slope_df <- embrace_mods_dv_change %>%
  filter(name=="panas_negative")

#Run Mixed Model
panas_neg_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=panas_neg_slope_df)
tab_model(panas_neg_slope)
  value
Predictors Estimates CI p
(Intercept) 1.99 1.88 – 2.10 <0.001
week -0.01 -0.02 – -0.00 0.002
condition [Mindset] -0.00 -0.16 – 0.16 0.986
week * condition
[Mindset]
-0.01 -0.02 – -0.01 0.003
Random Effects
σ2 0.13
τ00 record_id 0.44
τ11 record_id.week 0.00
ρ01 record_id -0.31
ICC 0.76
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.020 / 0.764
neg_slope_plot <- panas_neg_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

neg_slope_plot_a <- neg_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(1, 4), breaks=c(1,2,3,4)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Negative Affect Over Time Across Conditions", x="Weeks", y = "Avg. Affect in Past Week") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

neg_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(3.7,3.7,3.7), yend= c(1,1,1), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(3.75,3.75,3.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
panas_neg_efsz <- panas_neg_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
panas_neg_efsz$panas_neg_change = panas_neg_efsz$`time 5` - panas_neg_efsz$`time 1`
#Ensure both condition and change value are the correct format
panas_neg_efsz$condition <- as.factor(panas_neg_efsz$condition)
panas_neg_efsz$panas_neg_change <- as.numeric(panas_neg_efsz$panas_neg_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ panas_neg_change,  data=panas_neg_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**panas_neg_change**        |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |  -0.04 (0.62)   |  -0.33 (0.54)   | -0.18 (0.60)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(panas_neg_efsz$panas_neg_change, panas_neg_efsz$condition)
## Call: cohen.d(x = panas_neg_efsz$panas_neg_change, group = panas_neg_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.74  -0.51 -0.27
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.51
## r equivalent of difference between two means
##  data 
## -0.25
#Run a T-Test to Report T-Value 
t.test(panas_neg_efsz$panas_neg_change ~ panas_neg_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  panas_neg_efsz$panas_neg_change by panas_neg_efsz$condition
## t = 4.3784, df = 290.25, p-value = 1.671e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.1619331 0.4264035
## sample estimates:
## mean in group Control mean in group Mindset 
##           -0.03691275           -0.33108108
  • Significant Differences in Change Scores Between T1 & T5
    • Control: -0.03; SD=0.64
    • Mindset: -0.34; SD=0.56
    • t-value: 4.49
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.51

Coping Behavior (CBI)

cbi_slope_df <- embrace_mods_dv_change %>%
  filter(name=="cbi")

#Run Mixed Model
cbi_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=cbi_slope_df)
tab_model(cbi_slope)
  value
Predictors Estimates CI p
(Intercept) 3.53 3.42 – 3.64 <0.001
week 0.01 0.00 – 0.01 0.036
condition [Mindset] 0.09 -0.06 – 0.24 0.251
week * condition
[Mindset]
0.02 0.01 – 0.03 <0.001
Random Effects
σ2 0.15
τ00 record_id 0.39
τ11 record_id.week 0.00
ρ01 record_id -0.08
ICC 0.73
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.034 / 0.743
cbi_slope_plot <- cbi_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

cbi_slope_plot_a <- cbi_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(3, 5), breaks=c(3,4,5)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Coping Behavior Over Time Across Conditions", x="Weeks", y = "Confidence in Engaging in Behaviors") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

cbi_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(4.7,4.7,4.7), yend= c(3,3,3), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(4.75,4.75,4.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
cbi_efsz <- cbi_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
cbi_efsz$cbi_change = cbi_efsz$`time 5` - cbi_efsz$`time 1`
#Ensure both condition and change value are the correct format
cbi_efsz$condition <- as.factor(cbi_efsz$condition)
cbi_efsz$cbi_change <- as.numeric(cbi_efsz$cbi_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ cbi_change,  data=cbi_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**cbi_change**              |                 |                 |               | < 0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.03 (0.74)   |   0.37 (0.59)   |  0.20 (0.69)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(cbi_efsz$cbi_change, cbi_efsz$condition)
## Call: cohen.d(x = cbi_efsz$cbi_change, group = cbi_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,]  0.27   0.51  0.74
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.51
## r equivalent of difference between two means
## data 
## 0.25
#Run a T-Test to Report T-Value 
t.test(cbi_efsz$cbi_change ~ cbi_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  cbi_efsz$cbi_change by cbi_efsz$condition
## t = -4.3443, df = 281.66, p-value = 1.952e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.4911930 -0.1848681
## sample estimates:
## mean in group Control mean in group Mindset 
##            0.02852349            0.36655405
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.02; SD=0.75
    • Mindset: 0.38; SD=0.60
    • t-value: -4.69
    • p-value: <0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.54

Physical Symptom Distress (RSCL)

rscl_phys_slope_df <- embrace_mods_dv_change %>%
  filter(name=="rscl_phys")

#Run Mixed Model
rscl_phys_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=rscl_phys_slope_df)
tab_model(rscl_phys_slope)
  value
Predictors Estimates CI p
(Intercept) 35.14 33.72 – 36.56 <0.001
week 0.04 -0.05 – 0.13 0.405
condition [Mindset] -1.73 -3.74 – 0.28 0.092
week * condition
[Mindset]
-0.16 -0.28 – -0.03 0.012
Random Effects
σ2 22.02
τ00 record_id 68.77
τ11 record_id.week 0.14
ρ01 record_id -0.22
ICC 0.76
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.021 / 0.763
rscl_phys_slope_plot <- rscl_phys_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

rscl_phys_slope_plot_a <- rscl_phys_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(30, 40), breaks=c(30,32,34,36,38,40)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Physical Symptom Distress Over Time Across Conditions", x="Weeks", y = "Total Symptom Distress") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

rscl_phys_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(39.5,39.5,39.5), yend= c(30,30,30), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(39.5,39.5,39.5), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
rscl_phys_efsz <- rscl_phys_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
rscl_phys_efsz$rscl_phys_change = rscl_phys_efsz$`time 5` - rscl_phys_efsz$`time 1`
#Ensure both condition and change value are the correct format
rscl_phys_efsz$condition <- as.factor(rscl_phys_efsz$condition)
rscl_phys_efsz$rscl_phys_change <- as.numeric(rscl_phys_efsz$rscl_phys_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ rscl_phys_change,  data=rscl_phys_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**rscl_phys_change**        |                 |                 |               |   0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   1.57 (8.12)   |  -1.43 (7.58)   |  0.08 (7.98)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(rscl_phys_efsz$rscl_phys_change, rscl_phys_efsz$condition)
## Call: cohen.d(x = rscl_phys_efsz$rscl_phys_change, group = rscl_phys_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.61  -0.38 -0.15
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.38
## r equivalent of difference between two means
##  data 
## -0.19
#Run a T-Test to Report T-Value 
t.test(rscl_phys_efsz$rscl_phys_change ~ rscl_phys_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  rscl_phys_efsz$rscl_phys_change by rscl_phys_efsz$condition
## t = 3.2885, df = 293.87, p-value = 0.00113
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  1.203033 4.789258
## sample estimates:
## mean in group Control mean in group Mindset 
##              1.570470             -1.425676
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 1.33; SD=8.21
    • Mindset: -1.56; SD=7.43
    • t-value: 3.24
    • p-value: 0.001
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.37

Psychological Symptom Distress (RSCL)

rscl_psych_slope_df <- embrace_mods_dv_change %>%
  filter(name=="rscl_psych")

#Run Mixed Model
rscl_psych_slope = lmer(value ~ week  + condition + week:condition + (1 + week | record_id), data=rscl_psych_slope_df)
tab_model(rscl_psych_slope)
  value
Predictors Estimates CI p
(Intercept) 5.97 5.63 – 6.31 <0.001
week -0.01 -0.03 – 0.01 0.452
condition [Mindset] -0.21 -0.69 – 0.27 0.390
week * condition
[Mindset]
-0.03 -0.06 – -0.00 0.045
Random Effects
σ2 1.41
τ00 record_id 3.85
τ11 record_id.week 0.00
ρ01 record_id -0.16
ICC 0.73
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.010 / 0.735
rscl_psych_slope_plot <- rscl_psych_slope_df %>%
  group_by(condition, week) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

rscl_psych_slope_plot_a <- rscl_psych_slope_plot %>%
    ggplot(aes(x=week, y=avg, group=condition, color=condition)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.15) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(4, 8), breaks=c(4,5,6,7,8)) + 
    scale_x_continuous(limits=c(0, 14), breaks=c(0,2,4,6,8,10,12,14), labels=c("Week 0\n(Baseline)", "Week 2", "Week 4", "Week 6", "Week 8", "Week 10\n(Post-Intervention)", "Week 12", "Week 14\n(Follow Up)")) + 
  labs(title="Psychological Symptom Distress Over Time Across Conditions", x="Weeks", y = "Total Symptom Distress") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5))

rscl_psych_slope_plot_a + 
  annotate("segment", x=c(1,3,9), xend=c(1,3,9), y=c(7.75,7.75,7.75), yend= c(4,4,4), colour="slategray2", alpha=0.35, size=3) +
        annotate(x=c(1,3,9), y=c(7.75,7.75,7.75), label=c("Modules\n1-3","Modules\n4-5","Modules\n6-7"), size=4, fontface="bold", geom="label", color="grey21", fill="slategray2", alpha=0.75)

## Calculate Both Using Change Scores ## 

#Create a dataframe with only T1 and T5 times for the variable of interest
rscl_psych_efsz <- rscl_psych_slope_df %>%
  filter(time=="time 5" | time=="time 1") %>%
  select(-week) %>%
  pivot_wider(names_from = "time", values_from= "value")

#Create a new variable for the change score
rscl_psych_efsz$rscl_psych_change = rscl_psych_efsz$`time 5` - rscl_psych_efsz$`time 1`
#Ensure both condition and change value are the correct format
rscl_psych_efsz$condition <- as.factor(rscl_psych_efsz$condition)
rscl_psych_efsz$rscl_psych_change <- as.numeric(rscl_psych_efsz$rscl_psych_change)

#Calculate Mean Change T1-T5 for both groups and run a T Test
summary(tableby(condition ~ rscl_psych_change,  data=rscl_psych_efsz, control=tableby.control(numeric.stats = c("meansd")), cat.stats=c("countpct")), test=TRUE, digits=2)
## 
## 
## |                            | Control (N=149) | Mindset (N=148) | Total (N=297) | p value|
## |:---------------------------|:---------------:|:---------------:|:-------------:|-------:|
## |**rscl_psych_change**       |                 |                 |               |   0.001|
## |&nbsp;&nbsp;&nbsp;Mean (SD) |   0.21 (1.95)   |  -0.49 (1.76)   | -0.14 (1.89)  |        |
#Calculate Cohen's d (Effect Size)
cohen.d(rscl_psych_efsz$rscl_psych_change, rscl_psych_efsz$condition)
## Call: cohen.d(x = rscl_psych_efsz$rscl_psych_change, group = rscl_psych_efsz$condition)
## Cohen d statistic of difference between two means
##      lower effect upper
## [1,] -0.61  -0.38 -0.15
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.38
## r equivalent of difference between two means
##  data 
## -0.19
#Run a T-Test to Report T-Value 
t.test(rscl_psych_efsz$rscl_psych_change ~ rscl_psych_efsz$condition)
## 
##  Welch Two Sample t-test
## 
## data:  rscl_psych_efsz$rscl_psych_change by rscl_psych_efsz$condition
## t = 3.2548, df = 292.54, p-value = 0.001268
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.2772403 1.1253536
## sample estimates:
## mean in group Control mean in group Mindset 
##             0.2080537            -0.4932432
  • Significant Differences in Change Scores Between T1 & T5
    • Control: 0.08; SD=1.97
    • Mindset: -0.51; SD=1.75
    • t-value: 2.78
    • p-value: 0.006
  • Effect Size of T5-T1 Change Scores Across Groups
    • Cohen’s d = 0.32

Exploratory Mechanisms - Mixed Models

#Create a new DF for exploratory models
embrace_explore <- embrace_mods %>% 
  select(record_id, condition, time, week, catastrophe, manageable, opportunity, responsive, capable, adversary, factg_total, factg_physical, factg_social, factg_emotional, factg_functional)

#Calculate mean mindset across time (btw analyses) and deviation from mean mindset (within analyses)
embrace_explore=embrace_explore %>%
  mutate(catastrophe = as.numeric(catastrophe)) %>%
  group_by(record_id) %>% 
  mutate(cat_btw = mean(catastrophe, na.rm=TRUE)) %>% #catastrophe mindset mean per participant across times
  mutate(cat_within = catastrophe-cat_btw) #participants' deviation from their individual mindset

embrace_explore=embrace_explore %>%
  mutate(manageable = as.numeric(manageable)) %>%
  group_by(record_id) %>% 
  mutate(man_btw = mean(manageable, na.rm=TRUE)) %>% #manageable mindset mean per participant across times
  mutate(man_within = manageable-man_btw) #participants' deviation from their individual mindset

embrace_explore=embrace_explore %>%
  mutate(opportunity = as.numeric(opportunity)) %>%
  group_by(record_id) %>% 
  mutate(opp_btw = mean(opportunity, na.rm=TRUE)) %>% #opportunity mindset mean per participant across times
  mutate(opp_within = opportunity-opp_btw) #participants' deviation from their individual mindset

embrace_explore$record_id <- as.factor(embrace_explore$record_id)

Catastrophe Mindset

Mixed Effects Model

catastrophe_explore <- lmer(factg_total ~ week +
                            cat_btw + cat_within + 
                            (cat_within*week) +
                            (cat_btw*week) + (1|record_id), 
                            data=embrace_explore)

tab_model(catastrophe_explore, show.std = T)
  factg total
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 105.29 -0.01 100.83 – 109.74 -0.08 – 0.07 <0.001
week 0.04 0.02 -0.20 – 0.27 -0.00 – 0.04 0.746
cat_btw -11.23 -0.64 -12.60 – -9.87 -0.71 – -0.56 <0.001
cat_within -3.46 -0.16 -4.45 – -2.47 -0.18 – -0.14 <0.001
week * cat_within -0.24 -0.04 -0.38 – -0.10 -0.06 – -0.01 0.001
week * cat_btw 0.01 0.00 -0.06 – 0.08 -0.02 – 0.02 0.853
Random Effects
σ2 53.36
τ00 record_id 121.72
ICC 0.70
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.436 / 0.828

Within Participant Plot

embrace_explore %>% 
  ggplot(aes(x=cat_within, y=factg_total, group=condition)) +
  geom_smooth(method="lm")+
  labs(title= "FACT-G and Catastrophe Mindset Over Time Within Individuals By Condition",
       y= "Wellbeing", x= "Catastrophe Mindset (Within)")

 embrace_explore %>% 
  ggplot(aes(cat_within, factg_total, color=as.factor(week))) +
  geom_smooth(method = "lm") +
  labs(title= "FACT-G and Catastrophe Mindset Over Time Within Individuals By Week",
       y= "Wellbeing", x= "Catastrophe Mindset (Within)")

Between Participant Plot

embrace_explore %>% 
  ggplot(aes(cat_btw, factg_total, color=as.factor(condition))) +
  geom_smooth(method = "lm") +     
  labs(title= "FACT-G and Catastrophe Mindset Over Time Between Individuals",
       y= "Wellbeing", x= "Catastrophe Mindset (Between)")

Manageable Mindset

Mixed Effects Model

manageable_explore <- lmer(factg_total ~ week +
                            man_btw + man_within + 
                            (man_within*week) +
                            (man_btw*week) + (1|record_id), 
                            data=embrace_explore)

tab_model(manageable_explore, show.std = T)
  factg total
Predictors Estimates std. Beta CI standardized CI p
(Intercept) -7.69 -0.00 -18.01 – 2.64 -0.08 – 0.07 0.144
week 0.26 0.04 -0.26 – 0.78 0.02 – 0.06 0.334
man_btw 16.85 0.61 14.64 – 19.07 0.53 – 0.69 <0.001
man_within 3.75 0.15 2.46 – 5.04 0.13 – 0.17 <0.001
week * man_within 0.38 0.04 0.19 – 0.57 0.02 – 0.07 <0.001
week * man_btw -0.02 -0.00 -0.14 – 0.09 -0.02 – 0.02 0.684
Random Effects
σ2 54.01
τ00 record_id 133.33
ICC 0.71
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.398 / 0.827

Within Participant Plot

embrace_explore %>% 
  ggplot(aes(x=man_within, y=factg_total, group=condition)) +
  geom_smooth(method="lm")+
  labs(title= "FACT-G and Manageable Mindset Over Time Within Individuals By Condition",
       y= "Wellbeing", x= "Manageable Mindset (Within)")

embrace_explore %>% 
  ggplot(aes(man_within, factg_total, color=as.factor(week))) +
  geom_smooth(method = "lm")

Between Participant Plot

embrace_explore %>% 
  ggplot(aes(man_btw, factg_total, color=as.factor(week))) +
  geom_smooth(method = "lm") +
    labs(title= "FACT-G and Manageable Mindset Over Time Between Individuals",
       y= "Wellbeing", x= "Manageable Mindset (Between)")

Opportunity Mindset

Mixed Effects Model

opportunity_explore <- lmer(factg_total ~ week +
                            opp_btw + opp_within + 
                            (opp_within*week) +
                            (opp_btw*week) + (1|record_id), 
                            data=embrace_explore)

tab_model(opportunity_explore, show.std = T)
  factg total
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 24.90 -0.00 13.87 – 35.93 -0.09 – 0.09 <0.001
week -0.03 0.04 -0.51 – 0.46 0.02 – 0.06 0.911
opp_btw 9.47 0.41 7.17 – 11.76 0.32 – 0.50 <0.001
opp_within 3.15 0.10 1.76 – 4.53 0.08 – 0.12 <0.001
week * opp_within 0.20 0.02 -0.00 – 0.39 -0.00 – 0.04 0.050
week * opp_btw 0.04 0.01 -0.06 – 0.14 -0.01 – 0.03 0.432
Random Effects
σ2 58.00
τ00 record_id 197.83
ICC 0.77
N record_id 297
Observations 1782
Marginal R2 / Conditional R2 0.180 / 0.814

Within Participant Plot

embrace_explore %>% 
  ggplot(aes(x=opp_within, y=factg_total, group=condition)) +
  geom_smooth(method="lm")+
  labs(title= "FACT-G and Opportunity Mindset Over Time Within Individuals",
       y= "Wellbeing", x= "Opportunity Mindset (Within)")

 embrace_explore %>% 
  ggplot(aes(opp_within, factg_total, color=as.factor(condition))) +
  geom_smooth(method = "lm")+
  labs(title= "FACT-G and Opportunity Mindset Over Time Within Individuals",
       y= "Wellbeing", x= "Opportunity Mindset (Within)")

Between Participant Plot

embrace_explore %>% 
  ggplot(aes(opp_btw, factg_total, color=as.factor(week))) +
  geom_smooth(method = "lm") +
  labs(title= "FACT-G and Opportunity Mindset Over Time Between Individuals",
       y= "Wellbeing", x= "Opportunity Mindset (Between)")

Exploratory Mechanisms - Mediation Models

embrace_meds <- embrace %>%
  select(record_id, randomization, cohort, age, gender, education_cat, race_cat, cancer_stage, dx_length, cancer_type_simplified,
        catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6,
        manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6,
        opportunity_t1, opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6,
        responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6,
        capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6,
        adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6,
        factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6,
        factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6,
        factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6,
        factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, 
        factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6,
        cws_t5, cws_t6) %>%
  rowwise() %>%
  mutate(catastrophe_t2t4 = mean(c(catastrophe_t2, catastrophe_t3, catastrophe_t4), na.rm=TRUE),
         manageable_t2t4 = mean(c(manageable_t2, manageable_t3, manageable_t4), na.rm=TRUE),
         opportunity_t2t4 = mean(c(opportunity_t2, opportunity_t3, opportunity_t4), na.rm=TRUE),
         responsive_t2t4 = mean(c(responsive_t2, responsive_t3, responsive_t4), na.rm=TRUE),
         capable_t2t4 = mean(c(capable_t2, capable_t3, capable_t4), na.rm=TRUE),
         adversary_t2t4 = mean(c(adversary_t2, adversary_t3, adversary_t4), na.rm=TRUE)) %>%
  mutate(catastrophe_t3t4 = mean(c(catastrophe_t3, catastrophe_t4), na.rm=TRUE),
         manageable_t3t4 = mean(c(manageable_t3, manageable_t4), na.rm=TRUE),
         opportunity_t3t4 = mean(c(opportunity_t3, opportunity_t4), na.rm=TRUE),
         responsive_t3t4 = mean(c(responsive_t3, responsive_t4), na.rm=TRUE),
         capable_t3t4 = mean(c(capable_t3, capable_t4), na.rm=TRUE),
         adversary_t3t4 = mean(c(adversary_t3, adversary_t4), na.rm=TRUE)) %>%
  mutate(catastrophe_t3t5 = mean(c(catastrophe_t3, catastrophe_t4, catastrophe_t5), na.rm=TRUE),
         manageable_t3t5 = mean(c(manageable_t3, manageable_t4, manageable_t5), na.rm=TRUE),
         opportunity_t3t5 = mean(c(opportunity_t3, opportunity_t4, opportunity_t5), na.rm=TRUE),
         responsive_t3t5 = mean(c(responsive_t3, responsive_t4, responsive_t5), na.rm=TRUE),
         capable_t3t5 = mean(c(capable_t3, capable_t4, capable_t5), na.rm=TRUE),
         adversary_t3t5 = mean(c(adversary_t3, adversary_t4, adversary_t5), na.rm=TRUE)) %>%
  mutate(catastrophe_t2t5 = mean(c(catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5), na.rm=TRUE),
         manageable_t2t5 = mean(c(manageable_t2, manageable_t3, manageable_t4, manageable_t5), na.rm=TRUE),
         opportunity_t2t5 = mean(c(opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5), na.rm=TRUE),
         responsive_t2t5 = mean(c(responsive_t2, responsive_t3, responsive_t4, responsive_t5), na.rm=TRUE),
         capable_t2t5 = mean(c(capable_t2, capable_t3, capable_t4, capable_t5), na.rm=TRUE),
         adversary_t2t5 = mean(c(adversary_t2, adversary_t3, adversary_t4, adversary_t5), na.rm=TRUE)) %>%
  mutate(factg_total_t5t6 = mean(c(factg_total_t5, factg_total_t6), na.rm=TRUE),
         factg_physical_t5t6 = mean(c(factg_physical_t5, factg_physical_t6), na.rm=TRUE),
         factg_social_t5t6 = mean(c(factg_social_t5, factg_social_t6), na.rm=TRUE),
         factg_emotional_t5t6 = mean(c(factg_emotional_t5, factg_emotional_t6), na.rm=TRUE),
         factg_functional_t5t6 = mean(c(factg_functional_t5, factg_functional_t6), na.rm=TRUE),
         cws_t5t6 = mean(c(cws_t5, cws_t6), na.rm=TRUE)) %>%
  mutate(random = case_when(randomization=="Mindset" ~ 1,
                            randomization=="TAU" ~ 0))


#Create a new variable for the catastrophe change score
embrace_meds$cat_t1t5_change = ((embrace_meds$catastrophe_t5 - embrace_meds$catastrophe_t1) / 10)
#Create a new variable for the manageable change score
embrace_meds$man_t1t5_change = ((embrace_meds$manageable_t5 - embrace_meds$manageable_t1) / 10)
#Create a new variable for the Opportunitymanageable_t3
embrace_meds$opp_t1t5_change = ((embrace_meds$opportunity_t5 - embrace_meds$opportunity_t1) / 10)

#Create a new variable for the Capable change score
embrace_meds$cap_t1t5_change = embrace_meds$capable_t5 - embrace_meds$capable_t1
#Create a new variable for the Responsive
embrace_meds$resp_t1t5_change = embrace_meds$responsive_t5 - embrace_meds$responsive_t1
#Create a new variable for the Adversary change score
embrace_meds$adv_t1t5_change = embrace_meds$adversary_t5 - embrace_meds$adversary_t1

#Create a new variable for the FACT-G Total change score
embrace_meds$factg_t1t5_change = embrace_meds$factg_total_t5 - embrace_meds$factg_total_t1
#Create a new variable for the FACT-G Emo change score
embrace_meds$factg_emo_t1t5_change = embrace_meds$factg_emotional_t5 - embrace_meds$factg_emotional_t1
#Create a new variable for the FACT-G Phys change score
embrace_meds$factg_phys_t1t5_change = embrace_meds$factg_physical_t5 - embrace_meds$factg_physical_t1
#Create a new variable for the FACT-G Soc change score
embrace_meds$factg_soc_t1t5_change = embrace_meds$factg_social_t5 - embrace_meds$factg_social_t1
#Create a new variable for the FACT-G Emo change score
embrace_meds$factg_funct_t1t5_change = embrace_meds$factg_functional_t5 - embrace_meds$factg_functional_t1

Illness Mindsets

FACT-G Total Score

kable(boot_fit_imi_factg_med_1, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_total_t5t6 ~ random c 1.7471602 1.2458720 1.4023593 0.1608080 -0.6947040 4.1890243
factg_total_t5t6 ~ catastrophe_t2t5 b1 -5.9403771 0.5753389 -10.3250045 0.0000000 -7.0680207 -4.8127335
factg_total_t5t6 ~ manageable_t2t5 b2 3.3980906 0.8935083 3.8030880 0.0001429 1.6468465 5.1493346
factg_total_t5t6 ~ opportunity_t2t5 b3 0.4558798 0.7751141 0.5881454 0.5564347 -1.0633159 1.9750755
factg_total_t5t6 ~ factg_total_t1 cv 0.6043124 0.0451833 13.3746798 0.0000000 0.5157547 0.6928700
factg_total_t5t6 ~ catastrophe_t1 cv2 3.3673916 0.6800009 4.9520402 0.0000007 2.0346144 4.7001688
factg_total_t5t6 ~ manageable_t1 cv3 -1.1108910 0.9638842 -1.1525150 0.2491095 -3.0000694 0.7782874
factg_total_t5t6 ~ opportunity_t1 cv4 0.1154544 0.7856057 0.1469623 0.8831618 -1.4243045 1.6552133
catastrophe_t2t5 ~ random a1 -0.5179689 0.1161994 -4.4575849 0.0000083 -0.7457156 -0.2902222
manageable_t2t5 ~ random a2 0.3223140 0.0748220 4.3077444 0.0000165 0.1756656 0.4689624
opportunity_t2t5 ~ random a3 0.2766104 0.0862506 3.2070540 0.0013410 0.1075623 0.4456585
factg_total_t5t6 ~~ factg_total_t5t6 98.5606655 8.0879862 12.1860576 0.0000000 82.7085038 114.4128271
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025352 0.0822690 12.1860576 0.0000000 0.8412909 1.1637796
manageable_t2t5 ~~ manageable_t2t5 0.4156713 0.0341104 12.1860576 0.0000000 0.3488161 0.4825264
opportunity_t2t5 ~~ opportunity_t2t5 0.5523520 0.0453266 12.1860576 0.0000000 0.4635136 0.6411904
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ factg_total_t1 0.2035847 0.0000000 NA NA 0.2035847 0.2035847
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
factg_total_t1 ~~ factg_total_t1 270.2340577 0.0000000 NA NA 270.2340577 270.2340577
factg_total_t1 ~~ catastrophe_t1 -10.5753495 0.0000000 NA NA -10.5753495 -10.5753495
factg_total_t1 ~~ manageable_t1 6.4131778 0.0000000 NA NA 6.4131778 6.4131778
factg_total_t1 ~~ opportunity_t1 4.7021137 0.0000000 NA NA 4.7021137 4.7021137
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
catastrophe_IDE := a1*b1 catastrophe_IDE 3.0769305 0.7518505 4.0924764 0.0000427 1.6033306 4.5505305
manageable_IDE := a2*b2 manageable_IDE 1.0952521 0.3841645 2.8509975 0.0043582 0.3423035 1.8482008
opportunity_IDE := a3*b3 opportunity_IDE 0.1261011 0.2179802 0.5784977 0.5629281 -0.3011324 0.5533345
total := c+(a1b1)+(a2b2)+(a3*b3) total 6.0454439 1.3700881 4.4124490 0.0000102 3.3601206 8.7307672

FACT-G Emotional Score

kable(boot_fit_imi_factg_med_2, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_emotional_t5t6 ~ random c -0.0526644 0.3350572 -0.1571803 0.8751027 -0.7093644 0.6040356
factg_emotional_t5t6 ~ catastrophe_t2t5 b1 -1.3215994 0.1544269 -8.5580896 0.0000000 -1.6242707 -1.0189282
factg_emotional_t5t6 ~ manageable_t2t5 b2 1.4179621 0.2398268 5.9124427 0.0000000 0.9479102 1.8880139
factg_emotional_t5t6 ~ opportunity_t2t5 b3 0.1391273 0.2080486 0.6687253 0.5036707 -0.2686404 0.5468950
factg_emotional_t5t6 ~ factg_emotional_t1 cv 0.4703090 0.0440589 10.6745455 0.0000000 0.3839551 0.5566629
factg_emotional_t5t6 ~ catastrophe_t1 cv2 0.3260896 0.1814601 1.7970317 0.0723306 -0.0295657 0.6817450
factg_emotional_t5t6 ~ manageable_t1 cv3 -0.2450297 0.2524833 -0.9704789 0.3318078 -0.7398878 0.2498284
factg_emotional_t5t6 ~ opportunity_t1 cv4 -0.0939520 0.2112921 -0.4446544 0.6565695 -0.5080770 0.3201730
catastrophe_t2t5 ~ random a1 -0.5179696 0.1161994 -4.4575926 0.0000083 -0.7457162 -0.2902229
manageable_t2t5 ~ random a2 0.3223148 0.0748220 4.3077554 0.0000165 0.1756664 0.4689632
opportunity_t2t5 ~ random a3 0.2766093 0.0862506 3.2070420 0.0013411 0.1075612 0.4456574
factg_emotional_t5t6 ~~ factg_emotional_t5t6 7.1007103 0.5826913 12.1860576 0.0000000 5.9586562 8.2427643
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025345 0.0822690 12.1860576 0.0000000 0.8412902 1.1637787
manageable_t2t5 ~~ manageable_t2t5 0.4156713 0.0341104 12.1860576 0.0000000 0.3488161 0.4825264
opportunity_t2t5 ~~ opportunity_t2t5 0.5523519 0.0453265 12.1860576 0.0000000 0.4635135 0.6411904
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ factg_emotional_t1 -0.1331837 0.0000000 NA NA -0.1331837 -0.1331837
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
factg_emotional_t1 ~~ factg_emotional_t1 19.0549944 0.0000000 NA NA 19.0549944 19.0549944
factg_emotional_t1 ~~ catastrophe_t1 -2.7048260 0.0000000 NA NA -2.7048260 -2.7048260
factg_emotional_t1 ~~ manageable_t1 1.5008106 0.0000000 NA NA 1.5008106 1.5008106
factg_emotional_t1 ~~ opportunity_t1 1.3063038 0.0000000 NA NA 1.3063038 1.3063038
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
catastrophe_IDE := a1*b1 catastrophe_IDE 0.6845483 0.1731520 3.9534535 0.0000770 0.3451767 1.0239200
manageable_IDE := a2*b2 manageable_IDE 0.4570302 0.1312682 3.4816519 0.0004983 0.1997492 0.7143111
opportunity_IDE := a3*b3 opportunity_IDE 0.0384839 0.0587860 0.6546449 0.5126964 -0.0767344 0.1537023
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.1273980 0.3627143 3.1082259 0.0018821 0.4164910 1.8383050

FACT-G Functional Score

kable(boot_fit_imi_factg_med_3, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_functional_t5t6 ~ random c 0.7990765 0.4321008 1.8492828 0.0644170 -0.0478254 1.6459784
factg_functional_t5t6 ~ catastrophe_t2t5 b1 -1.9246226 0.1995284 -9.6458576 0.0000000 -2.3156911 -1.5335541
factg_functional_t5t6 ~ manageable_t2t5 b2 0.7019643 0.3098700 2.2653509 0.0234912 0.0946302 1.3092983
factg_functional_t5t6 ~ opportunity_t2t5 b3 0.4244532 0.2688107 1.5790039 0.1143352 -0.1024061 0.9513125
factg_functional_t5t6 ~ factg_functional_t1 cv 0.5271633 0.0423155 12.4579370 0.0000000 0.4442265 0.6101001
factg_functional_t5t6 ~ catastrophe_t1 cv2 1.0190639 0.2328387 4.3766950 0.0000120 0.5627085 1.4754194
factg_functional_t5t6 ~ manageable_t1 cv3 0.0213658 0.3276516 0.0652090 0.9480076 -0.6208195 0.6635511
factg_functional_t5t6 ~ opportunity_t1 cv4 -0.0510510 0.2726385 -0.1872478 0.8514663 -0.5854126 0.4833106
catastrophe_t2t5 ~ random a1 -0.5179690 0.1161994 -4.4575860 0.0000083 -0.7457157 -0.2902223
manageable_t2t5 ~ random a2 0.3223141 0.0748220 4.3077459 0.0000165 0.1756657 0.4689625
opportunity_t2t5 ~ random a3 0.2766102 0.0862506 3.2070514 0.0013410 0.1075621 0.4456582
factg_functional_t5t6 ~~ factg_functional_t5t6 11.8540172 0.9727524 12.1860576 0.0000000 9.9474575 13.7605770
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025352 0.0822690 12.1860576 0.0000000 0.8412908 1.1637795
manageable_t2t5 ~~ manageable_t2t5 0.4156713 0.0341104 12.1860576 0.0000000 0.3488161 0.4825264
opportunity_t2t5 ~~ opportunity_t2t5 0.5523520 0.0453266 12.1860576 0.0000000 0.4635136 0.6411904
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ factg_functional_t1 0.0784274 0.0000000 NA NA 0.0784274 0.0784274
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
factg_functional_t1 ~~ factg_functional_t1 33.7308438 0.0000000 NA NA 33.7308438 33.7308438
factg_functional_t1 ~~ catastrophe_t1 -3.5137231 0.0000000 NA NA -3.5137231 -3.5137231
factg_functional_t1 ~~ manageable_t1 2.0121530 0.0000000 NA NA 2.0121530 2.0121530
factg_functional_t1 ~~ opportunity_t1 1.6146652 0.0000000 NA NA 1.6146652 1.6146652
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
catastrophe_IDE := a1*b1 catastrophe_IDE 0.9968949 0.2463656 4.0464045 0.0000520 0.5140272 1.4797626
manageable_IDE := a2*b2 manageable_IDE 0.2262530 0.1128437 2.0050115 0.0449618 0.0050833 0.4474227
opportunity_IDE := a3*b3 opportunity_IDE 0.1174081 0.0828796 1.4166101 0.1565969 -0.0450329 0.2798491
total := c+(a1b1)+(a2b2)+(a3*b3) total 2.1396324 0.4632923 4.6183205 0.0000039 1.2315962 3.0476687

FACT-G Social Score

kable(boot_fit_imi_factg_med_4, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_social_t5 ~ random c 0.2387188 0.3965790 0.601945 0.5472107 -0.5385619 1.0159994
factg_social_t5 ~ catastrophe_t2t5 b1 -1.3276141 0.1832124 -7.246312 0.0000000 -1.6867037 -0.9685244
factg_social_t5 ~ manageable_t2t5 b2 1.5121738 0.2845310 5.314619 0.0000001 0.9545033 2.0698443
factg_social_t5 ~ opportunity_t2t5 b3 0.1874601 0.2468294 0.759472 0.4475702 -0.2963168 0.6712369
factg_social_t5 ~ catastrophe_t1 cv 1.1701290 0.1989358 5.881944 0.0000000 0.7802221 1.5600359
factg_social_t5 ~ manageable_t1 cv2 -0.8373971 0.2965747 -2.823562 0.0047493 -1.4186729 -0.2561213
factg_social_t5 ~ opportunity_t1 cv3 0.2791263 0.2535287 1.100965 0.2709117 -0.2177808 0.7760334
factg_social_t5 ~ factg_social_t1 cv4 0.6382898 0.0402752 15.848191 0.0000000 0.5593517 0.7172278
catastrophe_t2t5 ~ random a1 -0.5179713 0.1161995 -4.457605 0.0000083 -0.7457181 -0.2902246
manageable_t2t5 ~ random a2 0.3223144 0.0748220 4.307749 0.0000165 0.1756660 0.4689629
opportunity_t2t5 ~ random a3 0.2766094 0.0862506 3.207045 0.0013411 0.1075614 0.4456574
factg_social_t5 ~~ factg_social_t5 9.9946079 0.8201675 12.186058 0.0000000 8.3871092 11.6021066
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025354 0.0822690 12.186058 0.0000000 0.8412910 1.1637797
manageable_t2t5 ~~ manageable_t2t5 0.4156714 0.0341104 12.186058 0.0000000 0.3488163 0.4825266
opportunity_t2t5 ~~ opportunity_t2t5 0.5523513 0.0453265 12.186058 0.0000000 0.4635130 0.6411896
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
random ~~ factg_social_t1 -0.0144203 0.0000000 NA NA -0.0144203 -0.0144203
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
catastrophe_t1 ~~ factg_social_t1 -1.6353433 0.0000000 NA NA -1.6353433 -1.6353433
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
manageable_t1 ~~ factg_social_t1 1.2313483 0.0000000 NA NA 1.2313483 1.2313483
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
opportunity_t1 ~~ factg_social_t1 1.3433408 0.0000000 NA NA 1.3433408 1.3433408
factg_social_t1 ~~ factg_social_t1 24.5015815 0.0000000 NA NA 24.5015815 24.5015815
catastrophe_IDE := a1*b1 catastrophe_IDE 0.6876660 0.1811198 3.796746 0.0001466 0.3326776 1.0426544
manageable_IDE := a2*b2 manageable_IDE 0.4873954 0.1456433 3.346501 0.0008184 0.2019398 0.7728511
opportunity_IDE := a3*b3 opportunity_IDE 0.0518532 0.0701637 0.739032 0.4598876 -0.0856651 0.1893715
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.4656334 0.4147997 3.533352 0.0004103 0.6526410 2.2786259

FACT-G Physical Score

kable(boot_fit_imi_factg_med_5, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_physical_t5 ~ random c 0.6740251 0.6131734 1.0992407 0.2716631 -0.5277726 1.8758229
factg_physical_t5 ~ catastrophe_t2t5 b1 -2.0155541 0.2823566 -7.1383282 0.0000000 -2.5689628 -1.4621453
factg_physical_t5 ~ manageable_t2t5 b2 0.2163761 0.4385032 0.4934424 0.6217000 -0.6430744 1.0758266
factg_physical_t5 ~ opportunity_t2t5 b3 0.1874952 0.3803994 0.4928904 0.6220900 -0.5580739 0.9330643
factg_physical_t5 ~ catastrophe_t1 cv 0.9965405 0.3198982 3.1151799 0.0018383 0.3695515 1.6235296
factg_physical_t5 ~ manageable_t1 cv2 -0.3228166 0.4648664 -0.6944287 0.4874134 -1.2339381 0.5883049
factg_physical_t5 ~ opportunity_t1 cv3 -0.1258394 0.3917459 -0.3212271 0.7480383 -0.8936474 0.6419685
factg_physical_t5 ~ factg_physical_t1 cv4 0.5568185 0.0517699 10.7556334 0.0000000 0.4553513 0.6582857
catastrophe_t2t5 ~ random a1 -0.5179688 0.1161995 -4.4575841 0.0000083 -0.7457156 -0.2902221
manageable_t2t5 ~ random a2 0.3223140 0.0748220 4.3077440 0.0000165 0.1756656 0.4689624
opportunity_t2t5 ~ random a3 0.2766102 0.0862506 3.2070525 0.0013410 0.1075621 0.4456583
factg_physical_t5 ~~ factg_physical_t5 23.7384310 1.9479992 12.1860576 0.0000000 19.9204227 27.5564394
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025353 0.0822690 12.1860576 0.0000000 0.8412910 1.1637797
manageable_t2t5 ~~ manageable_t2t5 0.4156713 0.0341104 12.1860576 0.0000000 0.3488161 0.4825264
opportunity_t2t5 ~~ opportunity_t2t5 0.5523520 0.0453266 12.1860576 0.0000000 0.4635136 0.6411904
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
random ~~ factg_physical_t1 0.2727613 0.0000000 NA NA 0.2727613 0.2727613
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
catastrophe_t1 ~~ factg_physical_t1 -2.7214570 0.0000000 NA NA -2.7214570 -2.7214570
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
manageable_t1 ~~ factg_physical_t1 1.6688660 0.0000000 NA NA 1.6688660 1.6688660
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
opportunity_t1 ~~ factg_physical_t1 0.4378040 0.0000000 NA NA 0.4378040 0.4378040
factg_physical_t1 ~~ factg_physical_t1 38.2689521 0.0000000 NA NA 38.2689521 38.2689521
catastrophe_IDE := a1*b1 catastrophe_IDE 1.0439942 0.2761199 3.7809450 0.0001562 0.5028091 1.5851792
manageable_IDE := a2*b2 manageable_IDE 0.0697410 0.1422599 0.4902367 0.6239664 -0.2090833 0.3485654
opportunity_IDE := a3*b3 opportunity_IDE 0.0518631 0.1064578 0.4871704 0.6261376 -0.1567904 0.2605166
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.8396234 0.6155653 2.9885105 0.0028034 0.6331376 3.0461093

Body Mindsets

FACT-G Total Score

kable(boot_fit_bmi_factg_med_1, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_total_t5 ~ random c 3.8663701 1.4511292 2.664387 0.0077129 1.0222091 6.7105310
factg_total_t5 ~ adversary_t2t5 b1 -2.1236055 0.6200369 -3.424966 0.0006149 -3.3388555 -0.9083556
factg_total_t5 ~ capable_t2t5 b2 7.9725947 0.7253348 10.991607 0.0000000 6.5509647 9.3942247
factg_total_t5 ~ responsive_t2t5 b3 -1.3875880 0.8453398 -1.641456 0.1007028 -3.0444236 0.2692476
factg_total_t5 ~ adversary_t1 cv 1.3417558 0.6427077 2.087661 0.0368284 0.0820719 2.6014398
factg_total_t5 ~ capable_t1 cv2 -2.8231798 0.8891095 -3.175289 0.0014969 -4.5658023 -1.0805573
factg_total_t5 ~ responsive_t1 cv3 -0.9679908 0.8836229 -1.095480 0.2733066 -2.6998598 0.7638782
factg_total_t5 ~ factg_total_t1 cv4 0.6353895 0.0462613 13.734795 0.0000000 0.5447190 0.7260599
adversary_t2t5 ~ random a1 -0.2552490 0.1226102 -2.081792 0.0373615 -0.4955606 -0.0149373
capable_t2t5 ~ random a2 0.3702801 0.1048107 3.532846 0.0004111 0.1648548 0.5757053
responsive_t2t5 ~ random a3 0.5933022 0.0899317 6.597252 0.0000000 0.4170393 0.7695651
factg_total_t5 ~~ factg_total_t5 127.4489930 10.4585910 12.186058 0.0000000 106.9505312 147.9474548
adversary_t2t5 ~~ adversary_t2t5 1.1162074 0.0915971 12.186058 0.0000000 0.9366804 1.2957344
capable_t2t5 ~~ capable_t2t5 0.8156483 0.0669329 12.186058 0.0000000 0.6844622 0.9468344
responsive_t2t5 ~~ responsive_t2t5 0.6005060 0.0492781 12.186058 0.0000000 0.5039226 0.6970893
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_total_t1 0.2035847 0.0000000 NA NA 0.2035847 0.2035847
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_total_t1 -7.2480954 0.0000000 NA NA -7.2480954 -7.2480954
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_total_t1 7.0025394 0.0000000 NA NA 7.0025394 7.0025394
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_total_t1 5.4094253 0.0000000 NA NA 5.4094253 5.4094253
factg_total_t1 ~~ factg_total_t1 270.2340577 0.0000000 NA NA 270.2340577 270.2340577
adversary_IDE := a1*b1 adversary_IDE 0.5420481 0.3047014 1.778948 0.0752482 -0.0551557 1.1392519
capable_IDE := a2*b2 capable_IDE 2.9520931 0.8777149 3.363385 0.0007699 1.2318036 4.6723826
responsive_IDE := a3*b3 responsive_IDE -0.8232590 0.5168331 -1.592891 0.1111845 -1.8362332 0.1897152
total := c+(a1b1)+(a2b2)+(a3*b3) total 6.5372522 1.5933198 4.102913 0.0000408 3.4144028 9.6601016

FACT-G Emotional Score

kable(boot_fit_bmi_factg_med_2, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_emotional_t5 ~ random c 0.5883305 0.3924735 1.4990325 0.1338652 -0.1809034 1.3575643
factg_emotional_t5 ~ adversary_t2t5 b1 -0.9993631 0.1676169 -5.9621867 0.0000000 -1.3278861 -0.6708401
factg_emotional_t5 ~ capable_t2t5 b2 2.1618805 0.1960820 11.0253894 0.0000000 1.7775668 2.5461941
factg_emotional_t5 ~ responsive_t2t5 b3 -0.6852189 0.2285237 -2.9984592 0.0027135 -1.1331170 -0.2373207
factg_emotional_t5 ~ adversary_t1 cv 0.3937496 0.1769093 2.2257142 0.0260333 0.0470137 0.7404855
factg_emotional_t5 ~ capable_t1 cv2 -0.8944548 0.2424976 -3.6885097 0.0002256 -1.3697414 -0.4191682
factg_emotional_t5 ~ responsive_t1 cv3 0.1315094 0.2376955 0.5532684 0.5800797 -0.3343653 0.5973841
factg_emotional_t5 ~ factg_emotional_t1 cv4 0.5190886 0.0484352 10.7171871 0.0000000 0.4241574 0.6140198
adversary_t2t5 ~ random a1 -0.2552485 0.1226101 -2.0817891 0.0373617 -0.4955599 -0.0149370
capable_t2t5 ~ random a2 0.3702807 0.1048109 3.5328451 0.0004111 0.1648551 0.5757062
responsive_t2t5 ~ random a3 0.5933024 0.0899317 6.5972520 0.0000000 0.4170394 0.7695653
factg_emotional_t5 ~~ factg_emotional_t5 9.3140016 0.7643162 12.1860576 0.0000000 7.8159693 10.8120339
adversary_t2t5 ~~ adversary_t2t5 1.1162061 0.0915970 12.1860576 0.0000000 0.9366793 1.2957328
capable_t2t5 ~~ capable_t2t5 0.8156510 0.0669331 12.1860576 0.0000000 0.6844645 0.9468376
responsive_t2t5 ~~ responsive_t2t5 0.6005063 0.0492781 12.1860576 0.0000000 0.5039229 0.6970897
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_emotional_t1 -0.1331837 0.0000000 NA NA -0.1331837 -0.1331837
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_emotional_t1 -2.1864010 0.0000000 NA NA -2.1864010 -2.1864010
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_emotional_t1 1.9792992 0.0000000 NA NA 1.9792992 1.9792992
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_emotional_t1 1.3222347 0.0000000 NA NA 1.3222347 1.3222347
factg_emotional_t1 ~~ factg_emotional_t1 19.0549944 0.0000000 NA NA 19.0549944 19.0549944
adversary_IDE := a1*b1 adversary_IDE 0.2550859 0.1297866 1.9654249 0.0493651 0.0007088 0.5094630
capable_IDE := a2*b2 capable_IDE 0.8005025 0.2379368 3.3643486 0.0007672 0.3341548 1.2668502
responsive_IDE := a3*b3 responsive_IDE -0.4065420 0.1489305 -2.7297422 0.0063384 -0.6984404 -0.1146435
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.2373769 0.4457627 2.7758646 0.0055055 0.3636981 2.1110558

FACT-G Functional Score

kable(boot_fit_bmi_factg_med_3, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_functional_t5 ~ random c 1.2009592 0.5007688 2.3982310 0.0164745 0.2194704 2.1824480
factg_functional_t5 ~ adversary_t2t5 b1 -0.8445532 0.2139872 -3.9467468 0.0000792 -1.2639603 -0.4251460
factg_functional_t5 ~ capable_t2t5 b2 1.9557403 0.2503275 7.8127256 0.0000000 1.4651073 2.4463732
factg_functional_t5 ~ responsive_t2t5 b3 0.0580127 0.2917437 0.1988483 0.8423814 -0.5137944 0.6298198
factg_functional_t5 ~ adversary_t1 cv 0.6016725 0.2207491 2.7255943 0.0064186 0.1690122 1.0343328
factg_functional_t5 ~ capable_t1 cv2 -0.4199535 0.3037641 -1.3824989 0.1668186 -1.0153201 0.1754132
factg_functional_t5 ~ responsive_t1 cv3 -0.5519892 0.3047711 -1.8111601 0.0701161 -1.1493294 0.0453511
factg_functional_t5 ~ factg_functional_t1 cv4 0.5941537 0.0435827 13.6327846 0.0000000 0.5087331 0.6795742
adversary_t2t5 ~ random a1 -0.2552488 0.1226102 -2.0817910 0.0373616 -0.4955604 -0.0149372
capable_t2t5 ~ random a2 0.3702804 0.1048107 3.5328481 0.0004111 0.1648551 0.5757057
responsive_t2t5 ~ random a3 0.5933023 0.0899317 6.5972529 0.0000000 0.4170394 0.7695652
factg_functional_t5 ~~ factg_functional_t5 15.1801730 1.2457001 12.1860576 0.0000000 12.7386457 17.6217003
adversary_t2t5 ~~ adversary_t2t5 1.1162072 0.0915971 12.1860576 0.0000000 0.9366802 1.2957341
capable_t2t5 ~~ capable_t2t5 0.8156485 0.0669329 12.1860576 0.0000000 0.6844624 0.9468347
responsive_t2t5 ~~ responsive_t2t5 0.6005060 0.0492781 12.1860576 0.0000000 0.5039227 0.6970893
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_functional_t1 0.0784274 0.0000000 NA NA 0.0784274 0.0784274
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_functional_t1 -2.3709996 0.0000000 NA NA -2.3709996 -2.3709996
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_functional_t1 2.0687458 0.0000000 NA NA 2.0687458 2.0687458
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_functional_t1 1.6711107 0.0000000 NA NA 1.6711107 1.6711107
factg_functional_t1 ~~ factg_functional_t1 33.7308438 0.0000000 NA NA 33.7308438 33.7308438
adversary_IDE := a1*b1 adversary_IDE 0.2155712 0.1170731 1.8413380 0.0655720 -0.0138879 0.4450303
capable_IDE := a2*b2 capable_IDE 0.7241723 0.2249657 3.2190349 0.0012862 0.2832477 1.1650969
responsive_IDE := a3*b3 responsive_IDE 0.0344191 0.1731708 0.1987580 0.8424520 -0.3049895 0.3738276
total := c+(a1b1)+(a2b2)+(a3*b3) total 2.1751218 0.5118606 4.2494417 0.0000214 1.1718934 3.1783501

FACT-G Social Score

kable(boot_fit_bmi_factg_med_4, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_social_t5 ~ random c 0.5031686 0.4091847 1.2296857 0.2188148 -0.2988187 1.3051558
factg_social_t5 ~ adversary_t2t5 b1 -0.5897564 0.1749481 -3.3710366 0.0007489 -0.9326484 -0.2468645
factg_social_t5 ~ capable_t2t5 b2 1.8628434 0.2046587 9.1021963 0.0000000 1.4617198 2.2639670
factg_social_t5 ~ responsive_t2t5 b3 0.0663793 0.2385189 0.2782980 0.7807836 -0.4011090 0.5338677
factg_social_t5 ~ adversary_t1 cv 0.2329059 0.1741904 1.3370765 0.1811977 -0.1085010 0.5743128
factg_social_t5 ~ capable_t1 cv2 -0.8516379 0.2517265 -3.3831874 0.0007165 -1.3450128 -0.3582631
factg_social_t5 ~ responsive_t1 cv3 -0.4073258 0.2481170 -1.6416683 0.1006588 -0.8936262 0.0789746
factg_social_t5 ~ factg_social_t1 cv4 0.6579170 0.0405352 16.2307450 0.0000000 0.5784694 0.7373645
adversary_t2t5 ~ random a1 -0.2552483 0.1226102 -2.0817864 0.0373620 -0.4955600 -0.0149367
capable_t2t5 ~ random a2 0.3702795 0.1048108 3.5328390 0.0004111 0.1648542 0.5757048
responsive_t2t5 ~ random a3 0.5933026 0.0899318 6.5972500 0.0000000 0.4170395 0.7695656
factg_social_t5 ~~ factg_social_t5 10.1465861 0.8326389 12.1860576 0.0000000 8.5146438 11.7785284
adversary_t2t5 ~~ adversary_t2t5 1.1162078 0.0915971 12.1860576 0.0000000 0.9366808 1.2957349
capable_t2t5 ~~ capable_t2t5 0.8156488 0.0669330 12.1860576 0.0000000 0.6844626 0.9468350
responsive_t2t5 ~~ responsive_t2t5 0.6005070 0.0492782 12.1860576 0.0000000 0.5039235 0.6970905
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_social_t1 -0.0144203 0.0000000 NA NA -0.0144203 -0.0144203
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_social_t1 -1.2086692 0.0000000 NA NA -1.2086692 -1.2086692
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_social_t1 1.8586992 0.0000000 NA NA 1.8586992 1.8586992
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_social_t1 1.3775352 0.0000000 NA NA 1.3775352 1.3775352
factg_social_t1 ~~ factg_social_t1 24.5015815 0.0000000 NA NA 24.5015815 24.5015815
adversary_IDE := a1*b1 adversary_IDE 0.1505344 0.0849874 1.7712559 0.0765182 -0.0160378 0.3171065
capable_IDE := a2*b2 capable_IDE 0.6897727 0.2094368 3.2934656 0.0009896 0.2792842 1.1002612
responsive_IDE := a3*b3 responsive_IDE 0.0393830 0.1416397 0.2780508 0.7809734 -0.2382257 0.3169917
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.3828587 0.4278487 3.2321208 0.0012288 0.5442906 2.2214267

FACT-G Physical Score

kable(boot_fit_bmi_factg_med_5, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_physical_t5 ~ random c 1.4338659 0.6373748 2.2496434 0.0244716 0.1846344 2.6830975
factg_physical_t5 ~ adversary_t2t5 b1 0.2147218 0.2715805 0.7906379 0.4291553 -0.3175661 0.7470097
factg_physical_t5 ~ capable_t2t5 b2 2.1259482 0.3177017 6.6916492 0.0000000 1.5032643 2.7486321
factg_physical_t5 ~ responsive_t2t5 b3 -0.6985599 0.3702647 -1.8866501 0.0592074 -1.4242653 0.0271455
factg_physical_t5 ~ adversary_t1 cv -0.0194019 0.2728627 -0.0711049 0.9433143 -0.5542029 0.5153992
factg_physical_t5 ~ capable_t1 cv2 -0.5568698 0.3822727 -1.4567342 0.1451898 -1.3061105 0.1923710
factg_physical_t5 ~ responsive_t1 cv3 -0.1493612 0.3851186 -0.3878317 0.6981406 -0.9041799 0.6054574
factg_physical_t5 ~ factg_physical_t1 cv4 0.6019006 0.0481623 12.4973319 0.0000000 0.5075042 0.6962971
adversary_t2t5 ~ random a1 -0.2552489 0.1226102 -2.0817917 0.0373615 -0.4955605 -0.0149373
capable_t2t5 ~ random a2 0.3702800 0.1048107 3.5328457 0.0004111 0.1648548 0.5757053
responsive_t2t5 ~ random a3 0.5933020 0.0899317 6.5972498 0.0000000 0.4170391 0.7695649
factg_physical_t5 ~~ factg_physical_t5 24.4510940 2.0064811 12.1860576 0.0000000 20.5184633 28.3837246
adversary_t2t5 ~~ adversary_t2t5 1.1162072 0.0915971 12.1860576 0.0000000 0.9366802 1.2957342
capable_t2t5 ~~ capable_t2t5 0.8156481 0.0669329 12.1860576 0.0000000 0.6844620 0.9468341
responsive_t2t5 ~~ responsive_t2t5 0.6005059 0.0492781 12.1860576 0.0000000 0.5039226 0.6970892
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_physical_t1 0.2727613 0.0000000 NA NA 0.2727613 0.2727613
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_physical_t1 -1.4820256 0.0000000 NA NA -1.4820256 -1.4820256
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_physical_t1 1.0957952 0.0000000 NA NA 1.0957952 1.0957952
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_physical_t1 1.0385448 0.0000000 NA NA 1.0385448 1.0385448
factg_physical_t1 ~~ factg_physical_t1 38.2689521 0.0000000 NA NA 38.2689521 38.2689521
adversary_IDE := a1*b1 adversary_IDE -0.0548075 0.0741516 -0.7391275 0.4598296 -0.2001420 0.0905270
capable_IDE := a2*b2 capable_IDE 0.7871962 0.2519693 3.1241748 0.0017830 0.2933454 1.2810470
responsive_IDE := a3*b3 responsive_IDE -0.4144570 0.2284851 -1.8139342 0.0696879 -0.8622796 0.0333656
total := c+(a1b1)+(a2b2)+(a3*b3) total 1.7517976 0.6274019 2.7921459 0.0052360 0.5221125 2.9814828

FACT-G Total Score

kable(boot_fit_imi_factg_med_x, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
factg_total_t5 ~ random c 4.1485397 1.4871508 2.7895892 0.0052775 1.2337777 7.0633017
factg_total_t5 ~ catastrophe_t2t4 b1 -5.2107252 0.6453429 -8.0743510 0.0000000 -6.4755740 -3.9458763
factg_total_t5 ~ manageable_t2t4 b2 0.6870138 1.0027566 0.6851252 0.4932649 -1.2783530 2.6523806
factg_total_t5 ~ opportunity_t2t4 b3 0.3417782 0.8705806 0.3925865 0.6946249 -1.3645285 2.0480849
factg_total_t5 ~ adversary_t2t4 b4 0.2455970 0.6012072 0.4085064 0.6829019 -0.9327474 1.4239414
factg_total_t5 ~ capable_t2t4 b5 5.5992742 0.7051779 7.9402296 0.0000000 4.2171509 6.9813974
factg_total_t5 ~ responsive_t2t4 b6 -2.9894766 0.8152762 -3.6668266 0.0002456 -4.5873887 -1.3915646
factg_total_t5 ~ catastrophe_t1 cv 3.7214937 0.7872820 4.7270148 0.0000023 2.1784493 5.2645381
factg_total_t5 ~ manageable_t1 cv2 -1.6607167 1.1219514 -1.4802038 0.1388189 -3.8597010 0.5382676
factg_total_t5 ~ opportunity_t1 cv3 0.8014421 0.9194536 0.8716503 0.3833992 -1.0006540 2.6035381
factg_total_t5 ~ adversary_t1 cv4 -0.3198150 0.6452792 -0.4956227 0.6201607 -1.5845390 0.9449090
factg_total_t5 ~ capable_t1 cv5 -2.1681061 0.9044022 -2.3972809 0.0165173 -3.9407018 -0.3955104
factg_total_t5 ~ responsive_t1 cv6 0.0567353 0.9094353 0.0623852 0.9502560 -1.7257251 1.8391958
factg_total_t5 ~ factg_total_t1 cv7 0.6566910 0.0533759 12.3031427 0.0000000 0.5520762 0.7613058
catastrophe_t2t4 ~ random a1 -0.4436691 0.1173421 -3.7809876 0.0001562 -0.6736554 -0.2136828
manageable_t2t4 ~ random a2 0.2861527 0.0755177 3.7892115 0.0001511 0.1381406 0.4341647
opportunity_t2t4 ~ random a3 0.2335039 0.0869832 2.6844713 0.0072645 0.0630200 0.4039879
adversary_t2t4 ~ random a4 -0.1920613 0.1259564 -1.5248234 0.1273032 -0.4389314 0.0548088
capable_t2t4 ~ random a5 0.2882022 0.1073855 2.6838078 0.0072789 0.0777304 0.4986739
responsive_t2t4 ~ random a6 0.5414722 0.0928837 5.8295691 0.0000000 0.3594234 0.7235210
factg_total_t5 ~~ factg_total_t5 126.4552707 10.3770452 12.1860576 0.0000000 106.1166359 146.7939056
catastrophe_t2t4 ~~ catastrophe_t2t4 1.0223495 0.0838950 12.1860576 0.0000000 0.8579183 1.1867807
manageable_t2t4 ~~ manageable_t2t4 0.4234376 0.0347477 12.1860576 0.0000000 0.3553334 0.4915419
opportunity_t2t4 ~~ opportunity_t2t4 0.5617751 0.0460998 12.1860576 0.0000000 0.4714211 0.6521291
adversary_t2t4 ~~ adversary_t2t4 1.1779644 0.0966649 12.1860576 0.0000000 0.9885046 1.3674242
capable_t2t4 ~~ capable_t2t4 0.8562156 0.0702619 12.1860576 0.0000000 0.7185048 0.9939264
responsive_t2t4 ~~ responsive_t2t4 0.6405764 0.0525663 12.1860576 0.0000000 0.5375482 0.7436045
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
random ~~ adversary_t1 0.0177221 0.0000000 NA NA 0.0177221 0.0177221
random ~~ capable_t1 -0.0257532 0.0000000 NA NA -0.0257532 -0.0257532
random ~~ responsive_t1 0.0368179 0.0000000 NA NA 0.0368179 0.0368179
random ~~ factg_total_t1 0.2035847 0.0000000 NA NA 0.2035847 0.2035847
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
catastrophe_t1 ~~ adversary_t1 0.4402272 0.0000000 NA NA 0.4402272 0.4402272
catastrophe_t1 ~~ capable_t1 -0.4257502 0.0000000 NA NA -0.4257502 -0.4257502
catastrophe_t1 ~~ responsive_t1 -0.2396241 0.0000000 NA NA -0.2396241 -0.2396241
catastrophe_t1 ~~ factg_total_t1 -10.5753495 0.0000000 NA NA -10.5753495 -10.5753495
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
manageable_t1 ~~ adversary_t1 -0.2400530 0.0000000 NA NA -0.2400530 -0.2400530
manageable_t1 ~~ capable_t1 0.3376174 0.0000000 NA NA 0.3376174 0.3376174
manageable_t1 ~~ responsive_t1 0.2862381 0.0000000 NA NA 0.2862381 0.2862381
manageable_t1 ~~ factg_total_t1 6.4131778 0.0000000 NA NA 6.4131778 6.4131778
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
opportunity_t1 ~~ adversary_t1 -0.1870947 0.0000000 NA NA -0.1870947 -0.1870947
opportunity_t1 ~~ capable_t1 0.3302261 0.0000000 NA NA 0.3302261 0.3302261
opportunity_t1 ~~ responsive_t1 0.3073845 0.0000000 NA NA 0.3073845 0.3073845
opportunity_t1 ~~ factg_total_t1 4.7021137 0.0000000 NA NA 4.7021137 4.7021137
adversary_t1 ~~ adversary_t1 1.2951499 0.0000000 NA NA 1.2951499 1.2951499
adversary_t1 ~~ capable_t1 -0.3957485 0.0000000 NA NA -0.3957485 -0.3957485
adversary_t1 ~~ responsive_t1 -0.1816784 0.0000000 NA NA -0.1816784 -0.1816784
adversary_t1 ~~ factg_total_t1 -7.2480954 0.0000000 NA NA -7.2480954 -7.2480954
capable_t1 ~~ capable_t1 1.0357472 0.0000000 NA NA 1.0357472 1.0357472
capable_t1 ~~ responsive_t1 0.6141034 0.0000000 NA NA 0.6141034 0.6141034
capable_t1 ~~ factg_total_t1 7.0025394 0.0000000 NA NA 7.0025394 7.0025394
responsive_t1 ~~ responsive_t1 0.9362864 0.0000000 NA NA 0.9362864 0.9362864
responsive_t1 ~~ factg_total_t1 5.4094253 0.0000000 NA NA 5.4094253 5.4094253
factg_total_t1 ~~ factg_total_t1 270.2340577 0.0000000 NA NA 270.2340577 270.2340577
catastrophe_IDE := a1*b1 catastrophe_IDE 2.3118378 0.6751550 3.4241586 0.0006167 0.9885583 3.6351173
manageable_IDE := a2*b2 manageable_IDE 0.1965908 0.2915941 0.6741934 0.5001883 -0.3749231 0.7681048
opportunity_IDE := a3*b3 opportunity_IDE 0.0798066 0.2054464 0.3884545 0.6976797 -0.3228609 0.4824740
adversary_IDE := a4*b4 adversary_IDE -0.0471697 0.1195406 -0.3945913 0.6931445 -0.2814649 0.1871255
capable_IDE := a5*b5 capable_IDE 1.6137229 0.6346991 2.5425008 0.0110062 0.3697356 2.8577102
responsive_IDE := a6*b6 responsive_IDE -1.6187184 0.5215173 -3.1038633 0.0019101 -2.6408735 -0.5965633
total := c+(a1b1)+(a2b2)+(a3b3)+(a4b4)+(a5b5)+(a6b6) total 6.6846097 1.6042116 4.1669128 0.0000309 3.5404128 9.8288065

Cancer Worry Scale - Mediation

kable(boot_fit_imi_cws_med_1, format="html") %>%
  kable_styling(position="center", bootstrap_options = c("striped", "hover"))
lhs op rhs label est se z pvalue ci.lower ci.upper
cws_t5t6 ~ random c 0.1093667 0.0653150 1.6744499 0.0940422 -0.0186484 0.2373817
cws_t5t6 ~ catastrophe_t2t5 b1 0.1795729 0.0301746 5.9511199 0.0000000 0.1204317 0.2387140
cws_t5t6 ~ manageable_t2t5 b2 -0.2348973 0.0468615 -5.0125817 0.0000005 -0.3267443 -0.1430504
cws_t5t6 ~ opportunity_t2t5 b3 -0.0030325 0.0406522 -0.0745970 0.9405354 -0.0827093 0.0766443
cws_t5t6 ~ catastrophe_t1 cv 0.0621545 0.0325715 1.9082493 0.0563590 -0.0016844 0.1259935
cws_t5t6 ~ manageable_t1 cv2 -0.0809703 0.0481682 -1.6809919 0.0927645 -0.1753782 0.0134376
cws_t5t6 ~ opportunity_t1 cv3 0.0433472 0.0411982 1.0521636 0.2927245 -0.0373997 0.1240941
catastrophe_t2t5 ~ random a1 -0.5179687 0.1161994 -4.4575850 0.0000083 -0.7457154 -0.2902221
manageable_t2t5 ~ random a2 0.3223145 0.0748220 4.3077505 0.0000165 0.1756661 0.4689629
opportunity_t2t5 ~ random a3 0.2766106 0.0862506 3.2070581 0.0013410 0.1075626 0.4456587
cws_t5t6 ~~ cws_t5t6 0.2711064 0.0222473 12.1860576 0.0000000 0.2275026 0.3147102
catastrophe_t2t5 ~~ catastrophe_t2t5 1.0025346 0.0822690 12.1860576 0.0000000 0.8412903 1.1637788
manageable_t2t5 ~~ manageable_t2t5 0.4156714 0.0341104 12.1860576 0.0000000 0.3488162 0.4825265
opportunity_t2t5 ~~ opportunity_t2t5 0.5523516 0.0453265 12.1860576 0.0000000 0.4635133 0.6411900
random ~~ random 0.2499972 0.0000000 NA NA 0.2499972 0.2499972
random ~~ catastrophe_t1 -0.0050675 0.0000000 NA NA -0.0050675 -0.0050675
random ~~ manageable_t1 -0.0029891 0.0000000 NA NA -0.0029891 -0.0029891
random ~~ opportunity_t1 -0.0232261 0.0000000 NA NA -0.0232261 -0.0232261
catastrophe_t1 ~~ catastrophe_t1 1.2557902 0.0000000 NA NA 1.2557902 1.2557902
catastrophe_t1 ~~ manageable_t1 -0.4272126 0.0000000 NA NA -0.4272126 -0.4272126
catastrophe_t1 ~~ opportunity_t1 -0.4306023 0.0000000 NA NA -0.4306023 -0.4306023
manageable_t1 ~~ manageable_t1 0.5751290 0.0000000 NA NA 0.5751290 0.5751290
manageable_t1 ~~ opportunity_t1 0.2929397 0.0000000 NA NA 0.2929397 0.2929397
opportunity_t1 ~~ opportunity_t1 0.7375452 0.0000000 NA NA 0.7375452 0.7375452
catastrophe_IDE := a1*b1 catastrophe_IDE -0.0930131 0.0260707 -3.5677234 0.0003601 -0.1441108 -0.0419154
manageable_IDE := a2*b2 manageable_IDE -0.0757108 0.0231740 -3.2670616 0.0010867 -0.1211310 -0.0302907
opportunity_IDE := a3*b3 opportunity_IDE -0.0008388 0.0112479 -0.0745768 0.9405514 -0.0228842 0.0212066
total := c+(a1b1)+(a2b2)+(a3*b3) total -0.0601961 0.0664195 -0.9063011 0.3647765 -0.1903759 0.0699838

Exploratory Mechanisms - Moderation Models

embrace_mod <- embrace %>% 
  select(record_id, randomization, cohort, age, gender, education_cat, race_cat, cancer_stage, dx_length, cancer_type_simplified, optimism,
        catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6,
        manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6,
        opportunity_t1, opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6,
        responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6,
        capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6,
        adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6,
        factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6,
        factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6,
        factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6,
        factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, 
        factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6, 
        cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6, 
        cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, 
        cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6,
        cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, 
        cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6, 
        rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, 
        rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6, 
        panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5,  panas_positive_t6, 
        panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6) %>%
      mutate(condition = case_when(randomization=="Mindset" ~ "Mindset",
                                 randomization=="TAU" ~ "Control")) %>%
  pivot_longer(
    cols = c(catastrophe_t1, catastrophe_t2, catastrophe_t3, catastrophe_t4, catastrophe_t5, catastrophe_t6,
        manageable_t1, manageable_t2, manageable_t3, manageable_t4, manageable_t5, manageable_t6,
        opportunity_t1, opportunity_t2, opportunity_t3, opportunity_t4, opportunity_t5, opportunity_t6,
        responsive_t1, responsive_t2, responsive_t3, responsive_t4, responsive_t5, responsive_t6,
        capable_t1, capable_t2, capable_t3, capable_t4, capable_t5, capable_t6,
        adversary_t1, adversary_t2, adversary_t3, adversary_t4, adversary_t5, adversary_t6,
        factg_total_t1, factg_total_t2, factg_total_t3, factg_total_t4, factg_total_t5, factg_total_t6,
        factg_physical_t1, factg_physical_t2, factg_physical_t3, factg_physical_t4, factg_physical_t5, factg_physical_t6,
        factg_social_t1, factg_social_t2, factg_social_t3, factg_social_t4, factg_social_t5, factg_social_t6,
        factg_emotional_t1, factg_emotional_t2, factg_emotional_t3, factg_emotional_t4, factg_emotional_t5, factg_emotional_t6, 
        factg_functional_t1, factg_functional_t2, factg_functional_t3, factg_functional_t4, factg_functional_t5, factg_functional_t6, 
        cbi_avg_t1, cbi_avg_t2, cbi_avg_t3, cbi_avg_t4, cbi_avg_t5, cbi_avg_t6, 
        cbi_independence_t1, cbi_independence_t2, cbi_independence_t3, cbi_independence_t4, cbi_independence_t5, cbi_independence_t6, 
        cbi_activepart_t1, cbi_activepart_t2, cbi_activepart_t3, cbi_activepart_t4, cbi_activepart_t5, cbi_activepart_t6,
        cbi_cope_t1, cbi_cope_t2, cbi_cope_t3, cbi_cope_t4, cbi_cope_t5, cbi_cope_t6, 
        cbi_emoreg_t1, cbi_emoreg_t2, cbi_emoreg_t3, cbi_emoreg_t4, cbi_emoreg_t5, cbi_emoreg_t6, 
        rscl_phys_total_t1, rscl_phys_total_t2, rscl_phys_total_t3, rscl_phys_total_t4, rscl_phys_total_t5, rscl_phys_total_t6, 
        rscl_psych_total_t1, rscl_psych_total_t2, rscl_psych_total_t3, rscl_psych_total_t4, rscl_psych_total_t5, rscl_psych_total_t6, 
        panas_positive_t1, panas_positive_t2, panas_positive_t3, panas_positive_t4, panas_positive_t5,  panas_positive_t6, 
        panas_negative_t1, panas_negative_t2, panas_negative_t3, panas_negative_t4, panas_negative_t5, panas_negative_t6)) %>% 
  mutate(time = as.factor(
    case_when(grepl("_t1", name)~ "time 1", 
              grepl("_t2", name)~ "time 2", 
              grepl("_t3", name)~ "time 3",
              grepl("_t4", name)~ "time 4",
              grepl("_t5", name)~ "time 5",
              grepl("_t6", name)~ "time 6",
              ))) %>% 
  mutate(name = case_when(
    grepl("catastrophe_t", name) ~ "catastrophe",
    grepl("manageable_t", name) ~ "manageable",
    grepl("opportunity_t", name) ~ "opportunity",
    grepl("responsive_t", name) ~ "responsive",
    grepl("capable_t", name) ~ "capable",
    grepl("adversary_t", name) ~ "adversary",
    grepl("factg_total_t", name) ~ "factg_total",
    grepl("factg_physical_t", name) ~ "factg_physical",
    grepl("factg_social_t", name) ~ "factg_social",
    grepl("factg_emotional_t", name) ~ "factg_emotional",
    grepl("factg_functional_t", name) ~ "factg_functional",
    grepl("cbi_avg_t", name) ~ "cbi",
    grepl("cbi_activepart_t", name) ~ "cbi_activepart",
    grepl("cbi_cope_t", name) ~ "cbi_cope",
    grepl("cbi_independence_t", name) ~ "cbi_ind",
    grepl("cbi_emoreg_t", name) ~ "cbi_emoreg",
    grepl("rscl_phys_total_t", name) ~ "rscl_phys",
    grepl("rscl_psych_total_t", name) ~ "rscl_psych",
    grepl("panas_positive_t", name) ~ "panas_positive",
    grepl("panas_negative_t", name) ~ "panas_negative")) 
    

embrace_mod= embrace_mod %>% 
  pivot_wider(names_from = "name", values_from= "value") 

embrace_mod <- embrace_mod %>%
  filter(record_id != "")

embrace_mod <- embrace_mod %>%
  mutate(
    time_1=if_else(time=="time 1", 1, 0),
    time_2=if_else(time=="time 2", 1, 0),
    time_3=if_else(time=="time 3", 1, 0),
    time_4=if_else(time=="time 4", 1, 0),
    time_5=if_else(time=="time 5", 1, 0),
    time_6=if_else(time=="time 6", 1, 0))

embrace_mod <- embrace_mod %>%
  mutate(week = case_when(time=="time 1" ~ 0,
                          time=="time 2" ~ 2,
                          time=="time 3" ~ 4,
                          time=="time 4" ~ 6,
                          time=="time 5" ~ 10,
                          time=="time 6" ~ 14)) 

#Categorical variables prep
embrace_mod <- embrace_mod %>% 
   mutate(
#Gender
          female = if_else (gender == "Male", 1, 0),
          male = if_else(gender == "Female", 1, 0),

#Education
          highschool_edu = if_else(education_cat == "High School", 1, 0),
          college_edu = if_else(education_cat == "≥ Bachelor's Degree", 1, 0),

#Race
          white_race = if_else(race_cat=="White", 1, 0),
          nonwhite_race = if_else(race_cat=="Non-White", 1, 0),
#Diagnosis
          breast = if_else(cancer_type_simplified == "Breast Cancer", 1, 0),
          colon = if_else(cancer_type_simplified == "Colon/Rectal Cancer",1,0),
          gynecological = if_else(cancer_type_simplified == "Gynecological Cancers", 1, 0),
          blood = if_else(cancer_type_simplified == "Blood Cancers", 1, 0),
          other = if_else(cancer_type_simplified ==  "Other Cancers", 1, 0),
#Cancer Stage
          stage_1 = if_else(cancer_stage == "Stage 1", 1, 0),
          stage_2 = if_else(cancer_stage == "Stage 2",1,0),
          stage_3 = if_else(cancer_stage == "Stage 3", 1, 0),
          no_stage = if_else(cancer_stage == "No Stage", 1, 0),
#Cohort
          cohort_a = if_else(cohort == "A", 1, 0),
          cohort_b = if_else(cohort == "B",1,0),
          cohort_c = if_else(cohort == "C", 1, 0),
          cohort_d = if_else(cohort == "D", 1, 0),
          cohort_e = if_else(cohort ==  "E", 1, 0),
#Randomization
          random_mindset = if_else(randomization == "Mindset", 1, 0),
          random_tau = if_else(randomization ==  "TAU", 1, 0))
#Create dataframe for outcome measures (DVs). 
embrace_mod_exp <- embrace_mod %>% 
  select(record_id, condition, time, week, cohort, age, gender, education_cat, race_cat, cancer_stage, stage_1, stage_2, stage_3, no_stage, dx_length, cancer_type_simplified, optimism, catastrophe, manageable, opportunity, responsive, capable, adversary, factg_total, factg_physical, factg_social, factg_emotional, factg_functional, cbi, cbi_activepart, cbi_cope, cbi_ind, cbi_emoreg, rscl_phys, rscl_psych, panas_positive, panas_negative) %>%
  pivot_longer(
    cols=c(catastrophe, manageable, opportunity, responsive, capable, adversary, factg_total, factg_physical, factg_social, factg_emotional, factg_functional, cbi, cbi_activepart, cbi_cope, cbi_ind, cbi_emoreg, rscl_phys, rscl_psych, panas_positive, panas_negative))
#Gender - Look at Differences Across Gender
gender_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")

factg_mod_gender_slopes = lmer(value ~ week  + gender + week:gender + (1 + week | record_id), data=gender_mod_factg_slope_df)
tab_model(factg_mod_gender_slopes)
  value
Predictors Estimates CI p
(Intercept) 69.90 66.91 – 72.89 <0.001
week 0.38 0.23 – 0.53 <0.001
gender [Male] 5.51 -1.36 – 12.37 0.116
week * gender [Male] -0.15 -0.49 – 0.20 0.405
Random Effects
σ2 42.68
τ00 record_id 259.99
τ11 record_id.week 0.39
ρ01 record_id -0.30
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.021 / 0.856
mod_factg_gender_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, gender) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_gender_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=gender, color=gender)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(50, 85), breaks=c(50,55,60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Gender",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_grid(~condition)

#Race - Look at Differences Across Race in the MI Condition & Plot Moderation Across Conditions

race_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")

factg_mod_race_slopes = lmer(value ~ week  + race_cat + week:race_cat + (1 + week | record_id), data=race_mod_factg_slope_df)
tab_model(factg_mod_race_slopes)
  value
Predictors Estimates CI p
(Intercept) 66.52 59.54 – 73.51 <0.001
week 0.65 0.30 – 0.99 <0.001
race_cat [White] 5.19 -2.38 – 12.76 0.179
week * race_cat [White] -0.34 -0.72 – 0.04 0.076
Random Effects
σ2 42.68
τ00 record_id 261.25
τ11 record_id.week 0.38
ρ01 record_id -0.29
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.015 / 0.856
mod_factg_race_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, race_cat) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_race_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=race_cat, color=race_cat)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(60, 84), breaks=c(60,62,64,66,68,70,72,74,76,78,80,82,84)) + 
  labs(title="FACT-G Total Score Over Time Across Races",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) + 
  facet_wrap(~condition)

#Education - Look at Differences Across Education in the MI Condition & Plot Moderation Across Conditions

edu_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")

factg_mod_edu_slopes = lmer(value ~ week  + education_cat + week:education_cat + (1 + week | record_id), data=edu_mod_factg_slope_df)
tab_model(factg_mod_edu_slopes)
  value
Predictors Estimates CI p
(Intercept) 70.99 67.71 – 74.27 <0.001
week 0.34 0.18 – 0.50 <0.001
education_cat [High
School]
-0.15 -5.97 – 5.67 0.960
week * education_cat
[High School]
0.06 -0.23 – 0.35 0.708
Random Effects
σ2 42.68
τ00 record_id 264.61
τ11 record_id.week 0.39
ρ01 record_id -0.31
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.010 / 0.855
mod_factg_edu_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, education_cat) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_edu_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=education_cat, color=education_cat)) +
    scale_color_manual(values=c("darkred", "deepskyblue4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(60, 84), breaks=c(60,62,64,66,68,70,72,74,76,78,80,82,84)) + 
  labs(title="FACT-G Total Score Over Time Across Education Level",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) + 
  facet_wrap(~condition)

#Age - Look at Differences Across Age (Categorical) in the MI Condition & Plot Moderation
agecat_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")

factg_mod_age_slopes = lmer(value ~ week  + age + week:age + (1 + week | record_id), data=agecat_mod_factg_slope_df)
tab_model(factg_mod_age_slopes)
  value
Predictors Estimates CI p
(Intercept) 67.75 56.49 – 79.00 <0.001
week 0.46 -0.10 – 1.02 0.110
age 0.06 -0.15 – 0.27 0.567
week * age -0.00 -0.01 – 0.01 0.716
Random Effects
σ2 42.68
τ00 record_id 264.07
τ11 record_id.week 0.39
ρ01 record_id -0.31
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.011 / 0.856
agecat_mod_factg_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>% 
  select(condition, time, age, name, value) %>%
  mutate(age_cat = case_when(
    age < 35 ~ "18-34",
    age > 34 & age < 55 ~ "35-54",
    age > 55 ~ "55+"
  )) %>%
  group_by(condition, time, age_cat) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

agecat_mod_factg_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=age_cat, color=age_cat)) +
    scale_color_manual(values=c("darkred", "deepskyblue4", "springgreen4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(50, 85), breaks=c(50,55,60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Age Categories",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_grid(~condition)

#Cancer Stage - Look at Differences Cancer Stage in the Mindset Intervention Condition
stage_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")

factg_mod_stage_slopes = lmer(value ~ week  + cancer_stage + week:cancer_stage + (1 + week | record_id), data=stage_mod_factg_slope_df)
tab_model(factg_mod_stage_slopes)
  value
Predictors Estimates CI p
(Intercept) 71.50 64.23 – 78.77 <0.001
week 0.41 0.04 – 0.77 0.031
cancer_stage [Stage 1] 3.68 -4.85 – 12.21 0.398
cancer_stage [Stage 2] -3.94 -12.62 – 4.74 0.374
cancer_stage [Stage 3] -3.29 -12.81 – 6.22 0.498
week * cancer_stage
[Stage 1]
0.05 -0.38 – 0.48 0.821
week * cancer_stage
[Stage 2]
-0.16 -0.60 – 0.27 0.462
week * cancer_stage
[Stage 3]
-0.08 -0.56 – 0.40 0.749
Random Effects
σ2 42.68
τ00 record_id 256.80
τ11 record_id.week 0.39
ρ01 record_id -0.35
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.062 / 0.857
mod_factg_stage_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, cancer_stage) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_stage_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=cancer_stage, color=cancer_stage)) +
    scale_color_manual(values=c("darkred", "deepskyblue4", "springgreen4", "goldenrod2")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(55, 85), breaks=c(55,60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Canger Stage at Diagnosis",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_wrap(~condition)

#Cancer Type - Look at Differences Cancer Type (Simplified) in MI and plot moderation across conditions
type_mod_factg_slope_df <- embrace_mod_exp %>%
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")
  
factg_mod_type_slopes = lmer(value ~ week  + cancer_type_simplified + week:cancer_type_simplified + (1 + week | record_id), data=type_mod_factg_slope_df)
tab_model(factg_mod_type_slopes)
  value
Predictors Estimates CI p
(Intercept) 69.50 59.54 – 79.47 <0.001
week 0.51 0.01 – 1.01 0.044
cancer_type_simplified
[Breast Cancer]
2.21 -8.40 – 12.83 0.683
cancer_type_simplified
[Solid Tumors]
0.57 -10.35 – 11.48 0.919
week *
cancer_type_simplified
[Breast Cancer]
-0.20 -0.72 – 0.33 0.468
week *
cancer_type_simplified
[Solid Tumors]
-0.12 -0.66 – 0.42 0.667
Random Effects
σ2 42.68
τ00 record_id 265.88
τ11 record_id.week 0.39
ρ01 record_id -0.31
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.011 / 0.856
mod_factg_type_slope_plot <- embrace_mod_exp  %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, cancer_type_simplified) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_type_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=cancer_type_simplified, color=cancer_type_simplified)) +
    scale_color_manual(values=c("darkred", "deepskyblue4", "springgreen4")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(55, 85), breaks=c(55,60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Cancer Types",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_wrap(~condition)

#DX length - Look at Differences Across Dx Length (Categorical) in the MI condition

dxlngth_mod_factg_slope_df <- embrace_mod_exp %>% 
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")
  
factg_mod_dxlngth_slopes = lmer(value ~ week  + dx_length + week:dx_length + (1 + week | record_id), data=dxlngth_mod_factg_slope_df)
tab_model(factg_mod_dxlngth_slopes)
  value
Predictors Estimates CI p
(Intercept) 73.13 68.28 – 77.98 <0.001
week 0.25 0.01 – 0.50 0.039
dx_length -0.03 -0.10 – 0.03 0.297
week * dx_length 0.00 -0.00 – 0.00 0.294
Random Effects
σ2 42.60
τ00 record_id 264.10
τ11 record_id.week 0.39
ρ01 record_id -0.31
ICC 0.85
N record_id 147
Observations 882
Marginal R2 / Conditional R2 0.014 / 0.856
mod_factg_dx_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  select(condition, time, dx_length, name, value) %>%
  mutate(dx_length_cat = case_when(
    dx_length < 31 ~ "<1 Month",
    dx_length > 30 & dx_length < 61 ~ "1-2 Months",
    dx_length > 60 & dx_length < 91 ~ "2-3 Months",
    dx_length > 90 & dx_length < 121 ~ "3-4 Months",
    dx_length >120 ~ "> 4 Months",
  )) %>%
  group_by(condition, time, dx_length_cat) %>%
  summarize(avg = mean(value),
            std_err = stderr(value)) %>%
  na.omit()

mod_factg_dx_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=dx_length_cat, color=dx_length_cat)) +
    scale_color_manual(values=c("darkred", "deepskyblue4", "darkorchid3", "springgreen4", "goldenrod2")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(55, 85), breaks=c(55,60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Dx Length",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_wrap(~condition)

#Cohort - Look at Differences Cohort in MI Condition
cohort_mod_factg_slope_df <- embrace_mod_exp %>% 
  filter(condition=="Mindset") %>%
  filter(name=="factg_total")
  
factg_mod_cohort_slopes = lmer(value ~ week  + cohort + week:cohort + (1 + week | record_id), data=cohort_mod_factg_slope_df)
tab_model(factg_mod_cohort_slopes)
  value
Predictors Estimates CI p
(Intercept) 66.29 58.91 – 73.66 <0.001
week 0.52 0.16 – 0.89 0.005
cohort [B] 6.17 -2.76 – 15.10 0.176
cohort [C] 5.49 -3.92 – 14.89 0.253
cohort [D] 6.43 -2.92 – 15.77 0.178
cohort [E] 1.79 -8.64 – 12.22 0.737
week * cohort [B] -0.09 -0.53 – 0.35 0.690
week * cohort [C] -0.17 -0.64 – 0.29 0.463
week * cohort [D] -0.41 -0.87 – 0.06 0.085
week * cohort [E] -0.10 -0.61 – 0.42 0.718
Random Effects
σ2 42.68
τ00 record_id 264.89
τ11 record_id.week 0.39
ρ01 record_id -0.30
ICC 0.85
N record_id 148
Observations 888
Marginal R2 / Conditional R2 0.024 / 0.858
mod_factg_cohort_slope_plot <- embrace_mod_exp %>%
  filter(name=="factg_total") %>%
  group_by(condition, time, cohort) %>%
  summarize(avg = mean(value),
            std_err = stderr(value))

mod_factg_cohort_slope_plot %>%
    ggplot(aes(x=time, y=avg, group=cohort, color=cohort)) +
    scale_color_manual(values=c("darkred", "deepskyblue4", "darkorchid3", "springgreen4", "goldenrod2")) + 
    geom_errorbar(aes(ymin=avg-std_err, ymax=avg+std_err), width=.1) +
    geom_smooth(method="lm") +
    geom_point(shape=18, size=3) + 
    theme_minimal() + 
    scale_y_continuous(limits=c(60, 85), breaks=c(60,65,70,75,80,85)) + 
  labs(title="FACT-G Total Score Over Time Across Cohort",x="Timepoint", y = "FACT-G Total Score") +
  theme(legend.position="bottom") + 
  theme(legend.text = element_text(color="grey21", size=12)) + 
  theme(legend.title = element_blank()) +
  theme(axis.text.x = element_text(color="black", size=10, hjust=0.5)) +
  facet_wrap(~condition)