Handling missing data in brms

Hi,

I found this vignettes (Handle Missing Values with brms) about handling missing data in brms, which is helpful. But for “Imputation during model fitting”, I wonder which of the following approaches is used in brms?

Approach 1: the “full Bayesian” approach. All the missing values are treated as unknown parameters and their posterior distributions are updated along with other model parameters at each iteration during the Bayesian model fitting process.

Approach 2: Each iteration in the Bayesian analysis includes two phases: in phase 1, the missing values are imputed; in phase 2, the complete imputed dataset is used to update the posterior distributions of parameters in the “analysis/inference model” of primary research interest. The posterior distribution of missing values is not updated at each iteration, instead, imputed values are drawn from the same distribution throughout the model fitting process.

For example, in the following code, are missing values in “chl” treated the same as other model parameters, with posterior distributions updated over iterations? And how about missing values in “bmi”?

bform <- bf(bmi | mi() ~ age * mi(chl)) +
  bf(chl | mi() ~ age) + set_rescor(FALSE)
fit_imp2 <- brm(bform, data = nhanes)

I’m using Windows with brms version 2.14.4

Thanks!

Hi Stella, I believe brms uses the first approach that you mentioned. The missing values are specified as parameters to be estimated as part of the model.

2 Likes