Main visual precision statistics

library(tidyverse)
library(here)
library(lmerTest)
library(MuMIn)
library(lme4)
library(dotenv)
library(broom)
library(broom.mixed)
library(effects)
library(emmeans)

env_file = here(".env")
if (file.exists(env_file)) {
  load_dot_env(file = env_file)
  PROJECT_VERSION <- Sys.getenv("PROJECT_VERSION")
  if (PROJECT_VERSION == "") PROJECT_VERSION <- "main"
} else {
  PROJECT_VERSION <- "main"
}

VALID_SECTIONS <- c("sample1", "sample2")
DATA_FOLDER    <- if (PROJECT_VERSION %in% c(VALID_SECTIONS, "main")) "main" else PROJECT_VERSION
SECTION_FILTER <- if (PROJECT_VERSION %in% VALID_SECTIONS) PROJECT_VERSION else NULL
source("lmer_helpers.R")

Load data

trial_metadata <- read.csv(here("data","metadata","level-trialtype_data.csv"))
trial_summary_data <- read.csv(here("data", DATA_FOLDER, "processed_data", "level-trials_data.csv"))
bv_dino_similarities <- read.csv(here("data", "embeddings", "similarities-dinobv_data.csv"))

usable_trials <- trial_summary_data |>
  # excluding possible scam participant
  filter(exclude_participant_insufficient_data == 0 & trial_exclusion == 0 & exclude_participant == 0 & SubjectInfo.subjID != "PH2RNZ")

# Merging with similarity information and mean-centering main effects
trials_with_effect_vars <- usable_trials |>
  left_join(trial_metadata) |>
  mutate(age_in_months = SubjectInfo.testAge/30) |>
  left_join(bv_dino_similarities |> transmute(Trials.imagePair = paste0(word1, "-", word2), image_similarity_bv =  image_similarity)) 
Joining with `by = join_by(Trials.trialID, Trials.targetImage,
Trials.distractorImage, Trials.imagePair, section)`
Joining with `by = join_by(Trials.imagePair)`
# Filter by section if PROJECT_VERSION specifies a particular sample
if (!is.null(SECTION_FILTER)) {
  trials_with_effect_vars <- trials_with_effect_vars |> filter(section == SECTION_FILTER)
}

Sanity check - making sure all participants have at least 16 trials and that we have 83 participants

low_trial_count <- trials_with_effect_vars |> distinct(SubjectInfo.subjID,Trials.trialID) |> summarize(n=n(),.by=SubjectInfo.subjID) |> filter(n < 25)
nrow(trials_with_effect_vars |> distinct(SubjectInfo.subjID))
[1] 144
tidy_model <- function(main_effect){
  table_data <- tidy(main_effect, effects = "fixed") %>%
  mutate(
    #p.value = 2 * (1 - pt(abs(statistic),df)),  # Calculate p-values for lmer - just using default calculated ones
    p.value.condensed = case_when(
      p.value < .001 ~ "<.001", 
      p.value < .01 ~ "<.01",
      p.value < .05 ~ "<.05",
      TRUE ~ sprintf("%.3f", p.value)),
    term = case_when(
      term == "(Intercept)" ~ "Intercept",
      term == "scale(age_in_months)" ~ "Age (scaled)",
      #term == "scale(image_similarity)" ~ "Target-distractor image embedding similarity (scaled)",
      TRUE ~ term
    )
  ) %>%
  rename(
    Predictor = term,
    "b" = estimate,
    "SE" = std.error,
    "t" = statistic,  # Note: changed from z to t for lmer
    "p" = p.value.condensed,
    "p.full" = p.value
  ) %>%
  mutate(across(c("b", "SE", "t"), ~round(., 2)))
  return(table_data)
}

Main mixed-effects models

Model 1 and 2: These are the models we said we’d run in our pre-reg

prereg_text_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months) + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(text_similarity) | SubjectInfo.subjID)  
                    + (1|Trials.targetImage)
                    + (1|Trials.imagePair), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(prereg_text_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months) +  
    scale(AoA_Est_target) + scale(MeanSaliencyDiff) + (scale(text_similarity) |  
    SubjectInfo.subjID) + (1 | Trials.targetImage) + (1 | Trials.imagePair)
   Data: trials_with_effect_vars

REML criterion at convergence: 10932.5

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.86417 -0.63785 -0.02227  0.67964  2.90826 

Random effects:
 Groups             Name                   Variance  Std.Dev.  Corr
 SubjectInfo.subjID (Intercept)            2.363e-02 1.537e-01     
                    scale(text_similarity) 1.307e-04 1.143e-02 1.00
 Trials.targetImage (Intercept)            6.008e-03 7.751e-02     
 Trials.imagePair   (Intercept)            2.797e-10 1.672e-05     
 Residual                                  9.585e-01 9.790e-01     
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                          Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)              -0.006982   0.023580  64.528890  -0.296 0.768115    
scale(image_similarity)  -0.030247   0.017924 178.258959  -1.687 0.093261 .  
scale(age_in_months)      0.068651   0.020305 144.179092   3.381 0.000930 ***
scale(AoA_Est_target)    -0.081919   0.019985  48.593526  -4.099 0.000157 ***
scale(MeanSaliencyDiff)   0.006468   0.019028  65.523913   0.340 0.734988    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E
scl(mg_sml)  0.006                     
scl(g_n_mn)  0.002 -0.013              
scl(AA_Es_)  0.016 -0.155  0.016       
scl(MnSlnD)  0.008 -0.011 -0.005  0.016
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
#Swapping text similarity with image similarity:
prereg_image_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months) + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(image_similarity) | SubjectInfo.subjID)  + (1 | section)
                    + (1|Trials.targetImage)
                    + + (1|Trials.imagePair), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(prereg_image_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months) +  
    scale(AoA_Est_target) + scale(MeanSaliencyDiff) + (scale(image_similarity) |  
    SubjectInfo.subjID) + (1 | section) + (1 | Trials.targetImage) +  
    +(1 | Trials.imagePair)
   Data: trials_with_effect_vars

REML criterion at convergence: 10930.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.88345 -0.63506 -0.02781  0.68075  2.91511 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0240227 0.15499      
                    scale(image_similarity) 0.0009329 0.03054  1.00
 Trials.targetImage (Intercept)             0.0060650 0.07788      
 Trials.imagePair   (Intercept)             0.0000000 0.00000      
 section            (Intercept)             0.0000000 0.00000      
 Residual                                   0.9572932 0.97841      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                          Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)              -0.007540   0.023693  64.703779  -0.318 0.751317    
scale(image_similarity)  -0.030601   0.018136 170.965905  -1.687 0.093376 .  
scale(age_in_months)      0.069097   0.020261 148.158902   3.410 0.000836 ***
scale(AoA_Est_target)    -0.081316   0.020030  48.722653  -4.060 0.000177 ***
scale(MeanSaliencyDiff)   0.006805   0.019047  65.529605   0.357 0.722024    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E
scl(mg_sml)  0.071                     
scl(g_n_mn)  0.003 -0.011              
scl(AA_Es_)  0.017 -0.157  0.015       
scl(MnSlnD)  0.008 -0.010 -0.004  0.016
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

running into a singular fit, I tried removing each of the random effects but can’t fix it yet unless I removed the random effect for ‘section’. This could just be because we don’t have enough data in section 2 yet.

