Libraries

library(tidyverse)
library(psych) # For alpha()
library(MVN) # For descriptive summaries
library(PerformanceAnalytics) # For correlations plot
library(apaTables) # for correlations table
library(bcaboot) # for bcajack()

Data

Download data: https://osf.io/download/67f83bcb942fb4367a8b884b/

data0 <- read.csv("https://osf.io/download/67f83bcb942fb4367a8b884b/")
data0$probe <- rep("no", nrow(data0)) # no interruption
data0$probe[1:95] <- "yes" # though probe

Variables

STAI-6 (reverse-code items 1, 4, 5)

data1 <- data0 |> 
  rowwise() |> 
  mutate(STAI6_1 = mean(c(5 - STAI6_Q1_1, STAI6_Q2_1, STAI6_Q3_1, 5 - STAI6_Q4_1, 5 - STAI6_Q5_1, STAI6_Q6_1), na.rm = T)) |> 
  mutate(STAI6_2 = mean(c(5 - STAI6_Q1_2, STAI6_Q2_2, STAI6_Q3_2, 5 - STAI6_Q4_2, 5 - STAI6_Q5_2, STAI6_Q6_2), na.rm = T)) |> 
  mutate(STAI6_3 = mean(c(5 - STAI6_Q1_3, STAI6_Q2_3, STAI6_Q3_3, 5 - STAI6_Q4_3, 5 - STAI6_Q5_3, STAI6_Q6_3), na.rm = T)) |> 
  mutate(
    change_anxiety0 = STAI6_2 - STAI6_1,
    change_anxiety = STAI6_2 - STAI6_3,
    probe01 = 1*(probe == "yes")
    ) 

Mental state:

data1 <- data1 |> 
  rowwise() |> 
  mutate(
    avg_absorption = mean(c(TB1_Q1_1, TB2_Q1_1, TB3_Q1_1, TB4_Q1_1), na.rm = T),
    state_a = 25*(TB1_Q2 == 1) + 25*(TB2_Q2 == 1) + 25*(TB3_Q2 == 1) + 25*(TB4_Q2 == 1),
    state_b = 25*(TB1_Q2 == 2) + 25*(TB2_Q2 == 2) + 25*(TB3_Q2 == 2) + 25*(TB4_Q2 == 2),
    state_c = 25*(TB1_Q2 == 3) + 25*(TB2_Q2 == 3) + 25*(TB3_Q2 == 3) + 25*(TB4_Q2 == 3),
    state_d = 25*(TB1_Q2 == 4) + 25*(TB2_Q2 == 4) + 25*(TB3_Q2 == 4) + 25*(TB4_Q2 == 4),
    state_e = 25*(TB1_Q2 == 5) + 25*(TB2_Q2 == 5) + 25*(TB3_Q2 == 5) + 25*(TB4_Q2 == 5),
    all_states_retro = time_Q1 + time_Q2 + time_Q3 + time_Q4 + time_Q5
    ) |> 
  mutate(
    add_to_100 = 1*(all_states_retro == 100),
    state_a_retro = 100*time_Q1/all_states_retro,
    state_b_retro = 100*time_Q2/all_states_retro,
    state_c_retro = 100*time_Q3/all_states_retro,
    state_d_retro = 100*time_Q4/all_states_retro,
    state_e_retro = 100*time_Q5/all_states_retro,
    )

Flow:

data1 <- data1 |> 
  rowwise() |> 
  mutate(
    Flow_fluency = mean(c(Flow_Q2, Flow_Q4, Flow_Q5, Flow_Q7, Flow_Q8, Flow_Q9), na.rm = T),
    Flow_absorption = mean(c(Flow_Q1, Flow_Q3, Flow_Q6, Flow_Q10), na.rm = T),
    Flow = mean(c(Flow_Q1, Flow_Q2, Flow_Q3, Flow_Q4, Flow_Q5, Flow_Q6, Flow_Q7, Flow_Q8, Flow_Q9, Flow_Q10), na.rm = T))

State mindfulness (reverse code) and trait mindfulness:

data1 <- data1 |> 
  rowwise() |> 
  mutate(
    State_mindfulness = mean(c(8 - Mindfulness_Q1, 8 - Mindfulness_Q2, 8 - Mindfulness_Q3, 8 - Mindfulness_Q4, 8 - Mindfulness_Q5), na.rm = T),
    Trait_mindfulness = mean(c(Trait_Q1, Trait_Q2, Trait_Q3, Trait_Q4, Trait_Q5, Trait_Q6, Trait_Q7, Trait_Q8, Trait_Q9, Trait_Q10, Trait_Q11, Trait_Q12, Trait_Q13, Trait_Q14, Trait_Q15), na.rm = T)
    )
# write.csv(data1, "data1.csv", row.names = F)

Sample characteristics

Age:

mean(data1$Age)
## [1] 21.14362
sd(data1$Age)
## [1] 4.405346
median(data1$Age)
## [1] 20

Summary of age: M = 21.14, SD = 4.41, Med = 20.

Gender:

Woman:

sum(data1$Gender_1)
## [1] 151
sum(data1$Gender_1)/188
## [1] 0.8031915

Man

sum(data1$Gender_2)
## [1] 34
sum(data1$Gender_2)/188
## [1] 0.1808511

Non-binary

sum(data1$Gender_3)
## [1] 5
sum(data1$Gender_3)/188
## [1] 0.02659574

Something else

