Main Linear Mixed-effects Model
Children
Reaction Time
We fit a trial-by-trial linear mixed effects model prediction reaction time from condition, including a by-participant random intercept and random slope for condition and a by-color-pair random intercept.
kn_data <- kn_data %>%
mutate(condition_c=ifelse(condition=="high nameability",0.5,-0.5))
m <- lmer(rt ~ condition_c+(1+condition_c|subject_id)+(1|pair),data=filter(kn_data,rt<=5000&correct==1&condition!="practice"))
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: rt ~ condition_c + (1 + condition_c | subject_id) + (1 | pair)
## Data: filter(kn_data, rt <= 5000 & correct == 1 & condition != "practice")
##
## REML criterion at convergence: 33074.9
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.7784 -0.6871 -0.2523 0.4923 3.6202
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 205517.0 453.34
## condition_c 535.5 23.14 1.00
## pair (Intercept) 0.0 0.00
## Residual 749434.7 865.70
## Number of obs: 2016, groups: subject_id, 40; pair, 30
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 2017.35 74.99 36.87 26.903 <2e-16 ***
## condition_c -57.23 38.77 1011.59 -1.476 0.14
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## condition_c 0.086
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
Reaction times decline with age, but there is no interaction with condition
m <- lmer(rt ~ condition_c*age_months+(1+condition_c|subject_id)+(1|pair),data=filter(kn_data,rt<=5000&correct==1&condition!="practice"))
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: rt ~ condition_c * age_months + (1 + condition_c | subject_id) +
## (1 | pair)
## Data: filter(kn_data, rt <= 5000 & correct == 1 & condition != "practice")
##
## REML criterion at convergence: 33057.8
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.7907 -0.6853 -0.2493 0.4874 3.6249
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 187864.9 433.4
## condition_c 449.6 21.2 1.00
## pair (Intercept) 0.0 0.0
## Residual 749544.8 865.8
## Number of obs: 2016, groups: subject_id, 40; pair, 30
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 3441.009 640.205 38.044 5.375 4.08e-06 ***
## condition_c 37.359 356.604 1250.831 0.105 0.9166
## age_months -25.223 11.261 37.786 -2.240 0.0311 *
## condition_c:age_months -1.680 6.228 1223.142 -0.270 0.7874
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cndtn_ ag_mnt
## condition_c 0.067
## age_months -0.994 -0.067
## cndtn_c:g_m -0.067 -0.994 0.068
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
Accuracy
We fit a trial-by-trial logistic mixed effects model prediction reaction time from condition, including a by-participant random intercept and random slope for condition and a by-color-pair random intercept.
m <- glmer(correct ~ condition_c+(1+condition_c|subject_id)+(1|pair),data=filter(kn_data,rt<=5000&condition!="practice"),family="binomial")
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: correct ~ condition_c + (1 + condition_c | subject_id) + (1 |
## pair)
## Data: filter(kn_data, rt <= 5000 & condition != "practice")
##
## AIC BIC logLik deviance df.resid
## 745.6 779.5 -366.8 733.6 2102
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -6.2162 0.1443 0.1684 0.2226 0.4932
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 0.63815 0.7988
## condition_c 0.41025 0.6405 0.39
## pair (Intercept) 0.08115 0.2849
## Number of obs: 2108, groups: subject_id, 40; pair, 30
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 3.46654 0.21950 15.793 <2e-16 ***
## condition_c -0.00809 0.35555 -0.023 0.982
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## condition_c 0.075
No interaction between condition and age
m <- glmer(correct ~ condition_c*age_months+(1+condition_c|subject_id)+(1|pair),data=filter(kn_data,rt<=5000&condition!="practice"),family="binomial",glmerControl(optimizer="bobyqa"))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: correct ~ condition_c * age_months + (1 + condition_c | subject_id) +
## (1 | pair)
## Data: filter(kn_data, rt <= 5000 & condition != "practice")
## Control: glmerControl(optimizer = "bobyqa")
##
## AIC BIC logLik deviance df.resid
## 747.9 793.1 -366.0 731.9 2100
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -6.7754 0.1408 0.1704 0.2208 0.4996
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 0.60217 0.7760
## condition_c 0.44166 0.6646 0.39
## pair (Intercept) 0.08392 0.2897
## Number of obs: 2108, groups: subject_id, 40; pair, 30
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.446082 1.572422 0.920 0.358
## condition_c 0.222853 2.320342 0.096 0.923
## age_months 0.035772 0.027936 1.281 0.200
## condition_c:age_months -0.004072 0.041511 -0.098 0.922
##
## Correlation of Fixed Effects:
## (Intr) cndtn_ ag_mnt
## condition_c 0.056
## age_months -0.990 -0.051
## cndtn_c:g_m -0.052 -0.988 0.050
Adults
Reaction Time
We fit a trial-by-trial linear mixed effects model prediction reaction time from condition, including a by-participant random intercept and random slope for condition and a by-color-pair random intercept.
an_data <- an_data %>%
mutate(condition_c=ifelse(condition=="high nameability",0.5,-0.5))
m <- lmer(rt ~ condition_c+(1+condition_c|subject_id)+(1|pair),data=filter(an_data,rt<=2000&correct==1&condition!="practice"))
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: rt ~ condition_c + (1 + condition_c | subject_id) + (1 | pair)
## Data: filter(an_data, rt <= 2000 & correct == 1 & condition != "practice")
##
## REML criterion at convergence: 38714.3
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.5430 -0.4753 -0.1596 0.1982 8.2731
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 14002.26 118.331
## condition_c 52.53 7.248 -1.00
## pair (Intercept) 202.73 14.238
## Residual 22720.14 150.732
## Number of obs: 2994, groups: subject_id, 50; pair, 30
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 702.720 17.158 51.113 40.956 <2e-16 ***
## condition_c -10.822 7.644 28.638 -1.416 0.168
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## condition_c -0.131
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
Accuracy
We fit a trial-by-trial logistic mixed effects model prediction reaction time from condition, including a by-participant random intercept and random slope for condition and a by-color-pair random intercept.
m <- glmer(correct ~ condition_c+(1+condition_c|subject_id)+(1|pair),data=filter(kn_data,rt<=2000&condition!="practice"),family="binomial",glmerControl(optimizer="bobyqa"))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: correct ~ condition_c + (1 + condition_c | subject_id) + (1 |
## pair)
## Data: filter(kn_data, rt <= 2000 & condition != "practice")
## Control: glmerControl(optimizer = "bobyqa")
##
## AIC BIC logLik deviance df.resid
## 581.4 612.6 -284.7 569.4 1332
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -5.4457 0.1836 0.2062 0.2512 0.4147
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 0.412434 0.64221
## condition_c 0.136987 0.37012 -0.41
## pair (Intercept) 0.006471 0.08044
## Number of obs: 1338, groups: subject_id, 40; pair, 30
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 3.03797 0.20974 14.48 <2e-16 ***
## condition_c 0.06529 0.34277 0.19 0.849
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## condition_c 0.005
Child - Adult Interaction
We also found no significant interaction between age group and condition in a linear mixed-effects model.
overall_data <- kn_data %>%
select(-home_income,-parental_education,-family_history_color_blindness,-color_blindness_dx) %>%
bind_rows(select(an_data,-home_income,-parental_education,-family_history_color_blindness,-color_blindness_dx)) %>%
mutate(age_group_c=ifelse(age_group=="children",-0.5,0.5))
m <- lmer(rt~ condition_c*age_group_c+(1+condition_c|subject_id)+(1|pair),data=filter(overall_data,rt<=5000&correct==1&condition!="practice"))
summary(m)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: rt ~ condition_c * age_group_c + (1 + condition_c | subject_id) +
## (1 | pair)
## Data: filter(overall_data, rt <= 5000 & correct == 1 & condition !=
## "practice")
##
## REML criterion at convergence: 78019.9
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -4.2645 -0.2661 -0.0709 0.1011 5.5680
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subject_id (Intercept) 98948.5 314.56
## condition_c 152.8 12.36 1.00
## pair (Intercept) 114.1 10.68
## Residual 318823.5 564.64
## Number of obs: 5016, groups: subject_id, 90; pair, 30
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 1362.67 34.58 82.36 39.409 <2e-16 ***
## condition_c -33.42 16.78 30.38 -1.991 0.0555 .
## age_group_c -1312.36 69.04 82.39 -19.007 <2e-16 ***
## condition_c:age_group_c 49.41 32.65 2707.68 1.513 0.1303
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cndtn_ ag_gr_
## condition_c 0.073
## age_group_c -0.125 -0.006
## cndtn_c:g__ -0.006 -0.191 0.075
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')