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"))
dinov3_similarities <- read.csv(here("data", "embeddings", "similarities-dino_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)) |>
  left_join(dinov3_similarities |> transmute(Trials.imagePair = paste0(word1, "-", word2), image_similarity_dinov3 =  image_similarity))
Joining with `by = join_by(Trials.trialID, Trials.targetImage,
Trials.distractorImage, Trials.imagePair, section)`
Joining with `by = join_by(Trials.imagePair)`
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(text_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(text_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: 10933.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.87299 -0.63059 -0.02228  0.67425  2.90341 

Random effects:
 Groups             Name                   Variance  Std.Dev.  Corr
 SubjectInfo.subjID (Intercept)            2.377e-02 1.542e-01     
                    scale(text_similarity) 1.088e-04 1.043e-02 1.00
 Trials.targetImage (Intercept)            6.530e-03 8.081e-02     
 Trials.imagePair   (Intercept)            5.415e-10 2.327e-05     
 Residual                                  9.583e-01 9.789e-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.008588   0.023874  64.963316  -0.360  0.72023    
scale(text_similarity)   -0.025581   0.017934 181.133924  -1.426  0.15547    
scale(age_in_months)      0.068140   0.020329 143.836246   3.352  0.00103 ** 
scale(AoA_Est_target)    -0.088014   0.020036  48.459152  -4.393 6.07e-05 ***
scale(MeanSaliencyDiff)   0.006286   0.019259  66.323964   0.326  0.74517    
---
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.042                     
scl(g_n_mn)  0.002  0.001              
scl(AA_Es_)  0.020  0.033  0.014       
scl(MnSlnD)  0.008 -0.006 -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|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 | Trials.targetImage) + +(1 | Trials.imagePair)
   Data: trials_with_effect_vars

REML criterion at convergence: 10930.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.88344 -0.63506 -0.02781  0.68074  2.91510 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0240220 0.15499      
                    scale(image_similarity) 0.0009326 0.03054  1.00
 Trials.targetImage (Intercept)             0.0060646 0.07788      
 Trials.imagePair   (Intercept)             0.0000000 0.00000      
 Residual                                   0.9572939 0.97841      
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.007540   0.023692  64.703974  -0.318 0.751322    
scale(image_similarity)  -0.030601   0.018136 170.968478  -1.687 0.093374 .  
scale(age_in_months)      0.069096   0.020261 148.159697   3.410 0.000836 ***
scale(AoA_Est_target)    -0.081317   0.020029  48.723311  -4.060 0.000177 ***
scale(MeanSaliencyDiff)   0.006805   0.019047  65.530224   0.357 0.722025    
---
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 | 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 | 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 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10943.6

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93466 -0.63477 -0.02959  0.66999  2.86223 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0238958 0.15458      
                    scale(text_similarity) 0.0001477 0.01215  1.00
 Trials.targetImage (Intercept)            0.0122031 0.11047      
 Trials.imagePair   (Intercept)            0.0019834 0.04454      
 Residual                                  0.9578784 0.97871      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -8.512e-03  2.758e-02  5.246e+01
scale(text_similarity)                      -2.327e-02  2.065e-02  3.218e+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.714e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.309 0.758843    
scale(text_similarity)                       -1.127 0.268039    
scale(age_in_months)                          3.373 0.000957 ***
scale(text_similarity):scale(age_in_months)  -0.695 0.486950    
---
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 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10939.3

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93621 -0.63039 -0.02968  0.67128  2.87364 

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.001024 0.03201      
 Residual                                   0.956826 0.97818      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                              Estimate Std. Error        df
(Intercept)                                   -0.00736    0.02671  51.96119
scale(image_similarity)                       -0.04052    0.01993  27.52460
scale(age_in_months)                           0.06874    0.02046 144.28633
scale(image_similarity):scale(age_in_months)  -0.01010    0.01596 927.42684
                                             t value Pr(>|t|)    
(Intercept)                                   -0.276 0.784005    
scale(image_similarity)                       -2.033 0.051807 .  
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

Trying out image only models

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|Trials.imagePair)
                    + (1|Trials.targetImage), 
                    data = trials_with_effect_vars)
dinov3_effect <- lmer(scale(corrected_target_looking) ~ scale(image_similarity_dinov3) * scale(age_in_months) 
                      + scale(AoA_Est_target)
                    + scale(MeanSaliencyDiff)
                    + (1 | SubjectInfo.subjID) 
                    
                    + (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 | 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.0238986 0.15459 
 Trials.targetImage (Intercept) 0.0063106 0.07944 
 Trials.imagePair   (Intercept) 0.0004334 0.02082 
 Residual                       0.9574898 0.97851 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

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.762685    
scale(image_similarity_bv)                       3.411e+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.762827    
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
summary(dinov3_effect)
Linear mixed model fit by REML. t-tests use Satterthwaite's method [
lmerModLmerTest]
Formula: scale(corrected_target_looking) ~ scale(image_similarity_dinov3) *  
    scale(age_in_months) + scale(AoA_Est_target) + scale(MeanSaliencyDiff) +  
    (1 | SubjectInfo.subjID) + (1 | Trials.imagePair) + (1 |  
    Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10939.1

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.87950 -0.62755 -0.02442  0.67409  2.90733 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.023583 0.15357 
 Trials.targetImage (Intercept) 0.006537 0.08085 
 Trials.imagePair   (Intercept) 0.000000 0.00000 
 Residual                       0.958549 0.97906 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                                      Estimate Std. Error
(Intercept)                                         -7.946e-03  2.386e-02
scale(image_similarity_dinov3)                      -2.378e-02  1.849e-02
scale(age_in_months)                                 6.767e-02  2.031e-02
scale(AoA_Est_target)                               -8.337e-02  2.023e-02
scale(MeanSaliencyDiff)                              4.664e-03  1.929e-02
scale(image_similarity_dinov3):scale(age_in_months) -1.751e-02  1.575e-02
                                                            df t value Pr(>|t|)
(Intercept)                                          6.385e+01  -0.333 0.740135
scale(image_similarity_dinov3)                       1.283e+02  -1.286 0.200759
scale(age_in_months)                                 1.434e+02   3.331 0.001101
scale(AoA_Est_target)                                4.823e+01  -4.121 0.000147
scale(MeanSaliencyDiff)                              6.356e+01   0.242 0.809753
scale(image_similarity_dinov3):scale(age_in_months)  3.739e+03  -1.111 0.266508
                                                       
(Intercept)                                            
scale(image_similarity_dinov3)                         
scale(age_in_months)                                ** 
scale(AoA_Est_target)                               ***
scale(MeanSaliencyDiff)                                
scale(image_similarity_dinov3):scale(age_in_months)    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__3) sc(__) s(AA_E s(MSD)
scl(mg_s_3)  0.002                             
scl(g_n_mn)  0.002 -0.005                      
scl(AA_Es_)  0.018 -0.147   0.014              
scl(MnSlnD)  0.008  0.055  -0.006  0.008       
s(__3):(__) -0.001 -0.006  -0.002  0.004  0.002
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
r.squaredGLMM(prereg_image_effect)
           R2m        R2c
[1,] 0.0132299 0.04420046
r.squaredGLMM(prereg_text_effect)
            R2m        R2c
[1,] 0.01315592 0.04350641
r.squaredGLMM(bv_image_effect)
            R2m        R2c
[1,] 0.01370516 0.04429087

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)
                    , 
                    data = trials_with_effect_vars)

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)
                    , 
                    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)
   Data: trials_with_effect_vars

