NEWS | R Documentation |

Introduce the auxiliary parameter

`disc`

('discrimination') to be used in ordinal models. By default it is not estimated but fixed to one.Create

`marginal_effects`

plots of two-way interactions of variables that were not explicitely modeled as interacting.

Move rstan to 'Imports' and Rcpp to 'Depends' in order to avoid loading rstan into the global environment automatically.

Fix a bug leading to unexpected errors in some S3 methods when applied to ordinal models.

Fit error-in-variables models using function

`me`

in the model formulae.Fit multi-membership models using function

`mm`

in grouping terms.Add families

`exgaussian`

(exponentially modified Gaussian distribution) and`wiener`

(Wiener diffusion model distribution) specifically suited to handle for response times.Add the

`lasso`

prior as an alternative to the`horseshoe`

prior for sparse models.Add the methods

`log_posterior`

,`nuts_params`

,`rhat`

, and`neff_ratio`

for`brmsfit`

objects to conveniently access quantities used to diagnose sampling behavior.Combine chains in method

`as.mcmc`

using argument`combine_chains`

.Estimate the auxiliary parameter

`sigma`

in models with known standard errors of the response by setting argument`sigma`

to`TRUE`

in addition function`se`

.Allow visualizing two-dimensional smooths with the

`marginal_smooths`

method.

Require argument

`data`

to be explicitely specified in all user facing functions.Refactor the

`stanplot`

method to use bayesplot on the backend.Use the bayesplot theme as the default in all plotting functions.

Add the abbreviations

`mo`

and`cs`

to specify monotonic and category specific effects respectively.Rename generated variables in the data.frames returned by

`marginal_effects`

to avoid potential naming conflicts.Deprecate argument

`cluster`

and use the native`cores`

argument of rstan instead.Remove argument

`cluster_type`

as it is no longer required to apply forking.Remove the deprecated

`partial`

argument.

Add the new family

`hurdle_lognormal`

specifically suited for zero-inflated continuous responses.Introduce the

`pp_check`

method to perform various posterior predictive checks using the bayesplot package.Introduce the

`marginal_smooths`

method to better visualize smooth terms.Allow varying the scale of global shrinkage parameter of the

`horseshoe`

prior.Add functions

`prior`

and`prior_string`

as aliases of`set_prior`

, the former allowing to pass arguments without quotes`""`

using non-standard evaluation.Introduce four new vignettes explaining how to fit non-linear models, distributional models, phylogenetic models, and monotonic effects respectively.

Extend the

`coef`

method to better handle category specific group-level effects.Introduce the

`prior_summary`

method for`brmsfit`

objects to obtain a summary of prior distributions applied.Sample from the prior of the original population-level intercept when

`sample_prior = TRUE`

even in models with an internal temporary intercept used to improve sampling efficiency.Introduce methods

`posterior_predict`

,`predictive_error`

and`log_lik`

as (partial) aliases of`predict`

,`residuals`

, and`logLik`

respectively.

Improve computation of Bayes factors in the

`hypothesis`

method to be less influenced by MCMC error.Improve documentation of default priors.

Refactor internal structure of some formula and prior evaluating functions. This should not have any user visible effects.

Use the bayesplot package as the new backend of

`plot.brmsfit`

.

Better mimic mgcv when parsing smooth terms to make sure all arguments are correctly handled.

Avoid an error occuring during the prediction of new data when grouping factors with only a single factor level were supplied thanks to Tom Wallis.

Fix

`marginal_effects`

to consistently produce plots for all covariates in non-linear models thanks to David Auty.Improve the

`update`

method to better recognize situations where recompliation of the Stan code is necessary thanks to Raphael P.H.Allow to correctly

`update`

the`sample_prior`

argument to value`"only"`

.Fix an unexpected error occuring in many S3 methods when the thinning rate is not a divisor of the total number of posterior samples thanks to Paul Zerr.

Estimate monotonic group-level effects.

