################################################## # sdt analysis # fit an ordinal mixed model # using the 'ordinal' package ################################################## rm(list=ls()) # install.packages("ordinal") require(ordinal) data <- read.table("sdt.tsv", sep="\t", header=TRUE) # order levels of sayswrong data$sayswrong <- ordered(data$sayswrong, levels=c("very certain", "almost certain", "not certain")) # contrast coding for iswrong contrasts(data$iswrong) <- c(-0.5,0.5) # contrast code group contrasts(data$group) <- contr.helmert # group: Control as reference data$groupC <- data$group contrasts(data$groupC) <- contr.treatment(2, 1) # group: Dys as reference data$groupD <- data$group contrasts(data$groupD) <- contr.treatment(2, 2) ################################################## # model for spelling ################################################## spelling <- data[data$task=="spelling",] # fit with contrast coding fit.spelling <- clmm(sayswrong ~ iswrong * group + (iswrong|subject), data=spelling, link="probit") # fit with control as reference fit.spellingC <- clmm(sayswrong ~ iswrong * groupC + (iswrong|subject), data=spelling, link="probit") summary(fit.spellingC) # fit with dys as reference fit.spellingD <- clmm(sayswrong ~ iswrong * groupD + (iswrong|subject), data=spelling, link="probit") summary(fit.spellingD) ################################################## # model for reading ################################################## reading <- data[data$task=="reading",] fit.reading <- clmm(sayswrong ~ iswrong * group + (iswrong|subject), data=reading, link="probit") # fit with control as reference fit.readingC <- clmm(sayswrong ~ iswrong * groupC + (iswrong|subject), data=reading, link="probit") summary(fit.readingC) # fit with dys as reference fit.readingD <- clmm(sayswrong ~ iswrong * groupD + (iswrong|subject), data=reading, link="probit") summary(fit.readingD)