Common Humanity & Mindfulness 2023

Response times

Author

Álvaro Rivera-Rei

Published

2025-02-25, Tuesday

Code
cat('\014')     # clean terminal
Code
rm(list = ls()) # clean workspace
library(tidyverse)
library(afex)
library(emmeans)
library(psych)
library(robustbase)
library(performance)
Code
options(mc_doScale_quiet = TRUE)
theme_set(
  theme_minimal()
)
Code
first_day       <- as.Date('2023/11/10')
xcluded         <- c('d20', 'd21', 'd26', 'd33')

df_neurokit2 <- read_csv('../meditation_task/data/hrv_hrf_hra_rsa_rrv_neurokit2.csv', col_types = cols())

df_age <- read_csv('gsheets/Antecedentes generales.csv', col_types = cols()) |> 
  rename(Subject = `Código de participante:`,
         name    = `Nombre:`,
         age     = `Edad:`) |> 
  mutate(Subject = replace(Subject, Subject == 'd24_s46_t01_f'   , 'd24_s47_t01_f')) |> 
  mutate(Subject = replace(Subject, Subject == 'd25_s49_test01_f', 'd25_s49_t01_f')) |> 
  mutate(Subject = replace(Subject, Subject == 'd28_s57_t01_m'   , 'd29_s57_t01_m')) |> 
  mutate(Subject = replace(Subject, Subject == 'd28_s58_t01_m'   , 'd29_s58_t01_m')) |> 
  mutate(Subject = replace(Subject, Subject == 'd32_64_t01_f'    , 'd32_s64_t01_f')) |> 
  separate(Subject, c("duo", "id", "session", "sex"), sep = "_", remove = FALSE) |> 
  mutate(the_day = as.Date(word(`Marca temporal`, 1))) |> 
  filter(grepl('d[0-9]{2}_s.*', Subject) & the_day >= first_day) |> 
  filter(!(duo %in% xcluded)) |> 
  left_join(y = df_neurokit2[c('sbj', 'grp')], by = c('id' = 'sbj')) |>
  rename(group = grp) |> 
  mutate_if(is.character, as.factor)
write_csv(df_age, 'data/df_age_2023_data_clean.csv')

if (is_empty(list.files('data/rt_files'))) {
  rt_file_list <- list.files('../code_apt/data', pattern = '.*_d[0-9]{2}_s.*', full.names = TRUE)
  for (rt_filename in rt_file_list) {
    rt_ind_data <- read_csv(rt_filename, col_types = cols()) |>
      filter(rehersal == 'no')
    rt_task_filename <- gsub('../code_apt/data/', 'data/rt_files/task_', rt_filename)
    repeats <- which(rt_ind_data$word == 'Repugnante')[5:8]
    rt_ind_data <- rt_ind_data[-repeats, ]
    write_csv(rt_ind_data, rt_task_filename)
  }
}

df_apt <- list.files('data/rt_files', pattern = '.*_d[0-9]{2}_s.*', full.names = TRUE) |> 
  lapply(read_csv, col_types = cols()) |> 
  bind_rows() |> 
  mutate(Subject = replace(Subject, Subject == 'd28_s57_t01_m', 'd29_s57_t01_m')) |> 
  mutate(Subject = replace(Subject, Subject == 'd28_s58_t01_m', 'd29_s58_t01_m')) |> 
  mutate(Subject = replace(Subject, Subject == 'd60_s60_t01_m', 'd30_s60_t01_m')) |> 
  separate(Subject, c('duo', 'id', 'session', 'sex'), sep = '_', remove = FALSE) |> 
  left_join(df_age[c('id', 'age')], "id") |> 
  mutate(sex = if_else(sex == 'f', 'female', 'male')) |> 
  left_join(y = df_neurokit2[c('sbj', 'grp')], by = c('id' = 'sbj')) |>
  rename(group = grp) |> 
  mutate(primer = factor(primer, levels =  c('it', 'other', 'you', 'me'))) |> 
  mutate_if(is.character, as.factor) |> 
  mutate(seed     = factor(seed)) |> 
  mutate(trial    = factor(trial)) |> 
  mutate(log10_rt = log10(rt+1))
