You are correct that you cannot simply average the quantiles of the constituent distributions.
As a little example, let's assume that we have a mixture of two normal distributions with means 0 and 1, both with standard deviations of 1, and with equal probability. Below is a histogram, the true 90% quantile (the vertical green line) and the equally weighted average of the separate 90% quantiles for the two normals. As you see, the two vertical lines are very different indeed.
means <- c(0,3)
sds <- c(1,1)
probs <- c(0.5,0.5)
nn <- 1e4
set.seed(1)
sims <- unlist(mapply(function(pp,mm,ss)rnorm(floor(pp*nn),mm,ss),probs,means,sds))
qq <- 0.9
quantile(sims,qq)
# 3.854995
sum(probs*qnorm(qq,means,sds))
# 2.781552
hist(sims,las=1,xlab="")
abline(v=c(quantile(sims,qq),sum(probs*qnorm(qq,means,sds))),col=c("green","red"),lwd=2)
So, what can we do? In the case of a gaussian-mixture as here, we should be able to use the qmixnorm()
function in the KScorrect
package for R (as per the earlier thread Compute quantile function from a mixture of Normal distribution, which I very much recommend):
library(KScorrect)
qmixnorm(qq,means,sds,probs)
# 3.841839
This is close enough to what we got empirically that I trust it.
However, this currently gives a warning which is passed through from stats::spline()
. I already submitted a bug report here and asked the maintainer to leave a comment to this thread if/when this is addressed.
Alternatively, you could get quantiles of Gaussian mixtures by a bisection search on the convex combination of CDFs per this earlier thread. Or you could draw a large number of samples from the mixture and take empirical quantiles.
The other problem is that the forecasting tools you mention apparently use $t$ distributions for their predictive densities, not normal ones. So what you are really looking for is quantiles of mixtures of $t$ distributions. There doesn't seem to be anything analytical on that. So it's probably again easiest to do the bisection search, using the $t$ CDF, or the sampling approach.