Estimate category specific group-level effects.

Allow

`t2`

smooth terms based on multiple covariates.Estimate interval censored data via the addition argument

`cens`

in the model formula.Allow to compute

`residuals`

also based on predicted values instead of fitted values.

Use the prefix

`bcs`

in parameter names of category specific effects and the prefix`bm`

in parameter names of monotonic effects (instead of the prefix`b`

) to simplify their identifaction.Ensure full compatibility with ggplot2 version 2.2.

Fix a bug that could result in incorrect threshold estimates for

`cumulative`

and`sratio`

models thanks to Peter Congdon.Fix a bug that sometimes kept distributional

`gamma`

models from being compiled thanks to Tim Beechey.Fix a bug causing an error in

`predict`

and related methods when two-level factors or logical variables were used as covariates in non-linear models thanks to Martin Schmettow.Fix a bug causing an error when passing lists to additional arguments of smoothing functions thanks to Wayne Folta.

Fix a bug causing an error in the

`prior_samples`

method for models with multiple group-level terms that refer to the same grouping factor thanks to Marco Tullio Liuzza.Fix a bug sometimes causing an error when calling

`marginal_effects`

for weighted models.

Center design matrices inside the Stan code instead of inside

`make_standata`

.Get rid of several warning messages occuring on CRAN.

This is one of the largest updates of `brms`

since its
initial release. In addition to many new features,
the multivariate `'trait'`

syntax has been removed
from the package as it was confusing for users, required
much special case coding, and was hard to maintain.
See `help(brmsformula)`

for details of the formula
syntax applied in brms.

Allow estimating correlations between group-level effects defined across multiple formulae (e.g., in non-linear models) by specifying IDs in each grouping term via an extended lme4 syntax.

Implement distributional regression models allowing to fully predict auxiliary parameters of the response distribution. Among many other possibilities, this can be used to model heterogeneity of variances.

Zero-inflated and hurdle models do not use multivariate syntax anymore but instead have special auxiliary parameters named

`zi`

and`hu`

defining zero-inflation / hurdle probabilities.Implement the

`von_mises`

family to model circular responses.Introduce the

`brmsfamily`

function for convenient specification of`family`

objects.Allow predictions of

`t2`

smoothing terms for new data.Feature vectors as arguments for the addition argument

`trunc`

in order to model varying truncation points.

Remove the

`cauchy`

family after several months of deprecation.Make sure that group-level parameter names are unambiguous by adding double underscores thanks to the idea of the GitHub user schmettow.

The

`predict`

method now returns predicted probabilities instead of absolute frequencies of samples for ordinal and categorical models.Compute the linear predictor in the model block of the Stan program instead of in the transformed parameters block. This avoids saving samples of unnecessary parameters to disk. Thanks goes to Rick Arrano for pointing me to this issue.

Colour points in

`marginal_effects`

plots if sensible.Set the default of the

`robust`

argument to`TRUE`

in`marginal_effects.brmsfit`

.

Fix a bug that could occur when predicting factorial response variables for new data. Only affects categorical and ordinal models.

Fix a bug that could lead to duplicated variable names in the Stan code when sampling from priors in non-linear models thanks to Tom Wallis.

Fix problems when trying to pointwise evaluate non-linear formulae in

`logLik.brmsfit`

thanks to Tom Wallis.Ensure full compatibility of the

`ranef`

and`coef`

methods with non-linear models.Fix problems that occasionally occured when handling dplyr datasets thanks to the GitHub user Atan1988.

Add support for generalized additive mixed models (GAMMs). Smoothing terms can be specified using the

`s`

and`t2`

functions in the model formula.Introduce

`as.data.frame`

and`as.matrix`

methods for`brmsfit`

objects.

The

`gaussian("log")`

family no longer implies a log-normal distribution, but a normal distribution with log-link to match the behavior of`glm`

. The log-normal distribution can now be specified via family`lognormal`

.Update syntax of Stan models to match the recommended syntax of Stan 2.10.