sum(data1$Gender_4)
## [1] 0

Prefer not to answer

sum(data1$Gender_5)
## [1] 0

Summary of gender: 151 (80.3%) identified as women, 34 (18.1%) as men, and 5 (2.7%) as non-binary.

Race/ethnicity:

Asian

sum(data1$Race_1)
## [1] 47
sum(data1$Race_1)/188
## [1] 0.25

African/Black

sum(data1$Race_2)
## [1] 20
sum(data1$Race_2)/188
## [1] 0.106383

Hispanic/Latinx

sum(data1$Race_3)
## [1] 68
sum(data1$Race_3)/188
## [1] 0.3617021

Middle Eastern/North African

sum(data1$Race_4)
## [1] 7
sum(data1$Race_4)/188
## [1] 0.03723404

Native American

sum(data1$Race_5)
## [1] 0
sum(data1$Race_5)/188
## [1] 0

Native Hawaiian/Pacific Islander

sum(data1$Race_6)
## [1] 3
sum(data1$Race_6)/188
## [1] 0.01595745

White/European

sum(data1$Race_7)
## [1] 60
sum(data1$Race_7)/188
## [1] 0.3191489

Something else

sum(data1$Race_8)
## [1] 5
sum(data1$Race_8)/188
## [1] 0.02659574

Prefer not to answer

sum(data1$Race_9)
## [1] 0
sum(data1$Race_9)/188
## [1] 0
table(data1$Race_9_TEXT)
## 
##                  Armenian (Asian)         Filipino      West Indian 
##              183                1                1                1 
##      White/Latin 
##                2

Summary of race/ethnicity: 47 (25%) identified as Asian, 20 (10.6%) as African/Black, 68 (36.2%) as Hispanic/Latinx, 7 (3.7%) as Middle Eastern/North African, 0 (0%) as Native American, 3 (1.6%) as Native Hawaiian/Pacific Islander, 60 (31.9%) as White/European, and 5 (2.6%) as Something else.

Inspecting variables

data1_yes <- dplyr::filter(data1, probe == "yes")
data1_no <- dplyr::filter(data1, probe == "no")

No-interruption condition only:

df1 <- data1_no |> 
  dplyr::select(c(STAI6_1, STAI6_2, STAI6_3, Flow_fluency:Trait_mindfulness, Enjoyment, Mindfulness_Exp, Mandala_EXP, add_to_100:state_e_retro))
df1$Enjoyment[is.na(df1$Enjoyment)] <- mean(df1$Enjoyment, na.rm = T)
s1 <- mvn(df1)$Descriptives
s1$alpha <- rep(NA, nrow(s1))

Chronbach’s alpha:

# STAI6 time 1
dat <- data1_no |> 
  mutate(Q1 = 5 - STAI6_Q1_1, Q2 = STAI6_Q2_1, Q3 = STAI6_Q3_1, Q4 = 5 - STAI6_Q4_1, Q5 = 5 - STAI6_Q5_1, Q6 = STAI6_Q6_1) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[1] <- a$total[1]

# STAI6 time 2
dat <- data1_no |> 
  mutate(Q1 = 5 - STAI6_Q1_2, Q2 = STAI6_Q2_2, Q3 = STAI6_Q3_2, Q4 = 5 - STAI6_Q4_2, Q5 = 5 - STAI6_Q5_2, Q6 = STAI6_Q6_2) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[2] <- a$total[1]

# STAI6 time 3
dat <- data1_no |> 
  mutate(Q1 = 5 - STAI6_Q1_3, Q2 = STAI6_Q2_3, Q3 = STAI6_Q3_3, Q4 = 5 - STAI6_Q4_3, Q5 = 5 - STAI6_Q5_3, Q6 = STAI6_Q6_3) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[3] <- a$total[1]
# Flow-fluency
dat <- data1_no |> 
  mutate(Q1 = Flow_Q2, Q2 = Flow_Q4, Q3 = Flow_Q5, Q4 = Flow_Q7, Q5 = Flow_Q8, Q6 = Flow_Q9)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[4] <- a$total[1]

# Flow-absorption
dat <- data1_no |> 
  mutate(Q1 = Flow_Q1, Q2 = Flow_Q3, Q3 = Flow_Q6, Q4 = Flow_Q10)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4")])
## Some items ( Q4 ) were negatively correlated with the first principal component and 
## probably should be reversed.  
## To do this, run the function again with the 'check.keys=TRUE' option
s1$alpha[5] <- a$total[1]

# Flow
dat <- data1_no |> 
  mutate(Q1 = Flow_Q1, Q2 = Flow_Q2, Q3 = Flow_Q3, Q4 = Flow_Q4, Q5 = Flow_Q5, Q6 = Flow_Q6, Q7 = Flow_Q7, Q8 = Flow_Q8,Q9 = Flow_Q9, Q10 = Flow_Q10)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10")])
s1$alpha[6] <- a$total[1]
# State mindfulness
dat <- data1_no |> 
  mutate(Q1 = 8 - Mindfulness_Q1, Q2 = 8 - Mindfulness_Q2, Q3 = 8 - Mindfulness_Q3, Q4 = 8 - Mindfulness_Q4, Q5 = 8 - Mindfulness_Q5)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5")])
s1$alpha[7] <- a$total[1]

