rm(list=ls(all=TRUE))  # clear all variables
graphics.off()  # clear all graphics
# Sternberg Search
# Greg Francis
# PSY 626
# March 28, 2024

# Compare serial terminating and serial exhaustive models

# load the rethinking library
library(rethinking)

# load full data file
SSdata<-read.csv(file="SternbergSearch.csv",header=TRUE,stringsAsFactors=FALSE)
SSdata$TargetPresent <- ifelse(SSdata$Condition =="Present", 1, 0)  

SSdataTerminating <- data.frame(RT= SSdata$RT, MemorySetSize=SSdata$MemorySetSize, Condition=SSdata$TargetPresent, Participant=SSdata$Participant)		

# Twice slope, different sigma's
# Same slope and intercept for each participant
SSTerminating <- map(
	alist( RT ~ dnorm(mu, sigma), 
	mu <- a + (b +(1-Condition)*b)*MemorySetSize,
	a ~ dnorm(1000, 500),
	b ~ dnorm(0, 100),
	sigma <- c1*Condition + c2*(1-Condition),
	c1 ~ dunif(0, 2000),
	c2 ~ dunif(0, 2000)
	), data= SSdataTerminating ) 
	
cat("Finished with self-terminating model")

# Same slope (exhaustive model)
SSExhaustive <- map(
	alist( RT ~ dnorm(mu, sigma), 
	mu <- a + b*MemorySetSize,
	a ~ dnorm(1000, 500),
	b ~ dnorm(0, 100),
	sigma ~ dunif(0, 2000)
	), data= SSdataTerminating ) 
	
# Parallel search (no slope)
SSParallel <- map(
	alist( RT ~ dnorm(mu, sigma), 
	mu <- a ,
	a ~ dnorm(1000, 500),
	sigma <- c1*Condition + c2*(1-Condition),
	c1 ~ dunif(0, 2000),
	c2 ~ dunif(0, 2000)
	), data= SSdataTerminating ) 	
				
		
print(compare(SSTerminating, SSExhaustive, SSParallel))