rm(list=ls(all=TRUE)) # clear all variables graphics.off() # clear all graphics # Facial Feedback # Greg Francis # PSY 626 # 16 September 2020 # load full data file FFdata<-read.csv(file="FacialFeedback.csv", header=TRUE,stringsAsFactors=FALSE) # load the rethinking library library(rethinking) # Dummy variable to indicate condition FFdata$ConditionIndex <-0*FFdata$Trial FFdata$ConditionIndex[FFdata$Condition =="PenInTeeth"] =1 FFdata$ConditionIndex[FFdata$Condition =="NoPen"] =2 FFdata$ConditionIndex[FFdata$Condition =="PenInLips"] =3 # Other dummy variable approach FFdata$PenInTeeth <- ifelse(FFdata$Condition =="PenInTeeth", 1, 0) FFdata$NoPen <- ifelse(FFdata$Condition =="NoPen", 1, 0) FFdata$PenInLips <- ifelse(FFdata$Condition =="PenInLips", 1, 0) # Null model: one mean for all conditions FFmodel0 <- map( alist( HappinessRating ~ dnorm(mu, sigma), mu <- a[Participant], a[Participant] ~ dnorm(50, 50), sigma ~ dunif(0, 100) ), data= FFdata , control=list(maxit=10000) ) cat("Finished FFmodel0\n") # Alternative model 1: different mean for each condition (dumy variable coding) FFmodel1 <- map( alist( HappinessRating ~ dnorm(mu, sigma), mu <- a[Participant] + b1*PenInTeeth + b3*PenInLips, a[Participant] ~ dnorm(50, 50), b1 ~ dnorm(0, 20), b3 ~ dnorm(0, 20), sigma ~ dunif(0, 100) ), data= FFdata , control=list(maxit=100000) ) cat("Finished FFmodel1\n") # Alternative model 2: different means and sds for each condition FFmodel2 <- map( alist( HappinessRating ~ dnorm(mu, sigma), mu <- a[Participant] + b1*PenInTeeth + b3*PenInLips, a[Participant] ~ dnorm(50, 50), b1 ~ dnorm(0, 20), b3 ~ dnorm(0, 20), sigma[ConditionIndex] ~ dunif(0, 100) ), data= FFdata , control=list(maxit=100000) ) cat("Finished FFmodel2\n") print(compare(FFmodel0, FFmodel1, FFmodel2))