R: Bootstrap Likelihood Ratio Test for the Number of Mixture...
mclustBootstrapLRT
R Documentation
Bootstrap Likelihood Ratio Test for the Number of Mixture Components
Description
Perform the likelihood ratio test (LRT) for assessing the number of mixture components in a specific finite mixture model parameterisation. The observed significance is approximated by using the (parametric) bootstrap for the likelihood ratio test statistic (LRTS).
Usage
mclustBootstrapLRT(data, modelName = NULL, nboot = 999,
level = 0.05, maxG = NULL, verbose = TRUE, ...)
## S3 method for class 'mclustBootstrapLRT'
print(x, ...)
## S3 method for class 'mclustBootstrapLRT'
plot(x, G = 1, hist.col = "grey", hist.border = "lightgrey", breaks = "Scott",
col = "forestgreen", lwd = 2, lty = 3, main = NULL, ...)
Arguments
data
A numeric vector, matrix, or data frame of observations. Categorical
variables are not allowed. If a matrix or data frame, rows
correspond to observations and columns correspond to variables.
modelName
A character string indicating the mixture model to be fitted.
The help file for mclustModelNames describes the available models.
nboot
The number of bootstrap replications to use (by default 999).
level
The significance level to be used to terminate the sequential bootstrap procedure.
maxG
The maximum number of mixture components G to test. If not provided
the procedure is stopped when a test is not significant at the specified level.
verbose
A logical, if TRUE and the session is interactive a text progress bar is displayed during the bootstrap procedure.
...
Further arguments passed to or from other methods. In particular, see the optional arguments in mclustBIC.
x
An 'mclustBootstrapLRT' object.
G
A value specifying the number of components for which to plot the
bootstrap distribution.
hist.col
The colour to be used to fill the bars of the histogram.
hist.border
The color of the border around the bars of the histogram.
breaks
See the argument in function hist.
col, lwd, lty
The color, line width and line type to be used to represent the observed LRT statistic.
main
The title for the graph.
Details
The implemented algorithm for computing the LRT observed significance using the bootstrap is the following.
Let G_0 be the number of mixture components under the null hypothesis versus G_1 = G_0+1 under the alternative. Bootstrap samples are drawn by simulating data under the null hypothesis. Then, the p-value may be approximated using eq. (13) on McLachlan and Rathnayake (2014). Equivalently, using the notation of Davison and Hinkley (1997) it may be computed as
p-value = (1 + #{LRTS*_b ≥ LRT_obs}) / (B+1)
where B = number of bootstrap samples LRT_obs = LRTS computed on the observed data LRT*_b = LRTS computed on the bth bootstrap sample.
Value
An object of class 'mclustBootstrapLRT' with the following components:
G
A vector of number of components tested under the null hypothesis.
modelName
A character string specifying the mixture model as provided
in the function call (see above).
obs
The observed values of the LRTS.
boot
A matrix of dimension nboot x the number of components tested
containing the bootstrap values of LRTS.
p.value
A vector of p-values.
References
Davison, A. and Hinkley, D. (1997) Bootstrap Methods and Their Applications. Cambridge University Press.
McLachlan G.J. (1987) On bootstrapping the likelihood ratio test statistic for the number of components in a normal mixture. Applied Statistics, 36, 318-324.
McLachlan, G.J. and Peel, D. (2000) Finite Mixture Models. Wiley.
McLachlan, G.J. and Rathnayake, S. (2014) On the number of components in a Gaussian mixture model. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery, 4(5), pp. 341-355.
See Also
mclustBIC, mclustICL, Mclust
Examples
## Not run:
data(faithful)
faithful.boot = mclustBootstrapLRT(faithful, model = "VVV")
faithful.boot
plot(faithful.boot, G = 1)
plot(faithful.boot, G = 2)
## End(Not run)