# Trait mindfulness
dat <- data1_no |> 
  mutate(Q1 = Trait_Q1, Q2 = Trait_Q2, Q3 = Trait_Q3, Q4 = Trait_Q4, Q5 = Trait_Q5, Q6 = Trait_Q6, Q7 = Trait_Q7, Q8 = Trait_Q8, Q9 = Trait_Q9, Q10 = Trait_Q10, Q11 = Trait_Q11, Q12 = Trait_Q12, Q13 = Trait_Q13, Q14 = Trait_Q14, Q15 = Trait_Q15)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", "Q12", "Q13", "Q14", "Q15")])
s1$alpha[8] <- a$total[1]

Summaries:

s1$alpha <- as.numeric(s1$alpha)
summaries_no <- round(s1, 2)

Thought-probe condition only:

df1 <- data1_yes |> 
  dplyr::select(c(STAI6_1, STAI6_2, STAI6_3, Flow_fluency:Trait_mindfulness, Enjoyment, Mindfulness_Exp, Mandala_EXP, add_to_100:state_e_retro, state_a:state_e, avg_absorption))
s1 <- mvn(df1)$Descriptives
s1$alpha <- rep(NA, nrow(s1))

Chronbach’s alpha:

# STAI6 time 1
dat <- data1_yes |> 
  mutate(Q1 = 5 - STAI6_Q1_1, Q2 = STAI6_Q2_1, Q3 = STAI6_Q3_1, Q4 = 5 - STAI6_Q4_1, Q5 = 5 - STAI6_Q5_1, Q6 = STAI6_Q6_1) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[1] <- a$total[1]

# STAI6 time 2
dat <- data1_yes |> 
  mutate(Q1 = 5 - STAI6_Q1_2, Q2 = STAI6_Q2_2, Q3 = STAI6_Q3_2, Q4 = 5 - STAI6_Q4_2, Q5 = 5 - STAI6_Q5_2, Q6 = STAI6_Q6_2) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[2] <- a$total[1]

# STAI6 time 3
dat <- data1_yes |> 
  mutate(Q1 = 5 - STAI6_Q1_3, Q2 = STAI6_Q2_3, Q3 = STAI6_Q3_3, Q4 = 5 - STAI6_Q4_3, Q5 = 5 - STAI6_Q5_3, Q6 = STAI6_Q6_3) 
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[3] <- a$total[1]
# Flow-fluency
dat <- data1_yes |> 
  mutate(Q1 = Flow_Q2, Q2 = Flow_Q4, Q3 = Flow_Q5, Q4 = Flow_Q7, Q5 = Flow_Q8, Q6 = Flow_Q9)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6")])
s1$alpha[4] <- a$total[1]

# Flow-absorption
dat <- data1_yes |> 
  mutate(Q1 = Flow_Q1, Q2 = Flow_Q3, Q3 = Flow_Q6, Q4 = Flow_Q10)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4")])
## Some items ( Q4 ) were negatively correlated with the first principal component and 
## probably should be reversed.  
## To do this, run the function again with the 'check.keys=TRUE' option
s1$alpha[5] <- a$total[1]

# Flow
dat <- data1_yes |> 
  mutate(Q1 = Flow_Q1, Q2 = Flow_Q2, Q3 = Flow_Q3, Q4 = Flow_Q4, Q5 = Flow_Q5, Q6 = Flow_Q6, Q7 = Flow_Q7, Q8 = Flow_Q8,Q9 = Flow_Q9, Q10 = Flow_Q10)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10")])
## Some items ( Q10 ) were negatively correlated with the first principal component and 
## probably should be reversed.  
## To do this, run the function again with the 'check.keys=TRUE' option
s1$alpha[6] <- a$total[1]
# State mindfulness
dat <- data1_yes |> 
  mutate(Q1 = 8 - Mindfulness_Q1, Q2 = 8 - Mindfulness_Q2, Q3 = 8 - Mindfulness_Q3, Q4 = 8 - Mindfulness_Q4, Q5 = 8 - Mindfulness_Q5)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5")])
s1$alpha[7] <- a$total[1]

# Trait mindfulness
dat <- data1_yes |> 
  mutate(Q1 = Trait_Q1, Q2 = Trait_Q2, Q3 = Trait_Q3, Q4 = Trait_Q4, Q5 = Trait_Q5, Q6 = Trait_Q6, Q7 = Trait_Q7, Q8 = Trait_Q8, Q9 = Trait_Q9, Q10 = Trait_Q10, Q11 = Trait_Q11, Q12 = Trait_Q12, Q13 = Trait_Q13, Q14 = Trait_Q14, Q15 = Trait_Q15)