The

`ngrps`

method should now always return the correct result for non-linear models.Fix problems in

`marginal_effects`

for models using the reserved variable`intercept`

thanks to Frederik Aust.Fix a bug in the

`print`

method of`brmshypothesis`

objects that could lead to duplicated and thus invalid row names.Residual standard deviation parameters of multivariate models are again correctly displayed in the output of the

`summary`

method.Fix problems when using variational Bayes algorithms with brms while having rstan >= 2.10.0 installed thanks to the GitHub user cwerner87.

Allow the '/' symbol in group-level terms in the

`formula`

argument to indicate nested grouping structures.Allow to compute

`WAIC`

and`LOO`

based on the pointwise log-likelihood using argument`pointwise`

to substantially reduce memory requirements.

Add horizontal lines to the errorbars in

`marginal_effects`

plots for factors.

Fix a bug that could lead to a cryptic error message when changing some parts of the model

`formula`

using the`update`

method.Fix a bug that could lead to an error when calling

`marginal_effects`

for predictors that were generated with the`base::scale`

function thanks to Tom Wallis.Allow interactions of numeric and categorical predictors in

`marginal_effects`

to be passed to the`effects`

argument in any order.Fix a bug that could lead to incorrect results of

`predict`

and related methods when called with`newdata`

in models using the`poly`

function thanks to Brock Ferguson.Make sure that user-specified factor contrasts are always applied in multivariate models.

Add support for

`monotonic`

effects allowing to use ordinal predictors without assuming their categories to be equidistant.Apply multivariate formula syntax in categorical models to considerably increase modeling flexibility.

Add the addition argument

`disp`

to define multiplicative factors on dispersion parameters. For linear models,`disp`

applies to the residual standard deviation`sigma`

so that it can be used to weight observations.Treat the fixed effects design matrix as sparse by using the

`sparse`

argument of`brm`

. This can considerably reduce working memory requirements if the predictors contain many zeros.Add the

`cor_fixed`

correlation structure to allow for fixed user-defined covariance matrices of the response variable.Allow to pass self-defined Stan functions via argument

`stan_funs`

of`brm`

.Add the

`expose_functions`

method allowing to expose self-defined Stan functions in`R`

.Extend the functionality of the

`update`

method to allow all model parts to be updated.Center the fixed effects design matrix also in multivariate models. This may lead to increased sampling speed in models with many predictors.

Refactor Stan code and data generating functions to be more consistent and easier to extent.

Improve checks of user-define prior specifications.

Warn about models that have not converged.

Make sure that regression curves computed by the

`marginal_effects`

method are always smooth.Allow to define category specific effects in ordinal models directly within the

`formula`

argument.

Fix problems in the generated Stan code when using very long non-linear model formulas thanks to Emmanuel Charpentier.

Fix a bug that prohibited to change priors on single standard deviation parameters in non-linear models thanks to Emmanuel Charpentier.

Fix a bug that prohibited to use nested grouping factors in non-linear models thanks to Tom Wallis.

Fix a bug in the linear predictor computation within

`R`

, occuring for ordinal models with multiple category specific effects. This could lead to incorrect outputs of`predict`

,`fitted`

, and`logLik`

for these models.Make sure that the global

`"contrasts"`

option is not used when post-processing a model.

Implement generalized non-linear models, which can be specified with the help of the

`nonlinear`

argument in`brm`

.Compute and plot marginal effects using the

`marginal_effects`

method thanks to the help of Ruben Arslan.Implement zero-inflated beta models through family

`zero_inflated_beta`

thanks to the idea of Ali Roshan Ghias.Allow to restrict domain of fixed effects and autocorrelation parameters using new arguments

`lb`

and`ub`

in function`set_prior`

thanks to the idea of Joel Gombin.Add an

`as.mcmc`

method for compatibility with the coda package.Allow to call the

`WAIC`

,`LOO`

, and`logLik`

methods with new data.