REML criterion at convergence: 10947.2

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.92168 -0.63596 -0.02847  0.66929  2.86012 

Random effects:
 Groups             Name        Variance  Std.Dev.
 SubjectInfo.subjID (Intercept) 0.0238477 0.15443 
 Trials.targetImage (Intercept) 0.0117913 0.10859 
 Trials.imagePair   (Intercept) 0.0009026 0.03004 
 Residual                       0.9584418 0.97900 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -6.862e-03  2.678e-02  5.105e+01
scale(image_similarity)                      -3.986e-02  1.973e-02  2.688e+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.798823    
scale(image_similarity)                       -2.020 0.053445 .  
scale(age_in_months)                           3.385 0.000919 ***
scale(MeanSaliencyDiff)                        0.408 0.684998    
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
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)
   Data: trials_with_effect_vars

REML criterion at convergence: 10949.2

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93668 -0.63361 -0.02931  0.67112  2.86251 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0239010 0.15460      
                    scale(text_similarity) 0.0001479 0.01216  1.00
 Trials.targetImage (Intercept)            0.0127812 0.11305      
 Trials.imagePair   (Intercept)            0.0018467 0.04297      
 Residual                                  0.9579062 0.97873      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -8.565e-03  2.773e-02  5.194e+01
scale(text_similarity)                      -2.355e-02  2.065e-02  3.215e+01
scale(age_in_months)                         6.867e-02  2.037e-02  1.432e+02
scale(MeanSaliencyDiff)                      8.988e-03  2.176e-02  5.865e+01
scale(text_similarity):scale(age_in_months) -1.114e-02  1.594e-02  3.713e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.309 0.758692    
scale(text_similarity)                       -1.140 0.262575    
scale(age_in_months)                          3.371 0.000964 ***
scale(MeanSaliencyDiff)                       0.413 0.681116    
scale(text_similarity):scale(age_in_months)  -0.699 0.484755    
---
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)
                    , 
                    data = first_instance_target)

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)
                    , 
                    data = second_instance_target)

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)
                    , 
                    data = first_instance_primary_target)

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)
                    , 
                    data = primary_targets)

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)
                    , 
                    data = first_instance_image_pair)

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)
   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.0268054 0.16372 
 Trials.targetImage (Intercept) 0.0128114 0.11319 
 Trials.ordinal     (Intercept) 0.0006614 0.02572 
 Residual                       0.9541246 0.97679 
