General preparation

Read in code

source("rulexj_functions.R")

Set up exemplar matrix

  • columns correspond to cues, last column is criterion value
  • rows correspond to exemplars
exemplars <- matrix(
  ncol=5,byrow=TRUE,dimnames = list(NULL,c("c1","c2","c3","c4","crit")),
  data = c(
    0,0,0,1,23,
    0,0,1,0,25,
    0,1,0,0,30,
    0,1,0,1,43,
    1,0,0,0,35,
    1,0,1,1,70,
    1,1,0,1,68,
    1,1,1,0,63))

Set simulation parameters and simulate data

nsim <- 100000
cues <- exemplars[,1:4]

sim_data_alpha_0.0<-simulate_rulexj(n=nsim,cues=cues,exemplars=exemplars,alpha_fix=0.0,w_sum_max=100)
sim_data_alpha_0.5<-simulate_rulexj(n=nsim,cues=cues,exemplars=exemplars,alpha_fix=0.5,w_sum_max=100)
sim_data_alpha_1.0<-simulate_rulexj(n=nsim,cues=cues,exemplars=exemplars,alpha_fix=1.0,w_sum_max=100)

sim_data_alpha_0.0$judgments <- cbind(sim_data_alpha_0.0$judgments,cue=rep(1:8,nsim))
sim_data_alpha_0.5$judgments <- cbind(sim_data_alpha_0.5$judgments,cue=rep(1:8,nsim))
sim_data_alpha_1.0$judgments <- cbind(sim_data_alpha_1.0$judgments,cue=rep(1:8,nsim))

Prediction space visualization

Comparison of alpha 0, 0.5, and 1

  • Exemplar module: red
  • Rule module: blue
  • RulExJ with alpha 0.5: green
for (i in 1:7){
  for (j in 2:8){
    if(i<j){
      
    current_judgments <- sim_data_alpha_1.0$judgments[sim_data_alpha_1.0$judgments[,"cue"]%in%c(i,j),]
    plot(current_judgments[seq(1,nrow(current_judgments),2),"judgment"],current_judgments[seq(2,nrow(current_judgments),2),"judgment"],col="blue",xlab = paste("Judgment Pattern",i),ylab = paste("Judgment Pattern",j),xlim = c(0,100),ylim=c(0,100))
    
    current_judgments <- sim_data_alpha_0.5$judgments[sim_data_alpha_1.0$judgments[,"cue"]%in%c(i,j),]
    points(current_judgments[seq(1,nrow(current_judgments),2),"judgment"],current_judgments[seq(2,nrow(current_judgments),2),"judgment"],col="darkgreen")
    
    current_judgments <- sim_data_alpha_0.0$judgments[sim_data_alpha_1.0$judgments[,"cue"]%in%c(i,j),]
    points(current_judgments[seq(1,nrow(current_judgments),2),"judgment"],current_judgments[seq(2,nrow(current_judgments),2),"judgment"],col="red")
    
    }
  }
}