Descriptives

Kids

kids_descr <- filter(kid,trial_index==0) %>%
  group_by(condition) %>%
  summarize(N=sum(!is.na(unique(subject))), gender_f=sum(Gender==1), avg_age = round(mean(Age,na.rm=T),2), ppvt=round(mean(PPVT)),ppvtSE=round(sd(PPVT,na.rm=T),2),newscript_N=sum(script=="short"), new_f=sum(Gender==1&script=="short"),new_age=round(mean(Age[script=="short"],na.rm=T),2))
stargazer(kids_descr,summary=F,header=F,type="html")
condition N gender_f avg_age ppvt ppvtSE newscript_N new_f new_age
1 high 49 18 63.51 9 1.47 41 16 64.17
2 low 49 28 62.75 9 1.72 44 26 63.37

Overall, we have a total of 98 child participants after exclusions, and 85 who participated after the slight shortening of the introductory script.

Adults

adults_descr <- filter(adult,trial_index==0) %>%
  group_by(condition) %>%
  summarize(N=sum(!is.na(unique(subject))), gender_f=sum(Gender==1))
stargazer(adults_descr,summary=F,header=F,type="html")
condition N gender_f
1 high 45 37
2 low 45 33

Overall, we have a total of 90 adult participants.

Traning Accuracy Results

Training Accuracy Plot

First, we can simply look at learning across time.

All Data

#summarize by block
kids_learn <- kid %>%
  filter(trial_kind=="learn"&isRepeatedTrial==0) %>%
  group_by(subject,condition,blockNum) %>%
  summarize(accuracy=mean(isRight)) %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("blockNum"),idvar="subject")
#plot by block
#learning phase
library(cowplot)
p1=ggplot(kids_learn, aes(blockNum,accuracy,color=condition,group=condition))+
  geom_point(position=position_dodge(0.3))+
  geom_line(position=position_dodge(0.3))+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=0,size=0.75,position=position_dodge(.3))+
  xlab("Block")+
  ylab("Accuracy")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ggtitle("Performance during training \n All Kids")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  theme(legend.position=c(0.3,0.3))+
  ylim(0,1)
#summarize by block
adults_learn <-  adult %>%
  filter(trial_kind=="learn"&isRepeatedTrial==0) %>%
  group_by(subject,condition,blockNum) %>%
  summarize(accuracy=mean(isRight)) %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("blockNum"),idvar="subject")

#plot by block
#learning phase
library(cowplot)
p2=ggplot(adults_learn, aes(blockNum,accuracy,color=condition,group=condition))+
  geom_point(position=position_dodge(0.3))+
  geom_line(position=position_dodge(0.3))+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=0,size=0.75,position=position_dodge(.3))+
  xlab("Block")+
  ylab("Accuracy")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ggtitle("Performance during training \n All Adults")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  theme(legend.position=c(0.3,0.3))+
  ylim(0,1)
plot_grid(p1,p2)

Reduced Sample

#summarize by block
kids_learn <- kid %>%
  filter(trial_kind=="learn"&isRepeatedTrial==0&script=="short") %>%
  group_by(subject,condition,blockNum) %>%
  summarize(accuracy=mean(isRight)) %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("blockNum"),idvar="subject")
#plot by block
#learning phase
library(cowplot)
p1=ggplot(kids_learn, aes(blockNum,accuracy,color=condition,group=condition))+
  geom_point(position=position_dodge(0.3))+
  geom_line(position=position_dodge(0.3))+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=0,size=0.75,position=position_dodge(.3))+
  xlab("Block")+
  ylab("Accuracy")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ggtitle("Performance during training \n Reduced Sample Kids")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  theme(legend.position=c(0.3,0.3))+
  ylim(0,1)

#summarize by block
adults_learn <-  adult %>%
  filter(trial_kind=="learn"&isRepeatedTrial==0) %>%
  group_by(subject,condition,blockNum) %>%
  summarize(accuracy=mean(isRight)) %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("blockNum"),idvar="subject")

#plot by block
#learning phase
library(cowplot)
p2=ggplot(adults_learn, aes(blockNum,accuracy,color=condition,group=condition))+
  geom_point(position=position_dodge(0.3))+
  geom_line(position=position_dodge(0.3))+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=0,size=0.75,position=position_dodge(.3))+
  xlab("Block")+
  ylab("Accuracy")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ggtitle("Performance during training \n All Adults")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  theme(legend.position=c(0.3,0.3))+
  ylim(0,1)