Make sure that brms is fully compatible with loo version 0.1.5.

Optionally define the intercept as an ordinary fixed effect to avoid the reparametrization via centering of the fixed effects design matrix.

Do not compute the WAIC in

`summary`

by default anymore to reduce computation time of the method for larger models.The

`cauchy`

family is now deprecated and will be removed soon as it often has convergence issues and not much practical application anyway.Change the default settings of the number of chains and warmup samples to the defaults of rstan (i.e.,

`chains = 4`

and`warmup = iter / 2`

).Do not remove bad behaving chains anymore as they may point to general convergence problems that are dangerous to ignore.

Improve flexibility of the

`theme`

argument in all plotting functions.Only show the legend once per page, when computing trace and density plots with the

`plot`

method.Move code of self-defined Stan functions to

`inst/chunks`

and incorporate them into the models using`rstan::stanc_builder`

. Also, add unit tests for these functions.

Fix problems when predicting with

`newdata`

for zero-inflated and hurdle models thanks to Ruben Arslan.Fix problems when predicting with

`newdata`

if it is a subset of the data stored in a`brmsfit`

object thanks to Ruben Arslan.Fix data preparation for multivariate models if some responses are

`NA`

thanks to Raphael Royaute.Fix a bug in the

`predict`

method occurring for some multivariate models so that it now always returns the predictions of all response variables, not just the first one.Fix a bug in the log-likelihood computation of

`hurdle_poisson`

and`hurdle_negbinomial`

models. This may lead to minor changes in the values obtained by`WAIC`

and`LOO`

for these models.Fix some backwards compatibility issues of models fitted with version <= 0.5.0 thanks to Ulf Koether.

Use variational inference algorithms as alternative to the NUTS sampler by specifying argument

`algorithm`

in the`brm`

function.Implement beta regression models through family

`Beta`

.Implement zero-inflated binomial models through family

`zero_inflated_binomial`

.Implement multiplicative effects for family

`bernoulli`

to fit (among others) 2PL IRT models.Generalize the

`formula`

argument for zero-inflated and hurdle models so that predictors can be included in only one of the two model parts thanks to the idea of Wade Blanchard.Combine fixed and random effects estimates using the new

`coef`

method.Call the

`residuals`

method with`newdata`

thanks to the idea of Friederike Holz-Ebeling.Allow new levels of random effects grouping factors in the

`predict`

,`fitted`

, and`residuals`

methods using argument`allow_new_levels`

.Selectively exclude random effects in the

`predict`

,`fitted`

, and`residuals`

methods using argument`re_formula`

.Add a

`plot`

method for objects returned by method`hypothesis`

to visualize prior and posterior distributions of the hypotheses being tested.

Improve evaluation of the response part of the

`formula`

argument to reliably allow terms with more than one variable (e.g.,`y/x ~ 1`

).Improve sampling efficiency of models containing many fixed effects through centering the fixed effects design matrix thanks to Wayne Folta.

Improve sampling efficiency of models containing uncorrelated random effects specified by means of

`(random || group)`

terms in`formula`

thanks to Ali Roshan Ghias.Utilize user-defined functions in the Stan code of ordinal models to improve readability as well as sampling efficiency.

Make sure that model comparisons using

`LOO`

or`WAIC`

are only performed when models are based on the same responses.Use some generic functions of the lme4 package to avoid unnecessary function masking. This leads to a change in the argument order of method

`VarCorr`

.Change the

`ggplot`

theme in the`plot`

method through argument`theme`

.Remove the

`n.`

prefix in arguments`n.iter`

,`n.warmup`

,`n.thin`

,`n.chains`

, and`n.cluster`

of the`brm`

function. The old argument names remain usable as deprecated aliases.Amend names of random effects parameters to simplify matching with their respective grouping factor levels.

Fix a bug in the

`hypothesis`

method that could cause valid model parameters to be falsely reported as invalid.Fix a bug in the

`prior_samples`