Number of obs: 3050, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.ordinal, 47

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                  -1.486e-04  2.834e-02  4.731e+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.293e-05  1.767e-02  2.956e+03
                                             t value Pr(>|t|)   
(Intercept)                                   -0.005  0.99584   
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
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)
   Data: second_instance_target

REML criterion at convergence: 2340.1

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.87044 -0.61734 -0.06732  0.63563  2.67477 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.027475 0.16576 
 Trials.ordinal     (Intercept) 0.000338 0.01839 
 Trials.targetImage (Intercept) 0.004733 0.06880 
 Residual                       0.966704 0.98321 
Number of obs: 819, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 34; Trials.targetImage, 16

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   -0.003067   0.041564  11.901191
scale(image_similarity)                       -0.003672   0.040452 302.728420
scale(age_in_months)                           0.062243   0.037291 128.162467
scale(MeanSaliencyDiff)                        0.025945   0.042532  38.851355
scale(image_similarity):scale(age_in_months)  -0.046945   0.035139 804.228357
                                             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
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)
   Data: first_instance_primary_target

REML criterion at convergence: 3164

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

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

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
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)
   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) 0.03288  0.18132 
 Trials.ordinal     (Intercept) 0.00290  0.05385 
 Trials.targetImage (Intercept) 0.01192  0.10916 
 Residual                       0.94854  0.97393 
Number of obs: 1935, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 44; Trials.targetImage, 16

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
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)
   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.85406 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.021312 0.1460  
 Trials.targetImage (Intercept) 0.010303 0.1015  
 Trials.ordinal     (Intercept) 0.001369 0.0370  
 Residual                       0.963252 0.9815  
Number of obs: 2219, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.ordinal, 33

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

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)
                    , 
                    data = trials_with_effect_vars)
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)
   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.023600 0.15362 
 Trials.ordinal     (Intercept) 0.001485 0.03853 
 Trials.targetImage (Intercept) 0.005991 0.07740 
 Residual                       0.957316 0.97843 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.ordinal, 52; Trials.targetImage, 48

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.791051    
scale(image_similarity)                       -1.692 0.092423 .  
scale(age_in_months)                           3.341 0.001066 ** 
scale(AoA_Est_target)                         -4.138 0.000139 ***
scale(MeanSaliencyDiff)                        0.338 0.736561    
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

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)
                    , 
                    data = ranked_trials)
# |> 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)
   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 
 Residual                       0.959048 0.97931 
