d <- read_csv(data_path)
## Rows: 20700 Columns: 43
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (30): trial_type, internal_node_id, subject, hitId, assignmentId, struct...
## dbl (11): trial_index, time_elapsed, rt, start_time, end_time, choice_index,...
## lgl (2): success, timeout
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
d <- d %>%
filter(
!(trial_type %in% c("show-reward"))
)
Adding columns to characterize participant choices.
d <- d %>%
mutate(
trial_number = case_when(
trial_index<8 ~ trial_index,
trial_index<199 ~ 7+(trial_index-7)/2,
TRUE ~ trial_index-96
)
) %>%
relocate(trial_number,.after=trial_index) %>%
mutate(
test_trial_number = case_when(
trial_number<7 ~ NA_real_,
trial_number<103 ~ trial_number-6,
TRUE ~ NA_real_
)
) %>%
relocate(test_trial_number,.after=trial_number) %>%
mutate(
block_trial_number = case_when(
test_trial_number < 49 ~ test_trial_number,
TRUE ~ test_trial_number - 48),
block_trial_number_c = block_trial_number - 24.5
) %>%
relocate(block_trial_number,.after=test_trial_number) %>%
relocate(block_trial_number_c,.after=block_trial_number) %>%
mutate(
explore_block = case_when(
test_trial_number<9 ~ 1,
test_trial_number<17 ~ 2,
test_trial_number<25 ~ 3,
test_trial_number<33 ~ 4,
test_trial_number < 41 ~ 5,
test_trial_number < 49 ~ 6,
test_trial_number < 57 ~ 7,
test_trial_number<65 ~ 8,
test_trial_number<73 ~ 9,
test_trial_number<81 ~ 10,
test_trial_number <89 ~ 11,
test_trial_number <97 ~ 12,
TRUE ~ NA_real_
)
) %>%
mutate(
max_reward_choice = case_when(
reward_score_unadjusted ==8 ~ 1,
!is.na(test_trial_number) ~ 0,
TRUE ~ NA_real_
)
) %>%
mutate(
cur_structure_condition=case_when(
test_trial_number < 49 ~ structure_condition,
!is.na(test_trial_number) & match_condition == "match" ~ structure_condition,
test_trial_number >= 49 & structure_condition == "emotion" ~ "model",
test_trial_number >= 49 & structure_condition == "model" ~ "emotion"
)
) %>%
mutate(block = case_when(
test_trial_number < 49 ~ 1,
test_trial_number >= 49 ~ 2,
TRUE ~ NA_real_
))
#recenter vars
d <- d %>%
mutate(
structure_condition_c = case_when(
structure_condition == "model" ~ -0.5,
structure_condition == "emotion" ~ 0.5),
cur_structure_condition_c = case_when(
cur_structure_condition == "model" ~ -0.5,
cur_structure_condition == "emotion" ~ 0.5),
match_condition_c = case_when(
match_condition == "match" ~ 0.5,
match_condition == "mismatch" ~ -0.5
),
cur_structure_condition_model = case_when(
cur_structure_condition == "model" ~ 0,
cur_structure_condition == "emotion" ~ 1),
cur_structure_condition_emotion = case_when(
cur_structure_condition == "model" ~ -1,
cur_structure_condition == "emotion" ~ 0),
match_condition_match = case_when(
match_condition == "match" ~ 0,
match_condition == "mismatch" ~ -1
),
match_condition_mismatch = case_when(
match_condition == "match" ~ 1,
match_condition == "mismatch" ~ 0
),
block_c = case_when(
test_trial_number < 49 ~ -0.5,
TRUE ~ 0.5
),
block_learn = case_when(
block==1 ~ 0,
block==2 ~ 1
),
block_gen = case_when(
block==1 ~ -1,
block==2 ~ 0
)
)
open_resps <- d %>%
filter(trial_index %in% 206) %>%
select(subject, structure_condition, match_condition ,response) %>%
extract(response, into = c("patterns", "strategy", "comments"),
regex = "patterns\":\"(.*)\",\"strategy\":\"(.*)\",\"comments\":\"(.*)")
#write_csv(open_resps, here("data-analysis","data","v1","processed","emogo-v1-openresponses.csv"))
attention_check <- d %>%
filter(trial_index %in% c(4,5)) %>%
mutate(
attention_check_correct_choice = case_when(
trial_index == 4 ~ "stimuli/horse.jpg",
trial_index == 5 ~ "stimuli/hammer.jpg"
),
check_correct = ifelse(attention_check_correct_choice==choiceImage,1,0)
) %>%
group_by(subject) %>%
summarize(
N=n(),
avg_correct = mean(check_correct)
)
passed_attention_check <- attention_check %>%
filter(avg_correct ==1) %>%
pull(subject)
total_time <- d %>%
filter(trial_index==206) %>%
select(subject,time_elapsed) %>%
distinct() %>%
mutate(time_mins = time_elapsed/1000/60)
#Minumum time
min(total_time$time_mins)
## [1] 6.6528
#Any subjects with times under 4 minutes?
subjects_too_fast <- total_time %>%
filter(time_mins<4)
subjects_too_fast %>%
pull(subject)
## character(0)
percent_location_selections <- d %>%
filter(!is.na(test_trial_number)) %>%
group_by(subject,choiceLocation) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
## `summarise()` has grouped output by 'subject'. You can override using the
## `.groups` argument.
#any frequencies above 80%?
subjects_same_location_exclusion <- percent_location_selections %>%
filter(freq>0.8)
subjects_same_location_exclusion %>%
distinct(subject) %>%
pull(subject)
## character(0)
reward_rank <- d %>%
filter(subject %in% passed_attention_check) %>%
filter(test_trial_number==96) %>%
select(subject,structure_condition,match_condition,score_after_trial)
median_score <- median(reward_rank$score_after_trial)
ggplot(reward_rank,aes(x=score_after_trial))+
geom_histogram()+
geom_vline(xintercept = median_score)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(reward_rank,aes(x=score_after_trial,color=match_condition))+
geom_density()+
facet_wrap(~structure_condition)
subjects_top_50 <- reward_rank %>%
filter(score_after_trial>=median_score) %>%
select(subject)
write_csv(subjects_top_50,here("data-analysis","data","v1","processed","subjects_top_50.csv"))
conditions_top_50 <- reward_rank %>%
filter(subject %in% subjects_top_50$subject) %>%
group_by(structure_condition,match_condition) %>%
tally()
conditions_top_50
## # A tibble: 4 × 3
## # Groups: structure_condition [2]
## structure_condition match_condition n
## <chr> <chr> <int>
## 1 emotion match 15
## 2 emotion mismatch 9
## 3 model match 19
## 4 model mismatch 7
#exclude any participants who meet exclusion criteria
d <- d %>%
filter(subject %in% passed_attention_check) %>%
filter(!(subject %in% subjects_same_location_exclusion)) %>%
filter(!(subject %in% subjects_too_fast))
d %>%
distinct(subject,structure_condition,match_condition) %>%
group_by(structure_condition,match_condition) %>%
tally()
## # A tibble: 4 × 3
## # Groups: structure_condition [2]
## structure_condition match_condition n
## <chr> <chr> <int>
## 1 emotion match 25
## 2 emotion mismatch 25
## 3 model match 25
## 4 model mismatch 25
subject_by_block <- d %>%
filter(!is.na(explore_block)) %>%
group_by(subject,match_condition,structure_condition,explore_block) %>%
summarize(
max_choice_percent=mean(max_reward_choice)
)
## `summarise()` has grouped output by 'subject', 'match_condition',
## 'structure_condition'. You can override using the `.groups` argument.
summarize_by_block <- subject_by_block %>%
group_by(explore_block) %>%
summarize(
N=n(),
max_choice = mean(max_choice_percent),
se = sqrt(var(max_choice_percent, na.rm = TRUE)/N),
ci=qt(0.975, N-1)*sd(max_choice_percent,na.rm=TRUE)/sqrt(N),
lower_ci=max_choice-ci,
upper_ci=max_choice+ci,
lower_se=max_choice-se,
upper_se=max_choice+se
)
summarize_by_block_by_condition <- subject_by_block %>%
group_by(match_condition,structure_condition,explore_block) %>%
summarize(
N=n(),
max_choice = mean(max_choice_percent),
se = sqrt(var(max_choice_percent, na.rm = TRUE)/N),
ci=qt(0.975, N-1)*sd(max_choice_percent,na.rm=TRUE)/sqrt(N),
lower_ci=max_choice-ci,
upper_ci=max_choice+ci,
lower_se=max_choice-se,
upper_se=max_choice+se
)
## `summarise()` has grouped output by 'match_condition', 'structure_condition'.
## You can override using the `.groups` argument.
summarize_choice_by_trial <- d %>%
filter(!is.na(test_trial_number)) %>%
group_by(structure_condition, match_condition,test_trial_number) %>%
summarize(
N=n(),
reward_8 = mean(reward_score_unadjusted==8),
reward_6 = mean(reward_score_unadjusted==6),
reward_4 = mean(reward_score_unadjusted==4),
reward_2 = mean(reward_score_unadjusted==2)
) %>%
pivot_longer(cols = c(reward_8,reward_6,reward_4,reward_2),names_to = "reward",values_to = "percent_choice",names_prefix="reward_")
## `summarise()` has grouped output by 'structure_condition', 'match_condition'.
## You can override using the `.groups` argument.
summarize_choice_by_block <- d %>%
filter(!is.na(test_trial_number)) %>%
group_by(structure_condition, match_condition,explore_block) %>%
summarize(
N=n(),
reward_8 = mean(reward_score_unadjusted==8),
reward_6 = mean(reward_score_unadjusted==6),
reward_4 = mean(reward_score_unadjusted==4),
reward_2 = mean(reward_score_unadjusted==2)
) %>%
pivot_longer(cols = c(reward_8,reward_6,reward_4,reward_2),names_to = "reward",values_to = "percent_choice",names_prefix="reward_")
## `summarise()` has grouped output by 'structure_condition', 'match_condition'.
## You can override using the `.groups` argument.
ggplot(subject_by_block,aes(explore_block,max_choice_percent))+
geom_point(size=1.5,alpha=0.1,aes(group=subject))+
geom_line(alpha=0.1,aes(group=subject))+
geom_point(data=summarize_by_block,aes(y=max_choice),size=2,color="black")+
geom_line(data=summarize_by_block,aes(y=max_choice),size=1.2,color="black")+
geom_errorbar(data=summarize_by_block,aes(y=max_choice,ymin=lower_se,ymax=upper_se),width=0,color="black")+
geom_vline(xintercept=6.5,linetype="dotted")+
geom_hline(yintercept=0.25,linetype="dashed")+
theme(legend.position="none")+
scale_x_continuous(breaks=seq(1,12))+
xlab("Block (8 Trials = 1 Block)")+
ylab("Percent reward-maximizing choices")
ggplot(summarize_by_block_by_condition,aes(explore_block,max_choice, color=structure_condition,shape=match_condition,linetype=match_condition))+
geom_point(size=1.5,alpha=0.5)+
geom_line(alpha=0.5)+
geom_point(aes(y=max_choice),size=2)+
geom_line(aes(y=max_choice),size=1.2)+
geom_errorbar(aes(y=max_choice,ymin=lower_se,ymax=upper_se),width=0)+
geom_vline(xintercept=6.5,linetype="dotted")+
geom_hline(yintercept=0.25,linetype="dashed")+
#theme(legend.position="none")+
scale_x_continuous(breaks=seq(1,12))+
xlab("Block (8 Trials = 1 Block)")+
ylab("Percent reward-maximizing choices")
ggplot(subject_by_block,aes(explore_block,max_choice_percent, group=subject))+
#geom_point(size=1.5,alpha=0.5)+
geom_line(alpha=0.5)+
geom_vline(xintercept=6.5,linetype="dotted")+
geom_hline(yintercept=0.25,linetype="dashed")+
theme(legend.position="none")+
facet_wrap(~structure_condition+match_condition)+
scale_x_continuous(breaks=seq(1,12))+
xlab("Block (8 Trials = 1 Block)")+
ylab("Percent reward-maximizing choices")
ggplot(summarize_choice_by_trial,aes(test_trial_number,percent_choice,color=reward))+
geom_point()+
geom_line()+
geom_vline(xintercept=48.5,linetype="dotted")+
geom_hline(yintercept=0.25,linetype="dashed")+
xlab("Trial Number")+
ylab("Percent choices")+
facet_wrap(~structure_condition+match_condition)
ggplot(summarize_choice_by_block,aes(explore_block,percent_choice,color=reward))+
geom_point()+
geom_line()+
geom_vline(xintercept=6.5,linetype="dotted")+
geom_hline(yintercept=0.25,linetype="dashed")+
xlab("Block (8 Trials = 1 Block)")+
ylab("Percent choices")+
facet_wrap(~structure_condition+match_condition)
#### Pruning random effects structure
#maximal random effects structure
m <- glmer(max_reward_choice ~ cur_structure_condition_c*match_condition_c*block_c*block_trial_number_c + (1+block_c*block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial,glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=100000)))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ cur_structure_condition_c * match_condition_c *
## block_c * block_trial_number_c + (1 + block_c * block_trial_number_c |
## subject) + (1 | choiceImage)
## Data: d
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
##
## AIC BIC logLik deviance df.resid
## 8871.0 9064.6 -4408.5 8817.0 9573
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -88.769 -0.496 0.068 0.470 4.853
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.187091 1.08954
## subject (Intercept) 3.349599 1.83019
## block_c 6.364282 2.52275 0.17
## block_trial_number_c 0.003632 0.06026 0.86 0.22
## block_c:block_trial_number_c 0.008271 0.09095 0.29 0.81 0.33
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate
## (Intercept) 0.824848
## cur_structure_condition_c -1.072925
## match_condition_c 1.702332
## block_c 0.327357
## block_trial_number_c 0.071721
## cur_structure_condition_c:match_condition_c -0.879433
## cur_structure_condition_c:block_c -0.927782
## match_condition_c:block_c 1.307046
## cur_structure_condition_c:block_trial_number_c -0.040831
## match_condition_c:block_trial_number_c 0.033975
## block_c:block_trial_number_c 0.020457
## cur_structure_condition_c:match_condition_c:block_c -0.228689
## cur_structure_condition_c:match_condition_c:block_trial_number_c -0.048890
## cur_structure_condition_c:block_c:block_trial_number_c -0.022276
## match_condition_c:block_c:block_trial_number_c 0.036608
## cur_structure_condition_c:match_condition_c:block_c:block_trial_number_c -0.049989
## Std. Error
## (Intercept) 0.205145
## cur_structure_condition_c 0.333521
## match_condition_c 0.382493
## block_c 0.281175
## block_trial_number_c 0.007122
## cur_structure_condition_c:match_condition_c 0.662088
## cur_structure_condition_c:block_c 0.665454
## match_condition_c:block_c 0.549266
## cur_structure_condition_c:block_trial_number_c 0.012553
## match_condition_c:block_trial_number_c 0.013718
## block_c:block_trial_number_c 0.011766
## cur_structure_condition_c:match_condition_c:block_c 1.320727
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.024771
## cur_structure_condition_c:block_c:block_trial_number_c 0.025003
## match_condition_c:block_c:block_trial_number_c 0.022312
## cur_structure_condition_c:match_condition_c:block_c:block_trial_number_c 0.049330
## z value
## (Intercept) 4.021
## cur_structure_condition_c -3.217
## match_condition_c 4.451
## block_c 1.164
## block_trial_number_c 10.070
## cur_structure_condition_c:match_condition_c -1.328
## cur_structure_condition_c:block_c -1.394
## match_condition_c:block_c 2.380
## cur_structure_condition_c:block_trial_number_c -3.253
## match_condition_c:block_trial_number_c 2.477
## block_c:block_trial_number_c 1.739
## cur_structure_condition_c:match_condition_c:block_c -0.173
## cur_structure_condition_c:match_condition_c:block_trial_number_c -1.974
## cur_structure_condition_c:block_c:block_trial_number_c -0.891
## match_condition_c:block_c:block_trial_number_c 1.641
## cur_structure_condition_c:match_condition_c:block_c:block_trial_number_c -1.013
## Pr(>|z|)
## (Intercept) 5.80e-05
## cur_structure_condition_c 0.00130
## match_condition_c 8.56e-06
## block_c 0.24432
## block_trial_number_c < 2e-16
## cur_structure_condition_c:match_condition_c 0.18409
## cur_structure_condition_c:block_c 0.16325
## match_condition_c:block_c 0.01733
## cur_structure_condition_c:block_trial_number_c 0.00114
## match_condition_c:block_trial_number_c 0.01326
## block_c:block_trial_number_c 0.08211
## cur_structure_condition_c:match_condition_c:block_c 0.86253
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.04842
## cur_structure_condition_c:block_c:block_trial_number_c 0.37297
## match_condition_c:block_c:block_trial_number_c 0.10085
## cur_structure_condition_c:match_condition_c:block_c:block_trial_number_c 0.31089
##
## (Intercept) ***
## cur_structure_condition_c **
## match_condition_c ***
## block_c
## block_trial_number_c ***
## cur_structure_condition_c:match_condition_c
## cur_structure_condition_c:block_c
## match_condition_c:block_c *
## cur_structure_condition_c:block_trial_number_c **
## match_condition_c:block_trial_number_c *
## block_c:block_trial_number_c .
## cur_structure_condition_c:match_condition_c:block_c
## cur_structure_condition_c:match_condition_c:block_trial_number_c *
## cur_structure_condition_c:block_c:block_trial_number_c
## match_condition_c:block_c:block_trial_number_c
## cur_structure_condition_c:match_condition_c:block_c:block_trial_number_c
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation matrix not shown by default, as p = 16 > 12.
## Use print(x, correlation=TRUE) or
## vcov(x) if you need it
#create predicted data
pX <- expand.grid(
cur_structure_condition_c=c(-0.5,0.5),
match_condition_c=c(-0.5,0.5),
block_c=c(-0.5,0.5),
block_trial_number_c=seq(-23.5,23.5,by=1))
predictions <- predictSE(m,pX,re.form=NA, type="response")
pX$fit <- predictions$fit
pX$se.fit <- predictions$se.fit
pX <- pX %>%
mutate(
block_trial_number = block_trial_number_c+24.5,
cur_structure_condition = case_when(
cur_structure_condition_c==0.5 ~ "emotion",
cur_structure_condition_c==-0.5 ~ "model"
),
match_condition=case_when(
match_condition_c==0.5 ~ "match",
match_condition_c==-0.5 ~ "mismatch"
),
block_name = case_when(
block_c==0.5 ~ "generalization block",
block_c==-0.5~"learning block"
)
) %>%
mutate(
block_name=factor(block_name,levels=c("learning block","generalization block"))
)
d <- d %>%
mutate(
block_name = case_when(
block==1 ~ "learning block",
block==2 ~ "generalization block")
) %>%
mutate(
block_name=factor(block_name,levels=c("learning block","generalization block"))
)
p <- ggplot(subset(d,!is.na(block_trial_number)),aes(block_trial_number,as.factor(max_reward_choice),color=cur_structure_condition))+
geom_point(size = 0.5, alpha=0.2,shape=19,position = position_jitterdodge(jitter.width = 0.05,jitter.height = 0.5,dodge.width = 0.2,seed = 1))+
geom_violinh(data=subset(d,!is.na(block_trial_number)&cur_structure_condition_c==-0.5),aes(fill=cur_structure_condition),position = position_nudge(x = 0, y = .3 ),scale="count",width=0.4,alpha=0.3,color=NA)+
geom_violinh(data=subset(d,!is.na(block_trial_number)&cur_structure_condition_c==0.5),aes(fill=cur_structure_condition),position = position_nudge(x = 0, y = -.3 ),scale="count",width=0.4,alpha=0.3,color=NA)+
geom_hline(yintercept=0.25*4+1,linetype="dashed")+
geom_smooth(data=pX,aes(y=fit*4+1,ymax=(fit+se.fit)*4+1,ymin=(fit-se.fit)*4+1,fill=cur_structure_condition),stat="identity")+
theme_classic(base_size=18)+
ylab("Probability of \nreward-maximizing choice")+
scale_color_brewer(
palette="Set1",
name="Structure Condition",
breaks=c(0.5,-0.5),
labels=c("Emotion","Model"))+
scale_fill_brewer(
palette="Set1",
name="Structure Condition",
breaks=c(0.5,-0.5),
labels=c("Emotion","Model"))+
scale_y_discrete(limits=c("0","0.25","0.5","0.75","1"))+
xlab("Block Trial Number")+
facet_wrap(~match_condition+block_name)+
theme(legend.position=c(0.4,0.4))
p
p <- ggplot(subset(d,!is.na(block_trial_number)&block==2),aes(block_trial_number,as.factor(max_reward_choice),color=cur_structure_condition))+
geom_point(size = 0.5, alpha=0.1,shape=19,position = position_jitterdodge(jitter.width = 0.05,jitter.height = 0.5,dodge.width = 0.2,seed = 1))+
geom_violinh(data=subset(d,!is.na(block_trial_number)&cur_structure_condition_c==-0.5&block==2),aes(fill=cur_structure_condition),position = position_nudge(x = 0, y = .3 ),scale="count",width=0.4,alpha=0.2,color=NA)+
geom_violinh(data=subset(d,!is.na(block_trial_number)&cur_structure_condition_c==0.5&block==2),aes(fill=cur_structure_condition),position = position_nudge(x = 0, y = -.3 ),scale="count",width=0.4,alpha=0.2,color=NA)+
geom_hline(yintercept=0.25*4+1,linetype="dashed")+
geom_smooth(data=filter(pX,block_name=="generalization block"),aes(y=fit*4+1,ymax=(fit+se.fit)*4+1,ymin=(fit-se.fit)*4+1,fill=cur_structure_condition),stat="identity")+
theme_classic(base_size=18)+
ylab("Probability of \nreward-maximizing choice")+
scale_color_brewer(
palette="Set1",
name="Structure Condition",
breaks=c("model","emotion"),
labels=c("Model","Emotion"))+
scale_fill_brewer(
palette="Set1",
name="Structure Condition",
breaks=c("model","emotion"),
labels=c("Model","Emotion"))+
scale_y_discrete(limits=c("0","0.25","0.5","0.75","1"))+
xlab("Block Trial Number")+
facet_wrap(~match_condition)+
theme(legend.position=c(0.39,0.45),legend.title=element_text(size=14),legend.text=element_text(size=12),legend.background=element_rect(fill =NA))
p
ggsave(here(figure_path,"model_prediction_generalization_only.pdf"),width=9,height=6)
Recenter the model on the learning block
m <- glmer(max_reward_choice ~ cur_structure_condition_c*match_condition_c*block_learn*block_trial_number_c+ (1+block_learn*block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial,glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=100000)))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ cur_structure_condition_c * match_condition_c *
## block_learn * block_trial_number_c + (1 + block_learn * block_trial_number_c |
## subject) + (1 | choiceImage)
## Data: d
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
##
## AIC BIC logLik deviance df.resid
## 8871.0 9064.6 -4408.5 8817.0 9573
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -88.212 -0.496 0.068 0.470 4.845
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.185689 1.0889
## subject (Intercept) 4.131620 2.0326
## block_learn 6.340697 2.5181 -0.47
## block_trial_number_c 0.003857 0.0621 0.79 -0.38
## block_learn:block_trial_number_c 0.008227 0.0907 -0.24 0.81
##
##
##
##
##
## -0.41
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate
## (Intercept) 0.65917
## cur_structure_condition_c -0.60772
## match_condition_c 1.04649
## block_learn 0.32279
## block_trial_number_c 0.06132
## cur_structure_condition_c:match_condition_c -0.76347
## cur_structure_condition_c:block_learn -0.91953
## match_condition_c:block_learn 1.29854
## cur_structure_condition_c:block_trial_number_c -0.02961
## match_condition_c:block_trial_number_c 0.01557
## block_learn:block_trial_number_c 0.02022
## cur_structure_condition_c:match_condition_c:block_learn -0.21635
## cur_structure_condition_c:match_condition_c:block_trial_number_c -0.02380
## cur_structure_condition_c:block_learn:block_trial_number_c -0.02188
## match_condition_c:block_learn:block_trial_number_c 0.03620
## cur_structure_condition_c:match_condition_c:block_learn:block_trial_number_c -0.04931
## Std. Error
## (Intercept) 0.22282
## cur_structure_condition_c 0.42160
## match_condition_c 0.42198
## block_learn 0.27538
## block_trial_number_c 0.00733
## cur_structure_condition_c:match_condition_c 0.84373
## cur_structure_condition_c:block_learn 0.65977
## match_condition_c:block_learn 0.54177
## cur_structure_condition_c:block_trial_number_c 0.01431
## match_condition_c:block_trial_number_c 0.01435
## block_learn:block_trial_number_c 0.01134
## cur_structure_condition_c:match_condition_c:block_learn 1.31371
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.02863
## cur_structure_condition_c:block_learn:block_trial_number_c 0.02453
## match_condition_c:block_learn:block_trial_number_c 0.02178
## cur_structure_condition_c:match_condition_c:block_learn:block_trial_number_c 0.04859
## z value
## (Intercept) 2.958
## cur_structure_condition_c -1.441
## match_condition_c 2.480
## block_learn 1.172
## block_trial_number_c 8.366
## cur_structure_condition_c:match_condition_c -0.905
## cur_structure_condition_c:block_learn -1.394
## match_condition_c:block_learn 2.397
## cur_structure_condition_c:block_trial_number_c -2.070
## match_condition_c:block_trial_number_c 1.085
## block_learn:block_trial_number_c 1.782
## cur_structure_condition_c:match_condition_c:block_learn -0.165
## cur_structure_condition_c:match_condition_c:block_trial_number_c -0.831
## cur_structure_condition_c:block_learn:block_trial_number_c -0.892
## match_condition_c:block_learn:block_trial_number_c 1.662
## cur_structure_condition_c:match_condition_c:block_learn:block_trial_number_c -1.015
## Pr(>|z|)
## (Intercept) 0.00309
## cur_structure_condition_c 0.14946
## match_condition_c 0.01314
## block_learn 0.24114
## block_trial_number_c < 2e-16
## cur_structure_condition_c:match_condition_c 0.36553
## cur_structure_condition_c:block_learn 0.16341
## match_condition_c:block_learn 0.01654
## cur_structure_condition_c:block_trial_number_c 0.03847
## match_condition_c:block_trial_number_c 0.27789
## block_learn:block_trial_number_c 0.07468
## cur_structure_condition_c:match_condition_c:block_learn 0.86919
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.40583
## cur_structure_condition_c:block_learn:block_trial_number_c 0.37249
## match_condition_c:block_learn:block_trial_number_c 0.09650
## cur_structure_condition_c:match_condition_c:block_learn:block_trial_number_c 0.31015
##
## (Intercept) **
## cur_structure_condition_c
## match_condition_c *
## block_learn
## block_trial_number_c ***
## cur_structure_condition_c:match_condition_c
## cur_structure_condition_c:block_learn
## match_condition_c:block_learn *
## cur_structure_condition_c:block_trial_number_c *
## match_condition_c:block_trial_number_c
## block_learn:block_trial_number_c .
## cur_structure_condition_c:match_condition_c:block_learn
## cur_structure_condition_c:match_condition_c:block_trial_number_c
## cur_structure_condition_c:block_learn:block_trial_number_c
## match_condition_c:block_learn:block_trial_number_c .
## cur_structure_condition_c:match_condition_c:block_learn:block_trial_number_c
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation matrix not shown by default, as p = 16 > 12.
## Use print(x, correlation=TRUE) or
## vcov(x) if you need it
Recenter the model on the generalization block
m <- glmer(max_reward_choice ~ cur_structure_condition_c*match_condition_c*block_gen*block_trial_number_c+ (1+block_gen*block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial,glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=100000)))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ cur_structure_condition_c * match_condition_c *
## block_gen * block_trial_number_c + (1 + block_gen * block_trial_number_c |
## subject) + (1 | choiceImage)
## Data: d
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
##
## AIC BIC logLik deviance df.resid
## 8871.0 9064.6 -4408.5 8817.0 9573
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -88.210 -0.496 0.068 0.470 4.845
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.185684 1.08889
## subject (Intercept) 5.708779 2.38931
## block_gen 6.340497 2.51803 0.66
## block_trial_number_c 0.007478 0.08648 0.88 0.58
## block_gen:block_trial_number_c 0.008227 0.09070 0.65 0.81 0.76
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate
## (Intercept) 0.98193
## cur_structure_condition_c -1.52733
## match_condition_c 2.34499
## block_gen 0.32276
## block_trial_number_c 0.08154
## cur_structure_condition_c:match_condition_c -0.97904
## cur_structure_condition_c:block_gen -0.91974
## match_condition_c:block_gen 1.29850
## cur_structure_condition_c:block_trial_number_c -0.05149
## match_condition_c:block_trial_number_c 0.05176
## block_gen:block_trial_number_c 0.02022
## cur_structure_condition_c:match_condition_c:block_gen -0.21509
## cur_structure_condition_c:match_condition_c:block_trial_number_c -0.07308
## cur_structure_condition_c:block_gen:block_trial_number_c -0.02188
## match_condition_c:block_gen:block_trial_number_c 0.03619
## cur_structure_condition_c:match_condition_c:block_gen:block_trial_number_c -0.04927
## Std. Error
## (Intercept) 0.26562
## cur_structure_condition_c 0.50692
## match_condition_c 0.50595
## block_gen 0.27533
## block_trial_number_c 0.01033
## cur_structure_condition_c:match_condition_c 1.00419
## cur_structure_condition_c:block_gen 0.65870
## match_condition_c:block_gen 0.54151
## cur_structure_condition_c:block_trial_number_c 0.01995
## match_condition_c:block_trial_number_c 0.01986
## block_gen:block_trial_number_c 0.01134
## cur_structure_condition_c:match_condition_c:block_gen 1.30817
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.03925
## cur_structure_condition_c:block_gen:block_trial_number_c 0.02451
## match_condition_c:block_gen:block_trial_number_c 0.02177
## cur_structure_condition_c:match_condition_c:block_gen:block_trial_number_c 0.04846
## z value
## (Intercept) 3.697
## cur_structure_condition_c -3.013
## match_condition_c 4.635
## block_gen 1.172
## block_trial_number_c 7.895
## cur_structure_condition_c:match_condition_c -0.975
## cur_structure_condition_c:block_gen -1.396
## match_condition_c:block_gen 2.398
## cur_structure_condition_c:block_trial_number_c -2.581
## match_condition_c:block_trial_number_c 2.607
## block_gen:block_trial_number_c 1.783
## cur_structure_condition_c:match_condition_c:block_gen -0.164
## cur_structure_condition_c:match_condition_c:block_trial_number_c -1.862
## cur_structure_condition_c:block_gen:block_trial_number_c -0.893
## match_condition_c:block_gen:block_trial_number_c 1.662
## cur_structure_condition_c:match_condition_c:block_gen:block_trial_number_c -1.017
## Pr(>|z|)
## (Intercept) 0.000218
## cur_structure_condition_c 0.002587
## match_condition_c 3.57e-06
## block_gen 0.241086
## block_trial_number_c 2.89e-15
## cur_structure_condition_c:match_condition_c 0.329585
## cur_structure_condition_c:block_gen 0.162625
## match_condition_c:block_gen 0.016488
## cur_structure_condition_c:block_trial_number_c 0.009839
## match_condition_c:block_trial_number_c 0.009141
## block_gen:block_trial_number_c 0.074658
## cur_structure_condition_c:match_condition_c:block_gen 0.869400
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.062580
## cur_structure_condition_c:block_gen:block_trial_number_c 0.371892
## match_condition_c:block_gen:block_trial_number_c 0.096422
## cur_structure_condition_c:match_condition_c:block_gen:block_trial_number_c 0.309252
##
## (Intercept) ***
## cur_structure_condition_c **
## match_condition_c ***
## block_gen
## block_trial_number_c ***
## cur_structure_condition_c:match_condition_c
## cur_structure_condition_c:block_gen
## match_condition_c:block_gen *
## cur_structure_condition_c:block_trial_number_c **
## match_condition_c:block_trial_number_c **
## block_gen:block_trial_number_c .
## cur_structure_condition_c:match_condition_c:block_gen
## cur_structure_condition_c:match_condition_c:block_trial_number_c .
## cur_structure_condition_c:block_gen:block_trial_number_c
## match_condition_c:block_gen:block_trial_number_c .
## cur_structure_condition_c:match_condition_c:block_gen:block_trial_number_c
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation matrix not shown by default, as p = 16 > 12.
## Use print(x, correlation=TRUE) or
## vcov(x) if you need it
trying to sort out how to look at individual conditions and blocks
m <- glmer(max_reward_choice ~ cur_structure_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00326546 (tol = 0.002, component 1)
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula:
## max_reward_choice ~ cur_structure_condition_c * block_trial_number_c +
## (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: d
##
## AIC BIC logLik deviance df.resid
## 9727.9 9785.3 -4856.0 9711.9 9592
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -61.540 -0.584 0.129 0.578 4.434
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.070949 1.03487
## subject (Intercept) 2.822172 1.67993
## block_trial_number_c 0.002424 0.04923 0.82
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value
## (Intercept) 0.540477 0.184289 2.933
## cur_structure_condition_c -0.487870 0.074955 -6.509
## block_trial_number_c 0.051945 0.005535 9.385
## cur_structure_condition_c:block_trial_number_c -0.014268 0.004723 -3.021
## Pr(>|z|)
## (Intercept) 0.00336 **
## cur_structure_condition_c 7.58e-11 ***
## block_trial_number_c < 2e-16 ***
## cur_structure_condition_c:block_trial_number_c 0.00252 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cr_s__ blc___
## cr_strctr__ -0.001
## blck_trl_n_ 0.714 -0.009
## cr_st__:___ -0.006 0.147 -0.009
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.00326546 (tol = 0.002, component 1)
m <- glmer(max_reward_choice ~ match_condition_c*block_trial_number_c*block_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.0591377 (tol = 0.002, component 1)
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ match_condition_c * block_trial_number_c *
## block_c + (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: d
##
## AIC BIC logLik deviance df.resid
## 9704.6 9790.6 -4840.3 9680.6 9588
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -64.509 -0.584 0.130 0.579 4.570
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.075042 1.03684
## subject (Intercept) 2.409021 1.55210
## block_trial_number_c 0.002417 0.04916 0.82
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value
## (Intercept) 0.543771 0.172797 3.147
## match_condition_c 1.443057 0.319467 4.517
## block_trial_number_c 0.051998 0.005534 9.395
## block_c -0.092464 0.058178 -1.589
## match_condition_c:block_trial_number_c 0.025082 0.010945 2.292
## match_condition_c:block_c 0.838523 0.118100 7.100
## block_trial_number_c:block_c -0.001361 0.003934 -0.346
## match_condition_c:block_trial_number_c:block_c 0.005426 0.007861 0.690
## Pr(>|z|)
## (Intercept) 0.00165 **
## match_condition_c 6.27e-06 ***
## block_trial_number_c < 2e-16 ***
## block_c 0.11199
## match_condition_c:block_trial_number_c 0.02193 *
## match_condition_c:block_c 1.25e-12 ***
## block_trial_number_c:block_c 0.72940
## match_condition_c:block_trial_number_c:block_c 0.49009
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) mtch__ blc___ blck_c mt__:___ mt__:_ b___:_
## mtch_cndtn_ 0.023
## blck_trl_n_ 0.706 0.040
## block_c 0.001 0.002 0.000
## mtch_c_:___ 0.037 0.763 0.068 0.007
## mtch_cnd_:_ 0.005 0.011 0.013 0.127 0.003
## blck_tr__:_ -0.001 0.003 0.006 0.159 0.009 0.106
## mtc__:___:_ 0.004 0.001 0.008 0.107 0.007 0.166 0.111
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.0591377 (tol = 0.002, component 1)
m <- glmer(max_reward_choice ~ match_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=filter(d,block==2), family=binomial)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00482086 (tol = 0.002, component 1)
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ match_condition_c * block_trial_number_c +
## (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: filter(d, block == 2)
##
## AIC BIC logLik deviance df.resid
## 3918.6 3970.4 -1951.3 3902.6 4792
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -47.118 -0.368 0.022 0.348 7.633
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 4.650239 2.15644
## subject (Intercept) 8.345391 2.88884
## block_trial_number_c 0.009313 0.09651 0.86
## Number of obs: 4800, groups: choiceImage, 255; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.76174 0.33594 2.268 0.0234 *
## match_condition_c 2.36000 0.60452 3.904 9.47e-05 ***
## block_trial_number_c 0.08098 0.01137 7.125 1.04e-12 ***
## match_condition_c:block_trial_number_c 0.04376 0.02172 2.015 0.0439 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) mtch__ blc___
## mtch_cndtn_ 0.042
## blck_trl_n_ 0.743 0.068
## mtch_c_:___ 0.057 0.816 0.093
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.00482086 (tol = 0.002, component 1)
m <- glmer(max_reward_choice ~ match_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=filter(d,block==1), family=binomial)
summary(m)#not really sure why there should be a match effect here... Noise?
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ match_condition_c * block_trial_number_c +
## (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: filter(d, block == 1)
##
## AIC BIC logLik deviance df.resid
## 4321.7 4373.5 -2152.8 4305.7 4792
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -11.1178 -0.3982 0.1015 0.4471 6.8175
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 3.607795 1.89942
## subject (Intercept) 4.671596 2.16139
## block_trial_number_c 0.004254 0.06522 0.78
## Number of obs: 4800, groups: choiceImage, 251; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.458122 0.257661 1.778 0.0754 .
## match_condition_c 1.034323 0.449788 2.300 0.0215 *
## block_trial_number_c 0.063418 0.007741 8.192 2.57e-16 ***
## match_condition_c:block_trial_number_c 0.011691 0.015113 0.774 0.4392
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) mtch__ blc___
## mtch_cndtn_ 0.018
## blck_trl_n_ 0.616 0.036
## mtch_c_:___ 0.029 0.707 0.050
## learning block
# m <- glmer(max_reward_choice ~ structure_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=filter(d,block==1), family=binomial)
# summary(m)
#
# # re-run so I don't have to re-label things
# m <- glmer(max_reward_choice ~ structure_condition*block_trial_number+ (1+block_trial_number|subject)+(1|choiceImage),data=filter(d,block==1), family=binomial)
# summary(m)
#
# sjPlot::plot_model(m, type = "pred", terms = c("block_trial_number", "structure_condition"),
# show.data = T,
# jitter = .01,
# title = "",
# axis.title = c("Trial", "Reward Maximizing Choices"),
# legend.title = "Structure Condition",
# colors = c( "orange3", "green4"),
# auto.label = FALSE)+
# theme_classic(base_size = 14, base_family = "")
# overall (same model as in section above)
m <- glmer(max_reward_choice ~ cur_structure_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=d, family=binomial)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00326546 (tol = 0.002, component 1)
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula:
## max_reward_choice ~ cur_structure_condition_c * block_trial_number_c +
## (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: d
##
## AIC BIC logLik deviance df.resid
## 9727.9 9785.3 -4856.0 9711.9 9592
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -61.540 -0.584 0.129 0.578 4.434
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 1.070949 1.03487
## subject (Intercept) 2.822172 1.67993
## block_trial_number_c 0.002424 0.04923 0.82
## Number of obs: 9600, groups: choiceImage, 256; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value
## (Intercept) 0.540477 0.184289 2.933
## cur_structure_condition_c -0.487870 0.074955 -6.509
## block_trial_number_c 0.051945 0.005535 9.385
## cur_structure_condition_c:block_trial_number_c -0.014268 0.004723 -3.021
## Pr(>|z|)
## (Intercept) 0.00336 **
## cur_structure_condition_c 7.58e-11 ***
## block_trial_number_c < 2e-16 ***
## cur_structure_condition_c:block_trial_number_c 0.00252 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cr_s__ blc___
## cr_strctr__ -0.001
## blck_trl_n_ 0.714 -0.009
## cr_st__:___ -0.006 0.147 -0.009
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.00326546 (tol = 0.002, component 1)
m <- glmer(max_reward_choice ~ cur_structure_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=filter(d,block==2), family=binomial)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00644451 (tol = 0.002, component 1)
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula:
## max_reward_choice ~ cur_structure_condition_c * block_trial_number_c +
## (1 + block_trial_number_c | subject) + (1 | choiceImage)
## Data: filter(d, block == 2)
##
## AIC BIC logLik deviance df.resid
## 3930.6 3982.4 -1957.3 3914.6 4792
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -43.586 -0.366 0.022 0.345 7.375
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 4.713247 2.17100
## subject (Intercept) 9.526255 3.08646
## block_trial_number_c 0.009708 0.09853 0.86
## Number of obs: 4800, groups: choiceImage, 255; subject, 100
##
## Fixed effects:
## Estimate Std. Error z value
## (Intercept) 0.78142 0.35435 2.205
## cur_structure_condition_c -1.47777 0.64598 -2.288
## block_trial_number_c 0.08256 0.01163 7.099
## cur_structure_condition_c:block_trial_number_c -0.04878 0.02247 -2.171
## Pr(>|z|)
## (Intercept) 0.0274 *
## cur_structure_condition_c 0.0222 *
## block_trial_number_c 1.26e-12 ***
## cur_structure_condition_c:block_trial_number_c 0.0299 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cr_s__ blc___
## cr_strctr__ -0.050
## blck_trl_n_ 0.746 -0.088
## cr_st__:___ -0.075 0.815 -0.138
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.00644451 (tol = 0.002, component 1)
# generalization block
m <- glmer(max_reward_choice ~ cur_structure_condition_c*match_condition_c*block_trial_number_c+ (1+block_trial_number_c|subject)+(1|choiceImage),data=filter(d,block==2), family=binomial,glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=20000)))
summary(m)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: max_reward_choice ~ cur_structure_condition_c * match_condition_c *
## block_trial_number_c + (1 + block_trial_number_c | subject) +
## (1 | choiceImage)
## Data: filter(d, block == 2)
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 20000))
##
## AIC BIC logLik deviance df.resid
## 3917.1 3994.8 -1946.6 3893.1 4788
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -41.738 -0.369 0.021 0.346 7.838
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## choiceImage (Intercept) 4.6157 2.14842
## subject (Intercept) 7.9295 2.81594
## block_trial_number_c 0.0089 0.09434 0.86
## Number of obs: 4800, groups: choiceImage, 255; subject, 100
##
## Fixed effects:
## Estimate
## (Intercept) 0.80352
## cur_structure_condition_c -1.54997
## match_condition_c 2.45284
## block_trial_number_c 0.08329
## cur_structure_condition_c:match_condition_c -0.89907
## cur_structure_condition_c:block_trial_number_c -0.05159
## match_condition_c:block_trial_number_c 0.04894
## cur_structure_condition_c:match_condition_c:block_trial_number_c -0.06630
## Std. Error
## (Intercept) 0.33109
## cur_structure_condition_c 0.59623
## match_condition_c 0.59385
## block_trial_number_c 0.01132
## cur_structure_condition_c:match_condition_c 1.17985
## cur_structure_condition_c:block_trial_number_c 0.02185
## match_condition_c:block_trial_number_c 0.02158
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.04283
## z value
## (Intercept) 2.427
## cur_structure_condition_c -2.600
## match_condition_c 4.130
## block_trial_number_c 7.355
## cur_structure_condition_c:match_condition_c -0.762
## cur_structure_condition_c:block_trial_number_c -2.360
## match_condition_c:block_trial_number_c 2.268
## cur_structure_condition_c:match_condition_c:block_trial_number_c -1.548
## Pr(>|z|)
## (Intercept) 0.01523 *
## cur_structure_condition_c 0.00933 **
## match_condition_c 3.62e-05 ***
## block_trial_number_c 1.91e-13 ***
## cur_structure_condition_c:match_condition_c 0.44605
## cur_structure_condition_c:block_trial_number_c 0.01825 *
## match_condition_c:block_trial_number_c 0.02336 *
## cur_structure_condition_c:match_condition_c:block_trial_number_c 0.12166
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cr_s__ mtch__ blc___ cr___:__ c___:___ m__:__
## cr_strctr__ -0.063
## mtch_cndtn_ 0.053 -0.043
## blck_trl_n_ 0.741 -0.107 0.086
## cr_str__:__ -0.035 0.051 -0.049 -0.055
## cr_st__:___ -0.091 0.818 -0.058 -0.156 0.067
## mtch_c_:___ 0.072 -0.055 0.815 0.117 -0.069 -0.084
## c___:__:___ -0.049 0.068 -0.070 -0.084 0.814 0.099 -0.102
sjPlot::plot_model(m, type = "pred", terms = c("block_trial_number_c", "match_condition_c","cur_structure_condition_c"),
jitter = .01,
title = "Structure Condition",
axis.title = c("Trial", "Reward Maximizing Choices"),
legend.title = "Match Condition",
colors = c( "firebrick", "darkblue")) +
theme_classic(base_size = 14, base_family = "")
## Data were 'prettified'. Consider using `terms="block_trial_number_c [all]"` to get smooth plots.