method that could cause prior samples of parameters of the same class to be artifically correlated.Fix Stan code of linear models with moving-average effects and non-identity link functions so that they no longer contain code related solely to autoregressive effects.

Fix a bug in the evaluation of

`formula`

that could cause complicated random effects terms to be falsely treated as fixed effects.Fix several bugs when calling the

`fitted`

and`predict`

methods with`newdata`

thanks to Ali Roshan Ghias.

Add support for zero-inflated and hurdle models thanks to the idea of Scott Baldwin.

Implement inverse gaussian models through family

`inverse.gaussian`

.Allow to specify truncation boundaries of the response variable thanks to the idea of Maciej Beresewicz.

Add support for autoregressive (AR) effects of residuals, which can be modeled using the

`cor_ar`

and`cor_arma`

functions.Stationary autoregressive-moving-average (ARMA) effects of order one can now also be fitted using special covariance matrices.

Implement multivariate student-t models.

Binomial and ordinal families now support the

`cauchit`

link function.Allow family functions to be used in the

`family`

argument.Easy access to various

`rstan`

plotting functions using the`stanplot`

method.Implement horseshoe priors to model sparsity in fixed effects coefficients thanks to the idea of Josh Chang.

Automatically scale default standard deviation priors so that they remain only weakly informative independent on the response scale.

Report model weights computed by the loo package when comparing multiple fitted models.

Separate the fixed effects Intercept from other fixed effects in the Stan code to slightly improve sampling efficiency.

Move autoregressive (AR) effects of the response from the

`cor_ar`

to the`cor_arr`

function as the result of implementing AR effects of residuals.Improve checks on argument

`newdata`

used in the`fitted`

and`predict`

method.Method

`standata`

is now the only way to extract data that was passed to Stan from a`brmsfit`

object.Slightly improve Stan code for models containing no random effects.

Change the default prior of the degrees of freedom of the

`student`

family to`gamma(2,0.1)`

.Improve readability of the output of method

`VarCorr`

.Export the

`make_stancode`

function to give users direct access to Stan code generated by brms.Rename the

`brmdata`

function to`make_standata`

. The former remains usable as a deprecated alias.Improve documenation to better explain differences in autoregressive effects across R packages.

Fix a bug that could cause an unexpected error when the

`predict`

method was called with`newdata`

.Avoid side effects of the

`rstan`

compilation routines that could occasionally cause R to crash.Make brms work correctly with loo version 0.1.3 thanks to Mauricio Garnier Villarreal and Jonah Gabry.

Fix a bug that could cause WAIC and LOO estimates to be slightly incorrect for

`gaussian`

models with`log`

link.

Compute the Watanabe-Akaike information criterion (WAIC) and leave-one-out cross-validation (LOO) using the loo package.

Provide an interface to shinystan with S3 method

`launch_shiny`

.New functions

`get_prior`

and`set_prior`

to make prior specifications easier.Log-likelihood values and posterior predictive samples can now be calculated within R after the model has been fitted.

Make predictions based on new data using S3 method

`predict`

.Allow for customized covariance structures of grouping factors with multiple random effects.

New S3 methods

`fitted`

and`residuals`

to compute fitted values and residuals, respectively.

Arguments

`WAIC`

and`predict`

are removed from the`brm`

function, as they are no longer necessary.New argument

`cluster_type`

in function`brm`

allowing to choose the cluster type created by the parallel package.Remove chains that fail to initialize while sampling in parallel leaving the other chains untouched.

Redesign trace and density plots to be faster and more stable.

S3 method

`VarCorr`

now always returns covariance matrices regardless of whether correlations were estimated.

Fix a bug in S3 method

`hypothesis`

related to the calculation of Bayes-factors for point hypotheses.User-defined covariance matrices that are not strictly positive definite for numerical reasons should now be handled correctly.

Fix problems when a factor is used as fixed effect and as random effects grouping variable at the same time thanks to Ulf Koether.

