View source: R/densityMclustBounded.R
densityMclustBounded | R Documentation |
Density estimation for bounded data via transformation-based approach for Gaussian mixtures.
densityMclustBounded(
data,
G = NULL,
modelNames = NULL,
criterion = c("BIC", "ICL"),
lbound = NULL,
ubound = NULL,
lambda = c(-3, 3),
prior = NULL,
initialization = NULL,
nstart = 25,
parallel = FALSE,
seed = NULL,
...
)
## S3 method for class 'densityMclustBounded'
summary(object, parameters = FALSE, ...)
data |
A numeric vector, matrix, or data frame of observations. If a matrix or data frame, rows correspond to observations and columns correspond to variables. |
G |
An integer vector specifying the numbers of mixture components. By
default |
modelNames |
A vector of character strings indicating the Gaussian
mixture models to be fitted on the transformed-data space. See
|
criterion |
A character string specifying the information criterion for
model selection. Possible values are |
lbound |
Numeric vector proving lower bounds for variables. |
ubound |
Numeric vector proving upper bounds for variables. |
lambda |
A numeric vector providing the range (min and max) of searched values for the transformation parameter(s). If a matrix is provided, then for each variable a row should be provided containing the range of lambda values for the transformation parameter. If a variable must have a fixed lambda value, the provided min and max values should be equal. See examples below. |
prior |
A function specifying a prior for Bayesian regularization of
Gaussian mixtures. See |
initialization |
A list containing one or more of the following components:
|
nstart |
An integer value specifying the number of replications of
k-means clustering to be used for initializing the EM algorithm. See
|
parallel |
An optional argument which allows to specify if the search over all possible models should be run sequentially (default) or in parallel. For a single machine with multiple cores, possible values are:
In all the cases described above, at the end of the search the cluster is automatically stopped by shutting down the workers. If a cluster of multiple machines is available, evaluation of the fitness
function can be executed in parallel using all, or a subset of, the cores
available to the machines belonging to the cluster. However, this option
requires more work from the user, who needs to set up and register a
parallel back end. In this case the cluster must be explicitely stopped
with |
seed |
An integer value containing the random number generator state. This argument can be used to replicate the result of k-means initialisation strategy. Note that if parallel computing is required, the doRNG package must be installed. |
... |
Further arguments passed to or from other methods. |
object |
An object of class |
parameters |
A logical, if |
For more details see
vignette("mclustAddons")
Returns an object of class 'densityMclustBounded'
.
Luca Scrucca
Scrucca L. (2019) A transformation-based approach to Gaussian mixture density estimation for bounded data. Biometrical Journal, 61:4, 873–888. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi:10.1002/bimj.201800174")}
predict.densityMclustBounded()
, plot.densityMclustBounded()
.
# univariate case with lower bound
x <- rchisq(200, 3)
xgrid <- seq(-2, max(x), length=1000)
f <- dchisq(xgrid, 3) # true density
dens <- densityMclustBounded(x, lbound = 0)
summary(dens)
summary(dens, parameters = TRUE)
plot(dens, what = "BIC")
plot(dens, what = "density")
lines(xgrid, f, lty = 2)
plot(dens, what = "density", data = x, breaks = 15)
# univariate case with lower & upper bounds
x <- rbeta(200, 5, 1.5)
xgrid <- seq(-0.1, 1.1, length=1000)
f <- dbeta(xgrid, 5, 1.5) # true density
dens <- densityMclustBounded(x, lbound = 0, ubound = 1)
summary(dens)
plot(dens, what = "BIC")
plot(dens, what = "density")
plot(dens, what = "density", data = x, breaks = 9)
# bivariate case with lower bounds
x1 <- rchisq(200, 3)
x2 <- 0.5*x1 + sqrt(1-0.5^2)*rchisq(200, 5)
x <- cbind(x1, x2)
plot(x)
dens <- densityMclustBounded(x, lbound = c(0,0))
summary(dens, parameters = TRUE)
plot(dens, what = "BIC")
plot(dens, what = "density")
plot(dens, what = "density", type = "hdr")
plot(dens, what = "density", type = "persp")
# specify different ranges for the lambda values of each variable
dens1 <- densityMclustBounded(x, lbound = c(0,0),
lambda = matrix(c(-2,2,0,1), 2, 2, byrow=TRUE))
# set lambda = 0 fixed for the second variable
dens2 <- densityMclustBounded(x, lbound = c(0,0),
lambda = matrix(c(0,1,0,0), 2, 2, byrow=TRUE))
dens[c("lambdaRange", "lambda", "loglik", "df")]
dens1[c("lambdaRange", "lambda", "loglik", "df")]
dens2[c("lambdaRange", "lambda", "loglik", "df")]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.