Skip to content

Commit 8598a2b

Browse files
luca-scrcran-robot
authored andcommitted
version 5.4.6
1 parent 1056503 commit 8598a2b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1701
-800
lines changed

Diff for: DESCRIPTION

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: mclust
2-
Version: 5.4.5
3-
Date: 2019-07-07
2+
Version: 5.4.6
3+
Date: 2020-04-09
44
Title: Gaussian Mixture Modelling for Model-Based Clustering,
55
Classification, and Density Estimation
66
Description: Gaussian finite mixture models fitted via EM algorithm for model-based clustering, classification, and density estimation, including Bayesian regularization, dimension reduction for visualisation, and resampling-based inference.
@@ -23,14 +23,14 @@ URL: https://mclust-org.github.io/mclust/
2323
VignetteBuilder: knitr
2424
Repository: CRAN
2525
ByteCompile: true
26-
LazyData: yes
27-
RoxygenNote: 6.1.1
2826
NeedsCompilation: yes
29-
Packaged: 2019-07-07 15:54:41 UTC; luca
27+
LazyData: yes
28+
Encoding: UTF-8
29+
Packaged: 2020-04-09 17:43:44 UTC; luca
3030
Author: Chris Fraley [aut],
3131
Adrian E. Raftery [aut] (<https://orcid.org/0000-0002-6589-301X>),
3232
Luca Scrucca [aut, cre] (<https://orcid.org/0000-0003-3826-0484>),
3333
Thomas Brendan Murphy [ctb] (<https://orcid.org/0000-0002-5668-7046>),
3434
Michael Fop [ctb] (<https://orcid.org/0000-0003-3936-2757>)
3535
Maintainer: Luca Scrucca <[email protected]>
36-
Date/Publication: 2019-07-08 18:51:30 UTC
36+
Date/Publication: 2020-04-11 14:30:08 UTC

Diff for: MD5

+42-42
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
1-
30dfe17ce10c3d506b6c7813e0949c9b *DESCRIPTION
1+
0ab7a94956810a24a28f652b84ff52a3 *DESCRIPTION
22
6d6add2a10e03c1d9a1675092d5eee19 *NAMESPACE
3-
9f73c6a77f15384190d683246eefa94e *NEWS.md
4-
abc4ce05ea40fed290801fb7674bf4ae *R/bootstrap.R
3+
19103fce6a03a6f14871b11074a050b4 *NEWS.md
4+
b8572093a6c447d556302662030ab4c9 *R/bootstrap.R
55
7e0361ad8167e56f59687168450e6d22 *R/clustCombi.R
6-
36c696a442ec492df315af4e31f63f06 *R/densityMclust.R
6+
1a1c9f5aed43465e3a480eae4d89f576 *R/densityMclust.R
77
b76a3d8060cc93cec384445d98105a21 *R/gmmhd.R
8-
dd2a53f1cfb281a514b01e4ab665026f *R/graphics.R
8+
147ab775d49b726353b75434abb7b3e9 *R/graphics.R
99
ba84097ee321529784cd9c6db5143e77 *R/icl.R
1010
4b9155a000a45bb1f37fd1507c15f172 *R/impute.R
11-
29cac94c1eb03a4cab12325989b68d6d *R/mbahc.R
12-
6296fc5fd74388259d4497fcd9b6c105 *R/mclust.R
13-
72011d2ed8066986461cafc912d65e27 *R/mclustaddson.R
14-
dfac435b338172c60572467cf10a487e *R/mclustda.R
11+
c09097c1dad0e07df7a552cb6d7228bf *R/mbahc.R
12+
bbc7f3190e10fc9a513934fc7f4170f7 *R/mclust.R
13+
1c0ad0629bdef87f46a9811aa87011ea *R/mclustaddson.R
14+
e538b9d0b443d9329fee92444690d29b *R/mclustda.R
1515
3134343f0d9576ac66c85d66b0fc2256 *R/mclustdr.R
1616
18ffd65e4c69c99e8ea4cb19ff98e0c9 *R/options.R
1717
781ff8bea2efa10350791cd781eb4a2d *R/toremove.R
18-
59bbe86bfdaa0874f2ddf73f9c23b23a *R/util.R
18+
f628ec3786ac41f45508cc4145a2d28f *R/util.R
1919
f4e0dc159cb386c756eeb3d91e833a4d *R/weights.R
2020
ea54da7ad04ea6cf47aad932539d5945 *R/zzz.R
21-
53fd8f7a70dd35554c276e69fb397c36 *build/vignette.rds
22-
be633fe4c8d2fe6d9ffb8d1f7775d7d4 *data/Baudry_etal_2010_JCGS_examples.rda
23-
dc855c15e4d0ad6aada18089f334ec2d *data/EuroUnemployment.rda
24-
5f1af2c25a1b0220d60caef83a9a8933 *data/GvHD.rda
25-
70cf5c7497a7502e1608152e06cb10ad *data/acidity.rda
21+
430ff574a5278b73e49324cbeb9c4b4b *build/vignette.rds
22+
c0a164f4df320950eddb477c71ea78e5 *data/Baudry_etal_2010_JCGS_examples.rda
23+
28c0fba0af7c95851573c77597d1afa9 *data/EuroUnemployment.rda
24+
8612251d089327244e464c809efc131f *data/GvHD.rda
25+
85526626efc94246655cd2b815f26c21 *data/acidity.rda
2626
dcf0404be80a56cd040ed8cb8da1b428 *data/banknote.txt.gz
27-
8ce8f5711f6fedbd7fbb72c2d4d4877b *data/chevron.rda
28-
9fa1c815b04f041a760d73de6855af6a *data/cross.rda
29-
48f91d7dfca0225f74cf8f91306e4ad1 *data/diabetes.rda
30-
a6f4195e02f623d477012b738a367682 *data/thyroid.rda
27+
052f39193da75683b32c492a0df99cb2 *data/chevron.rda
28+
5de10b593e60083c0e1d12b973ece54b *data/cross.rda
29+
aa7d4e8b606e246652968a0c1d6f2264 *data/diabetes.rda
30+
4945d2a408186e1913a101d4175287ff *data/thyroid.rda
3131
b2a529e265721bcd2cb632d42ec6cc11 *data/wdbc.txt.gz
32-
6e79f1abe6d1f90149c6032203d0b6e3 *data/wreath.rda
33-
675c74d0cdc5bfaf2d7f6a8fa9d55f15 *inst/CITATION
32+
86a890fe37deee36e0620537144cccfc *data/wreath.rda
33+
8d16fa500120f43dd55c8a0a08359f55 *inst/CITATION
3434
6fce37b68f6b4a2ce7ade42cba984c99 *inst/NEWS
35-
00cba8b48cf416b20705afd5ac6d2e04 *inst/doc/mclust.R
35+
a09905f6e2852d6cfcba1faac3da3c76 *inst/doc/mclust.R
3636
7278b7f759063e3034995f25eff22def *inst/doc/mclust.Rmd
37-
e829e4f01fa661e98d1154072aec8f0f *inst/doc/mclust.html
37+
cbf4c8658b644556854d5f7a268b33f0 *inst/doc/mclust.html
3838
0910b5ac9a610600d59154919b1b5eaf *man/Baudry_etal_2010_JCGS_examples.Rd
3939
226b01ed5c258d406de2af5cfade2ba1 *man/BrierScore.Rd
4040
46173e31ba6dcd5e32de0ab995a3936f *man/EuroUnemployment.Rd
4141
d76b599944ca21988801f20fa43badc2 *man/GvHD.Rd
42-
0da1a6b97eb72846c97a614f71954fc3 *man/Mclust.Rd
42+
bcb5db44ee76743e2c2c4ac29572a142 *man/Mclust.Rd
4343
3d737638443b8ad5332f5bb1851d99e3 *man/MclustBootstrap.Rd
44-
2db38d20a186dae8e7675520c1be90ec *man/MclustDA.Rd
44+
5fb50ee5bea75c63154a76e906a5787b *man/MclustDA.Rd
4545
35a685d7dc0ca9ef4041cedc7a2ed9a4 *man/MclustDR.Rd
4646
490426167429f8a5032a76f13780d122 *man/MclustDRsubsel.Rd
4747
be7d9c84a562490de0d98f27345b349a *man/acidity.Rd
@@ -52,7 +52,7 @@ eb92ce9bfd46fcf3eb40fb062bd82071 *man/bic.Rd
5252
a0f106c2c8ffeb166a9bbe85fdceb392 *man/cdensE.Rd
5353
3cb1c9457f1b0f03056e314304e78274 *man/cdfMclust.Rd
5454
b0cfe540c4eb91f99f49c2127562cd49 *man/chevron.Rd
55-
8d03d846594d737682ed289316a492f6 *man/clPairs.Rd
55+
dc98998fcb6483250d8eb20a8342edab *man/clPairs.Rd
5656
63d108fe436518c400eebb43430a5958 *man/classError.Rd
5757
b13b8ac3eafe2084cdb1174e08cb6cdb *man/classPriorProbs.Rd
5858
fd20be5ef505890b5fb82337022b9f0a *man/clustCombi-internals.Rd
@@ -61,17 +61,17 @@ bdb14988bc5193739060f58cca67fd5f *man/clustCombiOptim.Rd
6161
fd9027722a416f5955196a5cdc985c53 *man/combMat.Rd
6262
249a123191e271ba5d8f0577ee249276 *man/combiPlot.Rd
6363
0ad6fd1b3b38c99e3dbb74292cdea0ae *man/combiTree.Rd
64-
31e6b4816725c39bea7a28a3c7d5adfe *man/coordProj.Rd
64+
7944afcc8243a4b6772dbaf704decf6b *man/coordProj.Rd
6565
0ad10b7d97e45bebe7a10f69a7f919b9 *man/covw.Rd
6666
2e85d0cc4be9094e9d19aeffe69a296d *man/cross.Rd
6767
9bb56179fd11ee4fb5381b6a684a9feb *man/cvMclustDA.Rd
6868
281a582da51a0e7f85e7a014e915478c *man/decomp2sigma.Rd
6969
c2e2f3160f5343cf2e9d94aac026e0e7 *man/defaultPrior.Rd
7070
b1195aa852e01046fee1d9484e2fafc9 *man/dens.Rd
71-
edabd93e8b4e5142fbd8a300f7bfdc83 *man/densityMclust.Rd
71+
1d22277d8a033431667afe84684b1d81 *man/densityMclust.Rd
7272
802c511a30a7cff09b45442526a03cd2 *man/densityMclust.diagnostic.Rd
7373
9555c9ce741dcf600b6458e3c90e72c6 *man/diabetes.Rd
74-
2ed521a037dca0f419d2c7458aaeb2d0 *man/dmvnorm.Rd
74+
92ea0d6609afc260770a66d2ad957f04 *man/dmvnorm.Rd
7575
70afb44eac912ad73a029d1b342976df *man/em.Rd
7676
9bd81085828b4bc9badee8e6e5f147ea *man/emControl.Rd
7777
7fd10b6eb296938380d664874f096808 *man/emE.Rd
@@ -93,17 +93,17 @@ cc916d8c4282eb5e20899b25d0b741ea *man/logLik.Mclust.Rd
9393
db9dd261d97ef515e5008f7f9351bc0b *man/logLik.MclustDA.Rd
9494
699915f3a4cf8bfd6718f71f2a754c48 *man/majorityVote.Rd
9595
7d8989594ce3a00a8633781ff84658f0 *man/map.Rd
96-
2333fd41fe7388bb3347ac831801d654 *man/mapClass.Rd
96+
76e1f32de9fada05bc7c1af7f7c8a3dc *man/mapClass.Rd
9797
f1edaf4e08180fa4edad91f6023b58c3 *man/mclust-deprecated.Rd
9898
46bd2e7c7536abe228d0ba00a6e99dd4 *man/mclust-internal.Rd
99-
5d5923f8b95ecd940b8f5eb381cbb790 *man/mclust-package.Rd
100-
c3d60b764e4508528ac7a8571d4c1a46 *man/mclust.options.Rd
101-
90d8845ae0707c8c43b3b733622b1abc *man/mclust1Dplot.Rd
102-
2082bd9ac1a5a190f78d66495d7d8691 *man/mclust2Dplot.Rd
103-
75e74f6e0bc744d968243a732ebac875 *man/mclustBIC.Rd
99+
beac4a2a752bce39e2c9189812c1147a *man/mclust-package.Rd
100+
1ec78f317ae287f9c8dd973b0ce91bb8 *man/mclust.options.Rd
101+
b84afcd2004a33843ef9f3c16f437e87 *man/mclust1Dplot.Rd
102+
cf40112a3a2e1779697d2cbbc198c52a *man/mclust2Dplot.Rd
103+
e8ecf0ae6fc47f9afee962964623facc *man/mclustBIC.Rd
104104
d472e0d59f19113c24ffdde7fdc67955 *man/mclustBICupdate.Rd
105105
8b53ade82e8b688643dbd9e3f8a4bc08 *man/mclustBootstrapLRT.Rd
106-
ace09f6b111e8fc300d75adce419134b *man/mclustICL.Rd
106+
6d3012dae0c7a03c6574491517a8ab00 *man/mclustICL.Rd
107107
0a070441cfab2c8827cae182a38b3c66 *man/mclustLoglik.Rd
108108
9d69c87d5861e6de08a57854ed4bf324 *man/mclustModel.Rd
109109
ea6c97d710bff8c2d30aa915949e711d *man/mclustModelNames.Rd
@@ -119,26 +119,26 @@ c3796dae5e43a2c26a9ee9b73fcf2276 *man/nMclustParams.Rd
119119
2099a0c748ce32038c52f4aedf1886c5 *man/nVarParams.Rd
120120
36355172607046a0c37f10dee1197ed5 *man/partconv.Rd
121121
cde8fd0e95c3ca5e84846d10a851fd76 *man/partuniq.Rd
122-
8c79fcccb82baeadfb8a61b38ae2b2a3 *man/plot.Mclust.Rd
122+
e2fdc7b5a3c1ebf5dbfa73b61f5ef0df *man/plot.Mclust.Rd
123123
2cf7265cf9b4fa52c6208dc5fe27072b *man/plot.MclustBoostrap.Rd
124124
aaccb40a44639012fc0789461389d642 *man/plot.MclustDA.Rd
125125
038d53a4fd4ca42d090b19d5fb54d6df *man/plot.MclustDR.Rd
126126
dbd8bdd0d07f7f7d6f8fe3b107091e23 *man/plot.clustCombi.Rd
127127
fc6801f93f4dfb1559632c1c37cb5bb8 *man/plot.densityMclust.Rd
128-
12951e89daa1f9b1ac1ab80cb05b93f5 *man/plot.mclustBIC.Rd
128+
073765a149a0c11d1130f95aff2e320f *man/plot.mclustBIC.Rd
129129
73cbe302b1095c8a9069163414501214 *man/plot.mclustICL.Rd
130130
f640c08bd9098247a97a44f30c89a4cf *man/predict.Mclust.Rd
131131
eb5eee0ce8ec4a4894ca618c703f8555 *man/predict.MclustDA.Rd
132132
e84b696c5b8eff056814c3cba07bee9f *man/predict.MclustDR.Rd
133133
7c321a1a8eecfcb89e3ed806a4b9a2d2 *man/predict.densityMclust.Rd
134134
c59592f03a637487c2b2e8473ac427e0 *man/priorControl.Rd
135-
d29459dadd315c784743284fa3f6f40a *man/randProj.Rd
135+
28b2a887bc3c57e224c7d17bcf3363f3 *man/randProj.Rd
136136
9acae98acfaf6b565e9233957a144d22 *man/randomOrthogonalMatrix.Rd
137137
164e38869f2f45ca98a8ad38912e15bf *man/randomPairs.Rd
138138
db6e45328c8d98198da2b16c881403b4 *man/sigma2decomp.Rd
139139
5a37417ceffee43ee448dbbf3d7259bb *man/sim.Rd
140140
a28f1d4193a31f36ba654fcf05836c22 *man/simE.Rd
141-
77fd1a835bb490319a118d67fe022de4 *man/summary.Mclust.Rd
141+
63cfca85d2a01ff42db2c501780a8d8f *man/summary.Mclust.Rd
142142
674c885bc9505c6906125ec08141e60a *man/summary.MclustBootstrap.Rd
143143
4a8c675b46da86ca7075999c22e635f4 *man/summary.MclustDA.Rd
144144
103fff818063adef9f3262398342fb0a *man/summary.MclustDR.Rd
@@ -152,7 +152,7 @@ c1b81d23059192faf2b0fdb40b0bc0d2 *man/wreath.Rd
152152
2a6f9e9e044a78154d3cfda5936d6f48 *src/Makevars
153153
d784799104d2c2350f9350b268761a2b *src/dmvnorm.f
154154
394a717e565a6647678c758462d11eb2 *src/init.c
155-
d2b48fc7997f081f8a1704d8882a56a3 *src/mclust.f
156-
3e070d829bea6cd31852ae8dc6e7f6bc *src/mclustaddson.f
155+
d8f2aded8f48c674e9546a51ea271da7 *src/mclust.f
156+
015387e2f8c8f04d9e8900f82002a925 *src/mclustaddson.f
157157
7278b7f759063e3034995f25eff22def *vignettes/mclust.Rmd
158158
b336c79647f3679eee6aff1702d422f5 *vignettes/vignette.css

Diff for: NEWS.md

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
1+
# mclust 5.4.6
2+
3+
- Fixed issues with source Fortran code with gfortran 10 as reported by CRAN.
4+
- Clean code of `hcCriterion()`.
5+
- Replaced `CEX` argument in functions with standard base graph `cex` argument.
6+
- Removed `ylim` argument in function; it can be passed via `...`.
7+
- MclustDA models use the default SVD transformation of the data for initialisation of the EM algorithm.
8+
- Added `icl` criterion to object returned by `Mclust()`.
9+
- Fixed number of pages for the RJ reference.
10+
- quantileMclust() uses bisection line search method for numerically computing quantiles.
11+
112
# mclust 5.4.5
213

3-
* Fixed warnings in Fortran calls raised by CRAN.
14+
- Fixed warnings in Fortran calls raised by CRAN.
415

516
# mclust 5.4.4
617

Diff for: R/bootstrap.R

+30-13
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,39 @@ mclustBootstrapLRT <- function(data, modelName = NULL,
1313
if(is.null(modelName))
1414
stop("A 'modelName' must be provided. Please see help(mclustModelNames) which describes the available models.")
1515
modelName <- modelName[1]
16-
if(is.null(maxG)) G <- seq.int(1, 9)
17-
else { maxG <- as.numeric(maxG); G <- seq.int(1, maxG+1) }
18-
Bic <- mclustBIC(data, G = G, modelNames = modelName,
16+
if(is.null(maxG))
17+
{
18+
G <- seq.int(1, 9)
19+
} else
20+
{
21+
maxG <- as.numeric(maxG)
22+
G <- seq.int(1, maxG+1)
23+
}
24+
BIC <- mclustBIC(data, G = G, modelNames = modelName,
1925
warn = FALSE, verbose = FALSE, ...)
20-
if(!(modelName %in% attr(Bic, "modelNames")))
26+
27+
if(!(modelName %in% attr(BIC, "modelNames")))
2128
stop("'modelName' not compatibile with data. Please see help(mclustModelNames) which describes the available models.")
22-
if(all(is.na(Bic)))
29+
30+
# select only sequential models that can be fit
31+
bic <- BIC[, attr(BIC, "modelNames") == modelName]
32+
G <- G[!is.na(BIC)]
33+
if(length(G) == 0)
2334
stop(paste("no model", modelName, "can be fitted."))
24-
# select only models that can be fit
25-
G <- which(!is.na(Bic[, attr(Bic, "modelNames") == modelName]))
35+
if(all(G == 1))
36+
{
37+
warning("only 1-component model could be fitted. No LRT is performed!")
38+
return()
39+
}
40+
if(sum(is.na(bic)) > 0)
41+
warning("some model(s) could not be fitted!")
2642

2743
if(verbose)
28-
{ cat("bootstrapping LRTS ...\n")
29-
flush.console()
30-
pbar <- txtProgressBar(min = 0, max = (max(G)-1)*nboot, style = 3)
31-
on.exit(close(pbar))
44+
{
45+
flush.console()
46+
cat("bootstrapping LRTS ...\n")
47+
pbar <- txtProgressBar(min = 0, max = (max(G)-1)*nboot, style = 3)
48+
on.exit(close(pbar))
3249
}
3350

3451
obsLRTS <- p.value <- vector("numeric", length = max(G)-1)
@@ -37,9 +54,9 @@ mclustBootstrapLRT <- function(data, modelName = NULL,
3754
while(g < (max(G)-1) & continue)
3855
{ g <- g + 1
3956
# fit model under H0
40-
Mod0 <- summary(Bic, data, G = g, modelNames = modelName)
57+
Mod0 <- summary(BIC, data, G = g, modelNames = modelName)
4158
# fit model under H1
42-
Mod1 <- summary(Bic, data, G = g+1, modelNames = modelName)
59+
Mod1 <- summary(BIC, data, G = g+1, modelNames = modelName)
4360
# observed LRTS
4461
obsLRTS[g] <- 2*(Mod1$loglik - Mod0$loglik)
4562
# bootstrap

Diff for: R/densityMclust.R

+39-3
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ cdfMclust <- function(object, data, ngrid = 100, ...)
460460
return(out)
461461
}
462462

463+
# old version using spline approx
463464
quantileMclust <- function(object, p, ...)
464465
{
465466
# Calculate the quantile of a univariate mixture corresponding to cdf equal to p
@@ -470,13 +471,48 @@ quantileMclust <- function(object, p, ...)
470471

471472
if(!any(class(object) == "densityMclust"))
472473
{ stop("first argument must be an object of class 'densityMclust'") }
473-
474474
eval.points <- extendrange(object$data, f = 1)
475475
eval.points <- seq(eval.points[1], eval.points[2], length.out = 10000)
476476
cdf <- cdfMclust(object, data = eval.points)
477-
q <- spline(cdf$y, cdf$x, method = "fmm", xmin = 0, xmax = 1, xout = p)$y
477+
dup <- duplicated(cdf$y)
478+
q <- spline(cdf$y[!dup], cdf$x[!dup], method = "fmm",
479+
xmin = 0, xmax = 1, xout = p)$y
478480
q[ p < 0 | p > 1] <- NaN
479481
q[ p == 0 ] <- -Inf
480482
q[ p == 1 ] <- Inf
481483
return(q)
482-
}
484+
}
485+
486+
quantileMclust <- function(object, p, ...)
487+
{
488+
# Calculate the quantile of a univariate mixture corresponding to cdf
489+
# equal to p using bisection line search method.
490+
#
491+
# Arguments:
492+
# object = a 'densityMclust' object
493+
# p = vector of probabilities (0 <= p <= 1)
494+
495+
stopifnot(inherits(object, "densityMclust"))
496+
if(object$d != 1)
497+
{ stop("quantile function only available for 1-dimensional data") }
498+
p <- as.vector(p)
499+
m <- object$parameters$mean
500+
s <- sqrt(object$parameters$variance$sigmasq)
501+
if(object$modelName == "E") s <- rep(s, object$G)
502+
r <- matrix(as.double(NA), nrow = length(p), ncol = object$G)
503+
for(g in 1:object$G)
504+
{
505+
r[,g] <- qnorm(p, mean = m[g], sd = s[g])
506+
}
507+
if(object$G == 1) return(as.vector(r))
508+
q <- rep(as.double(NA), length(p))
509+
for(i in 1:length(p))
510+
{
511+
F <- function(x) cdfMclust(object, x)$y - p[i]
512+
q[i] <- uniroot(F, interval = range(r[i,]), tol = sqrt(.Machine$double.eps))$root
513+
}
514+
q[ p < 0 | p > 1] <- NaN
515+
q[ p == 0 ] <- -Inf
516+
q[ p == 1 ] <- Inf
517+
return(q)
518+
}

0 commit comments

Comments
 (0)