image_similarity_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID)  
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
summary(image_similarity_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(AoA_Est_target) + scale(MeanSaliencyDiff) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10938.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.86694 -0.63442 -0.02347  0.67461  2.90320 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.023538 0.15342 
 Trials.targetImage (Intercept) 0.005996 0.07744 
 Residual                       0.958808 0.97919 
Number of obs: 3869, groups:  SubjectInfo.subjID, 144; Trials.targetImage, 48

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -7.129e-03  2.359e-02  6.410e+01
scale(image_similarity)                      -3.010e-02  1.792e-02  1.784e+02
scale(age_in_months)                          6.783e-02  2.031e-02  1.435e+02
scale(AoA_Est_target)                        -8.210e-02  1.996e-02  4.846e+01
scale(MeanSaliencyDiff)                       6.539e-03  1.903e-02  6.542e+01
scale(image_similarity):scale(age_in_months) -1.021e-02  1.571e-02  3.743e+03
                                             t value Pr(>|t|)    
(Intercept)                                   -0.302  0.76350    
scale(image_similarity)                       -1.679  0.09484 .  
scale(age_in_months)                           3.340  0.00107 ** 
scale(AoA_Est_target)                         -4.114  0.00015 ***
scale(MeanSaliencyDiff)                        0.344  0.73220    
scale(image_similarity):scale(age_in_months)  -0.650  0.51603    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E s(MSD)
scl(mg_sml) -0.008                            
scl(g_n_mn)  0.002 -0.013                     
scl(AA_Es_)  0.019 -0.155  0.016              
scl(MnSlnD)  0.008 -0.011 -0.005  0.016       
scl(_):(__) -0.009 -0.010  0.008  0.010 -0.010

Models from 1st prereg

text_similarity_effect <- lmer(scale(corrected_target_looking) ~ scale(text_similarity) * scale(age_in_months) +
                    + (scale(text_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                    + (1 | Trials.imagePair)
                    + (1 | Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
image_similarity_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +
                    + (scale(image_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                    + (1 | Trials.imagePair)
                    + (1 | Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(text_similarity_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(text_similarity) * scale(age_in_months) +  
    +(scale(text_similarity) | SubjectInfo.subjID) + (1 | section) +  
    (1 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10943.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93471 -0.63471 -0.02957  0.67000  2.86224 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0238941 0.15458      
                    scale(text_similarity) 0.0001475 0.01215  1.00
 Trials.targetImage (Intercept)            0.0122063 0.11048      
 Trials.imagePair   (Intercept)            0.0019774 0.04447      
 section            (Intercept)            0.0000000 0.00000      
 Residual                                  0.9578812 0.97871      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -8.513e-03  2.758e-02  5.246e+01
scale(text_similarity)                      -2.328e-02  2.064e-02  3.216e+01
scale(age_in_months)                         6.871e-02  2.037e-02  1.432e+02
scale(text_similarity):scale(age_in_months) -1.108e-02  1.594e-02  3.715e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.309 0.758799    
scale(text_similarity)                       -1.128 0.267851    
scale(age_in_months)                          3.373 0.000957 ***
scale(text_similarity):scale(age_in_months)  -0.695 0.486953    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__)
scl(txt_sm)  0.048              
scl(g_n_mn) -0.001 -0.001       
scl(_):(__)  0.001 -0.018  0.045
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(image_similarity_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    +(scale(image_similarity) | SubjectInfo.subjID) + (1 | section) +  
    (1 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10939.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93619 -0.63040 -0.02968  0.67129  2.87363 

Random effects:
 Groups             Name                    Variance Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.024477 0.15645      
                    scale(image_similarity) 0.001102 0.03320  1.00
 Trials.targetImage (Intercept)             0.011243 0.10603      
 Trials.imagePair   (Intercept)             0.001025 0.03202      
 section            (Intercept)             0.000000 0.00000      
 Residual                                   0.956826 0.97818      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                              Estimate Std. Error        df
(Intercept)                                   -0.00736    0.02671  51.96271
scale(image_similarity)                       -0.04052    0.01994  27.53117
scale(age_in_months)                           0.06874    0.02046 144.28741
scale(image_similarity):scale(age_in_months)  -0.01010    0.01596 927.71712
                                             t value Pr(>|t|)    
(Intercept)                                   -0.276 0.784013    
scale(image_similarity)                       -2.033 0.051813 .  
scale(age_in_months)                           3.359 0.000999 ***
scale(image_similarity):scale(age_in_months)  -0.633 0.527215    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__)
scl(mg_sml)  0.062              
scl(g_n_mn)  0.000 -0.009       
scl(_):(__) -0.007 -0.007  0.119
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

What about this similarity effect per section?

image_similarity_effect_sample1 <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                     + (1 | SubjectInfo.subjID)
                     + (1|Trials.targetImage), 
                    data = trials_with_effect_vars |> filter(section=="sample1"))
summary(image_similarity_effect_sample1)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    (1 | SubjectInfo.subjID) + (1 | Trials.targetImage)
   Data: filter(trials_with_effect_vars, section == "sample1")

REML criterion at convergence: 6983

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.79001 -0.62653 -0.03021  0.66446  2.78185 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.01750  0.1323  
 Trials.targetImage (Intercept) 0.01556  0.1247  
 Residual                       0.96109  0.9804  
Number of obs: 2468, groups:  SubjectInfo.subjID, 91; Trials.targetImage, 24

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -8.395e-03  3.555e-02  2.977e+01
scale(image_similarity)                      -6.167e-02  2.474e-02  1.576e+02
scale(age_in_months)                          5.875e-02  2.416e-02  9.031e+01
scale(image_similarity):scale(age_in_months) -2.584e-02  1.969e-02  2.379e+03
                                             t value Pr(>|t|)  
(Intercept)                                   -0.236   0.8149  
scale(image_similarity)                       -2.493   0.0137 *
scale(age_in_months)                           2.432   0.0170 *
scale(image_similarity):scale(age_in_months)  -1.313   0.1895  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__)
scl(mg_sml) -0.002              
scl(g_n_mn)  0.002 -0.003       
scl(_):(__)  0.001 -0.007  0.007
image_similarity_effect_sample2 <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                     + (1 | SubjectInfo.subjID)
                     + (1|Trials.targetImage), 
                    data = trials_with_effect_vars |> filter(section=="sample2"))
summary(image_similarity_effect_sample2)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    (1 | SubjectInfo.subjID) + (1 | Trials.targetImage)
   Data: filter(trials_with_effect_vars, section == "sample2")

REML criterion at convergence: 3968.5

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-3.01344 -0.65087 -0.03933  0.69452  2.82763 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.038361 0.19586 
 Trials.targetImage (Intercept) 0.005349 0.07314 
 Residual                       0.952483 0.97595 
Number of obs: 1401, groups:  SubjectInfo.subjID, 53; Trials.targetImage, 24

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -5.472e-03  4.069e-02  2.977e+01
scale(image_similarity)                      -1.320e-02  2.872e-02  4.550e+01
scale(age_in_months)                          8.755e-02  3.743e-02  5.142e+01
scale(image_similarity):scale(age_in_months)  1.236e-02  2.584e-02  1.334e+03
                                             t value Pr(>|t|)  
(Intercept)                                   -0.134   0.8939  
scale(image_similarity)                       -0.460   0.6479  
scale(age_in_months)                           2.339   0.0233 *
scale(image_similarity):scale(age_in_months)   0.478   0.6324  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__)
scl(mg_sml) -0.003              
scl(g_n_mn)  0.012 -0.016       
scl(_):(__) -0.016  0.017  0.009

BV-image model

Now for the fun stuff: adding in our covariates using our original model – only doing this for text similarity for now because of the singular effects

bv_image_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity_bv) * scale(age_in_months) + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID) 
                    + (1 | section)
                    + (1|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(bv_image_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(corrected_target_looking) ~ scale(image_similarity_bv) *  
    scale(age_in_months) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (1 | SubjectInfo.subjID) + (1 | section) + (1 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10936.2

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.84864 -0.63279 -0.02404  0.67947  2.90483 

Random effects:
 Groups             Name        Variance  Std.Dev.
 SubjectInfo.subjID (Intercept) 0.0238983 0.15459 
 Trials.targetImage (Intercept) 0.0063105 0.07944 
 Trials.imagePair   (Intercept) 0.0004333 0.02082 
 section            (Intercept) 0.0000000 0.00000 
 Residual                       0.9574901 0.97851 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                                  Estimate Std. Error
(Intercept)                                     -7.313e-03  2.408e-02
scale(image_similarity_bv)                      -1.068e-02  1.958e-02
scale(age_in_months)                             6.748e-02  2.036e-02
scale(AoA_Est_target)                           -8.400e-02  2.051e-02
scale(MeanSaliencyDiff)                          5.813e-03  1.917e-02
scale(image_similarity_bv):scale(age_in_months) -3.698e-02  1.597e-02
                                                        df t value Pr(>|t|)    
(Intercept)                                      4.949e+01  -0.304 0.762686    
scale(image_similarity_bv)                       3.410e+01  -0.546 0.588932    
scale(age_in_months)                             1.432e+02   3.314 0.001166 ** 
scale(AoA_Est_target)                            4.707e+01  -4.096 0.000164 ***
scale(MeanSaliencyDiff)                          5.451e+01   0.303 0.762828    
scale(image_similarity_bv):scale(age_in_months)  3.816e+03  -2.316 0.020594 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(m__) scl(g__) s(AA_E s(MSD)
scl(mg_sm_) -0.012                                
scl(g_n_mn)  0.002 -0.012                         
scl(AA_Es_)  0.021 -0.204    0.016                
scl(MnSlnD)  0.007  0.015   -0.006    0.011       
sc(__):(__) -0.007 -0.008    0.003   -0.007  0.005
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
r.squaredGLMM(prereg_image_effect)
           R2m        R2c
[1,] 0.0132299 0.04420174
r.squaredGLMM(prereg_text_effect)
            R2m        R2c
[1,] 0.01324029 0.04296428
r.squaredGLMM(bv_image_effect)
            R2m        R2c
[1,] 0.01370518 0.04429036

Image similarity is trending towards significance.

Checking if text similarity and image similarity are differently correlated with AoA

trials_with_effect_vars_metadata <- trials_with_effect_vars |> distinct(Trials.imagePair, text_similarity, image_similarity, image_similarity_bv)
cor.test(trial_metadata$AoA_Est_target, trial_metadata$text_similarity)

    Pearson's product-moment correlation

data:  trial_metadata$AoA_Est_target and trial_metadata$text_similarity
t = -0.47957, df = 62, p-value = 0.6332
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.3020875  0.1878236
sample estimates:
       cor 
-0.0607924 
cor.test(trial_metadata$AoA_Est_target, trial_metadata$image_similarity)

    Pearson's product-moment correlation

data:  trial_metadata$AoA_Est_target and trial_metadata$image_similarity
t = 0.88711, df = 62, p-value = 0.3784
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1376426  0.3481820
sample estimates:
      cor 
0.1119545 
cor.test(trials_with_effect_vars_metadata$image_similarity, trials_with_effect_vars_metadata$image_similarity_bv)

    Pearson's product-moment correlation

data:  trials_with_effect_vars_metadata$image_similarity and trials_with_effect_vars_metadata$image_similarity_bv
t = 2.3117, df = 30, p-value = 0.02784
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.0464438 0.6494747
sample estimates:
      cor 
0.3888406 
cor.test(trials_with_effect_vars_metadata$text_similarity, trials_with_effect_vars_metadata$image_similarity_bv)

    Pearson's product-moment correlation

data:  trials_with_effect_vars_metadata$text_similarity and trials_with_effect_vars_metadata$image_similarity_bv
t = 1.3913, df = 30, p-value = 0.1744
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1121168  0.5478627
sample estimates:
      cor 
0.2462023 
cor.test(trial_metadata$MeanSaliencyDiff, trial_metadata$image_similarity, method="pearson")

    Pearson's product-moment correlation

data:  trial_metadata$MeanSaliencyDiff and trial_metadata$image_similarity
t = -3.3454e-16, df = 62, p-value = 1
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.2458093  0.2458093
sample estimates:
          cor 
-4.248667e-17 

Well image similarity has a higher r but both are still insignificant.

visual saliency without AoA

vs_image_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1|Trials.imagePair)
                    + (1 | section), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
vs_text_effect <- lmer(scale(corrected_target_looking) ~ scale(text_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (scale(text_similarity) | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1|Trials.imagePair)
                    + (1 | section), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(vs_image_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | SubjectInfo.subjID) + (1 |  
    Trials.targetImage) + (1 | Trials.imagePair) + (1 | section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10947.2

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.92167 -0.63595 -0.02846  0.66930  2.86011 

Random effects:
 Groups             Name        Variance  Std.Dev.
 SubjectInfo.subjID (Intercept) 0.0238468 0.15442 
 Trials.targetImage (Intercept) 0.0117906 0.10858 
 Trials.imagePair   (Intercept) 0.0009043 0.03007 
 section            (Intercept) 0.0000000 0.00000 
 Residual                       0.9584418 0.97900 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -6.861e-03  2.678e-02  5.105e+01
scale(image_similarity)                      -3.985e-02  1.973e-02  2.690e+01
scale(age_in_months)                          6.894e-02  2.037e-02  1.433e+02
scale(MeanSaliencyDiff)                       8.712e-03  2.138e-02  6.257e+01
scale(image_similarity):scale(age_in_months) -9.774e-03  1.572e-02  3.736e+03
                                             t value Pr(>|t|)    
(Intercept)                                   -0.256 0.798836    
scale(image_similarity)                       -2.020 0.053457 .  
scale(age_in_months)                           3.385 0.000918 ***
scale(MeanSaliencyDiff)                        0.408 0.684999    
scale(image_similarity):scale(age_in_months)  -0.622 0.534072    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(mg_sml) -0.009                     
scl(g_n_mn)  0.000 -0.011              
scl(MnSlnD)  0.009  0.003 -0.006       
scl(_):(__) -0.009 -0.008  0.008 -0.010
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(vs_text_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(text_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (scale(text_similarity) | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | Trials.imagePair) + (1 |      section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10949.2

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.9367 -0.6336 -0.0293  0.6711  2.8625 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0239003 0.15460      
                    scale(text_similarity) 0.0001482 0.01217  1.00
 Trials.targetImage (Intercept)            0.0127850 0.11307      
 Trials.imagePair   (Intercept)            0.0018435 0.04294      
 section            (Intercept)            0.0000000 0.00000      
 Residual                                  0.9579065 0.97873      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -8.566e-03  2.773e-02  5.193e+01
scale(text_similarity)                      -2.355e-02  2.065e-02  3.214e+01
scale(age_in_months)                         6.867e-02  2.037e-02  1.432e+02
scale(MeanSaliencyDiff)                      8.989e-03  2.176e-02  5.866e+01
scale(text_similarity):scale(age_in_months) -1.114e-02  1.594e-02  3.712e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.309 0.758659    
scale(text_similarity)                       -1.141 0.262473    
scale(age_in_months)                          3.371 0.000964 ***
scale(MeanSaliencyDiff)                       0.413 0.681099    
scale(text_similarity):scale(age_in_months)  -0.699 0.484758    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(txt_sm)  0.048                     
scl(g_n_mn) -0.001 -0.001              
scl(MnSlnD)  0.009  0.002 -0.005       
scl(_):(__)  0.001 -0.018  0.045 -0.008
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Just a sanity check that adding our saliency metric as a covariate does not affect our similarity effects.

Alternate window analyses

Only using first instance of an item

first_instance_target <- trials_with_effect_vars |>
  group_by(SubjectInfo.subjID, Trials.targetImage) |>
  arrange(Trials.ordinal, .by_group = TRUE) |>
  slice(1) |>
  ungroup()

second_instance_target <- trials_with_effect_vars |>
  group_by(SubjectInfo.subjID, Trials.targetImage) |>
  arrange(Trials.ordinal, .by_group = TRUE) |>
  slice(2) |>
  ungroup()

primary_targets <- trials_with_effect_vars |>
  filter(Trials.trialType %in% c("easy", "hard"))
  
first_instance_primary_target <- first_instance_target |>
  filter(Trials.trialType %in% c("easy", "hard"))
  
first_instance_image_pair <- trials_with_effect_vars |>
  group_by(SubjectInfo.subjID, Trials.imagePair) |>
  arrange(Trials.ordinal, .by_group = TRUE) |>
  slice(1) |>
  ungroup()


first_instance_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = first_instance_target)
boundary (singular) fit: see help('isSingular')
second_instance_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = second_instance_target)
boundary (singular) fit: see help('isSingular')
first_instance_pt_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = first_instance_primary_target)
boundary (singular) fit: see help('isSingular')
pt_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = primary_targets)
boundary (singular) fit: see help('isSingular')
first_instance_image_pair_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = first_instance_image_pair)
boundary (singular) fit: see help('isSingular')
summary(first_instance_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | Trials.ordinal) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: first_instance_target

REML criterion at convergence: 8633.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.94959 -0.64112 -0.02766  0.66632  2.83295 

Random effects:
 Groups             Name        Variance  Std.Dev.
 SubjectInfo.subjID (Intercept) 0.0268061 0.16373 
 Trials.targetImage (Intercept) 0.0128112 0.11319 
 Trials.ordinal     (Intercept) 0.0006618 0.02573 
 section            (Intercept) 0.0000000 0.00000 
 Residual                       0.9541238 0.97679 
Number of obs: 3050, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.ordinal, 47; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -1.483e-04  2.834e-02  4.732e+01
scale(image_similarity)                      -4.876e-02  2.197e-02  1.276e+02
scale(age_in_months)                          7.247e-02  2.237e-02  1.458e+02
scale(MeanSaliencyDiff)                       5.100e-03  2.357e-02  6.291e+01
scale(image_similarity):scale(age_in_months)  4.298e-05  1.767e-02  2.956e+03
                                             t value Pr(>|t|)   
(Intercept)                                   -0.005  0.99585   
scale(image_similarity)                       -2.220  0.02819 * 
scale(age_in_months)                           3.240  0.00148 **
scale(MeanSaliencyDiff)                        0.216  0.82941   
scale(image_similarity):scale(age_in_months)   0.002  0.99806   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(mg_sml) -0.007                     
scl(g_n_mn)  0.001 -0.017              
scl(MnSlnD)  0.000 -0.081 -0.009       
scl(_):(__) -0.014 -0.021  0.013 -0.006
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(second_instance_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | Trials.ordinal) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: second_instance_target

REML criterion at convergence: 2340.1

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.87045 -0.61735 -0.06732  0.63564  2.67477 

Random effects:
 Groups             Name        Variance  Std.Dev.
 SubjectInfo.subjID (Intercept) 0.0274798 0.16577 
 Trials.ordinal     (Intercept) 0.0003388 0.01841 
 Trials.targetImage (Intercept) 0.0047334 0.06880 
 section            (Intercept) 0.0000000 0.00000 
 Residual                       0.9666993 0.98321 
Number of obs: 819, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 34; Trials.targetImage, 16; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   -0.003067   0.041564  11.906740
scale(image_similarity)                       -0.003673   0.040452 302.729612
scale(age_in_months)                           0.062243   0.037291 128.166555
scale(MeanSaliencyDiff)                        0.025945   0.042532  38.851725
scale(image_similarity):scale(age_in_months)  -0.046945   0.035139 804.229065
                                             t value Pr(>|t|)  
(Intercept)                                   -0.074   0.9424  
scale(image_similarity)                       -0.091   0.9277  
scale(age_in_months)                           1.669   0.0975 .
scale(MeanSaliencyDiff)                        0.610   0.5454  
scale(image_similarity):scale(age_in_months)  -1.336   0.1819  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(mg_sml)  0.000                     
scl(g_n_mn)  0.000  0.024              
scl(MnSlnD)  0.006  0.456  0.028       
scl(_):(__)  0.012  0.032 -0.009 -0.003
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(first_instance_pt_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | Trials.ordinal) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: first_instance_primary_target

REML criterion at convergence: 3164

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.78542 -0.64758 -0.03046  0.68587  2.86506 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.04141  0.2035  
 Trials.ordinal     (Intercept) 0.01023  0.1011  
 Trials.targetImage (Intercept) 0.01419  0.1191  
 section            (Intercept) 0.00000  0.0000  
 Residual                       0.92620  0.9624  
Number of obs: 1116, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 35; Trials.targetImage, 16; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   9.529e-03  4.950e-02  2.057e+01
scale(image_similarity)                      -6.371e-02  3.558e-02  4.530e+02
scale(age_in_months)                          8.107e-02  3.355e-02  1.435e+02
scale(MeanSaliencyDiff)                      -1.742e-02  4.179e-02  4.156e+01
scale(image_similarity):scale(age_in_months)  6.563e-02  2.928e-02  1.086e+03
                                             t value Pr(>|t|)  
(Intercept)                                    0.193   0.8492  
scale(image_similarity)                       -1.791   0.0740 .
scale(age_in_months)                           2.416   0.0169 *
scale(MeanSaliencyDiff)                       -0.417   0.6790  
scale(image_similarity):scale(age_in_months)   2.241   0.0252 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(mg_sml) -0.006                     
scl(g_n_mn) -0.003 -0.041              
scl(MnSlnD)  0.003  0.427 -0.026       
scl(_):(__) -0.023 -0.044  0.006 -0.011
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(pt_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) + scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | Trials.ordinal) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: primary_targets

REML criterion at convergence: 5479.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-3.03560 -0.63184 -0.03267  0.67059  2.86648 

Random effects:
 Groups             Name        Variance  Std.Dev. 
 SubjectInfo.subjID (Intercept) 3.288e-02 1.813e-01
 Trials.ordinal     (Intercept) 2.900e-03 5.386e-02
 Trials.targetImage (Intercept) 1.192e-02 1.092e-01
 section            (Intercept) 2.737e-10 1.654e-05
 Residual                       9.485e-01 9.739e-01
Number of obs: 1935, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 44; Trials.targetImage, 16; section, 2

Fixed effects:
                          Estimate Std. Error         df t value Pr(>|t|)   
(Intercept)              8.585e-04  3.987e-02  2.137e+01   0.022  0.98302   
scale(image_similarity) -3.630e-02  2.723e-02  7.162e+02  -1.333  0.18289   
scale(age_in_months)     7.128e-02  2.689e-02  1.356e+02   2.651  0.00898 **
scale(MeanSaliencyDiff)  8.121e-03  3.378e-02  5.237e+01   0.240  0.81098   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__)
scl(mg_sml) -0.005              
scl(g_n_mn) -0.004 -0.014       
scl(MnSlnD)  0.010  0.419 -0.006
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(first_instance_image_pair_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(MeanSaliencyDiff) + (1 | Trials.ordinal) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: first_instance_image_pair

REML criterion at convergence: 6300.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.84270 -0.63429 -0.03589  0.66606  2.85407 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.02131  0.14599 
 Trials.targetImage (Intercept) 0.01030  0.10151 
 Trials.ordinal     (Intercept) 0.00137  0.03701 
 section            (Intercept) 0.00000  0.00000 
 Residual                       0.96325  0.98145 
Number of obs: 2219, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.ordinal, 33; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -1.662e-03  2.991e-02  3.025e+01
scale(image_similarity)                      -3.785e-02  2.359e-02  1.612e+02
scale(age_in_months)                          5.783e-02  2.419e-02  1.436e+02
scale(MeanSaliencyDiff)                      -3.014e-02  2.524e-02  7.175e+01
scale(image_similarity):scale(age_in_months)  9.082e-03  2.092e-02  2.091e+03
                                             t value Pr(>|t|)  
(Intercept)                                   -0.056   0.9560  
scale(image_similarity)                       -1.605   0.1105  
scale(age_in_months)                           2.391   0.0181 *
scale(MeanSaliencyDiff)                       -1.194   0.2362  
scale(image_similarity):scale(age_in_months)   0.434   0.6643  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(MSD)
scl(mg_sml) -0.008                     
scl(g_n_mn)  0.000 -0.008              
scl(MnSlnD)  0.007 -0.030 -0.004       
scl(_):(__) -0.003 -0.010  0.005  0.011
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Random order effects

main_image_effect_ordinal <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | Trials.ordinal)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(main_image_effect_ordinal)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * scale(age_in_months) +  
    scale(AoA_Est_target) + scale(MeanSaliencyDiff) + (1 | Trials.ordinal) +  
    (1 | SubjectInfo.subjID) + (1 | Trials.targetImage) + (1 |      section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10938.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.85788 -0.64014 -0.02222  0.67477  2.88444 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.023599 0.15362 
 Trials.ordinal     (Intercept) 0.001485 0.03853 
 Trials.targetImage (Intercept) 0.005992 0.07741 
 section            (Intercept) 0.000000 0.00000 
 Residual                       0.957317 0.97843 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 52; Trials.targetImage, 48; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -6.538e-03  2.454e-02  4.785e+01
scale(image_similarity)                      -3.031e-02  1.792e-02  1.785e+02
scale(age_in_months)                          6.785e-02  2.031e-02  1.435e+02
scale(AoA_Est_target)                        -8.260e-02  1.996e-02  4.860e+01
scale(MeanSaliencyDiff)                       6.428e-03  1.903e-02  6.555e+01
scale(image_similarity):scale(age_in_months) -1.011e-02  1.571e-02  3.741e+03
                                             t value Pr(>|t|)    
(Intercept)                                   -0.266 0.791045    
scale(image_similarity)                       -1.692 0.092424 .  
scale(age_in_months)                           3.341 0.001065 ** 
scale(AoA_Est_target)                         -4.138 0.000139 ***
scale(MeanSaliencyDiff)                        0.338 0.736562    
scale(image_similarity):scale(age_in_months)  -0.644 0.519823    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E s(MSD)
scl(mg_sml) -0.008                            
scl(g_n_mn)  0.002 -0.013                     
scl(AA_Es_)  0.017 -0.155  0.016              
scl(MnSlnD)  0.007 -0.011 -0.005  0.016       
scl(_):(__) -0.009 -0.010  0.008  0.009 -0.010
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Order does not explain much variance.

Target image order effects

ranked_trials <- trials_with_effect_vars |>
  group_by(SubjectInfo.subjID, Trials.targetImage) |>
  arrange(Trials.ordinal, .by_group = TRUE) |>
  mutate(
    slice_num = row_number(),
    order = case_when(
      slice_num == 1 ~ -0.5,
      slice_num == 2 ~ 0.5,
      TRUE ~ NA
    )
  )
main_image_effect_ranked <- lmer(scale(corrected_target_looking) ~ scale(image_similarity)*(scale(order))
                                 
                    + scale(AoA_Est_target)
                    + scale(age_in_months)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = ranked_trials)
boundary (singular) fit: see help('isSingular')
# |> filter(Trials.trialType %in% c("easy", "hard")
summary(main_image_effect_ranked)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: 
scale(corrected_target_looking) ~ scale(image_similarity) * (scale(order)) +  
    scale(AoA_Est_target) + scale(age_in_months) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: ranked_trials

REML criterion at convergence: 10937.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.88325 -0.63247 -0.02264  0.67221  2.86456 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.023205 0.15233 
 Trials.targetImage (Intercept) 0.005383 0.07337 
 section            (Intercept) 0.000000 0.00000 
 Residual                       0.959048 0.97931 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; section, 2

Fixed effects:
                                       Estimate Std. Error         df t value
(Intercept)                          -5.457e-03  2.327e-02  6.351e+01  -0.235
scale(image_similarity)              -3.038e-02  1.778e-02  1.698e+02  -1.708
scale(order)                          2.144e-02  1.660e-02  8.945e+02   1.292
scale(AoA_Est_target)                -8.137e-02  1.974e-02  4.977e+01  -4.122
scale(age_in_months)                  6.811e-02  2.025e-02  1.435e+02   3.363
scale(image_similarity):scale(order)  7.930e-03  1.651e-02  1.854e+03   0.480
                                     Pr(>|t|)    
(Intercept)                          0.815303    
scale(image_similarity)              0.089393 .  
scale(order)                         0.196778    
scale(AoA_Est_target)                0.000142 ***
scale(age_in_months)                 0.000990 ***
scale(image_similarity):scale(order) 0.630980    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) scl(r) s(AA_E sc(__)
scl(mg_sml) -0.008                            
scale(ordr)  0.047  0.008                     
scl(AA_Es_)  0.018 -0.159 -0.008              
scl(g_n_mn)  0.003 -0.014  0.001  0.017       
scl(mg_):()  0.010 -0.049  0.010  0.112  0.014
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Z-scoring embeddings

Z-scoring embeddings led to significant image similarity even with AoA as a covariate in section 1 – todo to include section 2!

#main_image_effect_zscored <- lmer(scale(corrected_target_looking) ~ scale(image_sim_zscore)*scale(age_in_months)
#                    + scale(AoA_Est_target)
#                    + scale(MeanSaliencyDiff)
#                    + (1 | SubjectInfo.subjID) 
#                    + (1|Trials.targetImage)
#                    + ( 1 | section), 
#                    data = trials_with_effect_vars)
#summary(main_image_effect_zscored)

Baseline window as a covariate

baseline_covariate_looking_text <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)*scale(text_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + scale(mean_target_looking_baseline_window)
                    + (scale(text_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                    + (1|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
baseline_covariate_looking_image <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)*scale(image_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + scale(mean_target_looking_baseline_window)
                    + (scale(image_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                     + (1|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(baseline_covariate_looking_text)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_critical_window) ~ scale(age_in_months) *  
    scale(text_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    scale(mean_target_looking_baseline_window) + (scale(text_similarity) |  
    SubjectInfo.subjID) + (1 | section) + (1 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10409.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.82326 -0.70271  0.05869  0.75332  2.49828 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0387777 0.19692      
                    scale(text_similarity) 0.0002968 0.01723  1.00
 Trials.targetImage (Intercept)            0.0200830 0.14171      
 Trials.imagePair   (Intercept)            0.0010531 0.03245      
 section            (Intercept)            0.0016236 0.04029      
 Residual                                  0.8185343 0.90473      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -4.578e-03  4.233e-02  9.047e-01
scale(age_in_months)                         8.853e-02  2.196e-02  1.405e+02
scale(text_similarity)                      -5.406e-02  2.031e-02  2.804e+01
scale(AoA_Est_target)                       -1.207e-01  2.615e-02  4.038e+01
scale(MeanSaliencyDiff)                      6.246e-02  2.311e-02  7.446e+01
scale(mean_target_looking_baseline_window)   2.814e-01  1.495e-02  3.798e+03
scale(age_in_months):scale(text_similarity) -1.397e-02  1.482e-02  3.169e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.108  0.93278    
scale(age_in_months)                          4.031 9.07e-05 ***
scale(text_similarity)                       -2.661  0.01274 *  
scale(AoA_Est_target)                        -4.617 3.91e-05 ***
scale(MeanSaliencyDiff)                       2.702  0.00853 ** 
scale(mean_target_looking_baseline_window)   18.829  < 2e-16 ***
scale(age_in_months):scale(text_similarity)  -0.943  0.34575    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) scl(_) s(AA_E s(MSD) s(____
scl(g_n_mn) -0.001                                   
scl(txt_sm)  0.056 -0.005                            
scl(AA_Es_)  0.035  0.006  0.050                     
scl(MnSlnD)  0.009 -0.004  0.024  0.034              
scl(mn____) -0.007 -0.007  0.018  0.013 -0.046       
scl(__):(_)  0.001  0.077 -0.015  0.003 -0.007  0.001
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(baseline_covariate_looking_image)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_critical_window) ~ scale(age_in_months) *  
    scale(image_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    scale(mean_target_looking_baseline_window) + (scale(image_similarity) |  
    SubjectInfo.subjID) + (1 | section) + (1 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10409.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.80455 -0.70681  0.05695  0.75384  2.51748 

Random effects:
 Groups             Name                    Variance  Std.Dev.  Corr
 SubjectInfo.subjID (Intercept)             3.934e-02 1.983e-01     
                    scale(image_similarity) 8.197e-04 2.863e-02 1.00
 Trials.targetImage (Intercept)             1.857e-02 1.363e-01     
 Trials.imagePair   (Intercept)             2.931e-03 5.414e-02     
 section            (Intercept)             2.584e-10 1.607e-05     
 Residual                                   8.179e-01 9.044e-01     
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   1.325e-03  3.166e-02  5.181e+01
scale(age_in_months)                          8.745e-02  2.204e-02  1.410e+02
scale(image_similarity)                      -4.267e-02  2.168e-02  2.705e+01
scale(AoA_Est_target)                        -1.086e-01  2.607e-02  4.234e+01
scale(MeanSaliencyDiff)                       6.475e-02  2.282e-02  6.763e+01
scale(mean_target_looking_baseline_window)    2.822e-01  1.494e-02  3.795e+03
scale(age_in_months):scale(image_similarity) -1.965e-02  1.475e-02  1.151e+03
                                             t value Pr(>|t|)    
(Intercept)                                    0.042 0.966772    
scale(age_in_months)                           3.968 0.000115 ***
scale(image_similarity)                       -1.968 0.059366 .  
scale(AoA_Est_target)                         -4.165 0.000150 ***
scale(MeanSaliencyDiff)                        2.837 0.006001 ** 
scale(mean_target_looking_baseline_window)    18.886  < 2e-16 ***
scale(age_in_months):scale(image_similarity)  -1.333 0.182902    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) scl(_) s(AA_E s(MSD) s(____
scl(g_n_mn)  0.001                                   
scl(mg_sml)  0.046 -0.009                            
scl(AA_Es_)  0.033  0.011 -0.120                     
scl(MnSlnD)  0.011 -0.004  0.018  0.024              
scl(mn____) -0.011 -0.007  0.006  0.012 -0.049       
scl(__):(_) -0.006  0.129 -0.007  0.007 -0.010  0.009
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Now we’re starting to see effects. although these models are still very ## Just predicting critical window looking

critical_looking_text <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)*scale(text_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(text_similarity) | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1|Trials.imagePair)
                    + (1 | section), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
critical_looking_image <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)*scale(image_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(image_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                     + (1|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
critical_looking_bvimage <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)*scale(image_similarity_bv)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(image_similarity) | SubjectInfo.subjID) 
                    + (1 | section)
                     + (1|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(critical_looking_text)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_critical_window) ~ scale(age_in_months) *  
    scale(text_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (scale(text_similarity) | SubjectInfo.subjID) + (1 | Trials.targetImage) +  
    (1 | Trials.imagePair) + (1 | section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10739.4

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.42450 -0.67727  0.07311  0.75722  2.41030 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0389379 0.19733      
                    scale(text_similarity) 0.0003709 0.01926  1.00
 Trials.targetImage (Intercept)            0.0357476 0.18907      
 Trials.imagePair   (Intercept)            0.0036441 0.06037      
 section            (Intercept)            0.0014580 0.03818      
 Residual                                  0.8899007 0.94335      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                  3.336e-03  4.631e-02  8.920e-01
scale(age_in_months)                         9.161e-02  2.241e-02  1.397e+02
scale(text_similarity)                      -6.372e-02  2.429e-02  2.654e+01
scale(AoA_Est_target)                       -1.242e-01  3.278e-02  3.879e+01
scale(MeanSaliencyDiff)                      7.861e-02  2.765e-02  6.713e+01
scale(age_in_months):scale(text_similarity) -1.447e-02  1.545e-02  2.994e+03
                                            t value Pr(>|t|)    
(Intercept)                                   0.072 0.955259    
scale(age_in_months)                          4.087 7.32e-05 ***
scale(text_similarity)                       -2.624 0.014238 *  
scale(AoA_Est_target)                        -3.789 0.000515 ***
scale(MeanSaliencyDiff)                       2.843 0.005911 ** 
scale(age_in_months):scale(text_similarity)  -0.936 0.349103    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) scl(_) s(AA_E s(MSD)
scl(g_n_mn) -0.002                            
scl(txt_sm)  0.056 -0.005                     
scl(AA_Es_)  0.042  0.007  0.054              
scl(MnSlnD)  0.010 -0.004  0.043  0.037       
scl(__):(_)  0.001  0.081 -0.012  0.003 -0.006
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(critical_looking_image)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_critical_window) ~ scale(age_in_months) *  
    scale(image_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (scale(image_similarity) | SubjectInfo.subjID) + (1 | section) +  
    (1 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10740.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.42108 -0.68108  0.06944  0.75401  2.37688 

Random effects:
 Groups             Name                    Variance  Std.Dev.  Corr
 SubjectInfo.subjID (Intercept)             3.950e-02 1.988e-01     
                    scale(image_similarity) 6.128e-04 2.476e-02 1.00
 Trials.targetImage (Intercept)             3.452e-02 1.858e-01     
 Trials.imagePair   (Intercept)             6.754e-03 8.218e-02     
 section            (Intercept)             1.430e-10 1.196e-05     
 Residual                                   8.893e-01 9.430e-01     
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   9.595e-03  3.857e-02  4.492e+01
scale(age_in_months)                          9.056e-02  2.249e-02  1.400e+02
scale(image_similarity)                      -4.377e-02  2.633e-02  2.546e+01
scale(AoA_Est_target)                        -1.125e-01  3.296e-02  4.066e+01
scale(MeanSaliencyDiff)                       8.219e-02  2.769e-02  6.232e+01
scale(age_in_months):scale(image_similarity) -2.167e-02  1.531e-02  1.425e+03
                                             t value Pr(>|t|)    
(Intercept)                                    0.249  0.80466    
scale(age_in_months)                           4.026 9.24e-05 ***
scale(image_similarity)                       -1.662  0.10870    
scale(AoA_Est_target)                         -3.414  0.00146 ** 
scale(MeanSaliencyDiff)                        2.968  0.00425 ** 
scale(age_in_months):scale(image_similarity)  -1.415  0.15723    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) scl(_) s(AA_E s(MSD)
scl(g_n_mn) -0.001                            
scl(mg_sml)  0.018 -0.008                     
scl(AA_Es_)  0.043  0.010 -0.094              
scl(MnSlnD)  0.010 -0.005  0.040  0.025       
scl(__):(_) -0.005  0.107 -0.005  0.005 -0.009
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(critical_looking_bvimage)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_critical_window) ~ scale(age_in_months) *  
    scale(image_similarity_bv) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (scale(image_similarity) | SubjectInfo.subjID) + (1 | section) +  
    (1 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10743.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.43431 -0.68341  0.07012  0.74891  2.38340 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0395903 0.19897      
                    scale(image_similarity) 0.0005542 0.02354  1.00
 Trials.targetImage (Intercept)             0.0369188 0.19214      
 Trials.imagePair   (Intercept)             0.0082629 0.09090      
 section            (Intercept)             0.0000000 0.00000      
 Residual                                   0.8890892 0.94292      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                                  Estimate Std. Error
(Intercept)                                        0.01068    0.03983
scale(age_in_months)                               0.09243    0.02241
scale(image_similarity_bv)                        -0.01240    0.03088
scale(AoA_Est_target)                             -0.11434    0.03435
scale(MeanSaliencyDiff)                            0.08287    0.02838
scale(age_in_months):scale(image_similarity_bv)   -0.01926    0.01546
                                                        df t value Pr(>|t|)    
(Intercept)                                       45.93532   0.268  0.78986    
scale(age_in_months)                             141.30814   4.125  6.3e-05 ***
scale(image_similarity_bv)                        30.56142  -0.402  0.69070    
scale(AoA_Est_target)                             42.52317  -3.329  0.00181 ** 
scale(MeanSaliencyDiff)                           62.10526   2.920  0.00488 ** 
scale(age_in_months):scale(image_similarity_bv) 3715.23482  -1.246  0.21286    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(g__) scl(m__) s(AA_E s(MSD)
scl(g_n_mn) -0.001                                
scl(mg_sm_) -0.008 -0.009                         
scl(AA_Es_)  0.046  0.010   -0.168                
scl(MnSlnD)  0.009 -0.004    0.067    0.016       
sc(__):(__) -0.004  0.043   -0.007   -0.004  0.003
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
r.squaredGLMM(critical_looking_image)
            R2m       R2c
[1,] 0.03151521 0.1127237
r.squaredGLMM(critical_looking_text)
            R2m       R2c
[1,] 0.03398413 0.1138084

Similar predictions to our original model.

Adding window type as a covariate

trials_window_type_separated <- trials_with_effect_vars |>
  pivot_longer(cols=c(mean_target_looking_critical_window, mean_target_looking_baseline_window), names_to="window_type", values_to="target_looking") |>
  mutate(window_type = str_replace(window_type, "mean_target_looking_", "")) |>
  mutate(trial_window_c = case_when(
    window_type=="critical_window" ~ 0.5,
    window_type=="baseline_window" ~ -0.5))

window_type_looking_text <- lmer(scale(target_looking) ~ scale(age_in_months)*trial_window_c*scale(text_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(text_similarity) | SubjectInfo.subjID) 
                    + (1|Trials.imagePair)
                    + (1|Trials.targetImage) + (1|section), 
                    data = trials_window_type_separated)
boundary (singular) fit: see help('isSingular')
window_type_looking_image <- lmer(scale(target_looking) ~ scale(age_in_months)*trial_window_c*scale(image_similarity)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (scale(image_similarity) | SubjectInfo.subjID) 
                    + (1 | Trials.imagePair)
                    + (1|Trials.targetImage) + (1|section), 
                    data = trials_window_type_separated)
boundary (singular) fit: see help('isSingular')
summary(window_type_looking_image)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(target_looking) ~ scale(age_in_months) * trial_window_c *  
    scale(image_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (scale(image_similarity) | SubjectInfo.subjID) + (1 | Trials.imagePair) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: trials_window_type_separated

REML criterion at convergence: 21594.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.42295 -0.70604  0.03112  0.75352  2.09637 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0123811 0.11127      
                    scale(image_similarity) 0.0001165 0.01079  1.00
 Trials.targetImage (Intercept)             0.0412618 0.20313      
 Trials.imagePair   (Intercept)             0.0099066 0.09953      
 section            (Intercept)             0.0000000 0.00000      
 Residual                                   0.9246844 0.96161      
Number of obs: 7738, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                                              Estimate
(Intercept)                                                  2.165e-02
scale(age_in_months)                                         5.053e-02
trial_window_c                                               1.862e-01
scale(image_similarity)                                     -2.508e-02
scale(AoA_Est_target)                                       -6.477e-02
scale(MeanSaliencyDiff)                                      6.838e-02
scale(age_in_months):trial_window_c                          8.199e-02
scale(age_in_months):scale(image_similarity)                -1.378e-02
trial_window_c:scale(image_similarity)                      -5.006e-02
scale(age_in_months):trial_window_c:scale(image_similarity) -9.786e-03
                                                            Std. Error
(Intercept)                                                  3.752e-02
scale(age_in_months)                                         1.438e-02
trial_window_c                                               2.186e-02
scale(image_similarity)                                      2.544e-02
scale(AoA_Est_target)                                        3.348e-02
scale(MeanSaliencyDiff)                                      2.659e-02
scale(age_in_months):trial_window_c                          2.187e-02
scale(age_in_months):scale(image_similarity)                 1.097e-02
trial_window_c:scale(image_similarity)                       2.187e-02
scale(age_in_months):trial_window_c:scale(image_similarity)  2.176e-02
                                                                    df t value
(Intercept)                                                  4.132e+01   0.577
scale(age_in_months)                                         1.384e+02   3.515
trial_window_c                                               7.509e+03   8.518
scale(image_similarity)                                      2.555e+01  -0.986
scale(AoA_Est_target)                                        4.216e+01  -1.935
scale(MeanSaliencyDiff)                                      5.676e+01   2.572
scale(age_in_months):trial_window_c                          7.509e+03   3.749
scale(age_in_months):scale(image_similarity)                 2.702e+03  -1.256
trial_window_c:scale(image_similarity)                       7.509e+03  -2.289
scale(age_in_months):trial_window_c:scale(image_similarity)  7.509e+03  -0.450
                                                            Pr(>|t|)    
(Intercept)                                                 0.567086    
scale(age_in_months)                                        0.000595 ***
trial_window_c                                               < 2e-16 ***
scale(image_similarity)                                     0.333415    
scale(AoA_Est_target)                                       0.059757 .  
scale(MeanSaliencyDiff)                                     0.012760 *  
scale(age_in_months):trial_window_c                         0.000179 ***
scale(age_in_months):scale(image_similarity)                0.209279    
trial_window_c:scale(image_similarity)                      0.022106 *  
scale(age_in_months):trial_window_c:scale(image_similarity) 0.652946    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) trl_w_ scl(_) s(AA_E s(MSD) sc(__):__ s(__):( t__:(_
scl(g_n_mn) -0.003                                                            
tril_wndw_c  0.000  0.000                                                     
scl(mg_sml) -0.010 -0.007  0.000                                              
scl(AA_Es_)  0.058  0.007  0.000 -0.052                                       
scl(MnSlnD)  0.009 -0.004  0.000  0.072  0.024                                
scl(g__):__  0.000  0.000  0.000  0.000  0.000  0.000                         
scl(__):(_) -0.005  0.062  0.000 -0.004  0.003 -0.007  0.000                  
trl_wn_:(_)  0.000  0.000  0.000  0.000  0.000  0.000 -0.014     0.000        
s(__):__:(_  0.000  0.000 -0.013  0.000  0.000  0.000  0.009     0.000  -0.011
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
summary(window_type_looking_text)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(target_looking) ~ scale(age_in_months) * trial_window_c *  
    scale(text_similarity) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (scale(text_similarity) | SubjectInfo.subjID) + (1 | Trials.imagePair) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: trials_window_type_separated

REML criterion at convergence: 21596.4

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.41677 -0.70605  0.03487  0.75453  2.12925 

Random effects:
 Groups             Name                   Variance Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.012216 0.11053      
                    scale(text_similarity) 0.000280 0.01673  1.00
 Trials.targetImage (Intercept)            0.041533 0.20380      
 Trials.imagePair   (Intercept)            0.007538 0.08682      
 section            (Intercept)            0.000000 0.00000      
 Residual                                  0.925248 0.96190      
Number of obs: 7738, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32; section, 2

Fixed effects:
                                                             Estimate
(Intercept)                                                 1.757e-02
scale(age_in_months)                                        5.110e-02
trial_window_c                                              1.861e-01
scale(text_similarity)                                     -4.733e-02
scale(AoA_Est_target)                                      -7.010e-02
scale(MeanSaliencyDiff)                                     6.475e-02
scale(age_in_months):trial_window_c                         8.130e-02
scale(age_in_months):scale(text_similarity)                -8.835e-03
trial_window_c:scale(text_similarity)                      -2.073e-02
scale(age_in_months):trial_window_c:scale(text_similarity) -1.373e-02
                                                           Std. Error
(Intercept)                                                 3.658e-02
scale(age_in_months)                                        1.434e-02
trial_window_c                                              2.187e-02
scale(text_similarity)                                      2.357e-02
scale(AoA_Est_target)                                       3.315e-02
scale(MeanSaliencyDiff)                                     2.627e-02
scale(age_in_months):trial_window_c                         2.187e-02
scale(age_in_months):scale(text_similarity)                 1.113e-02
trial_window_c:scale(text_similarity)                       2.188e-02
scale(age_in_months):trial_window_c:scale(text_similarity)  2.191e-02
                                                                   df t value
(Intercept)                                                 4.117e+01   0.480
scale(age_in_months)                                        1.390e+02   3.564
trial_window_c                                              7.509e+03   8.509
scale(text_similarity)                                      2.640e+01  -2.008
scale(AoA_Est_target)                                       4.091e+01  -2.115
scale(MeanSaliencyDiff)                                     5.930e+01   2.464
scale(age_in_months):trial_window_c                         7.509e+03   3.717
scale(age_in_months):scale(text_similarity)                 2.969e+03  -0.794
trial_window_c:scale(text_similarity)                       7.509e+03  -0.948
scale(age_in_months):trial_window_c:scale(text_similarity)  7.509e+03  -0.626
                                                           Pr(>|t|)    
(Intercept)                                                0.633554    
scale(age_in_months)                                       0.000502 ***
trial_window_c                                              < 2e-16 ***
scale(text_similarity)                                     0.054978 .  
scale(AoA_Est_target)                                      0.040603 *  
scale(MeanSaliencyDiff)                                    0.016637 *  
scale(age_in_months):trial_window_c                        0.000203 ***
scale(age_in_months):scale(text_similarity)                0.427277    
trial_window_c:scale(text_similarity)                      0.343383    
scale(age_in_months):trial_window_c:scale(text_similarity) 0.531090    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) trl_w_ scl(_) s(AA_E s(MSD) sc(__):__ s(__):( t__:(_
scl(g_n_mn) -0.003                                                            
tril_wndw_c  0.000  0.000                                                     
scl(txt_sm)  0.058 -0.005  0.000                                              
scl(AA_Es_)  0.060  0.007  0.000  0.059                                       
scl(MnSlnD)  0.013 -0.004  0.000  0.067  0.036                                
scl(g__):__  0.000  0.000  0.000  0.000  0.000  0.000                         
scl(__):(_)  0.001  0.086  0.000 -0.008  0.001 -0.005  0.000                  
trl_wn_:(_)  0.000  0.000  0.000  0.000  0.000  0.000  0.002     0.000        
s(__):__:(_  0.000  0.000  0.002  0.000  0.000  0.000  0.004     0.000  -0.022
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

The interaction makes sense, plotting the predictions here to try to understand what’s going on

trials_window_type_separated$predicted <- predict(window_type_looking_image)

# Plot interaction effect
ggplot(trials_window_type_separated, aes(x = image_similarity, y = predicted, color = factor(window_type))) +
  geom_point(alpha = 0.5) +   # Add points for raw data
  geom_smooth(method = "lm", se = TRUE) +  # Add regression lines
  labs(title = "Interaction Between Trial Window & Image Similarity",
       x = "Scaled Image Similarity",
       y = "Predicted Target Looking",
       color = "Trial Window") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

This is also making me wonder whether we see any signal in how infants look at images in the baseline window. ## Baseline window looking

baseline_looking_image <- lmer(scale(mean_target_looking_baseline_window) ~ scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID) + (1 | section) + (1 | Trials.targetImage), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
summary(baseline_looking_image)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(mean_target_looking_baseline_window) ~ scale(AoA_Est_target) +  
    scale(MeanSaliencyDiff) + (1 | SubjectInfo.subjID) + (1 |  
    section) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10903.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.05141 -0.73467  0.00675  0.74517  1.96078 

Random effects:
 Groups             Name        Variance  Std.Dev. 
 SubjectInfo.subjID (Intercept) 3.141e-10 1.772e-05
 Trials.targetImage (Intercept) 3.549e-02 1.884e-01
 section            (Intercept) 0.000e+00 0.000e+00
 Residual                       9.614e-01 9.805e-01
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; section, 2

Fixed effects:
                        Estimate Std. Error       df t value Pr(>|t|)  
(Intercept)              0.02734    0.03206 41.85561   0.853   0.3987  
scale(AoA_Est_target)   -0.01732    0.03148 42.28672  -0.550   0.5851  
scale(MeanSaliencyDiff)  0.06451    0.02749 89.85197   2.346   0.0211 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) s(AA_E
scl(AA_Es_) 0.056        
scl(MnSlnD) 0.013  0.045 
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Can’t get this to not be not singular but still fun to see that saliency is predictive.

Using a shorter critical window

short_image_effect <- lmer(scale(corrected_target_looking_short) ~ scale(image_similarity)*scale(age_in_months)
                    + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID) 
                    + (1|Trials.targetImage)
                    + (1 | section), 
                    data = trials_with_effect_vars)
boundary (singular) fit: see help('isSingular')
short_text_effect <- lmer(scale(corrected_target_looking_short) ~ scale(text_similarity)*scale(age_in_months)
                    + scale(AoA_Est_target)
                    + (1 | SubjectInfo.subjID)
                    + (1 | Trials.targetImage)
                    + (1 | section), 
                    data = trials_with_effect_vars)
Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model failed to converge with max|grad| = 0.00247669 (tol = 0.002, component 1)
  See ?lme4::convergence and ?lme4::troubleshooting.
summary(short_text_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(corrected_target_looking_short) ~ scale(text_similarity) *  
    scale(age_in_months) + scale(AoA_Est_target) + (1 | SubjectInfo.subjID) +  
    (1 | Trials.targetImage) + (1 | section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10934.7

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.9371 -0.6663 -0.0099  0.6616  2.8001 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.020616 0.14358 
 Trials.targetImage (Intercept) 0.006441 0.08025 
 section            (Intercept) 0.000259 0.01609 
 Residual                       0.960550 0.98008 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; section, 2

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -1.015e-02  2.609e-02  7.784e-01
scale(text_similarity)                      -1.915e-02  1.800e-02  1.749e+02
scale(age_in_months)                         7.431e-02  1.982e-02  1.410e+02
scale(AoA_Est_target)                       -9.025e-02  2.005e-02  4.955e+01
scale(text_similarity):scale(age_in_months)  8.922e-04  1.595e-02  3.840e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.389 0.777195    
scale(text_similarity)                       -1.064 0.288825    
scale(age_in_months)                          3.750 0.000258 ***
scale(AoA_Est_target)                        -4.502  4.1e-05 ***
scale(text_similarity):scale(age_in_months)   0.056 0.955409    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E
scl(txt_sm)  0.020                     
scl(g_n_mn)  0.000 -0.002              
scl(AA_Es_)  0.025  0.041  0.012       
scl(_):(__)  0.001 -0.021  0.004  0.005
optimizer (nloptwrap) convergence code: 0 (OK)
Model failed to converge with max|grad| = 0.00247669 (tol = 0.002, component 1)
  See ?lme4::convergence and ?lme4::troubleshooting.
summary(short_image_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(corrected_target_looking_short) ~ scale(image_similarity) *  
    scale(age_in_months) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (1 | SubjectInfo.subjID) + (1 | Trials.targetImage) + (1 |      section)
   Data: trials_with_effect_vars

REML criterion at convergence: 10937.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.85576 -0.66644 -0.01379  0.65922  2.82003 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.020583 0.14347 
 Trials.targetImage (Intercept) 0.005591 0.07478 
 section            (Intercept) 0.000000 0.00000 
 Residual                       0.960488 0.98005 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; section, 2

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -7.555e-03  2.295e-02  6.222e+01
scale(image_similarity)                      -2.979e-02  1.783e-02  1.811e+02
scale(age_in_months)                          7.426e-02  1.981e-02  1.415e+02
scale(AoA_Est_target)                        -8.344e-02  1.973e-02  4.983e+01
scale(MeanSaliencyDiff)                       2.274e-02  1.885e-02  6.690e+01
scale(image_similarity):scale(age_in_months) -1.107e-02  1.573e-02  3.745e+03
                                             t value Pr(>|t|)    
(Intercept)                                   -0.329 0.743156    
scale(image_similarity)                       -1.671 0.096445 .  
scale(age_in_months)                           3.749 0.000258 ***
scale(AoA_Est_target)                         -4.230 9.99e-05 ***
scale(MeanSaliencyDiff)                        1.206 0.232020    
scale(image_similarity):scale(age_in_months)  -0.704 0.481659    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) scl(_) sc(__) s(AA_E s(MSD)
scl(mg_sml) -0.008                            
scl(g_n_mn)  0.002 -0.014                     
scl(AA_Es_)  0.019 -0.155  0.016              
scl(MnSlnD)  0.007 -0.011 -0.006  0.015       
scl(_):(__) -0.010 -0.010  0.008  0.010 -0.010
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Our effects are not significant with the shorter window.