knitr::purl()
can be executed. (#328)New features:
draw_indices
parameter in spread_draws()
and
gather_draws()
. (#323)Bug fixes:
nest_rvars()
and unnest_rvars()
. (#316)spread_draws()
on R >= 4.5.Deprecations:
recover_types()
with character vectors is now deprecated, as the
expected order of the levels of the variable is ambiguous, leading to
hard-to-spot errors where indices and names do not line up correctly. A
warning message has been added suggesting the use of factors instead. (#312)Bug fixes:
residual_draws()
more robust (due to change in default value
of the method
argument to brms::residuals()
). (#313)Bug fixes:
summarise_draws.grouped_df()
due to changes in how
posterior::summarise_draws()
handles the num_args
argument.epred
, linpred
, and
predicted
in add_XXX_rvars()
.dplyr
and tidyr
.fitted_draws()
deprecation warning (#288).epred_draws()
on rethinking models.posterior::as_draws_df()
instead of As.mcmc.list()
for rstan
objects.stat_...
and stat_dist_...
)@examplesIf
for conditional examples (#294)compose_data()
are overwritten by generated names (#295)Minor update for compatibility with brms 2.16.0.
Breaking changes and deprecations:
[add_]XXX_draws()
(predicted_draws()
, add_predicted_draws()
, etc)
functions have been substantially restructured:
add_fitted_draws()
and fitted_draws()
are now deprecated, along with the
scale
argument. Several years' teaching experience has demonstrated that
"fitted" is a very confusing name for students. Use the more-specific
[add_
]linpred_draws()
if you want draws from the linear predictor or the new
[add_
]epred_draws()
if you want draws from the expectation of the
posterior predictive (which is what fitted_draws()
was most typically
used for).value
, but
retain function-specific default column names. E.g. the prediction
argument
for predicted_draws()
is now spelled value
but has a default of ".prediction"
.
One breaking change is that the default output column for linpred_draws()
is now ".linpred"
instead of ".value"
. This should make it easier to
combine outputs across multiple functions while also making it easier to
remember the name of the argument that changes the output column name.n
argument is now spelled ndraws
to be more consistent with
terminology in the posterior
package and to prevent partial argument
name matching bugs with newdata
.object
instead of
model
, in order to match with argument names in posterior_predict()
, etc.
This was necessary to prevent partial argument name matching bugs with
certain model types in rstanarm
that have an m
argument to their
prediction functions.New features:
posterior
package:
_rvars
counterparts to the _draws
family of functions,
including spread_rvars()
, gather_rvars()
, epred_rvars()
, linpred_rvars()
,
and predicted_rvars()
, which add columns of posterior::rvar()
objects
to data frames instead of long-format columns of draws. These can be
easier to read and take up less memory than the long-format data frames
of draws. See vignette("tidy-posterior")
for examples.nest_rvars()
and unnest_rvars()
functions for converting between
data frames of rvar
s and long format data frames of draws.tidy_draws()
has been rebuilt on top of posterior::as_draws_df()
, which
means it should support even more model types and benefit from efficiency
improvements in posterior
. This means that cmdstanr
is now supported,
for example.posterior::summarise_draws()
for grouped data frames
of draws: summarise_draws.grouped_df()
compare_levels()
now supports data frames of posterior::rvar()
s.epred_draws()
, linpred_draws()
, and predicted_draws()
functions should
now support any models that implement posterior_epred()
, posterior_linpred()
,
and posterior_predict()
so long as they take a newdata
argument.forcats
, plyr
, and purrr
.seed
when subsampling to several functions (#276).New documentation:
vignette("tidy-posterior")
describing the use of tidybayes
with posterior
,
and particularly the posterior::rvar()
data type. This vignette also includes
an updated version of the ordinal regression example from vignette("tidy-brms")
,
now with an illustration of the relationship between the latent linear predictor
and the category-level probabilities.Bug fixes:
tidy_draws()
if retrieving them results in an error (#244)compare_levels()
(#272)emmeans
package to be used with compare_levels()
via the new emmeans_comparison()
function (#272)tidybayes
into tidybayes
and ggdist
(#250). ggdist
now contains all stats/geoms from
tidybayes (except deprecated ones), all support functions for stats/geoms (such as point_interval()
),
vignette("slabinterval")
, and vignette("freq-uncertainty-vis")
. tidybayes
retains all other functions,
and re-exports all ggdist
functions for now.ggplot2
. If needed, this can be overridden using the existing orientation
parameter.
h
-suffix geoms are now deprecated. The h
-suffix geoms have been left in tidybayes
and give a
deprecation warning when used; they cannot be used from ggdist
directly.h
-suffix point_interval()
functions are also deprecated, since they are not needed in tidybayes
nor in ggplot2::stat_summary()
.geom_interval()
, geom_pointinterval()
, and geom_lineribbon()
no longer automatically set the
ymin
and ymax
aesthetics if .lower
or .upper
are present in the data. This allows them to work
better with automatic orientation detection (and was a bad feature to have existed in the first place
anyway). The deprecated tidybayes::geom_intervalh()
and tidybayes::geom_pointintervalh()
still
automatically set those aesthetics, since they are deprecated anyway (so supporting the old behavior
is fine in these functions).geom_lineribbon()
/stat_lineribbon()
now supports a step
argument for creating stepped lineribbons (#249).
H/T to Solomon Kurz for the suggestion.ggdist
now has its own implementation of the scaled and shifted Student's t distribution (dstudent_t()
,
qstudent_t()
, etc), since it is very useful for visualizing confidence distributions. That is re-exported
in tidybayes
as well`.Minor fixes for changes in tibble 3.0.0
Various minor forward and backward compatibility fixes:
stringsAsFactors
issues for R 4[[<-
for R 4parse()
instead of str2lang()
for compatibility with R <= 3.6geom_slabinterval()
and stat_slabinterval()
"meta-geom" (#84). This has enabled a bunch of new geoms to be created (see vignette("slabinterval")
and fixed a number of outstanding issues:
position = "dodge"
correctly (#180)geom_dots()
and geom_dotsinterval()
(#210). These include a quantiles
parameter on the stats to make it easy to create quantile dotplots.stat_dist_...
family of geoms for both
the geom_slabinterval()
family and geom_lineribbon()
(see stat_dist_slabinterval()
and stat_dist_lineribbon()
).parse_dist()
, which parses distribution specifications (like normal(0,1)
) into tidy columns, can
be combined with the stat_dist_...
family of geoms to easily to visualize priors (e.g. from brms
).dlkjcorr_marginal()
and company), combined
with parse_dist()
and the stat_dist_...
family make it easy to visualize the marginal LKJ prior on
a cell in a correlation matrix. (#191 #192)vignette("freq-uncertainty-vis")
,
also made possible by the new stat_dist_...
family of geoms (#188)tidy_draws()
can now be applied to already-tidied data frames, allowing dependent functions (like spread_draws()
and gather_draws()
) to also be applied to data frames directly (#82). This can be a useful optimization in workflows
where the initial tidying is slow but spreading/gathering is fast (see discussion in #144)stat_dist_slabh()
.
An example of this usage is in vignette("tidy-brms")
.hdi()
now uses trimmed densities by default to avoid odd behavior with bounded distributions (#165).compare_levels(comparison = )
now uses a modern tidy approach to dealing with unevaluated expressions,
so rlang::exprs()
can be used in place of plyr::.()
(#174, #175)geom_lineribbon()
now works with ggnewscale
(#178)fitted_draws()
/predicted_draws()
give more helpful error messages on unsupported models (#177)New features and documentation:
Bug fixes:
New features and documentation:
Minor changes:
predicted_draws()
, closes #134emm_list
in gather_emmeans_draws()
, closes #126geom_lineribbon()
color black, closes #153gather_pairs
method for creating custom scatterplot matrices (and more!)NA
values are now better supported in point_interval
, and it has an na.rm
argument (#123)Suggests
Major changes: