# adapted from original_code/competence_effort/Code/main_text/plt.R and original_code/competence_effort/Code/main_text/plot_figures.R
simulation <- read_csv("new_code/memo-sandbox/webppl vs memo/xiang2023-exp1-round3-model_fits_results.csv") |>
select(model, scenario, P) |>
mutate(prob = 100*P)
simulation$scenario <- factor(simulation$scenario, levels = c('F,F;F,F','F,F;F,L','F,L;F,L','F,F;L,L','F,L;L,L','L,L;L,L'), ordered = T)
set.seed(1)
fig3c <- dat %>%
ggplot(aes(scenario, prob, group = model, color = model)) +
geom_line(data = simulation %>% filter(model=='compensatory')) +
geom_line(data = simulation %>% filter(model=='solitary')) +
geom_line(data = simulation %>% filter(model=='joint')) +
geom_point(data = simulation %>% filter(model=='compensatory'), size=.8) +
geom_point(data = simulation %>% filter(model=='solitary'), size=.8) +
geom_point(data = simulation %>% filter(model=='joint'), size=.8) +
stat_summary(data = dat %>% filter(round == 3 & agent == 'A'), fun.data = 'mean_cl_boot', geom = 'errorbar', width = .1) +
stat_summary(data = dat %>% filter(round == 3 & agent == 'A'), fun = 'mean', geom = 'point', size = 1.5) +
scale_color_manual(
name = NULL,
labels = c('Data','Joint effort model','Solitary effort model','Compensatory effort model'),
values = c('#000000','#e35d5e','#004385','#05b2dc'),
limits = c('data','joint','solitary','compensatory'),
guide = ggh4x::guide_stringlegend(position = "top")
) +
theme_minimal() +
theme(legend.text = element_text(face = "bold.italic", size = 18 / .pt)) +
coord_cartesian(ylim = c(0, 100)) +
labs(x='Round 1 and Round 2 outcome', y='Lift probability in Round 3 (%)', color=NULL)
# write temporarily to file to render in qmd
ggsave('./writeup/replication-fig3c.png', plot = fig3c, width=4, height=3)
original.fig3c <- local({
# adapted from original_code/competence_effort/Code/main_text/plot_figures.R
inference <- read.csv('./original_code/competence_effort/Code/main_text/exp1_simulation.csv', header = T, stringsAsFactors = T)
inference$round <- as.factor(inference$round)
inference$model <- factor(inference$model, levels = c('joint','solitary','compensatory','maximum'), ordered = T)
inference$scenario <- factor(inference$scenario, levels = c('F,F;F,F','F,F;F,L','F,L;F,L','F,F;L,L','F,L;L,L','L,L;L,L'), ordered = T)
inference$effort[inference$outcome==0] <- NaN
inference$prob[inference$round==3 & inference$agent=='B'] <- NaN
inference_subset <- inference %>% filter(round == 3 & agent == 'A')
set.seed(1)
original.dat %>%
ggplot(aes(scenario, prob, group = model, color = model)) +
geom_line(data = inference_subset %>% filter(model=='compensatory')) +
geom_line(data = inference_subset %>% filter(model=='solitary')) +
geom_line(data = inference_subset %>% filter(model=='joint')) +
geom_point(data = inference_subset %>% filter(model=='compensatory'), size=.8) +
geom_point(data = inference_subset %>% filter(model=='solitary'), size=.8) +
geom_point(data = inference_subset %>% filter(model=='joint'), size=.8) +
stat_summary(data = original.dat %>% filter(round == 3 & agent == 'A'), fun.data = 'mean_cl_boot', geom = 'errorbar', width = .1) +
stat_summary(data = original.dat %>% filter(round == 3 & agent == 'A'), fun = 'mean', geom = 'point', size = 1.5) +
scale_color_manual(
name = NULL,
labels = c('Data','Joint effort model','Solitary effort model','Compensatory effort model'),
values = c('#000000','#e35d5e','#004385','#05b2dc'),
limits = c('data','joint','solitary','compensatory'),
guide = ggh4x::guide_stringlegend(position = "top")
) +
theme_minimal() +
theme(legend.text = element_text(face = "bold.italic", size = 18 / .pt)) +
coord_cartesian(ylim = c(0, 100)) +
labs(x='Round 1 and Round 2 outcome', y='Lift probability in Round 3 (%)', color=NULL)
})
# write temporarily to file to render in qmd
ggsave('./writeup/original-fig3c.png', plot = original.fig3c, width=4, height=3)
set.seed(1)
fig3c_w_raw_data <- fig3c +
geom_line(aes(group=subject), linetype="solid", linewidth=.25, alpha=.2, data = dat %>% filter(round == 3 & agent == 'A'), position=position_jitter(width=.05, seed=0)) +
geom_point(aes(group=subject), alpha=.2, data = dat %>% filter(round == 3 & agent == 'A'), size=.8, position=position_jitter(width=.05, seed=0))
# write temporarily to file to render in qmd
ggsave('./writeup/replication-fig3c-withrawdata.png', plot = fig3c_w_raw_data, width=6, height=4.5)
fig3c_w_safejoint <- fig3c +
geom_line(data = simulation %>% filter(model=='safe_joint_w_gini')) +
geom_point(data = simulation %>% filter(model=='safe_joint_w_gini'), size=.8) +
scale_color_manual(
name = NULL,
labels = c('Data','Joint effort','Safe joint effort','Solitary effort','Compensatory effort'),
values = c('#000000','#e35d5e','#b60cc5','#004385','#05b2dc'),
limits = c('data','joint','safe_joint_w_gini','solitary','compensatory'),
guide = ggh4x::guide_stringlegend(position = "top")
)
# write temporarily to file to render in qmd
ggsave('./writeup/replication-fig3c-withsafejoint.png', plot = fig3c_w_safejoint, width=6, height=4.5)