lo_log10 <- adjbox(df_apt$log10_rt, plot = FALSE)$fence[1]
up_log10 <- adjbox(df_apt$log10_rt, plot = FALSE)$fence[2]
lo <- adjbox(df_apt$rt, plot = FALSE)$fence[1]
up <- adjbox(df_apt$rt, plot = FALSE)$fence[2]
df_apt$rt_no_out <- df_apt$rt
df_apt$rt_no_out[df_apt$rt < lo | df_apt$rt > up] <- NA
df_apt$rt_no_out_sec <- df_apt$rt_no_out / 1000
df_apt$log10_rt_no_out <- df_apt$log10_rt
df_apt$log10_rt_no_out[df_apt$log10_rt < lo_log10 | df_apt$log10_rt > up_log10] <- NA
write_csv(df_apt, 'data/df_apt_2023_data_clean.csv')

General description

Code
summary(df_apt)
          Subject          duo             id       session        sex      
 d01_s01_t01_m:  80   d01    : 320   s01    : 160   t01:5120   female:5120  
 d01_s01_t02_m:  80   d02    : 320   s02    : 160   t02:5120   male  :5120  
 d01_s02_t01_m:  80   d03    : 320   s03    : 160                           
 d01_s02_t02_m:  80   d04    : 320   s04    : 160                           
 d02_s03_t01_m:  80   d05    : 320   s05    : 160                           
 d02_s03_t02_m:  80   d06    : 320   s06    : 160                           
 (Other)      :9760   (Other):8320   (Other):9280                           
     trial        primer                           photo          valence    
 1      : 254   it   :2553   20230515_161630_phone.jpg:2553   negative:5120  
 7      : 253   other:2567   she02.jpeg               :1286   positive:5120  
 19     : 253   you  :2560   IMG_8904.jpg             : 844                  
 4      : 252   me   :2560   he_02.jpeg               : 397                  
 9      : 252                unnamed.jpg              : 237                  
 10     : 251                IMG_2409.jpg             : 201                  
 (Other):8725                (Other)                  :4722                  
           word        arrow            rt             score       
 Admirable   : 512   left :5339   Min.   :   0.0   Min.   :0.0000  
 Asfixiante  : 512   right:4897   1st Qu.: 321.0   1st Qu.:1.0000  
 Aterrador   : 512   NA's :   4   Median : 414.0   Median :1.0000  
 Delicioso   : 512                Mean   : 531.7   Mean   :0.9545  
 Desesperante: 512                3rd Qu.: 579.0   3rd Qu.:1.0000  
 Desgraciado : 512                Max.   :5006.0   Max.   :1.0000  
 (Other)     :7168                                                 
            block      rehersal        seed           age       
 positive_left :4864   no:10240   671471 : 240   Min.   :18.00  
 positive_right:5376              43850  : 160   1st Qu.:21.00  
                                  100851 : 160   Median :22.00  
                                  141112 : 160   Mean   :23.77  
                                  155478 : 160   3rd Qu.:25.00  
                                  195300 : 160   Max.   :48.00  
                                  (Other):9200                  
         group         log10_rt       rt_no_out    rt_no_out_sec  
 humanity   :5120   Min.   :0.000   Min.   : 221   Min.   :0.221  
 mindfulness:5120   1st Qu.:2.508   1st Qu.: 329   1st Qu.:0.329  
                    Median :2.618   Median : 417   Median :0.417  
                    Mean   :2.648   Mean   : 503   Mean   :0.503  
                    3rd Qu.:2.763   3rd Qu.: 570   3rd Qu.:0.570  
                    Max.   :3.700   Max.   :1642   Max.   :1.642  
                                    NA's   :658    NA's   :658    
 log10_rt_no_out
 Min.   :2.310  
 1st Qu.:2.518  
 Median :2.622  
 Mean   :2.664  
 3rd Qu.:2.765  
 Max.   :3.389  
 NA's   :411    
Code
ggplot(
  df_apt, aes(x = rt, fill = group, color = group)) +
  geom_histogram(alpha = .4) +
  facet_wrap(~group)
ggplot(
  df_apt, aes(x = rt_no_out, fill = group, color = group)) +
  geom_histogram(alpha = .4) +
  facet_wrap(~group)
