### Supplementary materials for ### Martin Hilpert and David Correia Saavedra ### The unidirectionality of semantic changes in grammaticalization: ### An experimental approach to the asymmetric priming hypothesis ### Analysis of mturk priming experiment ### Data structures in mturk.RData: ### cleanRT = the data set ### modC3full = the first model we fitted ### modC3 = the pruned model that we present in the paper ### modC3small = the second model we present, based on a subset of the data # load libraries and relevel the lexical vs. grammatical variable library(languageR) library(lmerTest) cleanRT$lex.gram<-relevel(cleanRT$lex.gram, "lex") # get lex as the reference level ## model with all control variables modC3full<-lmer(cleanRT$ReacTime.ln~ cleanRT$Priming*cleanRT$lex.gram + cleanRT$LemFreq..ln + cleanRT$Handedness + cleanRT$age + cleanRT$Gender + cleanRT$LemFreq..ln:cleanRT$Priming +(1|cleanRT$Worker.ID) + (1|cleanRT$Stimulus.ID)) summary(modC3full) ## model with all control variables plus random slope modC3fullslope<-lmer(cleanRT$ReacTime.ln~ cleanRT$Priming*cleanRT$lex.gram + cleanRT$LemFreq..ln + cleanRT$Handedness + cleanRT$age + cleanRT$Gender + cleanRT$LemFreq..ln:cleanRT$Priming +(1|cleanRT$Worker.ID) + (1|cleanRT$Stimulus.ID) + (1 + cleanRT$Trial.Number|cleanRT$Worker.ID)) summary(modC3fullslope) # lots of warnings # the pruned model modC3<-lmer(cleanRT$ReacTime.ln~ cleanRT$Priming*cleanRT$lex.gram + cleanRT$LemFreq..ln +(1|cleanRT$Worker.ID) + (1|cleanRT$Stimulus.ID)) summary(modC3) # Table 3 anova(modC3, modC3full) # pruned model no worse than full model # the pruned model with random slope modC3slope<-lmer(cleanRT$ReacTime.ln~ cleanRT$Priming*cleanRT$lex.gram + cleanRT$LemFreq..ln +(1|cleanRT$Worker.ID) + (1|cleanRT$Stimulus.ID)+ (1 + cleanRT$Trial.Number|cleanRT$Worker.ID)) summary(modC3slope) # again, lots of warnings anova(modC3, modC3slope) # slope model no better than slimmer model # Figure 2 boxplot(cleanRT$ReacTime~cleanRT$alphCondition, notch=T, col="grey", ylab="reaction times in ms", names=c("primed gram", "unprimed gram", "primed lex", "unprimed lex") ) # boxplot overview with logged RTs # model with only eight high-freq elements smallRT<-subset(cleanRT, Element %in% c("about", "come", "get", "go", "have", "help", "need", "use")) # creating the data subset # the model based on the subset modC3small<-lmer(smallRT$ReacTime.ln~ smallRT$Priming*smallRT$lex.gram + smallRT$LemFreq..ln +(1|smallRT$Worker.ID) + (1|smallRT$Stimulus.ID)) summary(modC3small) # Table 4 # Boxplot that shows reaction times across conditions, like Figure 2 boxplot(smallRT$ReacTime~smallRT$alphCondition, notch=T, col="grey", ylab="reaction times in ms", names=c("primed gram", "unprimed gram", "primed lex", "unprimed lex") ) # boxplot overview with logged RTs