About representing non-normal posterior distribution

Hello, thank you for click this page.

I tried to analyze multivariate mixed model to gain between-subject and within-subject correlation. Below is my code:

model1 ← bf(y1 ~ +x1+ (1|g|subject), family = gaussian())
model2 ← bf(y2 ~ +x1+ (1|g|subject), family = gaussian())

model ← brm(mvbf(model1+model2)+set_rescor(TRUE),
data = data)

I checked normality of residuals of both variate from below regression model, thus i set “family=gaussian()” in brms code:

lmer(y ~ x1 + (1|g|subject), data = data)

while all of posterior distribution seems normal distribution, only between-subject correlation shows extremely left-skewed distribution. The mean and SE was 0.64±0.39, and 95% CI was [-0.54, 0.99].

I think there are quite strong (and significant) positive between-subject correlation, but with this odd distribution, I can’t argue it.

  1. Is there anyway to gain normal posterior distribution of between-subject correlation?
  2. or, in my case, how can i interpret this posterior distribution?

Sorry, just to clarify, is the desire for normality in the marginal posterior distribution motivated by hypothesis testing? Getting that from your mention of a mean and SE. Or to compute and report a 95% credible interval? In this case, you can snag the latter directly from the samples themselves, eg for the middle 95%CI using something like:

quantile(samples, probs = c(0.025, 0.975))

where samples is a vector of samples (whatever was fed in to make the histogram in your left panel).

If you want to know the posterior mass to one side of some number, like 0, you can also do something like mean(samples > 0) to estimate the mass right of 0.

There might still be cases where you want to compress these posterior samples into parameters of some univariate distribution. If you want to represent them with a normal distribution, the Fisher z-transform (so atanh(samples)) is often used here. Or you can try a squishing them to (0,1) followed by a logit (so log(((samples + 1) / 2) / (1 - (samples + 1) / 2))). If you’re open to other distributions, you can also try squishing to (0,1) and then fitting a Beta or Kumaraswamy or whatever else (or any unbounded univariate distribution after transformation to the unbounded space).

Not sure you’d necessarily want to do that, though! Use-cases IME are mostly for either propagating uncertainty to some other model, or approximating small tail probabilities (if tail-ESS is low and you’re far from some point of interest, like 0, then the sample proportion on either side of that point of interest may be poorly estimated, where the eg moments of a normal approximation would be very stable). Doesn’t sound like either apply here?

This is normal, for parameters like correlations and variances, we don’t necessarily expect normal-looking posteriors.

The mean and credible interval you gave are correct (as long as Rhat and ESS look good, and there are no divergences). You can use ?hypothesis to test for a difference with a correlation of 0, but given your CI the data the model is ambiguous on the sign of the correlation.

very intuitive and nice advice! thank you very much!

I (maybe) fully understand that my thought was wrong. Thank you for the kind answer!