ggplot(
  df_apt, aes(x = log10_rt, fill = group, color = group)) +
  geom_histogram(alpha = .4) +
  facet_wrap(~group)
ggplot(
  df_apt, aes(x = log10_rt_no_out, fill = group, color = group)) +
  geom_histogram(alpha = .4) +
  facet_wrap(~group)
(a) Raw RTs
(b) Raw RTs without outliers
(c) log10(RT)s
(d) log10(RT)s without outliers
Figure 1: Response times

Me primer

Code
# apt_lmer <- lmer(log10_rt_no_out ~ group * sex * primer * valence * session + (primer * valence * session | duo/id),
#                  df_apt)
apt_me_lmer <- lmer(log10_rt_no_out ~ group*sex*valence*session+age + (valence*session|duo:id) + (1|word),
                    subset(df_apt, primer == 'me'))
afex_plot(
  apt_me_lmer,
  id    = 'id',
  x     = 'valence',
  trace = 'group',
  panel = 'session',
  error_arg = list(width = .4, lwd = .75),
  dodge     = .3,
  data_arg  = list(
    position =
      position_jitterdodge(
        jitter.width  = .1,
        dodge.width   = .3  ## needs to be same as dodge
      )),
  mapping   = c('color'),
  point_arg = list(size = 3)
)
Figure 2: APT response times Me primer
Code
options(width = 120)
summary(apt_me_lmer)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: log10_rt_no_out ~ group * sex * valence * session + age + (valence *      session | duo:id) + (1 | word)
   Data: subset(df_apt, primer == "me")

REML criterion at convergence: -1650.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.1398 -0.6392 -0.1648  0.4567  3.9490 

Random effects:
 Groups   Name                       Variance  Std.Dev. Corr             
 duo:id   (Intercept)                1.478e-02 0.121575                  
          valencepositive            3.100e-04 0.017607  0.17            
          sessiont02                 6.901e-03 0.083072 -0.44 -0.95      
          valencepositive:sessiont02 1.225e-03 0.034997  0.06  0.36 -0.20
 word     (Intercept)                5.414e-05 0.007358                  
 Residual                            2.576e-02 0.160495                  
Number of obs: 2467, groups:  duo:id, 64; word, 20

Fixed effects:
                                                      Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)                                           2.671968   0.070896  65.518340  37.689   <2e-16 ***
groupmindfulness                                      0.027496   0.047881  60.582187   0.574    0.568    
sexmale                                              -0.066488   0.046691  58.915119  -1.424    0.160    
valencepositive                                      -0.004871   0.019091 245.115994  -0.255    0.799    
sessiont02                                           -0.072805   0.027789  63.378242  -2.620    0.011 *  
age                                                   0.001265   0.002739  58.619474   0.462    0.646    
groupmindfulness:sexmale                              0.018447   0.066805  59.557749   0.276    0.783    
groupmindfulness:valencepositive                     -0.008187   0.026427 308.044442  -0.310    0.757    
sexmale:valencepositive                               0.028915   0.026449 308.402366   1.093    0.275    
groupmindfulness:sessiont02                           0.001308   0.039104  62.142303   0.033    0.973    
sexmale:sessiont02                                    0.061077   0.039119  62.229521   1.561    0.124    
valencepositive:sessiont02                            0.006480   0.027387  97.907641   0.237    0.813    
groupmindfulness:sexmale:valencepositive             -0.041370   0.037297 305.545268  -1.109    0.268    
groupmindfulness:sexmale:sessiont02                  -0.022268   0.055466  62.756291  -0.401    0.689    
groupmindfulness:valencepositive:sessiont02           0.004091   0.038478  95.526516   0.106    0.916    
sexmale:valencepositive:sessiont02                   -0.063170   0.038553  96.097129  -1.639    0.105    
groupmindfulness:sexmale:valencepositive:sessiont02   0.044377   0.054697  96.767371   0.811    0.419    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 17 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it
optimizer (nloptwrap) convergence code: 0 (OK)
Model failed to converge with max|grad| = 0.00329124 (tol = 0.002, component 1)
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
anova(apt_me_lmer)
Type III Analysis of Variance Table with Satterthwaite's method
                           Sum Sq Mean Sq NumDF  DenDF F value    Pr(>F)    
