Я использую большую библиотеку графиков bayesplot
для визуализации апостериорных вероятностных интервалов из моделей, которые я оцениваю с помощью rstanarm
.Я хочу графически сравнить ничьи из разных моделей, получив задние интервалы для коэффициентов на одном графике.
Представьте, например, что у меня есть 1000 ничьих сзади для трех параметров beta1, beta2, beta3
для двух разных моделей:
# load the plotting library
library(bayesplot)
#> This is bayesplot version 1.6.0
#> - Online documentation and vignettes at mc-stan.org/bayesplot
#> - bayesplot theme set to bayesplot::theme_default()
#> * Does _not_ affect other ggplot2 plots
#> * See ?bayesplot_theme_set for details on theme setting
library(ggplot2)
# generate fake posterior draws from model1
fdata <- matrix(rnorm(1000 * 3), ncol = 3)
colnames(fdata) <- c('beta1', 'beta2', 'beta3')
# fake posterior draws from model 2
fdata2 <- matrix(rnorm(1000 * 3, 1, 2), ncol = 3)
colnames(fdata2) <- c('beta1', 'beta2', 'beta3')
Bayesplot делает фантастические визуализации для отдельных рисунков модели, и это ggplot2 «под капотом», поэтому я могу настроить, как мне будет угодно:
# a nice plot of 1
color_scheme_set("orange")
mcmc_intervals(fdata) + theme_minimal() + ggtitle("Model 1")
# a nice plot of 2
color_scheme_set("blue")
mcmc_intervals(fdata2) + ggtitle("Model 2")
Но чего я хотел бы добиться, так это построить эти две модели вместе на одном и том же графике, чтобы для каждого коэффициента у меня было два интервала и я мог различить, какой интервал равенкоторый путем сопоставления цвета с моделью.Однако я не могу понять, как это сделать.Некоторые вещи, которые не работают:
# doesnt work
mcmc_intervals(fdata) + mcmc_intervals(fdata2)
#> Error: Don't know how to add mcmc_intervals(fdata2) to a plot
# appears to pool
mcmc_intervals(list(fdata, fdata2))
Есть идеи о том, как я могу это сделать?Или как сделать это вручную, учитывая матрицы задних розыгрышей?
Создано в 2018-10-18 пакетом Представить (v0.2.1)