mixture {BayesMultiMode} | R Documentation |
mixture
Creates an object of class mixture
which can subsequently be used as argument in mix_mode()
for mode estimation.
mixture(
pars,
dist = NA_character_,
pdf_func = NULL,
dist_type = NA_character_,
range,
loc = NA_character_
)
pars |
Named vector of mixture parameters. |
dist |
Distribution family of the mixture components supported by
the package (i.e. |
pdf_func |
(function) Pdf or pmf of the mixture components;
this input is used only if |
dist_type |
Type of the distribution, either |
range |
upper and lower limit of the range where the mixture should be evaluated. |
loc |
(for continuous mixtures other than Normal mixtures) String indicating the location parameter of the distribution; the latter is used to initialise the MEM algorithm. |
A list of class mixture
containing:
pars |
Same as argument. |
pars_names |
Names of the parameters of the components' distribution. |
dist |
Same as argument. |
pdf_func |
Pdf (or pmf) of the mixture components. |
dist_type |
Same as argument. |
loc |
Type of the distribution, either |
nb_var |
Number of parameters in the mixture distribution. |
K |
Number of mixture components. |
range |
Same as argument. |
# Example with the skew normal =============================================
xi <- c(0, 6)
omega <- c(1, 2)
alpha <- c(0, 0)
p <- c(0.8, 0.2)
params <- c(eta = p, xi = xi, omega = omega, alpha = alpha)
dist <- "skew_normal"
mix <- mixture(params, dist = dist, range = c(-2, 10))
# summary(mix)
# plot(mix)
# Example with an arbitrary distribution ===================================
mu <- c(0, 6)
omega <- c(1, 2)
xi <- c(0, 0)
nu <- c(3, 100)
p <- c(0.8, 0.2)
params <- c(eta = p, mu = mu, sigma = omega, xi = xi, nu = nu)
pdf_func <- function(x, pars) {
sn::dst(x, pars["mu"], pars["sigma"], pars["xi"], pars["nu"])
}
mix <- mixture(params,
pdf_func = pdf_func,
dist_type = "continuous", loc = "mu", range = c(-2, 10)
)
# summary(mix)
# plot(mix, from = -4, to = 4)