a <- alpha(dat[,c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", "Q12", "Q13", "Q14", "Q15")])
s1$alpha[8] <- a$total[1]

Summaries:

s1$alpha <- as.numeric(s1$alpha)
summaries_yes <- round(s1, 2)

Summaries

No-interruption only:

# write.csv(summaries_no, "summaries_no.csv")
summaries_no$p_val <- rep(NA, nrow(summaries_no))
for (i in 1:nrow(summaries_no)) {
  var <- row.names(summaries_no)[i]
  t <- t.test(data1_no[,var], data1_yes[,var])
  summaries_no$p_val[i] <- round(t$p.value, 5)
}
summaries_no[, c("n", "Mean", "Std.Dev", "Median", "p_val")]
##                    n  Mean Std.Dev Median   p_val
## STAI6_1           93  2.06    0.57   2.00 0.37093
## STAI6_2           93  2.49    0.68   2.50 0.64863
## STAI6_3           93  1.78    0.55   1.67 0.33206
## Flow_fluency      93  4.73    1.17   4.83 0.10070
## Flow_absorption   93  4.37    1.01   4.25 0.91329
## Flow              93  4.59    0.99   4.70 0.26991
## State_mindfulness 93  4.92    1.15   5.00 0.44812
## Trait_mindfulness 93  3.46    0.75   3.47 0.31478
## Enjoyment         93  6.23    1.12   6.23 0.96361
## Mindfulness_Exp   93  2.27    1.26   2.00 0.83413
## Mandala_EXP       93  1.94    1.01   2.00 0.65337
## add_to_100        93  0.91    0.28   1.00 0.75668
## state_a_retro     93 31.90   21.48  30.00 0.05793
## state_b_retro     93 18.88   21.81  10.00 0.16094
## state_c_retro     93 18.20   13.35  15.00 0.00031
## state_d_retro     93 21.02   16.43  20.00 0.77135
## state_e_retro     93  9.99   11.61   5.00 0.71933

Thought-probe only:

# write.csv(summaries_yes, "summaries_yes.csv")
summaries_yes[, c("n", "Mean", "Std.Dev", "Median")]
##                    n  Mean Std.Dev Median
## STAI6_1           95  1.98    0.65   1.83
## STAI6_2           95  2.54    0.80   2.67
## STAI6_3           95  1.71    0.55   1.67
## Flow_fluency      95  4.99    0.92   5.00
## Flow_absorption   95  4.36    0.97   4.25
## Flow              95  4.73    0.80   4.80
## State_mindfulness 95  5.04    1.04   5.20
## Trait_mindfulness 95  3.57    0.76   3.60
## Enjoyment         95  6.22    1.02   7.00
## Mindfulness_Exp   95  2.23    1.17   2.00
## Mandala_EXP       95  2.00    0.96   2.00
## add_to_100        95  0.93    0.26   1.00
## state_a_retro     95 25.92   21.47  20.00
## state_b_retro     95 14.84   17.25  10.00
## state_c_retro     95 28.34   23.11  20.00
## state_d_retro     95 20.26   19.18  15.00
## state_e_retro     95 10.64   12.92  10.00
## state_a           95 21.58   23.52  25.00
## state_b           95 11.84   18.89   0.00
## state_c           95 29.74   29.24  25.00
## state_d           95 10.53   15.72   0.00
## state_e           95 26.32   24.56  25.00
## avg_absorption    95 77.39   16.33  81.25

Correlations

No-interruption condition only:

dat <- data1_no[, c("STAI6_2", "STAI6_3", "Flow", "State_mindfulness", "Trait_mindfulness", "Enjoyment", "Mindfulness_Exp", "Mandala_EXP", "state_a_retro", "state_b_retro", "state_c_retro", "state_d_retro", "state_e_retro", "change_anxiety")]
chart.Correlation(dat, histogram = TRUE, pch = 19)

#apa.cor.table(dat, filename = "cors_no.doc", show.conf.interval = F)

Testing hypotheses

Effectiveness of the anxiety induction activity:

t <- t.test(data1$change_anxiety0); t
## 
##  One Sample t-test
## 
## data:  data1$change_anxiety0
## t = 10.975, df = 187, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  0.4079448 0.5867360
## sample estimates:
## mean of x 
## 0.4973404
sd(data1$change_anxiety0)
## [1] 0.6213368

Time 2 anxiety explaining Time 3:

s0 <- summary(lm(scale(STAI6_3) ~ scale(STAI6_2), data = data1))
s1 <- summary(lm(scale(STAI6_3) ~ scale(STAI6_2), data = data1_no))
s2 <- summary(lm(scale(STAI6_3) ~ scale(STAI6_2), data = data1_yes))
s0$r.squared
## [1] 0.3590781
s1$r.squared
## [1] 0.3216608
s2$r.squared
## [1] 0.4059855
pvals <- NA

Goal 2 hypotheses: Methodological considerations of using thought probes during a coloring activity

Hypothesis 6. Interrupting coloring to probe participants’ mind states will result in less anxiety reduction from pre- to post-assessment compared to not interrupting.

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(probe01), data = data1)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(probe01), 
##     data = data1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.80466 -0.36900  0.02719  0.49509  2.17190 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.207e-16  5.832e-02   0.000    1.000    
## scale(-STAI6_2) 6.023e-01  5.851e-02  10.294   <2e-16 ***
## scale(probe01)  9.124e-02  5.851e-02   1.559    0.121    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7997 on 185 degrees of freedom
## Multiple R-squared:  0.3674, Adjusted R-squared:  0.3606 
## F-statistic: 53.72 on 2 and 185 DF,  p-value: < 2.2e-16
pvals <- c(pvals, s$coefficients[3,4])
r2 <- cor(data1$STAI6_3, data1$STAI6_2)^2
s$r.squared - r2
## [1] 0.008315301

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Anxiety reduction from pre- to post-assessment did not differ when prompting participants to attend to their mental states during coloring compared to not prompting [beta = 0.09, t(185) = 1.56, p = 0.12].

Hypothesis 7. Interrupting coloring to probe participants’ mind states will result in lower self-reported flow during the task compared to not interrupting.

t <- t.test(Flow ~ probe, data = data1); t
## 
##  Welch Two Sample t-test
## 
## data:  Flow by probe
## t = -1.1068, df = 175.87, p-value = 0.2699
## alternative hypothesis: true difference in means between group no and group yes is not equal to 0
## 95 percent confidence interval:
##  -0.4049239  0.1139449
## sample estimates:
##  mean in group no mean in group yes 
##          4.589247          4.734737
sd(data1_no$Flow)
## [1] 0.9938356
sd(data1_yes$Flow)
## [1] 0.7954349
pvals <- c(pvals, t$p.value)

Result: Flow did not significantly differ when prompting participants to attend to their mental states during coloring compared to not prompting [t(176) = 1.11, p = 0.27].

Research question. Which are the best predictors of pre- to post-change in anxiety: in-the-moment reports of mind states, retrospective reports of mind states of those who had been asked to report their mind states in the moment, or retrospective reports of those who colored without interruption?

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(avg_absorption), data = data1_yes)
s <- summary(m)
s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(avg_absorption), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.08534 -0.32811 -0.00858  0.39017  2.02624 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           -3.329e-16  7.765e-02   0.000   1.0000    
## scale(-STAI6_2)        5.905e-01  8.057e-02   7.329 8.73e-11 ***
## scale(avg_absorption)  1.886e-01  8.057e-02   2.340   0.0214 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7569 on 92 degrees of freedom
## Multiple R-squared:  0.4394, Adjusted R-squared:  0.4272 
## F-statistic: 36.05 on 2 and 92 DF,  p-value: 2.751e-12
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.03337407

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.22634 -0.36046 -0.00671  0.43499  2.14959 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -3.220e-16  7.992e-02   0.000    1.000    
## scale(-STAI6_2)  6.358e-01  8.114e-02   7.835 7.92e-12 ***
## scale(state_a)   1.015e-02  8.114e-02   0.125    0.901    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.779 on 92 degrees of freedom
## Multiple R-squared:  0.4061, Adjusted R-squared:  0.3932 
## F-statistic: 31.45 on 2 and 92 DF,  p-value: 3.902e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.0001011064

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.32919 -0.40025 -0.01107  0.46998  2.09856 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -2.042e-16  7.721e-02   0.000   1.0000    
## scale(-STAI6_2)  5.193e-01  9.016e-02   5.760  1.1e-07 ***
## scale(state_b)  -2.316e-01  9.016e-02  -2.568   0.0118 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7525 on 92 degrees of freedom
## Multiple R-squared:  0.4457, Adjusted R-squared:  0.4337 
## F-statistic: 36.99 on 2 and 92 DF,  p-value: 1.627e-12
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.0397408

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.20833 -0.37421  0.02156  0.43649  2.12433 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -3.216e-16  7.987e-02   0.000    1.000    
## scale(-STAI6_2)  6.327e-01  8.115e-02   7.797  9.5e-12 ***
## scale(state_c)   3.058e-02  8.115e-02   0.377    0.707    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7785 on 92 degrees of freedom
## Multiple R-squared:  0.4069, Adjusted R-squared:  0.394 
## F-statistic: 31.56 on 2 and 92 DF,  p-value: 3.663e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.0009157381

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.14468 -0.34338 -0.05888  0.50030  2.21711 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -3.205e-16  7.921e-02   0.000    1.000    
## scale(-STAI6_2)  6.342e-01  7.967e-02   7.960 4.36e-12 ***
## scale(state_d)   1.030e-01  7.967e-02   1.293    0.199    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7721 on 92 degrees of freedom
## Multiple R-squared:  0.4166, Adjusted R-squared:  0.4039 
## F-statistic: 32.85 on 2 and 92 DF,  p-value: 1.718e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.01060002

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.21295 -0.35253 -0.00892  0.43220  2.17368 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -3.278e-16  7.990e-02   0.000    1.000    
## scale(-STAI6_2)  6.358e-01  8.050e-02   7.898 5.87e-12 ***
## scale(state_e)   2.106e-02  8.050e-02   0.262    0.794    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7788 on 92 degrees of freedom
## Multiple R-squared:  0.4064, Adjusted R-squared:  0.3935 
## F-statistic:  31.5 on 2 and 92 DF,  p-value: 3.8e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.0004416454

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a_retro), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a_retro), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.22867 -0.36495 -0.01741  0.45063  2.11945 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -3.161e-16  7.941e-02   0.000    1.000    
## scale(-STAI6_2)       6.276e-01  8.031e-02   7.815 8.71e-12 ***
## scale(state_a_retro)  8.793e-02  8.031e-02   1.095    0.276    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.774 on 92 degrees of freedom
## Multiple R-squared:  0.4136, Adjusted R-squared:  0.4009 
## F-statistic: 32.45 on 2 and 92 DF,  p-value: 2.168e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.007640278

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b_retro), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b_retro), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.05246 -0.47156 -0.03211  0.39237  1.93020 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -3.197e-16  7.195e-02   0.000        1    
## scale(-STAI6_2)       4.531e-01  8.249e-02   5.493 3.49e-07 ***
## scale(state_b_retro) -3.828e-01  8.249e-02  -4.641 1.15e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7013 on 92 degrees of freedom
## Multiple R-squared:  0.5187, Adjusted R-squared:  0.5082 
## F-statistic: 49.57 on 2 and 92 DF,  p-value: 2.469e-15
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.1126811

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c_retro), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c_retro), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.07664 -0.40067 -0.01031  0.46734  2.00737 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -3.129e-16  7.920e-02   0.000    1.000    
## scale(-STAI6_2)       6.122e-01  8.188e-02   7.477 4.34e-11 ***
## scale(state_c_retro)  1.071e-01  8.188e-02   1.308    0.194    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7719 on 92 degrees of freedom
## Multiple R-squared:  0.4168, Adjusted R-squared:  0.4042 
## F-statistic: 32.88 on 2 and 92 DF,  p-value: 1.684e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.0108477

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d_retro), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d_retro), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.20163 -0.36628  0.00595  0.43720  2.14489 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -3.237e-16  7.992e-02   0.000    1.000    
## scale(-STAI6_2)       6.371e-01  8.035e-02   7.930 5.05e-12 ***
## scale(state_d_retro) -8.255e-03  8.035e-02  -0.103    0.918    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.779 on 92 degrees of freedom
## Multiple R-squared:  0.4061, Adjusted R-squared:  0.3931 
## F-statistic: 31.45 on 2 and 92 DF,  p-value: 3.912e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 6.814136e-05

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e_retro), data = data1_yes)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e_retro), 
##     data = data1_yes)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.14753 -0.36939  0.00853  0.49452  2.21208 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -3.236e-16  7.950e-02   0.000     1.00    
## scale(-STAI6_2)       6.331e-01  8.002e-02   7.912  5.5e-12 ***
## scale(state_e_retro)  7.995e-02  8.002e-02   0.999     0.32    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7749 on 92 degrees of freedom
## Multiple R-squared:  0.4124, Adjusted R-squared:  0.3996 
## F-statistic: 32.28 on 2 and 92 DF,  p-value: 2.394e-11
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_yes$STAI6_3, data1_yes$STAI6_2)^2
## [1] 0.006375165

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a_retro), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_a_retro), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.60867 -0.38827  0.09552  0.49644  1.96736 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -5.233e-16  8.336e-02   0.000    1.000    
## scale(-STAI6_2)       5.198e-01  8.583e-02   6.056 3.17e-08 ***
## scale(state_a_retro)  2.199e-01  8.583e-02   2.563    0.012 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8039 on 90 degrees of freedom
## Multiple R-squared:  0.3678, Adjusted R-squared:  0.3537 
## F-statistic: 26.18 on 2 and 90 DF,  p-value: 1.093e-09
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.04613264

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b_retro), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_b_retro), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.90340 -0.47942  0.03444  0.54830  1.76220 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -4.616e-16  7.429e-02   0.000        1    
## scale(-STAI6_2)       3.816e-01  8.165e-02   4.674 1.03e-05 ***
## scale(state_b_retro) -4.590e-01  8.165e-02  -5.622 2.10e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7164 on 90 degrees of freedom
## Multiple R-squared:  0.498,  Adjusted R-squared:  0.4868 
## F-statistic: 44.63 on 2 and 90 DF,  p-value: 3.417e-14
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.17629

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c_retro), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_c_retro), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.70744 -0.42845  0.03708  0.57481  1.76992 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -4.659e-16  8.496e-02   0.000   1.0000    
## scale(-STAI6_2)       5.587e-01  8.556e-02   6.531  3.8e-09 ***
## scale(state_c_retro)  1.474e-01  8.556e-02   1.723   0.0884 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8193 on 90 degrees of freedom
## Multiple R-squared:  0.3433, Adjusted R-squared:  0.3287 
## F-statistic: 23.53 on 2 and 90 DF,  p-value: 6.041e-09
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.021654

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d_retro), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_d_retro), 
##     data = data1_no)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7034 -0.3254  0.0298  0.5040  1.3916 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -4.785e-16  8.585e-02   0.000    1.000    
## scale(-STAI6_2)       5.624e-01  8.644e-02   6.507 4.23e-09 ***
## scale(state_d_retro)  8.871e-02  8.644e-02   1.026    0.307    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8279 on 90 degrees of freedom
## Multiple R-squared:  0.3295, Adjusted R-squared:  0.3146 
## F-statistic: 22.11 on 2 and 90 DF,  p-value: 1.541e-08
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.00784759

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))
m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e_retro), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(state_e_retro), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.76391 -0.36500  0.05673  0.51402  1.71427 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          -4.738e-16  8.625e-02   0.000    1.000    
## scale(-STAI6_2)       5.581e-01  8.888e-02   6.279 1.18e-08 ***
## scale(state_e_retro)  4.130e-02  8.888e-02   0.465    0.643    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8317 on 90 degrees of freedom
## Multiple R-squared:  0.3233, Adjusted R-squared:  0.3082 
## F-statistic:  21.5 on 2 and 90 DF,  p-value: 2.335e-08
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.00162328

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Higher time spent on anxious thoughts was associated with lower anxiety reduction. The stronger predictors are the retrospective ones (for anxious mind wandering). Higher time spent absorbed in the task as associated with higher anxiety reduction (true when using the first question in the interruption but not “state a” in the thought probing group. Also true when using the retrospective question in the no-interruption group or when looking at both groups combined).