group                     0.01801 0.01801     1 58.997  0.6993    0.4064    
sex                       0.04617 0.04617     1 59.027  1.7926    0.1857    
valence                   0.04590 0.04590     1 21.531  1.7818    0.1959    
session                   0.49912 0.49912     1 60.375 19.3767 4.449e-05 ***
age                       0.00549 0.00549     1 58.619  0.2132    0.6460    
group:sex                 0.00004 0.00004     1 59.001  0.0016    0.9684    
group:valence             0.02897 0.02897     1 67.243  1.1245    0.2927    
sex:valence               0.01759 0.01759     1 67.245  0.6830    0.4115    
group:session             0.00048 0.00048     1 60.374  0.0188    0.8913    
sex:session               0.03830 0.03830     1 60.374  1.4868    0.2275    
valence:session           0.01972 0.01972     1 96.771  0.7656    0.3837    
group:sex:valence         0.01077 0.01077     1 67.244  0.4179    0.5202    
group:sex:session         0.00000 0.00000     1 60.374  0.0000    0.9987    
group:valence:session     0.02378 0.02378     1 96.766  0.9233    0.3390    
sex:valence:session       0.05784 0.05784     1 96.769  2.2454    0.1373    
group:sex:valence:session 0.01696 0.01696     1 96.767  0.6582    0.4192    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
emmeans(apt_me_lmer, pairwise ~ session)
NOTE: Results may be misleading due to involvement in interactions
$emmeans
 session emmean     SE   df lower.CL upper.CL
 t01       2.68 0.0162 59.8     2.65     2.72
 t02       2.63 0.0146 59.8     2.60     2.66

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast  estimate     SE df t.ratio p.value
 t01 - t02   0.0532 0.0121 60   4.401  <.0001

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Code
check_model(apt_me_lmer)

You primer

Code
apt_you_lmer <- lmer(log10_rt_no_out ~ group*sex*valence*session+age + (valence*session|duo:id) + (1|word),
                     subset(df_apt, primer == 'you'))
afex_plot(
  apt_you_lmer,
  id    = 'id',
  x     = 'valence',
  trace = 'group',
  panel = 'session',
  error_arg = list(width = .4, lwd = .75),
  dodge     = .3,
  data_arg  = list(
    position =
      position_jitterdodge(
        jitter.width  = .1,
        dodge.width   = .3  ## needs to be same as dodge
      )),
  mapping   = c('color'),
  point_arg = list(size = 3)
)
Figure 3: APT response times You primer
Code
options(width = 120)
summary(apt_you_lmer)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: log10_rt_no_out ~ group * sex * valence * session + age + (valence *      session | duo:id) + (1 | word)
   Data: subset(df_apt, primer == "you")

REML criterion at convergence: -1560.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.5181 -0.6208 -0.1768  0.3966  4.6253 

Random effects:
 Groups   Name                       Variance  Std.Dev. Corr             
 duo:id   (Intercept)                0.0140579 0.11857                   
          valencepositive            0.0009701 0.03115   0.10            
          sessiont02                 0.0060196 0.07759  -0.40  0.31      
          valencepositive:sessiont02 0.0003338 0.01827   0.06  0.20 -0.78
 word     (Intercept)                0.0000000 0.00000                   
 Residual                            0.0266764 0.16333                   
Number of obs: 2443, groups:  duo:id, 64; word, 20

Fixed effects:
                                                      Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)                                          2.707e+00  7.190e-02  6.333e+01  37.648  < 2e-16 ***
