Description Usage Arguments Examples
Approximates expectations of the form
E[h(θ)] = \int h(θ) f(θ) dθ
using a weighted mixture
E[h(θ)] \approx ∑_{j=1}^k h(θ^{(k)}) w_k
1 |
h |
Function for which the expectation should be taken. The function
should be defined so it is can be called via |
params |
Matrix in which each row contains parameters at which
h should be evaluated. The number of rows in |
wts |
vector of weights for each mixture component |
ncores |
number of cores over which to evaluate mixture. this function assumes a parallel backend is already registered. |
errorNodesWts |
list with elements |
... |
additional arguments to be passed to |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # density will be a mixture of betas
params = matrix(exp(2*runif(10)), ncol=2)
# mixture components are equally weighted
wts = rep(1/nrow(params), nrow(params))
# compute mean of distribution by cycling over each mixture component
h = function(p) { p[1] / sum(p) }
# compute mixture mean
mean.mix = emix(h, params, wts)
# (comparison) Monte Carlo estimate of mixture mean
nsamples = 1e4
component = sample(x = 1:length(wts), size = nsamples, prob = wts,
replace = TRUE)
x = sapply(component, function(cmp) {
rbeta(n = 1, shape1 = params[cmp, 1], shape2 = params[cmp, 2])
})
mean.mix.mc = mean(x)
# compare estimates
c(emix = mean.mix, MC = mean.mix.mc)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.