- Operating System: Mac
- brms Version: 2.8.0

## Question

Let’s say we have 2 + response variables. One has some missing values and the other(s) are complete. Is there a way to fit a multivariate model where we avoid dropping cases with missingness?

### We have examples.

Here’s the typical setup.

```
dat <-
tibble(a = rnorm(100),
b = c(NA, rnorm(99)))
fit1 <-
brm(data = dat,
mvbind(a, b) ~ 1)
```

Before compiling the model, `brm()`

tells us “Rows containing NAs were excluded from the model.” And indeed, the summary confirms we only used 99 out of our 100 cases.

```
Family: MV(gaussian, gaussian)
Links: mu = identity; sigma = identity
mu = identity; sigma = identity
Formula: a ~ 1
b ~ 1
Data: dat (Number of observations: 99)
Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
total post-warmup samples = 4000
Population-Level Effects:
Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
a_Intercept -0.05 0.10 -0.24 0.14 4134 1.00
b_Intercept -0.13 0.10 -0.31 0.07 4492 1.00
Family Specific Parameters:
Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
sigma_a 0.95 0.07 0.82 1.09 4305 1.00
sigma_b 0.98 0.07 0.85 1.15 4603 1.00
Residual Correlations:
Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
rescor(a,b) -0.08 0.10 -0.28 0.12 4583 1.00
```

If possible, I would like to use all 100.

I did a little fooling around to try to solve the problem on my own. No luck. For example

```
fit2 <-
brm(data = dat,
mvbind(a, b | mi()) ~ 1)
```

yields a parsing error.

Error in parse(text = x, keep.source = FALSE) : :2:0: unexpected end of input 1: mvbind(a,b~1 ^

This attempt

```
fit3 <-
brm(data = dat,
bf(mvbind(a, b ) | mi() ~ 1) + set_rescor(TRUE))
```

gives me a whole bunch of error messages

Chain 1: Rejecting initial value:

Chain 1: Log probability evaluates to log(0), i.e. negative infinity.

Chain 1: Stan can’t start sampling from this initial value.

that finally end with

[1] “Error in sampler$call_sampler(args_list[[i]]) : Initialization failed.”

error occurred during calling the sampler; sampling not done

And I get the same sad results with approach:

```
bfa <- bf(a ~ 1)
bfb <- bf(b | mi() ~ 1)
fit4 <-
brm(data = dat,
mvbf(bfa, bfb, rescor = TRUE))
```

Is there a nice solution?