Fix minor issues with internal parameter naming.

Perform additional checking on user defined priors.

Allow for sampling from all specified proper priors in the model.

Compute Bayes-factors for point hypotheses in S3 method

`hypothesis`

.

Fix a bug that could cause an error for models with multiple grouping factors thanks to Jonathan Williams.

Fix a bug that could cause an error for weighted poisson and exponential models.

Implement the Watanabe-Akaike Information Criterion (WAIC).

Implement the

`||`

-syntax for random effects allowing for the estimation of random effects standard deviations without the estimation of correlations.Allow to combine multiple grouping factors within one random effects argument using the interaction symbol

`:`

.Generalize S3 method

`hypothesis`

to be used with all parameter classes not just fixed effects. In addition, one-sided hypothesis testing is now possible.Introduce new family

`multigaussian`

allowing for multivariate normal regression.Introduce new family

`bernoulli`

for dichotomous response variables as a more efficient alternative to families`binomial`

or`categorical`

in this special case.

Slightly change the internal structure of brms to reflect that rstan is finally on CRAN.

Thoroughly check validity of the response variable before the data is passed to Stan.

Prohibit variable names containing double underscores

`__`

to avoid naming conflicts.Allow function calls with several arguments (e.g.

`poly(x,3)`

) in the formula argument of function`brm`

.Always center random effects estimates returned by S3 method

`ranef`

around zero.Prevent the use of customized covariance matrices for grouping factors with multiple random effects for now.

Remove any experimental JAGS code from the package.

Fix a bug in S3 method

`hypothesis`

leading to an error when numbers with decimal places were used in the formulation of the hypotheses.Fix a bug in S3 method

`ranef`

that caused an error for grouping factors with only one random effect.Fix a bug that could cause the fixed intercept to be wrongly estimated in the presence of multiple random intercepts thanks to Jarrod Hadfield.

Introduce new methods

`parnames`

and`posterior_samples`

for class 'brmsfit' to extract parameter names and posterior samples for given parameters, respectively.Introduce new method

`hypothesis`

for class`brmsfit`

allowing to test non-linear hypotheses concerning fixed effects.Introduce new argument

`addition`

in function brm to get a more flexible approach in specifying additional information on the response variable (e.g., standard errors for meta-analysis). Alternatively, this information can also be passed to the`formula`

argument directly.Introduce weighted and censored regressions through argument

`addition`

of function brm.Introduce new argument

`cov.ranef`

in the`brm`

function allowing for customized covariance structures of random effects thanks to the idea of Boby Mathew.Introduce new argument

`autocor`

in function brm allowing for autocorrelation of the response variable.Introduce new functions

`cor.ar`

,`cor.ma`

, and`cor.arma`

, to be used with argument`autocor`

for modeling autoregressive, moving-average, and autoregressive-moving-average models.

Amend parametrization of random effects to increase efficiency of the sampling algorithms.

Improve vectorization of sampling statements.

Fix a bug that could cause an error when fitting poisson models while

`predict = TRUE`

.Fix a bug that caused an error when sampling only one chain while

`silent = TRUE`

.

New S3 class

`brmsfit`

to be returned by the`brm`

function.New methods for class

`brmsfit`

:`summary`

,`print`

,`plot`

,`predict`

,`fixef`

,`ranef`

,`VarCorr`

,`nobs`

,`ngrps`

, and`formula`

.Introduce new argument

`silent`

in the`brm`

function, allowing to suppress most of Stan's intermediate output.Introduce new families

`negbinomial`

(negative binomial) and`geometric`

to allow for more flexibility in modeling count data.

Amend warning and error messages to make them more informative.

Correct examples in the documentation.

Extend the README file.

Fix a bug that caused problems when formulas contained more complicated function calls.

Fix a bug that caused an error when posterior predictives were sampled for family

`cumulative`

Fix a bug that prohibited to use of improper flat priors for parameters that have proper priors by default.

Initial release version