plot_grid(p1,p2)

Modeling Training

Adult Training

Overall Condition Difference

There is an overall condition difference for adults.

m=glmer(isRight~condition+(1|subject), data=subset(adult, trial_kind=="learn"&isRepeatedTrial==0), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 3.417
(0.178)
t = 19.229
p = 0.000***
conditionlow -1.211
(0.227)
t = -5.339
p = 0.00000***
Observations 4,320
Log Likelihood -1,140.790
Akaike Inf. Crit. 2,287.581
Bayesian Inf. Crit. 2,306.694
Note: p<0.1; p<0.05; p<0.01
Interaction with Trial Number

There is also an interaction with trial number, i.e. the condition difference increases across trials.

m=glmer(isRight~conditionC*trial_idC+(1+trial_idC|subject), data=subset(adult, trial_kind=="learn"&isRepeatedTrial==0), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 3.734
(0.253)
t = 14.762
p = 0.000***
conditionC 1.836
(0.406)
t = 4.518
p = 0.00001***
trial_idC 0.104
(0.013)
t = 8.109
p = 0.000***
conditionC:trial_idC 0.052
(0.019)
t = 2.684
p = 0.008***
Observations 4,320
Log Likelihood -1,044.022
Akaike Inf. Crit. 2,102.045
Bayesian Inf. Crit. 2,146.642
Note: p<0.1; p<0.05; p<0.01

Child Training

Full Sample
m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.872
(0.079)
t = 11.006
p = 0.000***
conditionC 0.243
(0.157)
t = 1.542
p = 0.124
Observations 4,704
Log Likelihood -2,820.091
Akaike Inf. Crit. 5,646.182
Bayesian Inf. Crit. 5,665.551
Note: p<0.1; p<0.05; p<0.01

Overall, there is no significant condition effect (p = 0.1230543).

Reduced Sample

This is also true if we reduce the sample to the 85 children with the updated instructions.

m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&script=="short"), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.894
(0.082)
t = 10.921
p = 0.000***
conditionC 0.223
(0.163)
t = 1.371
p = 0.171
Observations 4,080
Log Likelihood -2,433.858
Akaike Inf. Crit. 4,873.716
Bayesian Inf. Crit. 4,892.658
Note: p<0.1; p<0.05; p<0.01
Interaction with trial number

Looking at accuracy across trials, there is clear evidence for learning, but no significant interaction with trial number.

m=glmer(isRight~conditionC*trial_idC+(1+trial_idC|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.942
(0.090)
t = 10.409
p = 0.000***
conditionC 0.288
(0.179)
t = 1.614
p = 0.107
trial_idC 0.020
(0.004)
t = 5.217
p = 0.00000***
conditionC:trial_idC 0.011
(0.007)
t = 1.500
p = 0.134
Observations 4,704
Log Likelihood -2,778.716
Akaike Inf. Crit. 5,571.431
Bayesian Inf. Crit. 5,616.625
Note: p<0.1; p<0.05; p<0.01
Interaction with trial number (reduced sample)

We have comparable results with the reduced sample (with the updated script).

m=glmer(isRight~conditionC*trial_idC+(1+trial_idC|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&script=="short"), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.972
(0.094)
t = 10.300
p = 0.000***
conditionC 0.268
(0.186)
t = 1.437
p = 0.151
trial_idC 0.021
(0.004)
t = 4.963
p = 0.00000***
conditionC:trial_idC 0.011
(0.008)
t = 1.332
p = 0.183
Observations 4,080
Log Likelihood -2,391.989
Akaike Inf. Crit. 4,797.979
Bayesian Inf. Crit. 4,842.175
Note: p<0.1; p<0.05; p<0.01

Child Training By Block

From the plot, it appears that the biggest differences for the kids are on the final blocks of each half (blocks 3 and 6). This also turns out to be the two blocks on which there are significant condition differences.

Block 1
m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==1), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.399
(0.082)
t = 4.846
p = 0.00001***
conditionC -0.011
(0.164)
t = -0.066
p = 0.948
Observations 784
Log Likelihood -527.930
Akaike Inf. Crit. 1,061.860
Bayesian Inf. Crit. 1,075.854
Note: p<0.1; p<0.05; p<0.01
Block 2
m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==2), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.807
(0.101)
t = 7.991
p = 0.000***
conditionC 0.180
(0.197)
t = 0.917
p = 0.360
Observations 784
Log Likelihood -487.146
Akaike Inf. Crit. 980.291
Bayesian Inf. Crit. 994.285
Note: p<0.1; p<0.05; p<0.01
Block 3

Significant condition difference

m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==3), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.882
(0.105)
t = 8.375
p = 0.000***
conditionC 0.529
(0.205)
t = 2.579
p = 0.010***
Observations 784
Log Likelihood -474.638
Akaike Inf. Crit. 955.275
Bayesian Inf. Crit. 969.269
Note: p<0.1; p<0.05; p<0.01
Block 4
m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==4), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 1.017
(0.115)
t = 8.860
p = 0.000***
conditionC 0.204
(0.221)
t = 0.926
p = 0.355
Observations 784
Log Likelihood -461.153
Akaike Inf. Crit. 928.307
Bayesian Inf. Crit. 942.300
Note: p<0.1; p<0.05; p<0.01
Block 5
m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==5), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 1.128
(0.134)
t = 8.396
p = 0.000***
conditionC 0.198
(0.256)
t = 0.773
p = 0.440
Observations 784
Log Likelihood -448.492
Akaike Inf. Crit. 902.984
Bayesian Inf. Crit. 916.977
Note: p<0.1; p<0.05; p<0.01
Block 6

