The exact distribution of \(X + Y\) for independent \(X \sim g_1\) and \(Y \sim g_2\): a Gaussian mixture with \(K_1 K_2\) components, $$g_1 * g_2 = \sum_{ij} w_i v_j\, \mathcal{N}\!\left(\mu_i + m_j,\ \Sigma_i + S_j\right).$$
Value
A gmm with K1 * K2 components.
Details
For the affine special case \(X + c\) with a constant c, or
\(A X + \epsilon\) with Gaussian \(\epsilon\), use gmm_affine();
the convolution operator is the general mixture-plus-mixture case that
gmm_affine() cannot express.
See also
Other operators:
gmm_affine(),
gmm_aggregate(),
gmm_counterfactual(),
gmm_filter(),
gmm_intervene(),
gmm_missing(),
gmm_mix(),
gmm_observe(),
gmm_product(),
gmm_reduce()
Examples
g1 <- gmm(weights = c(0.5, 0.5), means = list(-1, 1),
covariances = list(matrix(0.5), matrix(0.5)))
g2 <- gmm(weights = 1, means = list(2), covariances = list(matrix(1)))
gmm_convolve(g1, g2)
#> <convolve(gmm, gmm)>: K = 2 components in p = 1 dimensions
#> [1] w = 0.5000, |mu| = 1.0000, tr(Sigma) = 1.5000
#> [2] w = 0.5000, |mu| = 3.0000, tr(Sigma) = 1.5000