groupmindfulness                                     1.172e-02  4.713e-02  6.067e+01   0.249 0.804418    
sexmale                                             -6.332e-02  4.586e-02  5.932e+01  -1.381 0.172562    
valencepositive                                     -8.774e-03  2.021e-02  1.171e+02  -0.434 0.665040    
sessiont02                                          -1.037e-01  2.705e-02  6.531e+01  -3.835 0.000285 ***
age                                                 -3.551e-04  2.804e-03  5.830e+01  -0.127 0.899644    
groupmindfulness:sexmale                             2.896e-02  6.568e-02  5.982e+01   0.441 0.660885    
groupmindfulness:valencepositive                     2.487e-02  2.847e-02  1.154e+02   0.874 0.384194    
sexmale:valencepositive                              4.030e-02  2.843e-02  1.147e+02   1.417 0.159063    
groupmindfulness:sessiont02                          3.749e-02  3.809e-02  6.425e+01   0.984 0.328700    
sexmale:sessiont02                                   9.332e-02  3.815e-02  6.464e+01   2.446 0.017178 *  
valencepositive:sessiont02                           2.542e-02  2.707e-02  4.874e+02   0.939 0.348197    
groupmindfulness:sexmale:valencepositive            -3.822e-02  4.013e-02  1.139e+02  -0.952 0.342873    
groupmindfulness:sexmale:sessiont02                 -5.299e-02  5.398e-02  6.461e+01  -0.982 0.329888    
groupmindfulness:valencepositive:sessiont02         -2.744e-02  3.796e-02  4.751e+02  -0.723 0.470217    
sexmale:valencepositive:sessiont02                  -7.540e-02  3.801e-02  4.758e+02  -1.984 0.047837 *  
groupmindfulness:sexmale:valencepositive:sessiont02  4.672e-02  5.380e-02  4.726e+02   0.868 0.385640    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 17 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
anova(apt_you_lmer)
Type III Analysis of Variance Table with Satterthwaite's method
                           Sum Sq Mean Sq NumDF  DenDF F value    Pr(>F)    
group                     0.03467 0.03467     1  58.86  1.2997   0.25889    
sex                       0.00976 0.00976     1  58.92  0.3657   0.54767    
valence                   0.02161 0.02161     1  60.74  0.8101   0.37164    
session                   0.75286 0.75286     1  60.24 28.2220 1.653e-06 ***
age                       0.00043 0.00043     1  58.30  0.0160   0.89964    
group:sex                 0.00019 0.00019     1  58.89  0.0071   0.93295    
group:valence             0.00149 0.00149     1  60.74  0.0557   0.81417    
sex:valence               0.00251 0.00251     1  60.74  0.0939   0.76027    
group:session             0.00438 0.00438     1  60.24  0.1640   0.68692    
sex:session               0.09085 0.09085     1  60.24  3.4056   0.06989 .  
valence:session           0.03023 0.03023     1 472.60  1.1334   0.28760    
group:sex:valence         0.00593 0.00593     1  60.74  0.2221   0.63910    
group:sex:session         0.01198 0.01198     1  60.24  0.4491   0.50535    
group:valence:session     0.00061 0.00061     1 472.62  0.0230   0.87962    
sex:valence:session       0.09985 0.09985     1 472.64  3.7430   0.05363 .  
group:sex:valence:session 0.02012 0.02012     1 472.63  0.7540   0.38564    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
emmeans(apt_you_lmer, pairwise ~ session)
NOTE: Results may be misleading due to involvement in interactions
$emmeans
 session emmean     SE   df lower.CL upper.CL
 t01       2.69 0.0158 58.7     2.66     2.72
 t02       2.63 0.0151 58.5     2.60     2.66

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0587 0.0111 59.9   5.311  <.0001

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Code
check_model(apt_you_lmer)

Other primer

Code
apt_other_lmer <- lmer(log10_rt_no_out ~ group*sex*valence*session+age + (valence*session|duo:id) + (1|word),
                       subset(df_apt, primer == 'other'))
afex_plot(
  apt_other_lmer,
  id    = 'id',
  x     = 'valence',
  trace = 'group',
  panel = 'session',
  error_arg = list(width = .4, lwd = .75),
  dodge     = .3,
  data_arg  = list(
    position =
      position_jitterdodge(
        jitter.width  = .1,
        dodge.width   = .3  ## needs to be same as dodge
      )),
  mapping   = c('color'),
  point_arg = list(size = 3)
)
Figure 4: APT response times Other primer
Code
options(width = 120)
summary(apt_other_lmer)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: log10_rt_no_out ~ group * sex * valence * session + age + (valence *      session | duo:id) + (1 | word)
   Data: subset(df_apt, primer == "other")

REML criterion at convergence: -1498.1

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.8729 -0.6394 -0.1793  0.4508  4.0577 