Number of obs: 3869, groups:  SubjectInfo.subjID, 144; Trials.targetImage, 48

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.815301    
scale(image_similarity)              0.089394 .  
scale(order)                         0.196780    
scale(AoA_Est_target)                0.000142 ***
scale(age_in_months)                 0.000990 ***
scale(image_similarity):scale(order) 0.630978    
---
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

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|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|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 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10410.8

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.80169 -0.70781  0.05646  0.75168  2.48896 

Random effects:
 Groups               Name                   Variance Std.Dev.
 SubjectInfo.subjID   scale(text_similarity) 0.00000  0.00000 
 SubjectInfo.subjID.1 (Intercept)            0.03876  0.19687 
 Trials.targetImage   (Intercept)            0.02044  0.14297 
 Trials.imagePair     (Intercept)            0.00120  0.03464 
 Residual                                    0.81886  0.90491 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -1.478e-03  3.136e-02  5.388e+01
scale(age_in_months)                         8.762e-02  2.195e-02  1.403e+02
scale(text_similarity)                      -5.234e-02  2.033e-02  2.791e+01
scale(AoA_Est_target)                       -1.176e-01  2.607e-02  4.053e+01
scale(MeanSaliencyDiff)                      6.230e-02  2.323e-02  7.472e+01
scale(mean_target_looking_baseline_window)   2.815e-01  1.495e-02  3.799e+03
scale(age_in_months):scale(text_similarity) -1.336e-02  1.482e-02  3.802e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.047 0.962580    
scale(age_in_months)                          3.991 0.000105 ***
scale(text_similarity)                       -2.574 0.015658 *  
scale(AoA_Est_target)                        -4.509 5.45e-05 ***
scale(MeanSaliencyDiff)                       2.682 0.009004 ** 
scale(mean_target_looking_baseline_window)   18.831  < 2e-16 ***
scale(age_in_months):scale(text_similarity)  -0.901 0.367526    
---
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.024 -0.002                            
scl(AA_Es_)  0.034  0.010  0.039                     
scl(MnSlnD)  0.012 -0.004  0.025  0.035              
scl(mn____) -0.010 -0.007  0.017  0.012 -0.046       
scl(__):(_)  0.000  0.004 -0.016  0.003 -0.007  0.000
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 | Trials.imagePair) + (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10412.1

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.79380 -0.70901  0.06044  0.75141  2.49638 

Random effects:
 Groups               Name                    Variance Std.Dev.
 SubjectInfo.subjID   scale(image_similarity) 0.000000 0.00000 
 SubjectInfo.subjID.1 (Intercept)             0.038928 0.19730 
 Trials.targetImage   (Intercept)             0.018701 0.13675 
 Trials.imagePair     (Intercept)             0.002896 0.05381 
 Residual                                     0.818879 0.90492 
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   1.421e-03  3.164e-02  5.160e+01
scale(age_in_months)                          8.783e-02  2.198e-02  1.409e+02
scale(image_similarity)                      -4.224e-02  2.151e-02  2.655e+01
scale(AoA_Est_target)                        -1.086e-01  2.608e-02  4.208e+01
scale(MeanSaliencyDiff)                       6.435e-02  2.286e-02  6.782e+01
scale(mean_target_looking_baseline_window)    2.820e-01  1.495e-02  3.795e+03
scale(age_in_months):scale(image_similarity) -1.883e-02  1.455e-02  3.707e+03
                                             t value Pr(>|t|)    
(Intercept)                                    0.045 0.964362    
scale(age_in_months)                           3.996 0.000103 ***
scale(image_similarity)                       -1.963 0.060165 .  
scale(AoA_Est_target)                         -4.164 0.000152 ***
scale(MeanSaliencyDiff)                        2.814 0.006389 ** 
scale(mean_target_looking_baseline_window)    18.863  < 2e-16 ***
scale(age_in_months):scale(image_similarity)  -1.294 0.195719    
---
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.015 -0.010                            
scl(AA_Es_)  0.034  0.011 -0.118                     
scl(MnSlnD)  0.010 -0.004  0.018  0.025              
scl(mn____) -0.011 -0.007  0.006  0.012 -0.048       
scl(__):(_) -0.007  0.007 -0.007  0.006 -0.010  0.009
optimizer (nloptwrap) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

We’re seeing some interesting effects. although these models are still singular fits.

Predicting critical window looking

critical_looking_text <- lmer(scale(mean_target_looking_critical_window) ~ scale(age_in_months)
                    + scale(text_similarity)
                    + scale(image_similarity)
                    + 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')
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|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|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(image_similarity) + 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: 10738.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.42343 -0.67925  0.06841  0.75564  2.41202 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0392784 0.19819      
                    scale(text_similarity) 0.0003304 0.01818  1.00
 Trials.targetImage (Intercept)            0.0361532 0.19014      
 Trials.imagePair   (Intercept)            0.0045609 0.06753      
 Residual                                  0.8896729 0.94322      
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.005773   0.038108  45.067173   0.151 0.880273    
scale(age_in_months)      0.092963   0.022392 141.061836   4.152 5.69e-05 ***
scale(text_similarity)   -0.055314   0.029682  31.550003  -1.864 0.071719 .  
scale(image_similarity)  -0.012276   0.029852  28.954692  -0.411 0.683924    
scale(AoA_Est_target)    -0.119237   0.033238  39.874407  -3.587 0.000903 ***
scale(MeanSaliencyDiff)   0.078704   0.027850  64.511135   2.826 0.006267 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) sc(__) scl(t_) scl(m_) s(AA_E
scl(g_n_mn)  0.000                              
scl(txt_sm)  0.074  0.004                       
scl(mg_sml) -0.043 -0.010 -0.550                
scl(AA_Es_)  0.050  0.010  0.118  -0.147        
scl(MnSlnD)  0.011 -0.004  0.016   0.033   0.030
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 | Trials.imagePair) +  
    (1 | Trials.targetImage)
   Data: trials_with_effect_vars

REML criterion at convergence: 10740.9

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.42107 -0.68108  0.06944  0.75401  2.37689 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0395040 0.19876      
                    scale(image_similarity) 0.0006125 0.02475  1.00
 Trials.targetImage (Intercept)             0.0345184 0.18579      
 Trials.imagePair   (Intercept)             0.0067548 0.08219      
 Residual                                   0.8892894 0.94302      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

Fixed effects:
                                               Estimate Std. Error         df
(Intercept)                                   9.594e-03  3.857e-02  4.493e+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.295e-02  4.066e+01
scale(MeanSaliencyDiff)                       8.219e-02  2.769e-02  6.233e+01
scale(age_in_months):scale(image_similarity) -2.167e-02  1.531e-02  1.426e+03
                                             t value Pr(>|t|)    
(Intercept)                                    0.249  0.80467    
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.00424 ** 
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 | 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.0395912 0.19898      
                    scale(image_similarity) 0.0005543 0.02354  1.00
 Trials.targetImage (Intercept)             0.0369193 0.19214      
 Trials.imagePair   (Intercept)             0.0082635 0.09090      
 Residual                                   0.8890886 0.94291      
Number of obs: 3869, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

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.93476   0.268  0.78986    
scale(age_in_months)                             141.30651   4.125  6.3e-05 ***
scale(image_similarity_bv)                        30.56083  -0.402  0.69070    
scale(AoA_Est_target)                             42.52277  -3.329  0.00181 ** 
scale(MeanSaliencyDiff)                           62.10401   2.920  0.00488 ** 
scale(age_in_months):scale(image_similarity_bv) 3715.22664  -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.03151588 0.1127214
r.squaredGLMM(critical_looking_text)
            R2m       R2c
[1,] 0.03309068 0.1131578

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) , 
                    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) , 
                    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)
   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.09636 

