Support for posterior::rvar
-type column in data frames.
For example, a data frame df
with an rvar
column ".pred"
can now be
called directly via p_direction(df, rvar_col = ".pred")
.
Added support for {marginaleffects}
The ROPE or threshold ranges in rope()
, describe_posterior()
, p_significance()
and equivalence_test()
can now be specified as a list. This allows for different
ranges for different parameters.
Results from objects generated by {emmeans}
(emmGrid
/emm_list
) now
return results with appended grid-data.
Usability improvements for p_direction()
:
Results from p_direction()
can directly be used in pd_to_p()
.
p_direction()
gets an as_p
argument, to directly convert pd-values into
frequentist p-values.
p_direction()
gets a remove_na
argument, which defaults to TRUE
, to
remove NA
values from the input before calculating the pd-values.
Besides the existing as.numeric()
method, p_direction()
now also has an
as.vector()
method.
p_significance()
now accepts non-symmetric ranges for the threshold
argument.
p_to_pd()
now also works with data frames returned by p_direction()
. If
a data frame contains a pd
, p_direction
or PD
column name, this is assumed
to be the pd-values, which are then converted to p-values.
p_to_pd()
for data frame inputs gets a as.numeric()
and as.vector()
method.
group
, at
, group_by
and split_by
will be deprecated
in future releases of easystats packages. Please use by
instead. This
affects following functions in bayestestR: estimate_density()
.bayesian_as_frequentist()
now supports more model families from Bayesian
models that can be successfully converted to their frequentists counterparts.
bayesfactor_models()
now throws an informative error when Bayes factors for
comparisons could not be calculated.
bayesian_as_frequentist()
for brms models with 0 + Intercept
specification in the model formula.pd_to_p()
now returns 1 and a warning for values smaller than 0.5.
map_estimate()
, p_direction()
, p_map()
, and p_significance()
now
return a data-frame when the input is a numeric vector. (making the output
consistently a data frame for all inputs.)
Argument posteriors
was renamed into posterior
. Before, there were a mix
of both spellings, now it is consistently posterior
.
Fixed issues in various format()
methods, which did not work properly for
some few functions (like p_direction()
).
Fixed issue in estimate_density()
for double vectors that also had other
class attributes.
Fixed several minor issues and tests.
Improved speed performance when functions are called using do.call()
.
Improved speed performance to bayesfactor_models()
for brmsfit
objects
that already included a marglik
element in the model object.
as.logical()
for bayesfactor_restricted()
results, extracts the boolean
vector(s) the mark which draws are part of the order restriction.p_map()
gains a new null
argument to specify any non-0 nulls.
Fixed non-working examples for ci(method = "SI")
.
Fixed wrong calculation of rope range for model objects in describe_posterior()
.
Some smaller bug fixes.
The minimum needed R version has been bumped to 3.6
.
contr.equalprior(contrasts = FALSE)
(previously contr.orthonorm
) no longer returns an identity matrix, but a shifted diag(n) - 1/n
, for consistency.
p_to_bf()
, to convert p-values into Bayes factors. For more accurate approximate Bayes factors, use bic_to_bf()
.rvar
from package posterior.contr.equalprior
(previously contr.orthonorm
) gains two new functions: contr.equalprior_pairs
and contr.equalprior_deviations
to aide in setting more intuitive priors.contr.equalprior
to be more explicit about its function.p_direction()
now accepts objects of class parameters_model()
(from
parameters::model_parameters()
), to compute probability of direction for
parameters of frequentist models.Bayesfactor_models()
for frequentist models now relies on the updated insight::get_loglikelihood()
. This might change some results for REML based models. See documentation.
estimate_density()
argument group_by
is renamed at
.
All distribution_*(random = FALSE)
functions now rely on ppoints()
, which will result in slightly different results, especially with small n
s.
Uncertainty estimation now defaults to "eti"
(formerly was "hdi"
).
bayestestR functions now support draws
objects from package posterior.
rope_range()
now handles log(normal)-families and models with log-transformed outcomes.
New function spi()
, to compute shortest probability intervals. Furthermore, the "spi"
option was added as new method to compute uncertainty intervals.
bci()
for some objects incorrectly returned the equal-tailed intervals.describe_posterior()
gains a plot()
method, which is a short cut for
plot(estimate_density(describe_posterior()))
.Fixed issues related to last brms update.
Fixed bug in describe_posterior.BFBayesFactor()
where Bayes factors were missing from out put ( #442 ).
log(BF)
(column name log_BF
).
Printing is unaffected. To retrieve the raw BFs, you can run exp(result$log_BF)
.bci()
(and its alias bcai()
) to compute bias-corrected and accelerated
bootstrap intervals. Along with this new function, ci()
and
describe_posterior()
gain a new ci_method
type, "bci"
.contr.bayes
has been renamed contr.orthonorm
to be more explicit about its function.The default ci
width has been changed to 0.95 instead of 0.89 (see
here). This should
not come as a surprise to the long-time users of bayestestR
as we have been
warning about this impending change for a while now :)
Column names for bayesfactor_restricted()
are now p_prior
and
p_posterior
(was Prior_prob
and Posterior_prob
), to be consistent with
bayesfactor_inclusion()
output.
Removed the experimental function mhdior
.
Support for blavaan
models.
Support for blrm
models (rmsb).
Support for BGGM
models (BGGM).
check_prior()
and describe_prior()
should now also work for more ways of
prior definition in models from rstanarm or brms.
Fixed bug in print()
method for the mediation()
function.
Fixed remaining inconsistencies with CI values, which were not reported as
fraction for rope()
.
Fixed issues with special prior definitions in check_prior()
,
describe_prior()
and simulate_prior()
.
Support for bamlss
models.
Roll-back R dependency to R >= 3.4.
.stanreg
methods gain a component
argument, to also include auxiliary
parameters.bayesfactor_parameters()
no longer errors for no reason when computing
extremely un/likely direction hypotheses.
bayesfactor_pointull()
/ bf_pointull()
are now bayesfactor_pointnull()
/
bf_pointnull()
(can you spot the difference? #363 ).
sexit()
, a function for sequential effect existence and significance testing
(SEXIT).Added startup-message to warn users that default ci-width might change in a future update.
Added support for mcmc.list objects.
unupdate()
gains a newdata
argument to work with brmsfit_multiple
models.
Fixed issue in Bayes factor vignette (don't evaluate code chunks if packages not available).
Added as.matrix()
function for bayesfactor_model
arrays.
unupdate()
, a utility function to get Bayesian models un-fitted from the
data, representing the priors only.
ci()
supports emmeans
- both Bayesian and frequentist ( #312 - cross fix
with parameters
)Fixed issue with default rope range for BayesFactor
models.
Fixed issue in collinearity-check for rope()
for models with less than two
parameters.
Fixed issue in print-method for mediation()
with stanmvreg
-models, which
displays the wrong name for the response-value.
Fixed issue in effective_sample()
for models with only one parameter.
rope_range()
for BayesFactor
models returns non-NA
values ( #343 )
mediation()
, to compute average direct and average causal mediation effects
of multivariate response models (brmsfit
, stanmvreg
).bayesfactor_parameters()
works with R<3.6.0
.Preliminary support for stanfit objects.
Added support for bayesQR objects.
weighted_posteriors()
can now be used with data frames.
Revised print()
for describe_posterior()
.
Improved value formatting for Bayesfactor functions.
Link transformation are now taken into account for emmeans
objets. E.g., in
describe_posterior()
.
Fix diagnostic_posterior()
when algorithm is not "sampling".
Minor revisions to some documentations.
Fix CRAN check issues for win-old-release.
describe_posterior()
now also works on
effectsize::standardize_posteriors()
.
p_significance()
now also works on parameters::simulate_model()
.
rope_range()
supports more (frequentis) models.
Fixed issue with plot()
data.frame
-methods of p_direction()
and
equivalence_test()
.
Fix check issues for forthcoming insight-update.
estimate_density()
now also works on grouped data frames.Fixed bug in weighted_posteriors()
to properly weight Intercept-only
BFBayesFactor
models.
Fixed bug in weighted_posteriors()
when models have very low posterior
probability ( #286 ).
Fixed bug in describe_posterior()
, rope()
and equivalence_test()
for
brmsfit models with monotonic effect.
Fixed issues related to latest changes in as.data.frame.brmsfit()
from the
brms package.
Added p_pointnull()
as an alias to p_MAP()
.
Added si()
function to compute support intervals.
Added weighted_posteriors()
for generating posterior samples averaged across
models.
Added plot()
-method for p_significance()
.
p_significance()
now also works for brmsfit-objects.
estimate_density()
now also works for MCMCglmm-objects.
equivalence_test()
gets effects
and component
arguments for stanreg
and brmsfit models, to print specific model components.
Support for mcmc objects (package coda)
Provide more distributions via distribution()
.
Added distribution_tweedie()
.
Better handling of stanmvreg
models for describe_posterior()
,
diagnostic_posterior()
and describe_prior()
.
point_estimate()
: argument centrality
default value changed from 'median'
to 'all'.
p_rope()
, previously as exploratory index, was renamed as mhdior()
(for
Max HDI inside/outside ROPE), as p_rope()
will refer to rope(..., ci = 1)
( #258 )
Fixed mistake in description of p_significance()
.
Fixed error when computing BFs with emmGrid
based on some non-linear models
( #260 ).
Fixed wrong output for percentage-values in print.equivalence_test()
.
Fixed issue in describe_posterior()
for BFBayesFactor
-objects with more
than one model.
convert_bayesian_to_frequentist()
Convert (refit) Bayesian model as
frequentist
distribution_binomial()
for perfect binomial distributions
simulate_ttest()
Simulate data with a mean difference
simulate_correlation()
Simulate correlated datasets
p_significance()
Compute the probability of Practical Significance (ps)
overlap()
Compute overlap between two empirical distributions
estimate_density()
: method = "mixture"
argument added for mixture density
estimation
simulate_prior()
for stanreg-models when autoscale
was set to
FALSE
print()
-methods for functions like rope()
, p_direction()
,
describe_posterior()
etc., in particular for model objects with random
effects and/or zero-inflation componentcheck_prior()
to check if prior is informative
simulate_prior()
to simulate model's priors as distributions
distribution_gamma()
to generate a (near-perfect or random) Gamma
distribution
contr.bayes
function for orthogonal factor coding (implementation from
Singmann & Gronau's bfrms
, used for
proper prior estimation when factor have 3 levels or more. See Bayes factor
vignette ## Changes to functions
Added support for sim
, sim.merMod
(from arm::sim()
) and
MCMCglmm
-objects to many functions (like hdi()
, ci()
, eti()
, rope()
,
p_direction()
, point_estimate()
, ...)
describe_posterior()
gets an effects
and component
argument, to include
the description of posterior samples from random effects and/or zero-inflation
component.
More user-friendly warning for non-supported models in
bayesfactor()
-methods
Fixed bug in bayesfactor_inclusion()
where the same interaction sometimes
appeared more than once (#223)
Fixed bug in describe_posterior()
for stanreg models fitted with
fullrank-algorithm
rope_range()
for binomial model has now a different default (-.18; .18 ;
instead of -.055; .055)
rope()
: returns a proportion (between 0 and 1) instead of a value between 0
and 100
p_direction()
: returns a proportion (between 0.5 and 1) instead of a value
between 50 and 100
(#168)
bayesfactor_savagedickey()
: hypothesis
argument replaced by null
as part
of the new bayesfactor_parameters()
function
density_at()
, p_map()
and map_estimate()
: method
argument added
rope()
: ci_method
argument added
eti()
: Computes equal-tailed intervals
reshape_ci()
: Reshape CIs between wide/long
bayesfactor_parameters()
: New function, replacing
bayesfactor_savagedickey()
, allows for computing Bayes factors against a
point-null or an interval-null
bayesfactor_restricted()
: Function for computing Bayes factors for order
restricted models
bayesfactor_inclusion()
now works with R < 3.6
.equivalence_test()
: returns capitalized output (e.g., Rejected
instead of
rejected
)
describe_posterior.numeric()
: dispersion
defaults to FALSE
for
consistency with the other methods
pd_to_p()
and p_to_pd()
: Functions to convert between probability of
direction (pd) and p-value
Support of emmGrid
objects: ci()
, rope()
, bayesfactor_savagedickey()
,
describe_posterior()
, ...
describe_posterior()
: Fixed column order restoration
bayesfactor_inclusion()
: Inclusion BFs for matched models are more inline
with JASP results.
plotting functions now require the installation of the see
package
estimate
argument name in describe_posterior()
and point_estimate()
changed to centrality
hdi()
, ci()
, rope()
and equivalence_test()
default ci
to 0.89
rnorm_perfect()
deprecated in favour of distribution_normal()
map_estimate()
now returns a single value instead of a dataframe and the
density
parameter has been removed. The MAP density value is now accessible
via attributes(map_output)$MAP_density
describe_posterior()
, describe_prior()
, diagnostic_posterior()
: added
wrapper function
point_estimate()
added function to compute point estimates
p_direction()
: new argument method
to compute pd based on AUC
area_under_curve()
: compute AUC
distribution()
functions have been added
bayesfactor_savagedickey()
, bayesfactor_models()
and
bayesfactor_inclusion()
functions has been added
Started adding plotting methods (currently in the
see
package) for p_direction()
and
hdi()
probability_at()
as alias for density_at()
effective_sample()
to return the effective sample size of Stan-models
mcse()
to return the Monte Carlo standard error of Stan-models
Improved documentation
Improved testing
p_direction()
: improved printing
rope()
for model-objects now returns the HDI values for all parameters as
attribute in a consistent way
Changes legend-labels in plot.equivalence_test()
to align plots with the
output of the print()
-method (#78)
hdi()
returned multiple class attributes (#72)
Printing results from hdi()
failed when ci
-argument had fractional parts
for percentage values (e.g. ci = 0.995
).
plot.equivalence_test()
did not work properly for brms-models (#76).
CRAN initial publication and 0.1.0 release
Added a NEWS.md
file to track changes to the package