52 children (26 TD, 26 DLD) participated in this experiment. In the learning phase of the CSWL task, children could learn 8 word-referent pairings in 28 trials. On every trial, children saw two pictures (at the same time) and heard two words. Every trial was ambiguous in the sense that it was not clear which picture should be paired with which word. The order of the words (first/second) and the order of the pictures (left/right) was congruent in half of the trials. Each word-referent pair occurred 7 times. There were 2 learning conditions: low contextual diversity (LowCD) and high contextual diversity (highCD). In the HighCD condition, each word-referent pair appeared together with a different word-referent pair in each of the 7 trials, while in the LowCD condition, a word-referent pair appeared with only 3 different word-referent pairs in the 7 trials. Thus, in the HighCD condition there was a larger variety in the learning environment, meaning less ambiguity. In the test phase, participants heard each of the 8 words and had to choose between 4 pictures which one should be paired with that word. Learning should be reflected by above-chance (25%) performance on the test phase. We expect better learning in the HighCD Condition (main effect of Condition). Moreover, we expect the children with DLD to be less sensitive to cross-situational statistics than children with DLD (main effect of Group). Finally, it could be the case that children with DLD are more OR less hindered by the effect of Condition (interaction between Group and Condition).
CSL_Test <- read.delim("Data/CSL_Test.txt", sep="\t", dec=".")
#Age (months) per group
#I selected 26 TD participants (from 49) based on age
tapply(CSL_Test$Age_months, list(CSL_Test$Group), mean, na.rm=TRUE)
## DLD TD
## 97.03846 97.64000
t.test(CSL_Test$Age_months~CSL_Test$Group)
##
## Welch Two Sample t-test
##
## data: CSL_Test$Age_months by CSL_Test$Group
## t = -1.0206, df = 380.14, p-value = 0.3081
## alternative hypothesis: true difference in means between group DLD and group TD is not equal to 0
## 95 percent confidence interval:
## -1.7604066 0.5573296
## sample estimates:
## mean in group DLD mean in group TD
## 97.03846 97.64000
#Two participants
kable(CSL_Test[1:16, ])
Subject | Trial | Item | Word | Distr1 | Distr2 | Distr3 | Target | PosDis1 | PosDis2 | PosDis3 | PosTarget | TestResp | Acc | Condition | MeanAcc | Gender | Group | Age_months | Age_ym |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PP501 | 32 | 8 | 8 | g | e | d | f | 1 | 2 | 3 | 4 | 3 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 35 | 2 | 2 | h | a | b | c | 3 | 4 | 1 | 2 | 1 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 36 | 6 | 6 | c | e | d | b | 3 | 4 | 1 | 2 | 4 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 33 | 7 | 7 | a | b | f | d | 4 | 1 | 2 | 3 | 3 | 1 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 34 | 3 | 3 | h | c | d | a | 4 | 1 | 2 | 3 | 3 | 1 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 30 | 5 | 5 | g | b | f | e | 2 | 3 | 4 | 1 | 4 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 31 | 4 | 4 | h | e | f | g | 1 | 2 | 3 | 4 | 1 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP501 | 37 | 1 | 1 | c | a | g | h | 2 | 3 | 4 | 1 | 4 | 0 | LowCD | 0.25 | F | TD | 100 | 8;4 |
PP502 | 37 | 7 | 7 | c | d | e | b | 4 | 1 | 2 | 3 | 2 | 0 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 36 | 6 | 6 | b | c | d | h | 3 | 4 | 1 | 2 | 3 | 0 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 32 | 2 | 2 | f | a | g | e | 3 | 4 | 1 | 2 | 2 | 1 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 30 | 5 | 5 | h | b | c | g | 2 | 3 | 4 | 1 | 2 | 0 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 31 | 4 | 4 | g | h | b | a | 1 | 2 | 3 | 4 | 3 | 0 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 33 | 3 | 3 | a | g | h | f | 4 | 1 | 2 | 3 | 3 | 1 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 34 | 8 | 8 | d | e | f | c | 1 | 2 | 3 | 4 | 4 | 1 | HighCD | 0.50 | F | TD | 95 | 7;11 |
PP502 | 35 | 1 | 1 | e | f | a | d | 2 | 3 | 4 | 1 | 1 | 1 | HighCD | 0.50 | F | TD | 95 | 7;11 |
# Mean accuracy per Group
tapply(CSL_Test$Acc,list(CSL_Test$Group),mean,na.rm=TRUE)
## DLD TD
## 0.4903846 0.7250000
# SD accuracy per Group
tapply(CSL_Test$Acc,list(CSL_Test$Group),sd,na.rm=TRUE)
## DLD TD
## 0.5011136 0.4476348
# Mean accuracy per Group and Condition
tapply(CSL_Test$Acc,list(CSL_Test$Group, CSL_Test$Condition),mean,na.rm=TRUE)
## HighCD LowCD
## DLD 0.5520833 0.4375000
## TD 0.7403846 0.7083333
# SD accuracy per Group and Condition
tapply(CSL_Test$Acc,list(CSL_Test$Group, CSL_Test$Condition),sd,na.rm=TRUE)
## HighCD LowCD
## DLD 0.4998903 0.4983079
## TD 0.4405467 0.4569157
# Check number of data points per participant
table(CSL_Test$Subject)
##
## PP501 PP502 PP503 PP504 PP505 PP506 PP508 PP509 PP511 PP512 PP513 PP514 PP516
## 8 8 8 8 8 8 8 8 8 8 8 8 8
## PP517 PP518 PP519 PP526 PP528 PP529 PP539 PP541 PP542 PP543 PP544 PP548 PP701
## 8 8 8 8 8 8 8 8 8 8 8 8 8
## PP702 PP703 PP705 PP706 PP707 PP708 PP710 PP711 PP712 PP713 PP714 PP715 PP716
## 8 8 8 8 8 8 8 8 8 8 8 8 8
## PP717 PP718 PP719 PP720 PP721 PP722 PP723 PP724 PP725 PP726 PP727 PP728
## 8 8 8 8 8 8 8 8 8 8 8 8
Every participant contributes 8 data points, no missing data.
p
p
CSL_Test$Group <- as.factor(CSL_Test$Group)
CSL_Test$Condition <- as.factor(CSL_Test$Condition)
contrast <- cbind(c(-0.5, +0.5)) # DLD, TD
colnames (contrast) <- c("-DLD+TD")
contrasts (CSL_Test$Group) <- contrast
contrasts(CSL_Test$Group)
## -DLD+TD
## DLD -0.5
## TD 0.5
contrast <- cbind(c(+0.5, -0.5)) # Condition HighCD, condition LowCD
colnames (contrast) <- c("-LowCD+HighCD")
contrasts (CSL_Test$Condition) <- contrast
contrasts(CSL_Test$Condition)
## -LowCD+HighCD
## HighCD 0.5
## LowCD -0.5
CSL_Test$Age_months <- scale(CSL_Test["Age_months"],center=T,scale=T)
model <- glmer(Acc~Group*Condition*Age_months+(1|Subject)+(1|Item), data=CSL_Test, family=binomial, control=glmerControl(optimizer="bobyqa", optCtrl=list(maxfun=2e5)))
isSingular(model)
## [1] FALSE
tab_model(model, show.se = T, show.stat = T, digits.p = 3, transform = NULL)
Acc | |||||
---|---|---|---|---|---|
Predictors | Log-Odds | std. Error | CI | Statistic | p |
(Intercept) | 0.62 | 0.24 | 0.15 – 1.10 | 2.58 | 0.010 |
Group-DLD+TD | 1.31 | 0.39 | 0.55 – 2.08 | 3.36 | 0.001 |
Condition-LowCD+HighCD | 0.51 | 0.38 | -0.23 – 1.26 | 1.35 | 0.178 |
Age months | -0.49 | 0.21 | -0.89 – -0.08 | -2.37 | 0.018 |
Group-DLD+TD * Condition-LowCD+HighCD |
-0.10 | 0.76 | -1.60 – 1.39 | -0.14 | 0.892 |
Group-DLD+TD * Age months | -0.86 | 0.41 | -1.66 – -0.05 | -2.08 | 0.038 |
Condition-LowCD+HighCD * Age months |
0.38 | 0.41 | -0.42 – 1.19 | 0.94 | 0.347 |
(Group-DLD+TD Condition-LowCD+HighCD) Age months |
0.67 | 0.82 | -0.93 – 2.27 | 0.82 | 0.413 |
Random Effects | |||||
σ2 | 3.29 | ||||
τ00 Subject | 0.79 | ||||
τ00 Item | 0.33 | ||||
ICC | 0.25 | ||||
N Subject | 51 | ||||
N Item | 16 | ||||
Observations | 408 | ||||
Marginal R2 / Conditional R2 | 0.143 / 0.361 |
### Compute confidence intervals for the Group effect
ci <- confint (model, parm = "Group-DLD+TD", method = "Wald")
lower.bound.logodds.model <- ci ["Group-DLD+TD", 1]
upper.bound.logodds.model <- ci ["Group-DLD+TD", 2]
lower.bound.odds.model <- exp(lower.bound.logodds.model)
upper.bound.odds.model <- exp(upper.bound.logodds.model)
odds.estimate <- exp(1.3123)
#Estimate and CIs Group effect:
odds.estimate # 3.714708
lower.bound.odds.model #1.728753
upper.bound.odds.model #7.981304
The TD children were 3.71 (95% CI: 1.73 … 7.98) times more accurate than the children with DLD when choosing the referent of a word in the test phase of the CSL task: z = 3.363, p = 0.0008.
### Compute confidence intervals for the Condition effect
ci <- confint (model, parm = "Condition-LowCD+HighCD", method = "Wald")
lower.bound.logodds.model <- ci ["Condition-LowCD+HighCD", 1]
upper.bound.logodds.model <- ci ["Condition-LowCD+HighCD", 2]
lower.bound.odds.model <- exp(lower.bound.logodds.model)
upper.bound.odds.model <- exp(upper.bound.logodds.model)
odds.estimate <- exp(0.5147)
#Estimate and CIs Condition effect:
odds.estimate # 1.673136
lower.bound.odds.model # 0.7906569
upper.bound.odds.model # 3.540423
Although accuracy in the HighCD condition was 1.67 (95% CI: 0.79 … 3.54) times higher than in the LowCD condition, this effect was not significant: z = 1.346, p = 0.178367.
### Compute confidence intervals for the Codition * Group interaction
ci <- confint (model, parm = "Group-DLD+TD:Condition-LowCD+HighCD", method = "Wald")
lower.bound.logodds.model <- ci ["Group-DLD+TD:Condition-LowCD+HighCD", 1]
upper.bound.logodds.model <- ci ["Group-DLD+TD:Condition-LowCD+HighCD", 2]
lower.bound.odds.model <- exp(lower.bound.logodds.model)
upper.bound.odds.model <- exp(upper.bound.logodds.model)
odds.estimate <- exp(-0.1038)
#Estimate and CIs Codition * Group interaction:
odds.estimate # 1.1
lower.bound.odds.model # 0.249212
upper.bound.odds.model # 4.938677
Although the positive effect of contextual variability in the HighCD Condition was 1.1 (95% CI: 0.25 … 4.94) times stronger in the children with DLD than the TD children, this interaction between Group and Condition was not significant: z = 0.136, p = 0.891607.
modelDLD <- glmer(Acc~Condition*Age_months+(1|Subject)+(1|Item), data=subset(CSL_Test, Group=="DLD"), family=binomial, control=glmerControl(optimizer="bobyqa", optCtrl=list(maxfun=2e5)))
tab_model(modelDLD, show.se = T, show.stat = T, digits.p = 3, transform = NULL)
Acc | |||||
---|---|---|---|---|---|
Predictors | Log-Odds | std. Error | CI | Statistic | p |
(Intercept) | -0.03 | 0.19 | -0.41 – 0.35 | -0.14 | 0.892 |
Condition-LowCD+HighCD | 0.50 | 0.39 | -0.26 – 1.26 | 1.29 | 0.199 |
Age months | -0.05 | 0.15 | -0.35 – 0.24 | -0.34 | 0.735 |
Condition-LowCD+HighCD * Age months |
0.04 | 0.30 | -0.55 – 0.63 | 0.14 | 0.889 |
Random Effects | |||||
σ2 | 3.29 | ||||
τ00 Subject | 0.20 | ||||
τ00 Item | 0.14 | ||||
ICC | 0.09 | ||||
N Subject | 26 | ||||
N Item | 16 | ||||
Observations | 208 | ||||
Marginal R2 / Conditional R2 | 0.018 / 0.109 |
summary(modelDLD)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: Acc ~ Condition * Age_months + (1 | Subject) + (1 | Item)
## Data: subset(CSL_Test, Group == "DLD")
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e+05))
##
## AIC BIC logLik deviance df.resid
## 295.4 315.4 -141.7 283.4 202
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.3991 -0.9222 -0.6434 0.9214 1.3759
##
## Random effects:
## Groups Name Variance Std.Dev.
## Subject (Intercept) 0.2012 0.4486
## Item (Intercept) 0.1371 0.3702
## Number of obs: 208, groups: Subject, 26; Item, 16
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.02625 0.19388 -0.135 0.892
## Condition-LowCD+HighCD 0.49994 0.38895 1.285 0.199
## Age_months -0.05096 0.15060 -0.338 0.735
## Condition-LowCD+HighCD:Age_months 0.04193 0.30111 0.139 0.889
##
## Correlation of Fixed Effects:
## (Intr) Cn-LCD+HCD Ag_mnt
## Cnd-LCD+HCD 0.053
## Age_months 0.040 -0.007
## C-LCD+HCD:A -0.005 0.040 -0.112
modelTD <- glmer(Acc~Condition*Age_months+(1|Subject)+(1|Item), data=subset(CSL_Test, Group=="TD"), family=binomial, control=glmerControl(optimizer="bobyqa", optCtrl=list(maxfun=2e5)))
tab_model(modelTD, show.se = T, show.stat = T, digits.p = 3, transform = NULL)
Acc | |||||
---|---|---|---|---|---|
Predictors | Log-Odds | std. Error | CI | Statistic | p |
(Intercept) | 1.55 | 0.51 | 0.55 – 2.56 | 3.03 | 0.002 |
Condition-LowCD+HighCD | 0.62 | 0.77 | -0.89 – 2.13 | 0.81 | 0.419 |
Age months | -1.11 | 0.52 | -2.13 – -0.09 | -2.12 | 0.034 |
Condition-LowCD+HighCD * Age months |
0.75 | 1.01 | -1.23 – 2.72 | 0.74 | 0.459 |
Random Effects | |||||
σ2 | 3.29 | ||||
τ00 Subject | 2.19 | ||||
τ00 Item | 0.63 | ||||
ICC | 0.46 | ||||
N Subject | 25 | ||||
N Item | 8 | ||||
Observations | 200 | ||||
Marginal R2 / Conditional R2 | 0.104 / 0.518 |
summary(modelTD)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: Acc ~ Condition * Age_months + (1 | Subject) + (1 | Item)
## Data: subset(CSL_Test, Group == "TD")
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e+05))
##
## AIC BIC logLik deviance df.resid
## 213.3 233.1 -100.6 201.3 194
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.8216 -0.5903 0.2621 0.4664 2.1643
##
## Random effects:
## Groups Name Variance Std.Dev.
## Subject (Intercept) 2.1884 1.4793
## Item (Intercept) 0.6326 0.7954
## Number of obs: 200, groups: Subject, 25; Item, 8
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.5532 0.5119 3.034 0.00241 **
## Condition-LowCD+HighCD 0.6235 0.7709 0.809 0.41867
## Age_months -1.1075 0.5214 -2.124 0.03366 *
## Condition-LowCD+HighCD:Age_months 0.7456 1.0066 0.741 0.45885
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Cn-LCD+HCD Ag_mnt
## Cnd-LCD+HCD 0.086
## Age_months -0.162 -0.223
## C-LCD+HCD:A -0.136 -0.083 -0.346
### Compute profile confidence intervals for the intercept (i.e. comparison with chance level)
ci <- confint (modelTD, parm = "(Intercept)")
lower.bound.logodds.modelTD <- ci ["(Intercept)", 1]
upper.bound.logodds.modelTD <- ci ["(Intercept)", 2]
### Calculate the CIs of the odds and probabilities based on the logodds
lower.bound.odds.modelTD <- exp (lower.bound.logodds.modelTD)
upper.bound.odds.modelTD <- exp (upper.bound.logodds.modelTD)
lower.bound.prob.modelTD <- lower.bound.odds.modelTD / (lower.bound.odds.modelTD + 1)
upper.bound.prob.modelTD <- upper.bound.odds.modelTD / (upper.bound.odds.modelTD + 1)
lower.bound.prob.modelTD # 0.6465745
upper.bound.prob.modelTD # 0.9412983
odds.estimate <- exp(1.5532)
prob.estimate <- odds.estimate/(odds.estimate+1)
prob.estimate # 0.8253754
The estimate of the intercept for the TD children is 0.83 (95% CI: 0.65 … 0.94), which is significantly higher than chance level (0.25).
### Compute profile confidence intervals for the intercept (i.e. comparison with chance level)
ci <- confint (modelDLD, parm = "(Intercept)")
lower.bound.logodds.modelDLD <- ci ["(Intercept)", 1]
upper.bound.logodds.modelDLD <- ci ["(Intercept)", 2]
### Calculate the CIs of the odds and probabilities based on the logodds
lower.bound.odds.modelDLD <- exp (lower.bound.logodds.modelDLD)
upper.bound.odds.modelDLD <- exp (upper.bound.logodds.modelDLD)
lower.bound.prob.modelDLD <- lower.bound.odds.modelDLD / (lower.bound.odds.modelDLD + 1)
upper.bound.prob.modelDLD <- upper.bound.odds.modelDLD / (upper.bound.odds.modelDLD + 1)
lower.bound.prob.modelDLD # 0.3914631
upper.bound.prob.modelDLD # 0.5951737
odds.estimate <- exp(-0.02625)
prob.estimate <- odds.estimate/(odds.estimate+1)
prob.estimate # 0.4934379
The estimate of the intercept for the DLD children is 0.49 (95% CI: 0.39 … 0.6), which is significantly higher than chance level (0.25).