Goal 1 hypotheses: Predictors of anxiety reduction during coloring

Hypothesis 1. Individuals will report lower self-reported anxiety after completing the mandala coloring activity than before the activity.

No-interruption condition only:

# Paired t-test
t <- t.test(data1_no$change_anxiety); t
## 
##  One Sample t-test
## 
## data:  data1_no$change_anxiety
## t = 11.596, df = 92, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  0.5836726 0.8249296
## sample estimates:
## mean of x 
## 0.7043011
sd(data1_no$change_anxiety)
## [1] 0.5857244
pvals <- c(pvals, t$p.value)

Result: Under the no-interruption condition, self-reported anxiety reduced significantly after completing the mandala coloring activity [average reduction: M = 0.70, SD = 0.59, t(92) = 11.60, p < 0.0001].

Hypothesis 2. Those who report greater flow during mandala coloring will report greater anxiety reduction.

No-interruption condition only:

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Flow), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Flow), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.57510 -0.44366  0.01735  0.42398  1.56301 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -6.308e-16  6.630e-02   0.000        1    
## scale(-STAI6_2)  4.503e-01  6.827e-02   6.596 2.82e-09 ***
## scale(Flow)      5.405e-01  6.827e-02   7.917 6.04e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6393 on 90 degrees of freedom
## Multiple R-squared:  0.6001, Adjusted R-squared:  0.5913 
## F-statistic: 67.54 on 2 and 90 DF,  p-value: < 2.2e-16
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.2784752

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Under the thought-probe condition, those who reported greater flow tended to report greater pre to post reduction in anxiety [beta = 0.23, t(92) = 2.99, p = 0.004].