Random effects:
 Groups   Name                       Variance  Std.Dev. Corr             
 duo:id   (Intercept)                1.442e-02 0.120087                  
          valencepositive            3.514e-04 0.018746  0.03            
          sessiont02                 4.638e-03 0.068102 -0.44  0.63      
          valencepositive:sessiont02 5.001e-04 0.022364  0.07  0.23 -0.49
 word     (Intercept)                7.732e-05 0.008793                  
 Residual                            2.772e-02 0.166482                  
Number of obs: 2463, groups:  duo:id, 64; word, 20

Fixed effects:
                                                      Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)                                           2.675544   0.071989  64.224861  37.166  < 2e-16 ***
groupmindfulness                                      0.011638   0.047658  60.682939   0.244  0.80790    
sexmale                                              -0.032346   0.046421  59.202508  -0.697  0.48865    
valencepositive                                      -0.004072   0.019660 219.943129  -0.207  0.83609    
sessiont02                                           -0.073823   0.025296  63.546029  -2.918  0.00486 ** 
age                                                   0.001190   0.002800  58.725260   0.425  0.67248    
groupmindfulness:sexmale                             -0.017476   0.066560  60.195415  -0.263  0.79378    
groupmindfulness:valencepositive                     -0.006842   0.027364 289.661194  -0.250  0.80274    
sexmale:valencepositive                              -0.009017   0.027418 291.466137  -0.329  0.74248    
groupmindfulness:sessiont02                           0.019142   0.035949  64.733266   0.532  0.59621    
sexmale:sessiont02                                    0.007573   0.035853  64.073107   0.211  0.83339    
valencepositive:sessiont02                            0.015705   0.027232 253.754428   0.577  0.56466    
groupmindfulness:sexmale:valencepositive              0.036404   0.038822 292.859783   0.938  0.34917    
groupmindfulness:sexmale:sessiont02                   0.019825   0.051024  65.537442   0.389  0.69887    
groupmindfulness:valencepositive:sessiont02          -0.020824   0.038623 255.940069  -0.539  0.59025    
sexmale:valencepositive:sessiont02                    0.007213   0.038571 254.816792   0.187  0.85181    
groupmindfulness:sexmale:valencepositive:sessiont02  -0.028076   0.054937 258.656126  -0.511  0.60975    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 17 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
anova(apt_other_lmer)
Type III Analysis of Variance Table with Satterthwaite's method
                           Sum Sq Mean Sq NumDF   DenDF F value    Pr(>F)    
group                     0.00669 0.00669     1  59.021  0.2414    0.6250    
sex                       0.02789 0.02789     1  59.065  1.0064    0.3199    
valence                   0.00153 0.00153     1  19.756  0.0552    0.8166    
session                   0.76193 0.76193     1  60.737 27.4904 2.105e-06 ***
age                       0.00500 0.00500     1  58.725  0.1805    0.6725    
group:sex                 0.00011 0.00011     1  59.051  0.0038    0.9509    
group:valence             0.00471 0.00471     1  71.419  0.1701    0.6813    
sex:valence               0.00426 0.00426     1  71.412  0.1537    0.6962    
group:session             0.00864 0.00864     1  60.727  0.3119    0.5786    
sex:session               0.01267 0.01267     1  60.735  0.4571    0.5016    
valence:session           0.00052 0.00052     1 258.761  0.0187    0.8912    
group:sex:valence         0.01599 0.01599     1  71.424  0.5771    0.4500    
group:sex:session         0.00054 0.00054     1  60.732  0.0193    0.8899    
group:valence:session     0.04465 0.04465     1 258.634  1.6109    0.2055    
sex:valence:session       0.00171 0.00171     1 258.693  0.0617    0.8040    
group:sex:valence:session 0.00724 0.00724     1 258.656  0.2612    0.6097    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
emmeans(apt_other_lmer, pairwise ~ session)
NOTE: Results may be misleading due to involvement in interactions
$emmeans
 session emmean     SE   df lower.CL upper.CL
 t01       2.69 0.0159 60.1     2.66     2.72
 t02       2.63 0.0149 60.1     2.60     2.66

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0546 0.0104 59.9   5.242  <.0001

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Code
check_model(apt_other_lmer)

It primer

