# Results summary plot
anpan_summary <- tibble(
coverage = c("Null", "x1", "x3", "x5"),
elpd_diff = -c(
anpan_res_bl$loo$comparison["pglmm_fit", "elpd_diff"],
anpan_res_c1$loo$comparison["base_fit", "elpd_diff"],
anpan_res_c3$loo$comparison["base_fit", "elpd_diff"],
anpan_res_c5$loo$comparison["base_fit", "elpd_diff"]
),
se_diff = c(
anpan_res_bl$loo$comparison["pglmm_fit", "se_diff"],
anpan_res_c1$loo$comparison["base_fit", "se_diff"],
anpan_res_c3$loo$comparison["base_fit", "se_diff"],
anpan_res_c5$loo$comparison["base_fit", "se_diff"]
)
) %>%
mutate(
abs_elpd = abs(elpd_diff),
z_score = abs_elpd / se_diff
)
anpan_summary$coverage <- factor(anpan_summary$coverage,
levels = c("Null", "x1","x3","x5"))
anpan_summary <- anpan_summary %>%
mutate(
x = as.numeric(coverage),
signal = abs(elpd_diff) / se_diff
)
ggplot(anpan_summary, aes(x = x, y = elpd_diff, group = 1)) +
# uncertainty
geom_errorbar(
aes(
ymin = elpd_diff - se_diff,
ymax = elpd_diff + se_diff
),
width = 0.1
) +
# trajectory
geom_line(linewidth = 1) +
# points
geom_point(size = 4) +
# reference line
geom_hline(yintercept = 0, linetype = "dashed") +
# threshold (your rule)
geom_hline(yintercept = 2, linetype = "dotted", color = "red") +
scale_x_continuous(
breaks = 1:4,
labels = c("Null", "1x","3x","5x")
) +
theme_classic(base_size = 16) +
labs(
x = "Coverage",
y = expression(Delta~ELPD~abs(phylogeny - base))
)