Hypothesis 3. Those who report greater state mindfulness during mandala coloring will report greater anxiety reduction.

No-interruption condition only:

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(State_mindfulness), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(State_mindfulness), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.90658 -0.37695  0.07934  0.43647  1.43015 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              -3.559e-16  7.349e-02   0.000        1    
## scale(-STAI6_2)           4.913e-01  7.501e-02   6.550 3.48e-09 ***
## scale(State_mindfulness)  4.390e-01  7.501e-02   5.853 7.74e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7087 on 90 degrees of freedom
## Multiple R-squared:  0.5087, Adjusted R-squared:  0.4977 
## F-statistic: 46.59 on 2 and 90 DF,  p-value: 1.294e-14
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.1870067

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Under the no-interruption condition, greater state mindfulness was associated with greater anxiety reduction [beta = 0.44, t(90) = 5.85, p < 0.0001].

Hypothesis 4. Those who report greater enjoyment in the coloring task will report greater reduction in anxiety.

No-interruption condition only:

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Enjoyment), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Enjoyment), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.41026 -0.40957  0.04152  0.45155  1.79618 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.01640    0.06740   0.243    0.808    
## scale(-STAI6_2)   0.40370    0.07061   5.717 1.43e-07 ***
## scale(Enjoyment)  0.52807    0.07062   7.478 5.05e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6464 on 89 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.5789, Adjusted R-squared:  0.5695 
## F-statistic: 61.18 on 2 and 89 DF,  p-value: < 2.2e-16
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.2572652

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Under the no-interruption condition, those who reported greater enjoyment in the coloring task tended to report greater reductions in anxiety [beta = 0.53, t(89) = 7.48, p < 0.0001].