Code
apt_it_lmer <- lmer(log10_rt_no_out ~ group*sex*valence*session+age + (valence*session|duo:id) + (1|word),
                    subset(df_apt, primer == 'it'))
afex_plot(
  apt_it_lmer,
  id    = 'id',
  x     = 'valence',
  trace = 'group',
  panel = 'session',
  error_arg = list(width = .4, lwd = .75),
  dodge     = .3,
  data_arg  = list(
    position =
      position_jitterdodge(
        jitter.width  = .1,
        dodge.width   = .3  ## needs to be same as dodge
      )),
  mapping   = c('color'),
  point_arg = list(size = 3)
)
Figure 5: APT response times It primer
Code
options(width = 120)
summary(apt_it_lmer)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: log10_rt_no_out ~ group * sex * valence * session + age + (valence *      session | duo:id) + (1 | word)
   Data: subset(df_apt, primer == "it")

REML criterion at convergence: -1373.5

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.7522 -0.6201 -0.1626  0.4556  4.5795 

Random effects:
 Groups   Name                       Variance  Std.Dev. Corr             
 duo:id   (Intercept)                0.0185340 0.13614                   
          valencepositive            0.0031332 0.05597  -0.07            
          sessiont02                 0.0071351 0.08447  -0.56  0.53      
          valencepositive:sessiont02 0.0031767 0.05636   0.15 -0.95 -0.56
 word     (Intercept)                0.0001889 0.01374                   
 Residual                            0.0287089 0.16944                   
Number of obs: 2456, groups:  duo:id, 64; word, 20

Fixed effects:
                                                      Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)                                          2.7252287  0.0767177 67.0055542  35.523  < 2e-16 ***
groupmindfulness                                     0.0151157  0.0530709 61.6994217   0.285  0.77674    
sexmale                                             -0.0424082  0.0518444 59.9806077  -0.818  0.41660    
valencepositive                                      0.0089826  0.0245954 64.4560768   0.365  0.71615    
sessiont02                                          -0.0627223  0.0287623 61.0201654  -2.181  0.03307 *  
age                                                 -0.0009017  0.0029395 58.2721971  -0.307  0.76011    
groupmindfulness:sexmale                             0.0357113  0.0741164 60.7045672   0.482  0.63166    
groupmindfulness:valencepositive                     0.0136415  0.0336064 60.5503280   0.406  0.68623    
sexmale:valencepositive                              0.0403561  0.0336094 60.5279087   1.201  0.23453    
groupmindfulness:sessiont02                          0.0280765  0.0405151 60.1530095   0.693  0.49098    
sexmale:sessiont02                                   0.0226045  0.0405738 60.4681761   0.557  0.57950    
valencepositive:sessiont02                           0.0119898  0.0309568 61.1937165   0.387  0.69987    
groupmindfulness:sexmale:valencepositive            -0.1073524  0.0474154 59.9819306  -2.264  0.02720 *  
groupmindfulness:sexmale:sessiont02                 -0.0660691  0.0574057 60.5292189  -1.151  0.25429    
groupmindfulness:valencepositive:sessiont02         -0.0803851  0.0435136 59.7963739  -1.847  0.06964 .  
sexmale:valencepositive:sessiont02                  -0.0827073  0.0435357 59.8821816  -1.900  0.06228 .  
groupmindfulness:sexmale:valencepositive:sessiont02  0.2008878  0.0616517 59.9614542   3.258  0.00185 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 17 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
anova(apt_it_lmer)
Type III Analysis of Variance Table with Satterthwaite's method
                           Sum Sq Mean Sq NumDF  DenDF F value    Pr(>F)    
