 # Fitted and predicted draws on average

I am struggling to wrap my head around the difference between `fitted` and `predict`. In my case, it is about the multinomial family. There are a few relevant posts here and on GitHub. After reading them and `pp_expect.R` with `posterior_predict.R`, my current understanding is that `fitted` gives draws of the expected value of the posterior distribution, while `predict` gives draws from the posterior distribution. How far am I from the truth? If not too far, should one expect the means of the two to match? If I take the average of the draws from `fitted` and the average of those from `predict`, should they not be the same? In my example, they deviate.

You are correct. The deviation are likely because of random error in the posterior predictions.

Thank you for the quick reply. I guess I misuse some of the functions then. Let me give a minimal working example:

``````data <- tribble(
~a,   ~b,   ~c, ~total,
3000, 3000, 7000,  13000,
)
data\$counts <- with(data, cbind(a, b, c))
formula <- brmsformula(counts | trials(total) ~ 1)
fit <- brm(formula, data, multinomial(), seed = 42)

data\$counts / data\$total
#              a         b         c
# [1,] 0.2307692 0.2307692 0.5384615

colMeans(fitted(fit, summary = FALSE)) / data\$total
#              a         b         c
# [1,] 0.2309553 0.2307284 0.5383163

colMeans(predict(fit, summary = FALSE)) / data\$total
#              a         b         c
# [1,] 0.1364585 0.2725709 0.5909706
``````

This difference cannot arguably be attributed to chance. I have tried with different seeds. In addition, if it was about chance, it would go away with the sample size.

I will take a look. Thanks!

Thanks! It turned out to be a slightly embarassing typo as I wrote `pcategorical` instead of `dcategorical` so accidentally used the cumulative distribution function… Should be fixed now on github.

That was fast! Thank you so much!