Hypothesis 5. Those who report higher levels of trait mindfulness will report greater flow during mandala coloring.

No-interruption condition only:

m <- lm(scale(Flow) ~ scale(Trait_mindfulness), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(Flow) ~ scale(Trait_mindfulness), data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.58916 -0.58472  0.07784  0.63068  2.33980 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)
## (Intercept)              3.249e-16  1.040e-01   0.000    1.000
## scale(Trait_mindfulness) 7.384e-02  1.045e-01   0.706    0.482
## 
## Residual standard error: 1.003 on 91 degrees of freedom
## Multiple R-squared:  0.005453,   Adjusted R-squared:  -0.005476 
## F-statistic: 0.4989 on 1 and 91 DF,  p-value: 0.4818
pvals <- c(pvals, s$coefficients[2,4])

Diagnostic plots (to ensure conditions for inference are met):

par(mfrow = c(2,2))
plot(m)

par(mfrow = c(1,1))

Result: Under the no-interruption condition, trait mindfulness was not associated with flow [r = 0.07, t(91) = 0.71, p = 0.48].

Exploratory research questions (no apriori hypotheses)

Given the ongoing questions regarding the relations between trait and state mindfulness and flow noted above, we also sought to identify, in an exploratory manner, whether trait mindfulness, prior experience with a mindfulness practice, or prior experience with mandala coloring was related to change in anxiety.

How does trait mindfulness relate to changes in anxiety?

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Trait_mindfulness), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Trait_mindfulness), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.70834 -0.37715  0.07261  0.54268  1.66443 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              -4.723e-16  8.601e-02   0.000    1.000    
## scale(-STAI6_2)           5.446e-01  9.050e-02   6.018 3.76e-08 ***
## scale(Trait_mindfulness)  7.645e-02  9.050e-02   0.845    0.401    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8294 on 90 degrees of freedom
## Multiple R-squared:  0.327,  Adjusted R-squared:  0.312 
## F-statistic: 21.86 on 2 and 90 DF,  p-value: 1.823e-08
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.005335743

Result: Under the no-interruption condition, trait mindfulness was not associated with reductions in anxiety [beta = 0.08, t(90) = 0.85, p = 0.40].

How does prior mindfulness experience relate to changes in anxiety?

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + (Mindfulness_Exp), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + (Mindfulness_Exp), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.82523 -0.30695  0.06381  0.45545  1.75468 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      0.15272    0.18072   0.845    0.400    
## scale(-STAI6_2)  0.58506    0.08836   6.621 2.52e-09 ***
## Mindfulness_Exp -0.06731    0.07008  -0.961    0.339    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8285 on 90 degrees of freedom
## Multiple R-squared:  0.3285, Adjusted R-squared:  0.3136 
## F-statistic: 22.02 on 2 and 90 DF,  p-value: 1.644e-08
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.006883752