Random effects:
 Groups             Name                    Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)             0.0123803 0.11127      
                    scale(image_similarity) 0.0001164 0.01079  1.00
 Trials.targetImage (Intercept)             0.0412580 0.20312      
 Trials.imagePair   (Intercept)             0.0099064 0.09953      
 Residual                                   0.9246853 0.96161      
Number of obs: 7738, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

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.677e+01   2.572
scale(age_in_months):trial_window_c                          7.509e+03   3.749
scale(age_in_months):scale(image_similarity)                 2.703e+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.567077    
scale(age_in_months)                                        0.000595 ***
trial_window_c                                               < 2e-16 ***
scale(image_similarity)                                     0.333409    
scale(AoA_Est_target)                                       0.059746 .  
scale(MeanSaliencyDiff)                                     0.012755 *  
scale(age_in_months):trial_window_c                         0.000179 ***
scale(age_in_months):scale(image_similarity)                0.209282    
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)
   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.12926 

Random effects:
 Groups             Name                   Variance  Std.Dev. Corr
 SubjectInfo.subjID (Intercept)            0.0122173 0.11053      
                    scale(text_similarity) 0.0002801 0.01674  1.00
 Trials.targetImage (Intercept)            0.0415307 0.20379      
 Trials.imagePair   (Intercept)            0.0075376 0.08682      
 Residual                                  0.9252478 0.96190      