Significant condition difference

m=glmer(isRight~conditionC+(1|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0&blockNum==6), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 1.018
(0.118)
t = 8.609
p = 0.000***
conditionC 0.530
(0.227)
t = 2.329
p = 0.020**
Observations 784
Log Likelihood -459.163
Akaike Inf. Crit. 924.327
Bayesian Inf. Crit. 938.320
Note: p<0.1; p<0.05; p<0.01

Another way of putting this is that by the final block of each of two training phases, children in the high nameability condition do better than children in the low nameability condition.

Alternative By Block Plot (Children)

To give a sense of the variability, here is what the distribution of accuracy looks like across blocks

#plot by block violins
subset(kid,trial_kind=="learn"&isRepeatedTrial==0) %>% 
  group_by(subject,condition,blockNum) %>%
  summarize(accuracy=mean(isRight)) %>%
  ggplot(aes(condition,accuracy,color=condition)) +
  scale_color_brewer(palette="Set1",name="Nameability")+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  geom_violin(draw_quantiles=c(0.1,0.5,0.9),alpha=0.5)+
  geom_dotplot(aes(fill=condition),binaxis="y",stackdir="center",alpha=0.5)+
  stat_summary(fun.y="mean",geom="point",size=5)+
  stat_summary(fun.data = "mean_cl_boot", geom = "crossbar")+
  facet_wrap(~blockNum)

Accuracy By Stimulus Kind (Children)

subset(kid,trial_kind=="learn"&isRepeatedTrial==0) %>% 
  group_by(subject,condition,blockNum,stimType) %>%
  summarize(accuracy=mean(isRight)) %>%
  ggplot(aes(blockNum,accuracy,color=condition,group=condition)) +
  scale_color_brewer(palette="Set1",name="Nameability")+
  stat_summary(fun.y="mean",geom="point",size=5)+
  stat_summary(fun.y="mean",geom="line",size=1.5)+
  stat_summary(fun.data = "mean_se", geom = "errorbar")+
  geom_hline(yintercept=0.5,linetype="dashed")+
  facet_wrap(~stimType)

It appears that most of the difference is in children’s gains in accuracy on the prototype in the high nameability condition, but there is no significant condition by stimulus type interaction.

m=glmer(isRight~conditionC*stimTypeC+(1+stimTypeC|subject), data=subset(kid, trial_kind=="learn"&isRepeatedTrial==0), family=binomial)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
isRight
Constant 0.911
(0.084)
t = 10.853
p = 0.000***
conditionC 0.258
(0.166)
t = 1.555
p = 0.121
stimTypeC 0.632
(0.085)
t = 7.441
p = 0.000***
conditionC:stimTypeC 0.205
(0.161)
t = 1.273
p = 0.204
Observations 4,704
Log Likelihood -2,778.707
Akaike Inf. Crit. 5,571.413
Bayesian Inf. Crit. 5,616.607
Note: p<0.1; p<0.05; p<0.01

Child Training Age & Gender

sumName <- kid %>%
  filter(isRepeatedTrial==0) %>%
  group_by(subject, condition, Age, gender) %>%
  summarize(learningAcc=mean(isRight[trial_kind=="learn"]),testAcc=mean(isRight[trial_kind=="test"]))
#merge with subj data
sumName=merge(sumName,kidSubj)

#plot Age by Gender relationship
ggplot(sumName,aes(Age,learningAcc, color=condition))+
  geom_point()+
  geom_smooth(method="lm")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ylab("overall categorization accuracy")+
  xlab("Age in Months")+
  facet_wrap(~gender)

There is an odd age by gender interaction in the learning data, such that learning accuracy gets better generally across age, but specifically for girls, there is if anything a decrease in performance only in the high nameability condition. This also coincides with the fact that we don’t have any data from girls in the upper end of the age spectrum (70-80 months, say) specifically in the high nameability condition.

Overall “Test” Performance

Children (full sample)

kids_test <- kid %>%
  filter(trial_kind=="test") %>%
  group_by(subject,condition,stimType) %>%
  summarize(accuracy=mean(isRight)) 

kids_test_overall <- kids_test %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("stimType"),idvar="subject")