group                     0.00685 0.00685     1 59.341  0.2385  0.627118    
sex                       0.02907 0.02907     1 59.405  1.0126  0.318365    
valence                   0.00008 0.00008     1 21.319  0.0028  0.958604    
session                   0.89344 0.89344     1 60.337 31.1206 6.051e-07 ***
age                       0.00270 0.00270     1 58.272  0.0941  0.760110    
group:sex                 0.00000 0.00000     1 59.338  0.0002  0.990254    
group:valence             0.10462 0.10462     1 57.829  3.6443  0.061227 .  
sex:valence               0.00230 0.00230     1 57.812  0.0802  0.777990    
group:session             0.00142 0.00142     1 60.333  0.0495  0.824649    
sex:session               0.00013 0.00013     1 60.331  0.0047  0.945589    
valence:session           0.04518 0.04518     1 59.950  1.5737  0.214534    
group:sex:valence         0.00139 0.00139     1 57.814  0.0483  0.826814    
group:sex:session         0.01633 0.01633     1 60.341  0.5688  0.453681    
group:valence:session     0.01216 0.01216     1 59.945  0.4235  0.517687    
sex:valence:session       0.00951 0.00951     1 59.942  0.3311  0.567153    
group:sex:valence:session 0.30481 0.30481     1 59.961 10.6173  0.001847 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
emmeans(apt_it_lmer, pairwise ~ session)
NOTE: Results may be misleading due to involvement in interactions
$emmeans
 session emmean     SE   df lower.CL upper.CL
 t01       2.70 0.0181 61.8     2.67     2.74
 t02       2.64 0.0156 62.1     2.61     2.67

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0636 0.0114 59.9   5.577  <.0001

Results are averaged over the levels of: group, sex, valence 
Degrees-of-freedom method: kenward-roger 
Code
cat(rep('_', 100), '\n', sep = '')
____________________________________________________________________________________________________
Code
emmeans(apt_it_lmer, pairwise ~ session|sex*group*valence)
$emmeans
sex = female, group = humanity, valence = negative:
 session emmean     SE   df lower.CL upper.CL
 t01       2.70 0.0370 61.0     2.63     2.78
 t02       2.64 0.0320 61.0     2.58     2.71

sex = male, group = humanity, valence = negative:
 session emmean     SE   df lower.CL upper.CL
 t01       2.66 0.0371 61.0     2.59     2.74
 t02       2.62 0.0320 60.3     2.56     2.69

sex = female, group = mindfulness, valence = negative:
 session emmean     SE   df lower.CL upper.CL
 t01       2.72 0.0380 62.7     2.64     2.79
 t02       2.68 0.0330 60.7     2.62     2.75

sex = male, group = mindfulness, valence = negative:
 session emmean     SE   df lower.CL upper.CL
 t01       2.71 0.0370 60.5     2.64     2.79
 t02       2.63 0.0323 62.6     2.57     2.70

sex = female, group = humanity, valence = positive:
 session emmean     SE   df lower.CL upper.CL
 t01       2.71 0.0388 61.0     2.64     2.79
 t02       2.66 0.0333 61.0     2.60     2.73

sex = male, group = humanity, valence = positive:
 session emmean     SE   df lower.CL upper.CL
 t01       2.71 0.0388 60.8     2.63     2.79
 t02       2.60 0.0332 60.0     2.53     2.67

sex = female, group = mindfulness, valence = positive:
 session emmean     SE   df lower.CL upper.CL
 t01       2.74 0.0397 62.7     2.66     2.82
 t02       2.64 0.0343 61.6     2.57     2.71

sex = male, group = mindfulness, valence = positive:
 session emmean     SE   df lower.CL upper.CL
 t01       2.67 0.0388 60.8     2.59     2.75
 t02       2.64 0.0336 62.4     2.57     2.71

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
sex = female, group = humanity, valence = negative:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0627 0.0288 60.4   2.180  0.0332

sex = male, group = humanity, valence = negative:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0401 0.0286 59.3   1.402  0.1662

sex = female, group = mindfulness, valence = negative:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0346 0.0285 58.6   1.214  0.2296

sex = male, group = mindfulness, valence = negative:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0781 0.0289 61.2   2.702  0.0089

sex = female, group = humanity, valence = positive:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0507 0.0263 60.5   1.927  0.0586

sex = male, group = humanity, valence = positive:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.1108 0.0261 58.4   4.251  0.0001

sex = female, group = mindfulness, valence = positive:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.1030 0.0261 58.8   3.943  0.0002

sex = male, group = mindfulness, valence = positive:
 contrast  estimate     SE   df t.ratio p.value
 t01 - t02   0.0283 0.0266 61.5   1.065  0.2908

Degrees-of-freedom method: kenward-roger 
Code
check_model(apt_it_lmer)