Number of obs: 7738, groups:  
SubjectInfo.subjID, 144; Trials.targetImage, 48; Trials.imagePair, 32

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.118e+01   0.480
scale(age_in_months)                                        1.390e+02   3.563
trial_window_c                                              7.509e+03   8.509
scale(text_similarity)                                      2.640e+01  -2.008
scale(AoA_Est_target)                                       4.092e+01  -2.115
scale(MeanSaliencyDiff)                                     5.931e+01   2.465
scale(age_in_months):trial_window_c                         7.509e+03   3.717
scale(age_in_months):scale(text_similarity)                 2.968e+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.633553    
scale(age_in_months)                                       0.000502 ***
trial_window_c                                              < 2e-16 ***
scale(text_similarity)                                     0.054979 .  
scale(AoA_Est_target)                                      0.040600 *  
scale(MeanSaliencyDiff)                                    0.016634 *  
scale(age_in_months):trial_window_c                        0.000203 ***
scale(age_in_months):scale(text_similarity)                0.427273    
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 | 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 |  
    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) 0.00000  0.0000  
 Trials.targetImage (Intercept) 0.03549  0.1884  
 Residual                       0.96144  0.9805  
Number of obs: 3869, groups:  SubjectInfo.subjID, 144; Trials.targetImage, 48

Fixed effects:
                        Estimate Std. Error       df t value Pr(>|t|)  
(Intercept)              0.02734    0.03206 41.85517   0.853   0.3987  
scale(AoA_Est_target)   -0.01732    0.03148 42.28627  -0.550   0.5851  
scale(MeanSaliencyDiff)  0.06451    0.02749 89.85148   2.346   0.0212 *
---
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)
                    , 
                    data = trials_with_effect_vars)

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)
                    , 
                    data = trials_with_effect_vars)
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)
   Data: trials_with_effect_vars

REML criterion at convergence: 10934.7

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.93862 -0.66595 -0.01107  0.66115  2.80103 

Random effects:
 Groups             Name        Variance Std.Dev.
 SubjectInfo.subjID (Intercept) 0.020688 0.14383 
 Trials.targetImage (Intercept) 0.006489 0.08055 
 Residual                       0.960529 0.98007 
Number of obs: 3869, groups:  SubjectInfo.subjID, 144; Trials.targetImage, 48

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                 -9.195e-03  2.341e-02  6.462e+01
scale(text_similarity)                      -1.851e-02  1.795e-02  1.927e+02
scale(age_in_months)                         7.412e-02  1.983e-02  1.413e+02
scale(AoA_Est_target)                       -8.940e-02  1.999e-02  5.164e+01
scale(text_similarity):scale(age_in_months)  8.881e-04  1.596e-02  3.841e+03
                                            t value Pr(>|t|)    
(Intercept)                                  -0.393 0.695825    
scale(text_similarity)                       -1.031 0.303702    
scale(age_in_months)                          3.739 0.000268 ***
scale(AoA_Est_target)                        -4.473 4.27e-05 ***
scale(text_similarity):scale(age_in_months)   0.056 0.955616    
---
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.015                     
scl(g_n_mn)  0.001 -0.001              
scl(AA_Es_)  0.020  0.034  0.014       
scl(_):(__)  0.001 -0.021  0.004  0.005
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)
   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 
 Residual                       0.960488 0.98005 
Number of obs: 3869, groups:  SubjectInfo.subjID, 144; Trials.targetImage, 48

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

Our effects are not significant with the shorter window.