ggplot(kids_test_overall,aes(condition,accuracy,fill=condition))+
  geom_bar(stat="identity")+
  geom_dotplot(d=kids_test, binaxis="y", stackdir="center", dotsize=0.3)+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=.1,color="black",position=position_dodge(.9))+
  xlab("Condition")+
  ylab("Accuracy")+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  facet_wrap(~stimType)

Children (reduced sample)

kids_test <- kid %>%
  filter(trial_kind=="test"&script=="short") %>%
  group_by(subject,condition,stimType) %>%
  summarize(accuracy=mean(isRight)) 

kids_test_overall <- kids_test %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("stimType"),idvar="subject")

ggplot(kids_test_overall,aes(condition,accuracy,fill=condition))+
  geom_bar(stat="identity")+
  geom_dotplot(d=kids_test, binaxis="y", stackdir="center", dotsize=0.3)+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=.1,color="black",position=position_dodge(.9))+
  xlab("Condition")+
  ylab("Accuracy")+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  facet_wrap(~stimType)

Adults

adult_test <- adult %>%
  filter(trial_kind=="test") %>%
  group_by(subject,condition,stimType) %>%
  summarize(accuracy=mean(isRight)) 

adult_test_overall <- adult_test %>%
  summarySEwithin(measurevar="accuracy",betweenvars=c("condition"),withinvars=c("stimType"),idvar="subject")

ggplot(adult_test_overall,aes(condition,accuracy,fill=condition))+
  geom_bar(stat="identity")+
  geom_dotplot(d=adult_test, binaxis="y", stackdir="center", dotsize=0.3)+
  geom_errorbar(aes(ymin=accuracy-se,ymax=accuracy+se),width=.1,color="black",position=position_dodge(.9))+
  xlab("Condition")+
  ylab("Accuracy")+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  geom_hline(yintercept=0.5, linetype="dashed",size=1)+
  facet_wrap(~stimType)

Overall Color Word Performance

Color “PPVT”

subj_long <-  gather(subset(kidSubj,select=c(Condition,Age,gender,Race,Ethnicity,Language.History,PPVT,colorPPVTHigh,colorPPVTLow)), nameability, ppvt, colorPPVTHigh:colorPPVTLow)
subj_long$colorType <- ifelse(subj_long$nameability=="colorPPVTHigh","high",
                          ifelse(subj_long$nameability=="colorPPVTLow","low",NA))
subj_long$PPVTacc <- subj_long$ppvt/6

subj_long_summarized <- subj_long %>%
  group_by(colorType,gender) %>%
  summarize(ppvtM=mean(PPVTacc,na.rm=T),ppvtSE=se(PPVTacc,na.rm=T))