Result: Under the no-interruption condition, prior mindfulness experience was not associated with reductions in anxiety [beta = -0.087, t(90) = -0.96, p = 0.34].

How does prior mandala coloring experience relate to changes in anxiety?

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Mandala_EXP), data = data1_no)
s <- summary(m); s
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Mandala_EXP), 
##     data = data1_no)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.71368 -0.45149  0.08128  0.52668  1.49165 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -4.648e-16  8.608e-02   0.000    1.000    
## scale(-STAI6_2)     5.695e-01  8.660e-02   6.576 3.09e-09 ***
## scale(Mandala_EXP)  6.530e-02  8.660e-02   0.754    0.453    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8301 on 90 degrees of freedom
## Multiple R-squared:  0.3259, Adjusted R-squared:  0.3109 
## F-statistic: 21.76 on 2 and 90 DF,  p-value: 1.959e-08
pvals <- c(pvals, s$coefficients[3,4])
s$r.squared - cor(data1_no$STAI6_3, data1_no$STAI6_2)^2
## [1] 0.004258645

Result: Under the no-interruption condition, prior mandala coloring experience was not associated with reductions in anxiety [beta = 0.07, t(90) = 0.75, p = 0.45].

P-value adjustment

pvals <- as.vector(pvals)

Unadjusted p-values:

round(pvals, 4)
##  [1]     NA 0.1206 0.2699 0.0214 0.9007 0.0118 0.7071 0.1993 0.7942 0.2764
## [11] 0.0000 0.1941 0.9184 0.3204 0.0120 0.0000 0.0884 0.3075 0.6433 0.0000
## [21] 0.0000 0.0000 0.0000 0.4818 0.4005 0.3393 0.4528

Adjusted p-values:

round(p.adjust(pvals, method = "fdr"), 4)
##  [1]     NA 0.2851 0.4792 0.0619 0.9184 0.0392 0.7994 0.3986 0.8604 0.4792
## [11] 0.0000 0.3986 0.9184 0.4900 0.0392 0.0000 0.2298 0.4900 0.7603 0.0000
## [21] 0.0000 0.0000 0.0000 0.5965 0.5481 0.4902 0.5886

Mediation

Mediation_data <- dplyr::filter(data1, probe == "no")
Mediation_data$Y <- c(scale(-Mediation_data$STAI6_3))
Mediation_data$X <- c(scale(-Mediation_data$STAI6_2))

Function for indirect effect:

Mediation_function <- function(data_used, i)
{
  # Sample a data 
  data_temp = data_used[i,]
  
  # a path 
  result_a <- lm(M ~ X, data = data_temp)
  a <- result_a$coefficients[2]
  
  # b path
  result_b <- lm(Y ~ M + X, data = data_temp)
  b <- result_b$coefficients[2]
  
  #calculating the indirect effect
  indirect_effect <- a*b
  return(indirect_effect)
}

Indirect effect for flow:

set.seed(45)
Mediation_data$M <- c(scale(Mediation_data$Flow))
b <- bcajack(x = Mediation_data, func = Mediation_function, B = 10000, verbose = FALSE, alpha = 0.05)
b$stats[1,1]
## [1] 0.1168359
c(b$lims[1,1], b$lims[length(b$lims[,1]),1])
## [1] 0.0111953 0.2566333

Indirect effect for state mindfulness:

set.seed(45)
Mediation_data$M <- c(scale(Mediation_data$State_mindfulness))
b <- bcajack(x = Mediation_data, func = Mediation_function, B = 10000, verbose = FALSE, alpha = 0.05)
b$stats[1,1]
## [1] 0.0758162
c(b$lims[1,1], b$lims[length(b$lims[,1]),1])
## [1] -0.0007785657  0.1850585596

Indirect effect for enjoyment:

set.seed(45)
Mediation_data$M <- c(scale(Mediation_data$Enjoyment))
b <- bcajack(x = Mediation_data, func = Mediation_function, B = 10000, verbose = FALSE, alpha = 0.05)
b$stats[1,1]
## [1] 0.1486275
c(b$lims[1,1], b$lims[length(b$lims[,1]),1])
## [1] 0.05004173 0.32891701

Multiple regression

m <- lm(scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Flow) + scale(State_mindfulness) + scale(Enjoyment), data = Mediation_data)
summary(m)
## 
## Call:
## lm(formula = scale(-STAI6_3) ~ scale(-STAI6_2) + scale(Flow) + 
##     scale(State_mindfulness) + scale(Enjoyment), data = Mediation_data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.47569 -0.34968  0.03942  0.43727  1.40272 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               0.01182    0.05809   0.203 0.839305    
## scale(-STAI6_2)           0.38134    0.06098   6.253 1.45e-08 ***
## scale(Flow)               0.29568    0.07487   3.949 0.000159 ***
## scale(State_mindfulness)  0.21466    0.06649   3.228 0.001756 ** 
## scale(Enjoyment)          0.26216    0.07693   3.408 0.000994 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5571 on 87 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.6943, Adjusted R-squared:  0.6802 
## F-statistic:  49.4 on 4 and 87 DF,  p-value: < 2.2e-16