ggplot(subj_long,aes(colorType,PPVTacc,fill=colorType,color=colorType))+
  #stat_summary(fun.data="mean_se",geom="crossbar",fill="white")+
  #geom_violin(fill="white",draw_quantiles=c(0.25,0.5,0.75))+
  geom_bar(data=subj_long_summarized,aes(x=colorType,y=ppvtM),fill="white",stat="identity")+
  geom_errorbar(data=subj_long_summarized,aes(y=ppvtM,ymin=ppvtM-ppvtSE,ymax=ppvtM+ppvtSE),width=0.01,size=0.5)+
  geom_jitter(width=0.1, height=0.05)+
  scale_color_brewer(palette="Set1",name="Nameability")+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  geom_hline(yintercept=1/6,linetype="dashed")+
  ylab("PPVT Accuracy on Color Words")+
  xlab("Color Type (Nameability)")+
  theme(legend.position="none")+
  facet_wrap(~gender)

Color “EVT”

Plotting the percent of modal choices for each color type

naming=subset(kidSubj,select=c("Word.1..high.","Word.2..high.","Word.3..high.","Word.4..high.","Word.5..high.","Word.6..high.","Word.1..low.","Word.2..low.","Word.3..low.","Word.4..low.","Word.5..low.","Word.6..low."))
library(tidyverse)
naming_long= gather(naming, color, colorname, Word.1..high.:Word.6..low.)
naming_long$colorname=gsub(" ","",tolower(as.character(naming_long$colorname)))
colorSum <- naming_long %>%
  group_by(color) %>%
  count(colorname) %>%
  summarize(modalName = colorname[n==max(n)],numResponses=sum(n),modalNamePercentage=n[colorname==colorname[n==max(n)]]/sum(n))

colorSum$type=ifelse(colorSum$color %in% c("Word.1..high.","Word.2..high.","Word.3..high.","Word.4..high.","Word.5..high.","Word.6..high."),"high","low")

ggplot(colorSum,aes(color,modalNamePercentage,fill=type,label=modalName))+
  geom_bar(stat="identity")+
  geom_label()+
  scale_fill_brewer(palette="Set1",name="Nameability")+
  scale_x_discrete(limits = colorSum$color[order(colorSum$modalNamePercentage)])+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  xlab("color item")+
  ylab("percent modal name")

Relationships between vocabulary measures and learning accuracy

PPVT

ggplot(sumName,aes(PPVT,learningAcc, color=condition))+
  geom_point()+
  geom_smooth(method="lm",se=F)+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ylab("overall categorization accuracy")

PPVT Low Nameable Colors

ggplot(sumName,aes(colorPPVTLow,learningAcc, color=condition))+
  geom_jitter()+
  geom_smooth(method="lm")+
  ylab("overall categorization accuracy")+
  scale_color_brewer(palette="Set1",name="Nameability")+
  xlab("Low Nameable Colors PPVT")

There’s a condition by Low Color PPVT interaction.

m=lm(learningAcc~colorPPVTLow*condition, data=sumName)
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
learningAcc
Constant 0.728
(0.035)
t = 20.784
p = 0.000***
colorPPVTLow -0.012
(0.020)
t = -0.622
p = 0.536
conditionlow -0.143
(0.049)
t = -2.917
p = 0.005***
colorPPVTLow:conditionlow 0.057
(0.026)
t = 2.204
p = 0.030**
Observations 98
R2 0.102
Adjusted R2 0.074
Residual Std. Error 0.137 (df = 94)
F Statistic 3.576** (df = 3; 94)
Note: p<0.1; p<0.05; p<0.01

There’s also a significant positive relationship between Low Color PPVT and learning in the Low nameability condition.

m=lm(learningAcc~colorPPVTLow, data=filter(sumName,condition=="low"))
stargazer(m,type="html",report="vcstp*",intercept.bottom=F)
Dependent variable:
learningAcc
Constant 0.585
(0.035)
t = 16.643
p = 0.000***
colorPPVTLow 0.045
(0.017)
t = 2.590
p = 0.013**
Observations 49
R2 0.125
Adjusted R2 0.106
Residual Std. Error 0.141 (df = 47)
F Statistic 6.706** (df = 1; 47)
Note: p<0.1; p<0.05; p<0.01

EVT Low Nameable Colors

ggplot(sumName,aes(EVTColorLow,learningAcc, color=condition))+
  geom_jitter()+
  geom_smooth(method="lm",se=F)+
  scale_color_brewer(palette="Set1",name="Nameability")+
  ylab("overall categorization accuracy")+
  xlab("Low Nameable Colors Production 'Goodness'")